사이드바 영역으로 건너뛰기

ramdisk 설정

1. /etc/fstab

# Ramdisk
ramdisk        /tmp           tmpfs    mode=1777,size=1g

 

2. 리부팅

3. 불여우

  • about:config 창에서
  • 마우스 왼쪽 버튼 눌러서 새로만들기 -> 문자열 선택
    • browser.cache.disk.parent_directory 입력
    • 값으로 /tmp/firefox 입력
      • /tmp/firefox/Cache에 캐시 파일 저장된다.
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

Ubuntu 8.04 Server에서 VirtualBox 설치하고 USB 사용하기? 아니 삽질기!

<< 변경이력 >>
2008. 7. 18. : 처음 작성


---------------
  무던히도 더운 여름날 어떤 까닭에서인지 잘 쓰던 시스템이 언제부턴가 작은 에러 창을 내 보인다.  시작할 때만 생기는 작은 문제라 급한 다른 일에 밀려 우선순위를 뒤로 두고 있었는데 날이 더워서인지 갑자기 짜증이.....  결국 긴 시간 들여 시스템을 갈아 엎었다.  아! 에러창 보다는 자그마치 4GiB 메모리를 장착하고도 3.4GiB 정도 밖에 사용하지 못하고 있는 현실이 더 짜증 났던 것 같다.

  하여간, 이런 이유로 시스템을 갈아 엎기로 결정했고, 무엇보다 4GiB 메모리를 온전하게 사용하기 위한 목적이기에 선택은 몇 가지가 있었는데, 내가 좋아하는 Kubuntu 환경을 사용해야 했고,  갈아엎는 시간을 최소화 해야했기에 커널 재컴파일 같은 일은 하지 않기로 했다. 또한, 주 용도가 32비트 어플리케이션 개발이기에 아직까지 한 번도 사용하지 않은 64bit 판은 32bit 판에 비해 우선순위가 밀렸다.  그래서 내린 결론은 이랬다.  아! 그러나... 시스템을 갈아엎는다는 것은 생각한 시간보다 더 잡아 먹는다는 경험상의 진리를 다시 한 번 느껴야 했다.

  1) Kubuntu 8.04 Alternative 32bit 판
  이럴줄은 몰랐다. 분명 7.10판을 사용하는 Ubuntu Server 32bit 판에서는 4GiB 메모리를 제대로 인식하는 것을 확인했음에도, Kubuntu Desktop은 몰라도 Alternative 판은 Ubuntu Server 판에서 사용하는 커널과 비슷할 줄 알았다.  혹시라도 다른 언급이 있을 줄 알고 미리 문서를 대충 훑어보긴 했으나 별다른 소리가 없길래 ....  결국 1)번 선택은 포기하고 2)번으로...

  2) Kubuntu 8.04 Alternative 64bit 판
  걱정이 많았다. 아직까지 한 번도 써 본 적이 없기 때문에 어떤 문제가 발생할지 불안했다.  단 한가지 4GiB 메모리는 제대로 쓸 수 있다는 점만 확신하고 시도했다.  그러나,  설치부터 문제가 발생했는데, 웹에서 흔히 보이는 커널 패러미터 문제였다.  두 가지 정도 해결책이 있다길래 패러미터를 고쳐서 해보았지만 불행인지 다행인지 해결되지 않는다.  차라리, 잘 된 일... 과감히 2)번 포기하고 3)번으로.... (내게는 이걸 해결해야만 할 이유도 없었고, 무엇보다 그럴 시간이 없었다.)

  3) Ubuntu 8.04 Server 32bit 판
  사실 여기까지는 그다지 시간이 걸리지 않았다. 1)번이야 시스템 설치 한 번 한게 다니까.. 2)번은 과감히 포기했기에...  마지막, 3)번... 이 단계에서는 예기치 못한 문제가 기다리고 있었는데 다름아닌 제목에 있던 VirtualBox에서의 USB 사용 문제였다.  설치도 깔끔했고, 4GiB 메모리도 제대로 인식하고, Kubuntu-Desktop 환경도 설정했다. 

  흠... 덥다.
  대충 가자.

  쿠분투 데스크 탑 ... KDE4 환경 멋있긴 하지만 웬지 무겁다.
  우분투 데스크 탑 ... 그놈환경... KDE4에 비해 밋밋한듯 하고 특히 세션관리가 쿠분투에 비해 맘에 들지 않는다. 그러나 낙점!


  VirtualBox 설치하기

  이 설명은 인터넷에 많이 널려있다.  영문판이긴 하지만, 

Howto Install VirtualBox 1.6 in Ubuntu 8.04(Hardy Heron) including USB Support

  이 좋다.  그림까지 곁들여 있으니 나 같은 사람에게도 굿~!
  초 간단 요약하면, 다운로드 받은 파일을 설치하고 커널 모듈을 컴파일 해야하기 때문에 미리 헤더를 설치해야 한다. 명령 순서를 정리하면....
  1) apt-get install virtualbox_1.6.2-31466_Ubuntu_hardy_i386.deb
  2) apt-get install kernel-devel
  3) apt-get install build-essential linux-headers-`uname -r`

  VirtualBox에서 USB 장치 사용하기


  VirtualBox 1.5.6 OSE 설치 ... 어라? USB가 지원 안 되네? 여기저기 이래저래 하면 된다고 나오는데 나는 다 안 된다. 과감히 포기하고 Sun xVM (VirtualBox 1.6.2) 설치.... 아싸! 관리화면에 USB 항목이 분명히 눈에 띈다.  이젠 되는구나 싶었다. 근데? USB 항목을 클릭하면, 기대와 다르게 Could not load the Host USB Proxy Service (VERR_FILE_NOT_FOUND). The service might be not installed on the host computer.  ???

