Archive for March, 2008

정태영

오랫만에 그놈 코리아 http://gnome.or.kr/ 에 접속했더니 히야! 대게 이뻐졌네요!!!

정태영

머리를 묶고, 묶이지 않은 옆 머리엔 삔을 꼽았다!

내 오늘자 셀카

내 입으로 이런 말하기 좀 그렇지만 점점 이뻐지는 것 같다.

내 오늘자 셀카

얼마 후엔 취업 때문에 면접들을 봐야할텐데 이거 아까워서 어떻게 짜르지 ㅠ.ㅠ

정태영

아침에 일어나 커피를 뽑았다. 그런데 내가 맨날 쓰는 커피잔은 이미 설거지통에 들어있다. 설거지를 하기는 귀찮길래 새로 사놓고 한 번도 쓰지 않았던 새 커피잔을 꺼냈다. 어제 갈아놓은 커피라 그런지 향이 진하고 좋다. 그나저나 어제 술을 많이 먹기는 했는지 속이 쓰리다. 이제 정말 술 좀 줄여야겠다.

요 근래 코드로 반주해 버릇 했더니 점점 엉망이 되는 거 같길래 다시 악보 보는 연습을 시작했다. 어렸을 땐 그렇게 싫던 피아노가 요새는 그렇게 재밌을 수가 없다. 결국 이틀 내내 피아노만 치고 있는 중. 김윤아의 ‘야상곡’ 을 새로 연습하기 시작했는데, 느는게 눈에 보인다. 이렇게 연습하기는 ‘Endless rain’ 이후 첨인 것 같다.

수업은 작년에 다 들어뒀고, 요번 학기부터는 수업이 없다. 지금 하고 있는 일들만 마무리되면 그동안 생각해놨던 아이디어들을 실험해봐야겠다. 자리를 다른 사람과 붙어있는 곳이 아닌 혼자 앉을 수 있는 곳으로 옮겼고, 파티션을 쳐버렸다. 누가 일부러 와서 쳐다보지 않는 한 내가 뭘 하는지 안보인다는 사실이 날 안정되게 만든다. 이젠 프로젝트에 참여할 일도 없을 거 같으니 정말 내 공부를 할 수 있을 거 같다.

졸업 시험도 쳤고, 세 과목 다 붙을거 같다. 시험을 보고 나오는데 알리가 나에게 뭔가를 물어봤다. 문제는 영어였기 때문에 해석이 안되서 못풀 이유가 없으니 난 무시하고 나와버렸다. 그랬더니 왜 나한테 안가르쳐줬냐고 뭐라고 그런다. 지가 공부를 안해놓고 날 탓하려고 하는게 맘에 안든다. 그 후로 며칠간 알리가 보이질 않는다.

석사 기간인 이 년이 이렇게 짧을 줄은 몰랐다. 정말 눈깜빡할 사이에 일 년이 지나버렸고, 남은 기간은 논문쓰고, 취업 준비하고 하다보면 또 눈깜빡할 새에 지나갈 것 같다. 석사 기간동안 뭔가 대단한 걸 배운다거나 하는건 아니지만 지난 일 년간 찾아본 내용이나 그동안 고민했던 것들로 인해 일 년 전의 나와는 큰 차이가 생긴 것 같다. 아직 끝나진 않았지만 석사 진학은 나쁜 선택이 아니었던 거 같다.

SSAT 를 보러오라는 메일이 왔다. 이젠 SSAT 공부까지 해야한다. TOEIC 도 5월에 만료되다 보니 TOEIC 도 다시 봐야하고, 영어 말하기 시험 점수까지 필요하기 때문에 준비할게 하나 둘이 아니다. 의욕은 없고 해야할 건 많고 완전 슬럼프…

언픽스 서버 하드를 바꾸면서 시스템을 새로 빌드했고, 아파치를 peruser 모드로 변경했다. 그런데 peruser 모드는 메모리 소모가 엄청나다. swap 메모리까지 고갈되버리면 서버가 완전히 뻗어버리기 때문에 이 상태를 유지하면 안될 거 같다. fastcgi 때문에 각 유져 권한으로 아파치를 돌려보면 어떨까 싶었던건데, 막상 fastcgi 와 peruser 모드는 궁합이 맞질 않는다. 주말이 가기전에 시간을 내서 다시 prefork 모드나 worker 모드로 변경해야할 거 같다.

홈에버에서 요리책을 보내줬다. 개인적으로 국수류를 매우 좋아하는데, 여기 나와있는 비빔국수 레시피가 참 맘에 든다. 서너번 해먹어봤는데, 과정도 별로 복잡하지 않고 꽤 맛있다. 이것저것 레시피들을 테스트해보느라 마지막으로 밥을 한 게 언젠지 기억이 나질 않는다. 점점 할 줄 아는 요리가 많아진다.

