Unix/Solaris10

Postfix, TLS 지원 넣기

ForceCore 2007. 11. 2. 22:53
일단은 컴파일을 하는 데 성공만을 목표로 한다면 이 글을 참고.
http://blog.naver.com/ssanzing2/140031778941
TLS지원을 넣기 위해서 위 글의 일부 과정만을 조금씩 변형할 것이다.

http://www.postfix.org/TLS_README.html
이 글을 기반으로 해나감.

데이터의 암호화를 할 필요가 생겼다 ㅡ,.ㅡa
메일 내용을 전부 암호화 하지는 못해도,
적어도 사용자가 relay를 하는 데 필요한 암호 정도는 암호화를 해야겠지.

컴파일을 한다는 전제로... 우분투는 그냥 된다.
솔라리스는 패지지가 없어서 낭패지만.

이전에 TLS없이는 이렇게 makefile을 만들고 컴파일 했다:
$ make makefiles CCARGS="-DUSE_CYRUS_SASL -DUSE_SASL_AUTH-I/usr/local/include/sasl" AUXLIBS="-L/usr/local/lib -lsasl2-R/usr/local/lib"

이 단계가 바뀐다. ㅡㅡㅋ CCARGS에 -DUSE_TLS 추가. 그리고 AUXLIBS에 -lssl -lcrypto를 추가.

$ make makefiles CCARGS="-DUSE_TLS -DUSE_CYRUS_SASL -DUSE_SASL_AUTH -I/usr/local/include/sasl" AUXLIBS="-L/usr/local/lib -lsasl2 -R/usr/local/lib -lssl -lcrypto"

이렇게 명령어가 변한다. 하지만 컴파일을 시켜보면
ssl/rand.h를 찾을 수 없다고 불평하고 컴파일이 중단된다.
솔라리스에서 openssl패키지를 설치하면 rand.h가 주어지는데,
rand.h가 있는 곳은
/usr/local/ssl/include/openssl
그곳을 include하게 make makefiles 명령어를 바꾸면, 요로코롬 바뀐다.

$ make makefiles CCARGS="-DUSE_TLS -DUSE_CYRUS_SASL -DUSE_SASL_AUTH -I/usr/local/include/sasl -I/usr/local/ssl/include" AUXLIBS="-L/usr/local/lib -lsasl2 -R/usr/local/lib -lssl -lcrypto"

ld: fatal: library -lssl: not found
ld: fatal: library -lcrypto: not found
ld: fatal: File processing errors. No output written to master

새로운 에러군 ㅡ,.ㅡ

이번에는 library파일을 못 찾는것이다.
libssl, libcrypto로 검색을 해보면
/usr/local/ssl/lib에
libssl.so, libcrypto.so
에 둘 다 들어있다.
이제 이게 있다는 정보를 전달해주는 것이 남았다.
-L : 링크할 라이브러리가 어디 있는지 알려준다.
-R : hard coded shared library.

$ make makefiles CCARGS="-DUSE_TLS -DUSE_CYRUS_SASL -DUSE_SASL_AUTH -I/usr/local/include/sasl -I/usr/local/ssl/include" AUXLIBS="-L/usr/local/lib -lsasl2 -R/usr/local/lib -L/usr/local/ssl/lib -lssl -lcrypto"

드디어 성공 +_+;;
(이제 나도 라이브러리 정도는 찾아서, 컴파일러에게 알려주면서 컴파일 할 수 있는 수준에 이르른 것이다!!)

make에 성공했으니 make install을 하면 끝...
아... 이미 postfix가 설치되어 있다면 make upgrade를 해야 함.