USB 항목을 설치했을 때 나오는 에러

이 창이 뜬다면 위에 링크 걸어 놓은 문서  Enable USB Support in Virtualbox 부분을 보시라!!!
요약할 것도 없지만 요약하면, /etc/init.d/mountdevsubfs.sh 스크립트에서, "Magic"을 검색해서 나오는 부분 4줄이 코멘트 처리되어 있는 것을, 열어주면 된다.

이렇게 되어 있는 것을,
    #
    # Magic to make /proc/bus/usb work
    #
    #mkdir -p /dev/bus/usb/.usbfs
    #domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
    #ln -s .usbfs/devices /dev/bus/usb/devices
    #mount --rbind /dev/bus/usb /proc/bus/usb

이렇게 고쳐주란 얘기
    #
    # Magic to make /proc/bus/usb work
    #
    mkdir -p /dev/bus/usb/.usbfs
    domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
    ln -s .usbfs/devices /dev/bus/usb/devices
    mount --rbind /dev/bus/usb /proc/bus/usb


  자! 위 내용이 제대로 적용되고 리부팅 되었다면, 에러창 대신에 USB 설정화면을 볼 수 있다.


왼쪽 아래 도움말 단추를 누르면 설명이 나오는데, 안타깝게도 영문이다. 읽어봐도 무슨 소린지 모르겠다. 허나, USB 장치를 사용하는데 아무런 지장은 없다.  (혹시 필터가 어떤 기능인지 아시는 분 설명좀...)


  사실 여기까지는 "Ubuntu 8.04 VirtualBox USB"로 검색하면 나오는 문서에 모두 나오는 얘기다. 여기까지 하면 게스트 OS에서 두둥~하는 소리와 함께 USB 장치를 사용할 줄 알았다. 내 기억으로도 1.4.x 버전까지는 별 문제 없이 사용 할 수 있었다. 게스트 OS를 부팅하면 뭔가 되는 것 처럼 느껴지긴 했다. USB 장치를 꽂은 상태로 게스트 OS를 부팅하면 주변장치 상태창의 USB 버튼에 흐릿하긴 하지만 USB 장치 리스트가 보였으니까... 그러나 "흐릿한 불안감"은 역시나~!  메뉴에서 "장치 > USB 장치"를 선택해도 USB 장치 리스트가 보이긴 하지만, 선택할 수가 없다!

 

 


상태창도 마찬가지!



이런 저런 시도를 해보았으나, 모두 허사로 돌아갔다. 심지어는, 그 동안 들인 시간을 포기하고, VMware 를 선택할까 생각했으니까!

그러다가 결국 방법을 찾아냈는데, 위에 링크한 영문 링크에서다. 그 문서 본문에도 나오지 않는 얘기를 댓글에서 찾아냈으니, 모래알에서 바늘 찾는것 만큼이나 어려운 댓글에서 진주를 찾아낸 격!


  1. Edmund Says:

    You can try these commands or even add them to your startup script (e.g. in Ubuntu /etc/rc.local)
    1) VBOX=$(grep vboxusers /etc/group | sed ’s/vboxusers:x:(.*):.*/1/’)
    2) sudo mount -t usbfs -o devgid=$VBOX,devmode=664,nodev,noexec,nosuid none /proc/bus/usb

(Copy & Paste를 했는데, 앞에 번호가 이상하게 딸려오네... 원래는 4번 댓글임)
수 정한 부분은 1)번 라인 sed 명령의 홑따옴표를 쌍따옴표로 바꿔줬다. 자세히 살펴보면 검색에서 걸리는 문서에 간혹가다 보이는 /etc/fstab에 추가하라는 항목과 비슷하다. 결국, 그 부분을 애써 무시한 탓이었을까? 가능하다면 배포본 자체의 시스템 파일은 건들이지 않으려고 하다보니 생긴 일일 수도 있겠다. 하여간, 이 부분을 실행하니 게스트 OS에서 USB 장치를 제대로 인식한다!  아~! 정말이지.....

 


  결국, fstab 파일을 수정하지 않아서 생긴 삽질이었다.  /etc/fstab 파일에 딱 한줄 추가했을 뿐인데....

none /proc/bus/usb usbfs devgid=124,devmode=664 0 0


여기서 "devgid=124"는 vboxusers 그룹번호다. /etc/group 파일에서 확인할 수 있다.