며칠 전 밤에 야참으로 감자를 썰어서 기름에 튀겨봤다. 신문지 위에서 기름을 빼면서 허브 소금을 뿌렸더니 짭짤한게 맥주 안주로 딱인거 같다. 그런데 남은 기름을 어떻게 처리해야할 지 난감했다. 결국 기름이 거의 다 소진될 때까지 밤마다 감자 튀김을 만들었다.

이 때가 아님 언제 길러볼까 싶어서 아무 생각없이 머리를 기르다보니 드디어 묶이기 시작했다. 점점 내가 이뻐지는거 같다. (뻔뻔해지는 거 같기도 하다.)

오늘따라 왠지 센티멘탈…

정태영

어젯 밤에 심심해서 만들어낸 파노라마 사진…

무려 200장 정도를 찍었고, 초점이 안맞거나 흔들린 사진을 제외한 109장을 이용해서 만든 결과인데도 창문 쪽에 좀 소흘했더니 왼쪽 부분은 좀 많이 어긋나버렸다. 책상을 치워놨던 사진하고 치우기 전 사진하고 섞여있다보니 책상도 좀 묘하게 나오고…

하여튼 사진들을 가지고 파노라마 사진을 만들어주는 프로그램은 아래 링크로~!

http://www.cs.ubc.ca/~mbrown/autostitch/autostitch.html

정태영

왠지 모르게 점점 마이너 한 것들만 사용하게 되네요. postfix 나 exim 을 사용해보니 여러가지 장점이 눈에 보이는데 막상 how to 문서같은게 그리 잘 나와있질 않다보니 사람들이 사용하기를 꺼리는 것 같아 처음으로 howto 문서를 하나 작성해려 합니다.

이 문서는 젠투에서 exim 을 사용하는 방법을 기준으로 설명하고 있습니다.

Table of Contents

  1. 기본 구성
  2. 필요한 소프트웨어 설치하기
  3. 가상호스트 설정하기
  4. 바이러스 필터 설정
  5. 스팸 필터 설정
  6. dovecot 설정하기
  7. smtp 인증 설정하기
  8. 다른 배포판을 사용할 때 유의점

기본 구성

Mail Transfer Agent 로는 exim, 스팸 필터로는 bogofilter, 바이러스 필터는 clamav, pop3/imap server 로는 dovecot 을 사용하기로 하겠습니다. dovecot 이나 exim 이나 기본 적으로 실행하는 프로세스들이 많지 않기 때문에 프로세스 리스트를 확인할 때 깔끔해서 좋더군요.

필요한 소프트웨어 설치하기

저 같은 경우는 대강 다음과 같은 USE 플래그를 이용해서 설치를 진행했습니다.

# emerge -pv exim bogofilter clamav dovecot procmail   These are the packages that would be merged, in order:   Calculating dependencies... done! [ebuild R ] mail-mta/exim-4.69 USE="domainkeys dovecot-sasl exiscan exiscan-acl gnutls ipv6 pam perl sasl spf sqlite srs ssl syslog tcpd -X -dnsdb -ldap -lmtp -mailwrapper -mbox -mbx -mysql -nis -postgres -radius" 0 kB [ebuild R ] mail-filter/bogofilter-1.1.6 USE="berkdb sqlite -gsl" 0 kB [ebuild R ] app-antivirus/clamav-0.92.1-r1 USE="bzip2 crypt milter nls -mailwrapper (-selinux)" 14,927 kB [ebuild R ] net-mail/dovecot-1.0.13-r1 USE="ipv6 pam pop3d ssl -debug -doc -kerberos -ldap -managesieve -mbox -mysql -postgres -sieve -suid -vpopmail" 0 kB [ebuild R ] mail-filter/procmail-3.22-r7 USE="-mbox (-selinux)" 222 kB   Total: 5 packages (5 reinstalls), Size of downloads: 15,149 kB

domainkeys 는 야후나 구글에서 사용하고 있는 domain key 를 제대로 검증하기 위한 USE 플래그가 되겠구요, dovecot-sasl 은 smtp 인증에 dovecot 을 이용하기 위한 플래그입니다.

spf, srs, domainkey 같은 플래그는 해당 기능을 사용하지 않겠다면 빼주셔도 무방합니다. CentOS 등에서는 dovecot-sasl 도 기본으로 지원이 안되더라구요. 하튼 관련해서 자세한 건 뒤에서 설명하도록 하겠습니다.

