오랫만에 그놈 코리아 http://gnome.or.kr/ 에 접속했더니 히야! 대게 이뻐졌네요!!!
Archive for March, 2008
머리를 묶고, 묶이지 않은 옆 머리엔 삔을 꼽았다!
내 입으로 이런 말하기 좀 그렇지만 점점 이뻐지는 것 같다.
얼마 후엔 취업 때문에 면접들을 봐야할텐데 이거 아까워서 어떻게 짜르지 ㅠ.ㅠ
아침에 일어나 커피를 뽑았다. 그런데 내가 맨날 쓰는 커피잔은 이미 설거지통에 들어있다. 설거지를 하기는 귀찮길래 새로 사놓고 한 번도 쓰지 않았던 새 커피잔을 꺼냈다. 어제 갈아놓은 커피라 그런지 향이 진하고 좋다. 그나저나 어제 술을 많이 먹기는 했는지 속이 쓰리다. 이제 정말 술 좀 줄여야겠다.
요 근래 코드로 반주해 버릇 했더니 점점 엉망이 되는 거 같길래 다시 악보 보는 연습을 시작했다. 어렸을 땐 그렇게 싫던 피아노가 요새는 그렇게 재밌을 수가 없다. 결국 이틀 내내 피아노만 치고 있는 중. 김윤아의 ‘야상곡’ 을 새로 연습하기 시작했는데, 느는게 눈에 보인다. 이렇게 연습하기는 ‘Endless rain’ 이후 첨인 것 같다.
수업은 작년에 다 들어뒀고, 요번 학기부터는 수업이 없다. 지금 하고 있는 일들만 마무리되면 그동안 생각해놨던 아이디어들을 실험해봐야겠다. 자리를 다른 사람과 붙어있는 곳이 아닌 혼자 앉을 수 있는 곳으로 옮겼고, 파티션을 쳐버렸다. 누가 일부러 와서 쳐다보지 않는 한 내가 뭘 하는지 안보인다는 사실이 날 안정되게 만든다. 이젠 프로젝트에 참여할 일도 없을 거 같으니 정말 내 공부를 할 수 있을 거 같다.
졸업 시험도 쳤고, 세 과목 다 붙을거 같다. 시험을 보고 나오는데 알리가 나에게 뭔가를 물어봤다. 문제는 영어였기 때문에 해석이 안되서 못풀 이유가 없으니 난 무시하고 나와버렸다. 그랬더니 왜 나한테 안가르쳐줬냐고 뭐라고 그런다. 지가 공부를 안해놓고 날 탓하려고 하는게 맘에 안든다. 그 후로 며칠간 알리가 보이질 않는다.
석사 기간인 이 년이 이렇게 짧을 줄은 몰랐다. 정말 눈깜빡할 사이에 일 년이 지나버렸고, 남은 기간은 논문쓰고, 취업 준비하고 하다보면 또 눈깜빡할 새에 지나갈 것 같다. 석사 기간동안 뭔가 대단한 걸 배운다거나 하는건 아니지만 지난 일 년간 찾아본 내용이나 그동안 고민했던 것들로 인해 일 년 전의 나와는 큰 차이가 생긴 것 같다. 아직 끝나진 않았지만 석사 진학은 나쁜 선택이 아니었던 거 같다.
SSAT 를 보러오라는 메일이 왔다. 이젠 SSAT 공부까지 해야한다. TOEIC 도 5월에 만료되다 보니 TOEIC 도 다시 봐야하고, 영어 말하기 시험 점수까지 필요하기 때문에 준비할게 하나 둘이 아니다. 의욕은 없고 해야할 건 많고 완전 슬럼프…
언픽스 서버 하드를 바꾸면서 시스템을 새로 빌드했고, 아파치를 peruser 모드로 변경했다. 그런데 peruser 모드는 메모리 소모가 엄청나다. swap 메모리까지 고갈되버리면 서버가 완전히 뻗어버리기 때문에 이 상태를 유지하면 안될 거 같다. fastcgi 때문에 각 유져 권한으로 아파치를 돌려보면 어떨까 싶었던건데, 막상 fastcgi 와 peruser 모드는 궁합이 맞질 않는다. 주말이 가기전에 시간을 내서 다시 prefork 모드나 worker 모드로 변경해야할 거 같다.
홈에버에서 요리책을 보내줬다. 개인적으로 국수류를 매우 좋아하는데, 여기 나와있는 비빔국수 레시피가 참 맘에 든다. 서너번 해먹어봤는데, 과정도 별로 복잡하지 않고 꽤 맛있다. 이것저것 레시피들을 테스트해보느라 마지막으로 밥을 한 게 언젠지 기억이 나질 않는다. 점점 할 줄 아는 요리가 많아진다.
며칠 전 밤에 야참으로 감자를 썰어서 기름에 튀겨봤다. 신문지 위에서 기름을 빼면서 허브 소금을 뿌렸더니 짭짤한게 맥주 안주로 딱인거 같다. 그런데 남은 기름을 어떻게 처리해야할 지 난감했다. 결국 기름이 거의 다 소진될 때까지 밤마다 감자 튀김을 만들었다.
이 때가 아님 언제 길러볼까 싶어서 아무 생각없이 머리를 기르다보니 드디어 묶이기 시작했다. 점점 내가 이뻐지는거 같다. (뻔뻔해지는 거 같기도 하다.)
오늘따라 왠지 센티멘탈…
어젯 밤에 심심해서 만들어낸 파노라마 사진…
무려 200장 정도를 찍었고, 초점이 안맞거나 흔들린 사진을 제외한 109장을 이용해서 만든 결과인데도 창문 쪽에 좀 소흘했더니 왼쪽 부분은 좀 많이 어긋나버렸다. 책상을 치워놨던 사진하고 치우기 전 사진하고 섞여있다보니 책상도 좀 묘하게 나오고…
하여튼 사진들을 가지고 파노라마 사진을 만들어주는 프로그램은 아래 링크로~!
왠지 모르게 점점 마이너 한 것들만 사용하게 되네요. postfix 나 exim 을 사용해보니 여러가지 장점이 눈에 보이는데 막상 how to 문서같은게 그리 잘 나와있질 않다보니 사람들이 사용하기를 꺼리는 것 같아 처음으로 howto 문서를 하나 작성해려 합니다.
이 문서는 젠투에서 exim 을 사용하는 방법을 기준으로 설명하고 있습니다.
Table of Contents
- 기본 구성
- 필요한 소프트웨어 설치하기
- 가상호스트 설정하기
- 바이러스 필터 설정
- 스팸 필터 설정
- dovecot 설정하기
- smtp 인증 설정하기
- 다른 배포판을 사용할 때 유의점
기본 구성
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@localhost 는 test@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 가 실행 중에 있어야 합니다.
어제 하드를 새로 갈았고, 전체적으로 설정을 새로 했습니다. 캬캬캭 크게 달라진 점은 다음과 같습니다.
- 아파치를 peruser 모드로 변경
- 메일 서버를 postfix 기반에서 exim 기반으로 변경
- 하드 디스크를 36+18GB 에서 72+36GB 로 변경
- 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년 정도를 더 버틴 다음에 새 서버를 사고 싶었는데 결국 또 마이너 업데이트로 버티게 되는구나 ㅠ.ㅠ