vboxusers:x:124:hts



  다 쓰고나지 허망하다. 결국, 다른 블로그에 올라온 글과 차이가 없다. 차이가 있다면 안 해도 되었을 삽질이란 점.  날도 덥고 할 일도 많은데, 이 무슨 지랄인가 말이다. 아! 한 가지! 상 당히 많은 블로그에서 공통으로 얘기하고 있는 부분이 /etc/udev/rules.d/40-permissions.rules 파일 내용에 GROUP=vboxusers 항목을 추가하라는 말이 있는데, 내 경우에는 이 부분은 안 해 줬다. /etc/fstab 파일에 한 줄 추가하기 전 까지는 이 부분을 추가해 줬지만, 해줘도 별 무소용! 안 해 줘도 되는 건 과감히 안 해 주는 편이 좋다.


  별 특징없는 글을 마무리해야겠다. ㅠㅡ;

  우분투 8.04 서버 32비트 배포판에서 VirtualBox 를 설치하고, USB 장치를 사용하려면,

  1) OSE 판 말고, www.virtualbox.com에서 VirtualBox 1.6.2 판을 설치하라. (커널 모듈을 추가해야 하기 때문에, 커널 헤더를 설치해야 한다.)

  2) /etc/init.d/mountdevsubfs.sh 스크립트를 수정하라.

  3) /etc/fstab 파일에 한 줄 추가하라.


진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

우분투에서 듀얼모니터 설정

* 큰 맘 먹고 구입한 24인치 LCD 모니터, 그래픽 카드 역시 모니터 보다는 못하지만 역시 큰 맘 먹고 구입한 NVidia 7300gt 모델!
* 원래 가지고 있던 18.1 인치 모델과 듀얼 모니터 시도!
* 아뿔싸! 안/된/다!
* 이래저래 하면 되긴 하지만, 1920x1200 해상도는 어디로 가고 낮은 해상도로 보여주던가, D-Sub 가 메인 화면으로 잡히질 않나... ㅠㅡ;
* 결국 삽질(?) 끝에 성공!


# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 1.0  (buildmeister@builder3)  Wed Sep 12 14:29:35 PDT 2007


Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "Off"
EndSection

Section "Files"
    RgbPath         "/usr/X11R6/lib/X11/rgb"
EndSection

Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "type1"
    Load           "freetype"
    Load           "glx"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    Horizsync       31.5-74.5
    Vertrefresh     56.0 - 65.0
    Gamma       1.0
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    Option         "ModeValidation" "NoDFPNativeResolutionCheck"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "On"
    Option         "TwinViewXineramaInfoOrder" "DFP,CRT"
    Option         "TwinViewOrientation" "LeftOf"
    Option         "IncludeImplicitMetaModes" "True"
    Option         "Metamodes" "DFP: 1920x1200,CRT: 1280x1024"

    SubSection     "Display"
        Depth       24
#        Virtual     1920 1200
#     Modes       "1920x1200@60"
    EndSubSection
EndSection

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

한샘테크 경보기 HS-5000.T 사용설명서

1-2
3-4

5-6
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

dav_svn 사용하기

SSL을 이용하여 subversion을 사용하려면 당연히 아파치에 SSL 기능을 사용할 수 있도록 해야한다.
아래 명령을 차례로 입력하면 된다. 자세한 설명을 원한다면 오픈웹에서 작성한 문서를 참조한다. (아래 more에 스크랩)

흠.. 아래 명령도 오픈웹 문서 볼것!

특히! 주의할 점은 인증서를 만들 때 common name 입력 부분인데, 엉뚱한 값을 넣게되면 브라우저 상에서는 리스트를 확인 할 수 있지만, svn list 명령으로는 아래와 같은 에러를 만나게 된다.

jongi@papyrus:~$ svn list https://hawk/comstock
svn: PROPFIND 요청이 '/comstock'에 대해 실패하였습니다.
svn: PROPFIND of '/comstock': Server certificate was missing commonName attribute in subject name (https://hawk)

아파치를 SSL을 사용 할 수 있도록 설정했다면 dav_svn.conf 파일을 설정한다.
아래는 예제....


  DAV svn
  SVNPath /home/svn/comstock
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /home/svn/comstock/conf/dav_svn.passwd
  AuthzSVNAccessFile /home/svn/comstock/conf/dav_svn.access
  Require valid-user



  DAV svn
  SVNPath /home/svn/jongi
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /home/svn/jongi/conf/dav_svn.passwd
  Require valid-user


아파치에서 SSL을 사용하기 위해서는 아래 문서에서 "두번째 단계"를 참조!

--------------------


워드프레스를 안전하게 운영하는 방안(Apache2 with ssl using Virtual Hosting)

2006.8.25

Wordpress 로 웹사이트를 운영하는 경우 관리자 계정이나 가입자 암호 등이 clear text로 네트웍을 오가는 것은 바람직하지 않습니다. 특히 오픈웹의 경우, 이제 곧, 금융결제원을 상대로 한 소송에 참여할 사람들의 개인정보 등이 웹페이지를 통하여 오고가게 되는데, 이런 민감한 정보는 ssl 서버를 거쳐가도록 하는 것이 좋습니다. 이것은 하나의 서버(컴퓨터)로도 가능합니다.

그동안 후니님께서 워드프레스가 무엇인지에 대하여 저에게 한수 가르쳐 주셨고, 원고인단 모집 스크립트 작업도 해주시고, 빛알갱이님, Cypher님 등께서 그 나머지 부분을 도와주셔서, 소송인단 모집이 그야말로 ‘초읽기’에 들어갔습니다. 이에 다음과 같이 제안합니다.

즉, 민감하지 않은 정보는 http 로, 민감한 정보는 https 로 처리하고자 합니다. Apache가 제공하는 rewrite 기능을 사용하면 됩니다.

다음과 같은 단계가 필요합니다.

  • Apache2 with ssl 서버, 그리고, php, cgi, mysql 등 등 설치
  • 자신이 스스로 CA(인증기관)이 되어, 서명한 server 인증서 설치
  • Virtual hosting 기능을 이용하여 rewriting rule 마련.

첫단계

첫 단계는 이미 된 것으로 전제 한다. 간단한 설명은 여기 참고.

두번째 단계

자신이 서명한 서버인증서를 구비하는 방법은 여기에 설명되어 있다. 간단히 요약하면 다음과 같다.

1. 수퍼유저 권한으로 기존의 설정 파일을 백업해 둘 것: # tar zcvf Before.tgz /etc

2. 인증서를 저장할 폴더를 만든다.

root@korea.gnu.org:/home/glay# cd
mkdir gnuCA
chmod 700 gnuCA
cd gnuCA

3. 인증기관 인증서(CA certificate)를 생성하는데 사용되는 생성키(ca.key)를 다음과 같이 만든다:

# openssl genrsa -des3 -out ca.key 4096

암호를 요구하면, 기억할 수 있는 암호를 입력하고 잠시 기다리면 폴더에 ca.key 가 생성된다.

4. 이 생성키를 사용하여 CA 인증서를 다음과 같이 만든다.

# openssl req -new -x509 -days 365 -key ca.key -out ca.crt

다음 질문에 답변하고, 그 답변 내용을 정확히 적어 둔다.(여기 적어두었네요 :) )