살펴보니 별로 특이한 플래그를 사용하지는 않네요. -_;; 젠투 유져라면 다들 아시겠지만 실제 설치는 위의 예제에서 -pv 를 제거하고 실행시키시면 됩니다.

가상호스트 설정하기

설치가 무사히 끝났다면 가상호스트를 설정해봅시다. 젠투에서는 기본으로 설정파일을 만들어주지 않습니다. 그렇기 때문에 우선 /etc/exim/exim.conf.dist 를 복사해서 exim.conf 를 만들어줍니다.

# cp /etc/exim/exim.conf.dist /etc/exim/exim.conf

그런 다음 자신이 좋아하는 편집기를 이용해서 exim.conf 파일을 열고, 아래와 같은 부분을 찾아서 자신의 환경에 맞게 수정을 한 뒤

primary_hostname = unfix.net   domainlist local_domains = @ : localhost : dsearch;/etc/exim/virtual domainlist relay_to_domains = hostlist relay_from_hosts = 127.0.0.1

router 부분에서 system_alias 바로 아래에 다음 코드를 추가해줍니다.

virtual: driver = redirect allow_fail allow_defer domains = dsearch;/etc/exim/virtual data = ${expand:${lookup{$local_part}lsearch*@{/etc/exim/virtual/$domain}}} retry_use_local_part file_transport = address_file pipe_transport = address_pipe

주 도메인이 있는 경우 localhost 대신 unfix.net 같은 도메인을 사용해도 무방합니다. 만약 위의 예제에서 localhost 대신 unfix.net 을 설정해주면 로컬에 있는 모든 계정은 id@unfix.net 형태의 메일계정으로 사용이 가능해집니다. 주 도메인이 여러개라면 @ : localhost : mydomain1 : mydomain2 식으로 콜론(:) 을 이용해서 여러 개를 모두 적어주면 되겠습니다.

이젠 가상 호스트를 설정해봅시다. 만약 test.com 과 test.net 을 위한 가상호스트를 설정하려 한다면 다음과 같이 하면 됩니다.

# mkdir /etc/exim/virtual # vi /etc/exim/virtual/test.com # vi /etc/exim/virtual/test.net

위에서 dsearch; … 으로 설정해놓은 디렉토리 안에다가 호스트 이름을 이용해서 alias 파일을 만들어주면 되니까 간단하죠? 각 파일에 들어가는 내용은 다음과 같습니다.

# test.com
test: aqua@localhost
melong: test@gmail.com

# test.net
aqua: test@localhost

test.com 파일에 들어가 있는 test: aqua@localhosttest@test.com 으로 온 메일을 aqua@localhost 로 포워드를 시키라는 거에요. 워낙 간단하니 다른 것들은 따로 설명 안해도 될 것 같네요. 단 위에서 localhost 대신 myhost.net 을 사용했다면 aqua@myhost.net 처럼 설정해줘야 합니다.

여기까지 따라하셨다면 가상 호스트 설정은 끝! 가상 호스트 파일을 수정했을 때는 alias 를 수정했을 때와 달리 newalias 를 실행시키실 필요가 없습니다.

바이러스 필터 설정

바이러스 필터로는 clamav 를 사용할 건데, USE 플래그로 exiscan 과 exiscan-acl 을 사용해서 설치했다면 clamd 와 연동하는건 아주 간단합니다.

exim.conf 에서 다음과 같은 줄을 찾아서 주석을 해제시키세요.

av_scanner = clamd:/var/run/clamav/clamd.sock

끝! clamd.sock 위치는 배포판에 따라 다를 수 있습니다. 자세한건 /etc/clamd.conf 를 참조하세요.

스팸 필터 설정

스팸 필터로는 bogofilter 를 사용할건데 이건 예전에 써놨던 다른 글을 참고해주세요.

dovecot 설정하기

우선 /etc/dovecot.conf 파일을 열어서 서비스할 프로토콜 리스트를 적어주세요. 그 다음에 plaintext 로 로그인할 수 있도록 설정해주고, pop3 나 imaps 를 위해 ssl 을 사용할거라고 명시해주고, 마지막으로 dovecot-sasl 을 사용할 수 있도록 auth-client 를 활성화시켜주세요.

이를 종합해보면 다음과 같은 설정파일이 만들어집니다. 볼드로 표시한 부분이 제가 수정한 부분이에요. 주석을 제거하고 보니 정말 간단하네요. -_-;

protocols = imap imaps pop3 pop3s   listen = [::] disable_plaintext_auth = no   ssl_disable = no ssl_cert_file = /etc/ssl/private/unfix.net.crt ssl_key_file = /etc/ssl/private/unfix.net.key   mail_location = maildir:~/.maildir   protocol imap { }   protocol pop3 { pop3_uidl_format = %08Xu%08Xv }   protocol lda { postmaster_address = postmaster@example.com }   auth default { mechanisms = plain login passdb pam { args = “*” } userdb passwd { } user = root socket listen { client { path = /var/run/dovecot/auth-client mode = 0666 } } }

