Complete Virtual Mail Server/SMTP Authentication/ko

도입부
지금까지는 로컬 호스트만 메일 보내기를 허용했습니다. 아쉽게도 postfix는 courier-authlib와 직접적으로 동작할 수능 없습니다. 대신, 절충안인 이 있습니다. cyrus-sasl로 인증 정보를 가져오는 방법은 세가지가 있는데, 데이터베이스에서 직접 인증하거나, 로컬, 원격에서 처리하는 방법입니다. 이 방식의 설정은 다음과 같습니다.

courier-imap -> courier-authlib --\ +--> database postfix --> cyrus-sasl ---/

약간 더 복잡할지라도, cyrus-sasl은 courier-authlib와 소통하는데 사용하여 courier-authlib로 인증하도록 합니다.

courier-imap ---\ +-> courier-authlib -> database postfix -> cyrus-sasl --/

이상적으로 마지막 옵션이 해결책이 되겠지만, 사용할 인증 백엔드는 courier-authlib입니다. 허나, cyrus-sasl 플러그인은 courier-authlib와 유닉스 소켓을 통해서만 소통하므로 courier-authlib가 cyrus-sasl과 동일한 호스트에서 동작하지 않으면, 이 절차를 수행할 수 없습니다. 따라서 첫번째 접근 방식은 courier-authlib를 사용할 수 없을 때만 활용해야합니다.

cyrus-sasl 설치
cyrus-sasl의 핵심 기능은  USE 플래그가 필요합니다. 데이터베이스로 인증할 수 없을때 활성화하며, 암호문을 암호화합니다. postfix를 이머지할 때, 올바른 USE 플래그를 통해 cyrus-sasl을 끌어와야 합니다.

cyrus-sasl과 postfix 설정
postfix는 설정에서 sasl을 사용하겠다고 알리는 몇가지 옵션이 필요합니다. 기본 설정 파일에는 없으므로 추가해야합니다.

authdaemond 포함
postfix 요청문은  사용자 및 그룹에서 보호하는 authdaemond에서 만들어내므로 postfix에 접근 권한을 부여해야 합니다.

다음 cyrus-sasl에 authdaemond를 통해 인증하라고 해야 합니다:

시험
sasl 지원 기능 동작을 검증할 때  지시문 동작을 확인하려 텔넷을 활용할 수 있습니다:

다음 시험할 부분은 원격 호스트를 활용하여 로그인한 다음 시험 메시지를 보내는 절차입니다.

base64 모듈을 펄 언어로 설치했다면 base64 인코딩 데이터를 만들 때 활용할 수 있습니다. 그렇지 않아도 온라인에서 base64 변환 처리가 가능합니다. 다시 한 번 말씀드리지만, 데이터를 신뢰할 수 없는 사이트에 보낼 땐 상당한 주의를 기울이십시오.

마무으리
모든 부분이 잘 동작할 것 같으면, 디버깅 기능을 끌 수 있(거나 설정을 완전히 지워버릴 수 있)습니다:

게다가 도 취향에 따라 다시 비활성화할 수 있습니다. 사용자의 메일 처리 문제를 처리할 때 매우 간편한 수단입니다. 하지만 위에서 말씀드린 바와 같이 사용자 이름을 헤더에 기록하는 잠재 보안 문제가 있을 수 있습니다. 그렇지 않으면 로그인 이름을 메일 주소의 local_part에 두거나, 메일 주소 그 자체라면 로그인 이름이 이미 알려져 있으니 큰 문제는 ... 아니겠죠. 그죠? 일부 위험성에 대해서는 이미 이야기 했지만 큰 문제가 되진 않을겁니다.