Country Name (2 letter code): KO
State or Province Name (full name): South Korea
Locality Name (eg, city): Seoul
Organization Name (eg, company): GNU Korea
Organizational Unit Name (eg, section): Server Admin
Common Name (eg, YOUR name): korea.gnu.org CA
Email Address: glay@korea.gnu.org

이상을 입력하면, 폴더에 ca.crt 가 즉시 생성된다. 다음과 같이 확인.

root@korea.gnu.org:~/gnuCA# ls
ca.crt ca.key

5. 이렇게 만든 인증기관 인증서(ca.crt)를 사용하여 자신의 서버 인증서를 자기 스스로 발급한다.
먼저 서버인증서 생성키를 다음과 같이 만든다

openssl genrsa -des3 -out server.key 4096

키가 생성되는 과정에서 암호를 요구하면, 기억할 수 있는 암호를 입력한다. (위에 사용한 것과 같아도 무방함)
잠시후 server.key 가 생성되었음을 다음과 같이 확인한다.

root@korea.gnu.org:~/gnuCA# ls
ca.crt ca.key server.key

6. 이 키를 사용하여 인증신청파일(certificate signing request; .csr 파일)을 다음과 같이 만든다.

openssl req -new -key server.key -out server.csr

생성키를 만들때 사용한 암호를 요구하면, 이를 입력한다. 그러면 다음과 같은 질문(위와 같은 항목)이 나오는데, 그 대답은 끝에서 두번째 CN (Common Name) 을 제외하고는 위와 동일하다. 자기가 자신을 스스로 인증하기 때문이다. 그러나, CN이 위와 다르다는 점을 특히 주의!

Country Name (2 letter code): KO
State or Province Name (full name): South Korea
Locality Name (eg, city): Seoul
Organization Name (eg, company): GNU Korea
Organizational Unit Name (eg, section): Server Admin

Common Name (eg, YOUR name): korea.gnu.org
Email Address: glay@korea.gnu.org

7. 자신이 CA가 되어, 자기의 서버인증서를 다음과 같이 서명한다:

openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt

그러면 서버인증서 생성키를 만들때 사용하였던 암호를 요구하는데, 이를 입력하면 그 즉시 서명된 서버인증서(server.crt)가 생성, 발급된다. (금결원이 필요없지요… :) ) 다음과 같이 확인

root@korea.gnu.org:~/gnuCA# ls
ca.crt ca.key server.crt server.csr server.key

8. 서버인증서가 사용될 때마다 생성키를 만들때 사용한 암호를 서버관리자가 일일이 입력할 수는 없으므로, 암호 없이 읽혀질 수 있는 서버 인증서생성키를 다음과 같이 만든다.

openssl rsa -in server.key -out server.key.insecure
mv server.key server.key.secure
mv server.key.insecure server.key
chmod 700 server.key

이렇게 발급완료된 서버인증서와 생성키를 다음 위치에 저장한다.

cp server.crt server.key /etc/apache2/ssl/

서버인증서 발급 및 설치가 이렇게 완료되었다. 이제 Apache ssl Server 를 설정하는 일이 필요한데, 이것은 다음 항목에서 설명한다.

세번째 단계

컴퓨터 한대로 http 서버와 https 서버를 동시에 운영하는 것은 Virtual Hosting 기능이 제공한다. 이것을 이용하여 Wordpress 등의 웹페이지를 안전하게 운영하는 방법은 우분투 관련 사이트이곳, 그리고 워드프레스 코덱스 사이트에 설명되어 있는데, 간단히 요약하면 다음과 같다.

1. 서버 설정파일을 다음과 같이 두개로 만든다.

cd /etc/apache2/sites-available/
cp default ssl

2. 그 다음 default 파일의 처음 두 줄을 다음과 같이 수정한다.

NameVirtualHost *:80

조금 밑에 내려가, ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 라는 줄이 시작되기 직전에 다음과 같이, 주소 다시쓰기 규칙(Rewriting rules)을 삽입한다.