그리고 /etc/pam.d 로 가서 smtp 파일이 있는지를 체크해보시고 만약 없다면 system-login 이나 pop 등을 복사해서 smtp 파일을 만들어주세요. 이것 때문에 어제 혈압이 올랐던걸 생각하면 …!!!

여기까지 설정하셨음 90% 는 끝난겁니다.

smtp 인증 설정하기

자 다시 exim.conf 로 돌아와서 smtp 인증을 설정해봅시다. exim.conf 에서 authenticators 파트를 찾아서 아래와 같은 내용을 추가해줍시다.

plain: driver = dovecot public_name = PLAIN server_socket = /var/run/dovecot/auth-client server_set_id = $1 server_advertise_condition = 1   login: driver = dovecot public_name = LOGIN server_socket = /var/run/dovecot/auth-client server_set_id = $1 server_advertise_condition = 1

이걸로 설정은 끝! 다음엔 데몬들을 띄워서 제대로 되나 확인을 해보세요.

# /etc/init.d/dovecot start # /etc/init.d/exim start

다른 배포판을 사용할 때 유의점

제가 이것저것 확인해본 건 아니라 정확하게 알려드릴 순 없지만 CentOS 에서는 spf, srs, dovecot-sasl, domainkeys 등을 사용할 수가 없습니다. 그렇기 때문에 dovecot-auth 대신 saslauthd 를 사용해야 해요. saslauthd 를 사용할 때의 authenticator 파트는 다음과 같습니다.

PLAIN: driver = plaintext public_name = PLAIN server_condition = ${if saslauthd{{$1}{$2}{smtp}}{1}{0}} server_set_id = $1 server_advertise_condition = true   LOGIN: driver = plaintext public_name = LOGIN server_condition = ${if saslauthd{{$1}{$2}{smtp}}{1}{0}} server_set_id = $1 server_advertise_condition = true

server_condition 을 다음처럼 해서 pam 만으로도 인증을 할 수 있을지도 모르겠는데, 테스트하기가 귀찮네요. -_-; 혹시나 시도해보신분 있으면 결과를 좀 알려주세요.

server_condition = "${if pam{$2:$3}{1}{0}}"

참고로 인증을 saslauthd 를 통해서 하려는 경우 saslauthd 가 실행 중에 있어야 합니다.

정태영

어제 하드를 새로 갈았고, 전체적으로 설정을 새로 했습니다. 캬캬캭 크게 달라진 점은 다음과 같습니다.

  1. 아파치를 peruser 모드로 변경
  2. 메일 서버를 postfix 기반에서 exim 기반으로 변경
  3. 하드 디스크를 36+18GB 에서 72+36GB 로 변경
  4. tomcat 버젼을 6.x 로 업데이트

exim 에 smtp auth 를 설정하는데, /etc/pam.d/smtp 를 안만들어뒀다가 12시간 동안 고생을 했네요. -_-; 별 것도 아닌게 쀍!

하튼! 대강 업데이트 완료~! 두두두둥!

update: mpm peruser 때문에 fastcgi 들이 제대로 동작하지 않는다. ㅠ.ㅠ trac 이랑 관련해서는 apache apache 권한으로 돌리게 하는 것으로 해결이 됐지만 이거 뭔가 방법을 찾아봐야겠다.

정태영

xfs_repair 를 시도한 이후에도 파일시스템의 문제가 깨끗이 해결되지 않고 있다. 처음 설치할 때에 비해 추가로 설치한 것들이 많아졌고, 사용자들도 많아졌기 때문에 여유 공간이 1GB 가 안되는 상태로 몇 달째 버티고 있었는데, 이제는 정말 하드를 추가해야할 시기가 아닐까 싶다.

결국 오늘 히타치 73GB 10,000rpm 하드 디스크를 새로 주문했고, vmware 상에서 gentoo 를 새로 빌드하고 있다. (뭐 예전껄 그대로 복사해도 문제는 되지 않겠지만, 그냥 왠지 다시 빌드하고 싶어져서…) 이것저것 설정을 새로 하고, 이래저래 만질 걸 생각하면 벌써부터 골머리가 아프지만 신경쓸 부분이 조금 더 줄어들거라는 점에서 위안이…

한 6개월에서 1년 정도를 더 버틴 다음에 새 서버를 사고 싶었는데 결국 또 마이너 업데이트로 버티게 되는구나 ㅠ.ㅠ