## Openweb stuff begins here! ##

Options -Indexes
AllowOverride Limit Options FileInfo
DirectoryIndex index.php
Order allow,deny
Allow from all

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^wp-(admin|login|register)(.*) https://%{SERVER_NAME}/openweb/law/wp-$1$2 [C]
RewriteRule ^.*$ - [S=40]
RewriteRule ^feed/(feed|rdf|rss|rss2|atom)/?$ /index.php?&feed=$1 [QSA,L]


## Openweb stuff ends here. ##

3. 그 다음, default에서 복사한 ssl 파일을 (/etc/apache2/sites-available/ssl)을 열어, 다음과 같이 수정한다:


NameVirtualHost *:443

ServerAdmin webmaster@localhost

DocumentRoot /var/www
## Certificate related matters ##
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
## End here ##

그리고, 아까와 같이 ScriptAlias 어쩌구 하는 부분이 시작하기 전, (즉, DocumentRoot에 대한 부분이 선언되고 나면) 다음과 같이 새로쓰기 규칙을 삽입한다.


## Openweb stuff begins here ##

Options -Indexes
AllowOverride Limit Options FileInfo
DirectoryIndex index.php
Order allow,deny
Allow from all

RewriteEngine On
RewriteBase /
RewriteRule !^wp-(admin|login|register)(.*) - [C]
RewriteRule ^(.*) http://%{SERVER_NAME}/openweb/law/$1 [QSA,L]


4. 그런 다음, /etc/apache2/ports.conf 파일을 열어서, 다음과 같이 수정한다:

Listen 80
Listen 443

5. 다음과 같은 심링크(symbolic link)를 건다:

ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/

그리고 ssl server 와 관련된 모듈이 활성화 되어 있는지를 다음과 같이 확인한다:

ls /etc/apache2/mods-enabled/
라고 입력해 보았을때 다음과 같은 심링크들이 존재하면 ok.

auth_mysql.load@ php5.load@ proxy_html.load@ ssl.load@
cgi.load@ proxy.conf@ rewrite.load@ userdir.conf@
php5.conf@ proxy.load@ ssl.conf@ userdir.load@

이 중 하나라도 없으면 다음과 같이 심링크 하면된다:

ln -s /etc/apache2/mods-available/모듈파일 /etc/apache2/mods-enabled/

모듈 파일이 /etc/apache2/mods-enabled/ 에 존재하지 않으면, 해당 패키지를 설치하여야 하며, 이때 심링크가 혹시 자동으로 안되면 직접 위와 같이 한다.

6. 이상이 완료되면, Apache2 서버를 다음과 같이 재시작 한다.

# /etc/init.d/apache2 restart

안전한 웹서버 관리 및 이용

이상의 과정이 문제 없이 이루어지고 나면, http://korea.gnu.org/openweb/law 로 접속하면 http 서버가 처리하고, 그 웹페이지에서 민감한 정보가 있는 부분은 https 서버가 처리하게 된다. 페이지 내용은 clear text로 보면되고, 로그인 정보, 회원의 이메일 주소 등은 https 프로토콜로 처리된다.

제가 집에서 테스트 해본 Apache2 설정 파일은 http://korea.gnu.org/openweb/sslSAMPLE.txthttp://korea.gnu.org/openweb/sslSAMPLE.txt 에 있습니다.

Topics: 웹사이트 운영 | 트랙백(trackback) |

7 Responses to “워드프레스를 안전하게 운영하는 방안(Apache2 with ssl using Virtual Hosting)”

  1. youknowit says (2006.8.25, am1:55 ):

    open.unfix.net 의 경우, https 로 접속하는 경우 인증서는 메일서버용이 제시되는데.. 즉, https://open.unfix.net 에 접속했는데, mail.unfix.net 의 인증서가 제시됩니다. 이경우 opera와 firefox, konqueror 등의 브라우저는 일회성으로만 접속이 가능하고, 매번 경고 메시지가 뜹니다.

    korea.gnu.org 의 경우, secure web server 는 없지만, 메일서버 용 인증서는 있습니다. 이 경우에도 메일서버의 호스트네임과 인증서에 표시된 호스트 네임이 달라서, 일회성으로 밖에 설치가 되지 않습니다. 메일 프로그램을 새로 실행한 다음, korea.gnu.org 메일 서버를 ssl 로 접속하여 메일을 발송하려면 매번 경고 메시지가 뜹니다.

    제가 위에서 설명한 방법과 같이, 인증서에 표시된 host name (CN, 즉 Common Name) 과 실제 host name 이 완전히 일치하면, 최초에 한번 경고 메시지가 뜨고 [= 알지 못하(기 때문에 믿을 수 없)는 인증기관이 인증한 인증서라는 내용], 사용자가 이를 영구히 설치하면, 다음부터는 아무런 경고메시지 없이 ssl 교신이 가능합니다.

  2. youknowit says (2006.8.25, am3:13 ):

    Mysql 엔코딩 문제에 대하여는 다음 글을 보세요:

    http://open.unfix.net/mysql-%ED%95%9C%EA%B8%80-%EC%97%94%EC%BD%94%EB%94%A9-%EB%AC%B8%EC%A0%9C/

  3. 정태영 says (2006.8.25, pm10:59 ):

    안 녕하세요 언픽스 서버를 운영하고 있는 정태영이라고 합니다. https 의 경우 name based virtual host 를 지원하지 않기 때문에 https 기본 포트로는 제공해 드릴 수가 없지만 필요하시다면 10000번 port 등을 이용해서 https 를 제공해드릴 수 있습니다.

    필요하시다면 메일 주시기 바랍니다 :)

  4. 정태영 says (2006.8.25, pm11:06 ):

    mysql 한글 문제 페이지에 있는 내용에도 약간의 오류가 있는 듯 해서 그 곳에 코멘트를 달려고 했지만 달리지 않는군요 :)

    mysql-4.1 버젼 이상에서는 client to server 에 사용되는 인코딩과 server to client 로 사용하는 인코딩 설정이 가능합니다.

    client 에서 server 로 데이타가 전송될 때는 character_set_client 에서 character_set_connection 으로 변환이 되고 server 에서 client 로 전송될 때는 db, table, column charset 에서 character_set_results 로 변환이 되게 되구요 ;)

    gnu korea 의 character_set_results, character_set_client, character_set_connection 값이 어떻게 되있는 지에 따라서 위 페이지의 내용은 맞는 내용이 되기도 하고 틀린 내용이 되기도 합니다.

    결론만 말하자면 mysql 5, 4.1 버젼 에 들어있는 데이타를 utf-8 로 dump 할 경우 charset 이 latin1 으로 설정되어 있는 mysql 4.0 에 되돌리더라도 한글이 깨지지 않습니다.

    얼마전 mysql 을 업그레이드 하면서 관련된 내용을 조금 정리한 글이 있어서 링크 걸고 갑니다. 즐거운 하루 보내세요~

    http://b.mytears.org/2006/08/362

  5. 정태영 says (2006.8.25, pm11:08 ):

    mysql 기본 설정 값을 확인하기 위해서는 mysqladmin -p variables 를 실행시키시고 mysql 비밀번호를 입력하시면 됩니다 :)

  6. 정태영 says (2006.8.25, pm11:13 ):

    본의 아니게 도배를 하고 가게 되는군요 :) https 같은 경우는 도메인이 큰 문제가 되는게 아니라면 https://unfix.net/open/ 정도로 alias 를 걸어드릴 수도 있겠네요.

    그렇게 할 경우 아래 링크를 걸게 되는 인증서만 등록해 두면 보안 경고창은 보이지 않을 겁니다.

    http://unfix.net/resources/unfix.crt

  7. youknowit says (2006.8.26, pm3:10 ):

    이메일 보내드렸습니다. 가입, 로그인, 관리 등의 경우 ssl 서버로 리디렉트가 잘되고, https 에서 다시 http 로도(보안의 필요가 없는 사이트로 갈때) 정확히 잘 전환되는 군요.
    고맙습니다 Very much!


진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

파이어폭스에서 SSL 접속이 안될 경우


우분투 대퍼를 사용하다, 한동안 업그레이드를 하지 않다가, Feisty가 나오길래 Edgy로 업그레이드 후, 바로 Feisty로 업그레이 한 이후 잘 되는 듯 하였는데 파이어폭스 사용 중 난관에 봉착 -_-;;
SSL을 사용하는 사이트만 들어가면 다음과 같은 메시지를 보여주면서 반응이 없다.

서버로부터 기대하지 않은 응답을 받음
이 서버와의 통신 방법을 알 수 없습니다.

    *   시스템에 개인 보안 관리자가 설치 되어 있는지 확인해 보십시오.
    *   서버의 정상적이지 않은 설정 때문일 수도 있습니다.    

개인 보안 관리자? 서버가 비정상?
아무리 구글링을 해도 오래 전 자료만 보이고, 또 내 상황과는 맞지 않아서 거의 포기할 무렵, 이 문제가 libnss3.so 파일과 관련 있음을 알게 되었다.

 Heinrich Wunram said on 2007-05-03: (permalink)

I had the same problem as described here. I couldn't enter webpages starting with https. Now I found the reason for this strange behaviour: In my firefox folder (/usr/lib/firefox) was an old version of libnss3.so (that of firefox 1.0.7). So I copied libnss3.so from /usr/lib to the firefox folder (don't forget to make it executable) and now my firefox is working correctly again. May be that this procedure might also help other posters in this thread to solve their problem.


그러나, 글에 나와 있는대로 해 보아도 해결되지 않고, .mozilla 디렉터리를 삭제해 보아도 마찬가지!

결국 libnss3 패키지와 firefox 패키지를 모조리 삭제하고 난 다음에야 정상적으로 SSL 을 사용할 수 있었다.

재미난 것은 보안상의 문제인지, /usr/lib/libnss3.so 파일을 move로 백업했다가 복구해도 SSL을 사용 할 수 없다는 점.
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

Ubuntu 7.04에서 VMware 설치하기

우분투 Edgy 사용 시 아무런 문제가 없던 VMware 가 Feisty 로 업그레이드 하고 난 뒤 vmware-config.pl 에서 에러가 발생한다.
문제는 Feisty에서 커널이 2.6.20-15 로 올라온 탓인데 이를 해결하는 방법은, 다음 패치를 적용하는 것이다.
--- compat_kernel.h     2006-11-13 13:06:18.000000000 -0800
+++ ../../vmmon-only.20/include/compat_kernel.h 2006-12-22 07:02:59.000000000 -0800
@@ -18,7 +18,9 @@
* provided by x86-64, arm and other (but not by i386).
*/ 
#define __NR_compat_exit __NR_exit
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
static inline _syscall1(int, compat_exit, int, exit_code);
+#endif


/*

위 패치를 아래처럼 적용한다. (patchfile 의 내용은 위 패치파일의 내용)
root@papyrus:~# cd /usr/lib/vmware/modules/source/vmmon-only/include
root@papyrus:/usr/lib/vmware/modules/source/vmmon-only/include#patch -p0 < patchfile

여기까지 되었으면 /usr/lib/vmware/modules/source 로 이동한 다음, vmmon.tar 파일을 삭제하고 다시 만든다.
root@papyrus:~# cd /usr/lib/vmware/modules/source# tar cvf vmmon.tar vmmon-only

나머지는 vmware-config.pl 명령을 예전처럼 실행하면 끝난다.
root@papyrus:~# vmware-config.pl


참고 원문은 여기를 누르세요.
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

Lexmark e120 프린터 리눅스에서 사용하기

렉스마크 E120 모델! 네트워크 모델(E120n)에 비해 절반 값 밖에 되지 않지만 혼자 집에서 사용하기에는 가격 대비 성능 짱!
게다가 동봉된 씨디에는 MS 윈도우 계열 OS 이외에 드라이버까지 포함되어 있어서 더욱 믿음직스럽다.
그.러.나!!!
포함되어 있는 씨디의 드라이버를 아무리 설치해도 제대로 동작하지 못하고, 구글링을 해보아도 별 도움을 받지 못했지만, 결국 역시 구글링을 통해 해결!

방법은 매우 간단해서 cups 시스템에서 Lexmark > Optra E 모델을 선택한 다음, lj4dith 드라이버를 선택하면 끝~!
(*추천드라이버로 바꾸어도 되는군요.)

테스트 환경은 우분투 7.04 Feisty-Fawn (Edgy에서 업그레이드 하자마자!)
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

How to change default soundcard

 

How to change default soundcard

  • View available soundcards
sudo asoundconf list
  • You should get something like this
Names of available sound cards:
Live
V8237
  • Switch soundcard with 'example' being the name of the preferred soundcard
sudo asoundconf set-default-card example

http://ubuntuguide.org/wiki/Ubuntu_Edgy#How_to_change_default_soundcard
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

콘솔(도스창/명령프롬프트)에서 C# 컴파일 하기


난생 처음 마이크로소프트사 개발툴을 익히기 시작했다.
C# !
처음부터 걸려버린다.
소설같은 C# 2판 설명대로라면 비주얼 스튜디오 익스프레스 2.0 버전을 설치했다면 메뉴상에서 따로 명령창을 여는 메뉴를 찾을 수 있어야 하는데, 달랑 실행 메뉴만 있을 뿐 다른 메뉴는 찾을 길이 없다.
상식적으로 생각해 보면 Path 가 걸려있지 않아서일테고, 옛 기억을 더듬으면 패스는 config.sys 파일이나 Autoexec.bat 파일에 추가하면 될 터...
찾아 들어가 보았으나 무언가 이상하리만치 걸려있는 패스가 없다.

검색 결과...


구글에서 검색하자 아래 결과를 보여준다.
저자 허락 없이 퍼 왔다.
어차피 나만 볼테니... -.ㅡ;;

원본보기


C# 컴파일하기
 
 작성자 장두헌     작성일 2004-03-10     조회수 1,173   
 

데브뱅크의 강좌를 맡으면서 전 강좌 쓰는 것이 하루 중 큰 일이 되었어요. 프로그래머인지. 아님 작가인지.
직업 중엔 태크라이터(TecWriter)란 것이 있거든요. 개인적으로 참 매력적인 직업이라고 생각해요. 기술적인 동향을 분석하고 비전을 제시하고. 아무튼 머리 싸매야 하는 일이지만 이제 나이를 들다 보니 다른 사람의 일을 죽어라고 하는 것보다 한 발 물러서서 유유자적하는 것도 그리 나쁠 것 같지는 않네요.

안녕하세요. 데브뱅크의 장두헌입니다.  


VS.net을 이용하여
콘솔 응용 프로그램을 실행하면 도스에서 실행되는 어플리케이션을 만들 수 있습니다.

 

<그림 Visual Studio.net 실행 후 새 프로젝트를 선택한 화면

Visual Studio.net을 사용하면 코드적으로 안정적이고 생산성 면에서도 만족할 만한 결과를 얻을 수 있습니다. 그러지만 처음 배우는 입장에서 Visual Studio.net 사용하는 것은 그리 바람직해 보이지 않습니다. 아무래도 개념을 설명하기에는 직접 코딩을 하고 컴파일을 해 보는 것이 편리할 것 같네요. 그래서 이 책의 구성은 이론을 설명하는 예는 모두 도스창에서 컴파일 하여 사용할 것입니다. 그리고 대부분 예제를 웹폼(Web Form)을 사용할 것인 때 이 때에서 Visual Studio.net을 이용한 코드 비하인드 방식이 아닌 코드 인라인 방식으로 설명하겠습니다. 다만 각 장에서 최종적인 예제는 Visual Studio.net을 이용하기로 하겠습니다. 사길 Visual Studio.net의 도구들과 컨트롤의 사용법을 익히는 것만해도 상당히 부답이 되고 만만치 않은 일입니다.

여러분의 컴퓨터에 닷넷 프레임워크나 Visual Studio.net이 설치되어 있다고 가정하고 계속 진행하겠습니다. 만약 설치가 안되어 있다면 Visual Studio.net의 컴포넌트 CD를 설치하시든지 아니면 MSDN 다운로드 페이지에서 닷넷 프레임워크를 다운 받으세요

닷넷 프레임워크 다운로드 페이지

http://msdn.microsoft.com/library/default.asp?url=/downloads/list/netdevframework.asp

.세계의 모든 프로그래머의 공통 프로젝트인 Hello World 프로그램을 만드는 것부터 해 보겠습니다.

 메모장이나 텍스트 에디터로 다음과 같이 자성합니다. 그리고 적당한 위치에 저장합니다. 필자는 C루트 디렉토리에 Book이란 폴더를 만들고 다시 Chapter1 폴더에 Hello.cs’란 이름으로 저장하였습니다.


**애제소스: Hello.cs**  

1.      using System;
2.      namespace HelloWorld  
3.      {  
4.         class Hello  
5.        {  
6.              static void Main()  
7.              {  
8.                     // 화면에 "Hello World!"를 출력합니다.  
9.                     Console.WriteLine("Hello World!");  
10.           }  
11.     }  
12.   }  


코드에 대한 구체적인 설명은 나중에 하고 지금은 컴파일을 하여 화면에 Hello World를 나타나게 하는 것이 목적입니다. 도스 창을 하나 띄웁니다. 실행 메뉴에서 Command라고 작성한 후 확인 버튼을 누르면 도스 창이 열리는 것쯤은 모두 아로 계시죠?

도스 창이 열리면 방금 만든 Hello.cs’가 있는 디렉토리로 이동합니다. 그리고 ‘csc ‘Hello.cs’라고  작성합니다.  

<그림: Hello.cs 컴파일>

 하나 빠뜨린 것이 있네요. MSDN에서 닷넷 프레임워크를 다운 받지 않고 VS.net가 설치되었다면 위와 같은 CSC 명령이 작동하질 않습니다. 그런 분이면 아마 ‘CSC는 실행할 수 없는 명령입니다.’란 메시지가 보일 것입니다. 도스 창에서 CSC 명령을 사용해서 컴파일을 하기 위해서는 시스템 환경 변수 중 Path를 설정해 주어야 합니다.

환경 변수를 설정하기에 앞서 자신의 프레임워크 SDK의 버전을 알아야 합니다. 그러기 위해서 C:WINNTMicrosoft.NETFramework 폴더로 이동하면 ‘v1.0.~’으로 시작하는 폴더를 볼 수 있는데 이것이 자신의 프레임워크 버전입니다. 정식 버전의 VS.net을 설치하였다면 ‘v1.0.3705’란 이름으로 존재합니다. 그럼

‘C:WINNTMicrosoft.NETFrameworkv1.0.3705’이란 경로명을 기억해 두고 다음과 같이 환경 변수를 설정해야 합니다.

제어판에서 시스템을 클릭한 후 상단의 탭 중 [고급]을 선택합니다. 그러면 다시 세가지 메뉴가 보이는 데 이중 환경 변수를 클릭하면 아래와 같은 그림이 나타납니다.

 

<그림-환경 변수 설정>

아해에 시스템 변수를 선택할 수 있도록 되어 있는데 이 곳을 찾아보면 ‘Path’가 있습니다. ‘Path’를 더블 클릭하면 ‘시스템 변수 편집’창이 열리는데 ‘v1.0.3705’ 경로명을 붙여 넣습니다. 이때 이미 다른 Path가 설정된 상태라면 앞에 ; 붙여서 첨가해 주어야 합니다. 예를 들면 필자의 경우 ‘C:Program FilesMicrosoft SQL Server80ToolsBINN’가 이미  Path로 설정되어 있는 상태입니다. 이곳에 ‘C:WINNTMicrosoft.NETFrameworkv1.0.3705’를 첨가했으므로 전채 Path는

C:Program FilesMicrosoft SQL Server80ToolsBINN;C:WINNTMicrosoft.NETFrameworkv1.0.3705

와 같은 형식이 됩니다.

다시 도스 창에서 ‘csc Hello.cs’라고 입력한 후 실행하면 그람과 같이 뭔가 수행했다는 메시지가 나타납니다. 그럼 컴파일이 완료된 것입니다.

‘Hello.cs’가 있는 폴더를 확인해 보면 ‘Hello.exe’이 생성된 것을 알 수 있습니다.

 그럼 도스에서 Helllo.exe를 실행하겠습니다. 그냥 “Hello’라고 써 넣으면 됩니다.

<그림 Hello.exe 실행화면>

‘Hello.exe’실행 결과를 보면 아래로 ‘Hello World’란 문장가 출력되었습니다. ‘Hello.cs’가 ‘Hello World’를 출력하는 프로그램이었으므로 나타난 결과입니다.

이렇게 해서 C#의 첫번째 예를 만들어 보았습니다. 전 프로그래밍을 공부할 때 환경을 만드는 것이 가장 어려웠어요. 일단 예제를 테스트할 환경이 갖추어지면 그 다음부터는 가속도가 붙잖아요. 그런 의미에서 우린 오늘 큰 산을 검은 것입니다.  


진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크