새로운 일을 받았다.
1. postfix를 구축해라
2. 사용자 인증을 받게하라
3. smtp서버에 바로접근하는게 아니라, 2개의 smtp서버 구축 후 relay를 시켜라!
나는 smtp에대한 지식이 전무하다.
구축하면서 얻는 지식에대해 정리해갈 예정이다.
1. postfix를 구축하라는 인터넷에 많아서 그냥 구축했다. (https://www.lesstif.com/pages/viewpage.action?pageId=18219586) 이거보고 구축했다.
2. 사용자 인증을 받게하라 .. 이게 매우 애매했다. 일단 시작해 보자!
인터넷에 찾아보니, SASL인증을 받으면 해결 될 것같다.
SASL(Simple Authentication and Security Layer)은 인터넷 프로토콜에서 인증과 데이터보안을 위한 프레임워크이다.
일단은 이게 맞는지 모르겠다. ㅋㅋㅋㅋ
일단은 방금 안 사실 postfix는 리눅스 계정과 연계된다고 한다.
예를들어) 리눅스 계정 id가 asdf1234이면, main.cf에서 설정 한 domain이 메일주소가 된다.
asdf1234@설정한도메인값
아래는 한 블로그에서 퍼온 내용이다.
ID는 linux 기본 계정 설정과 공유된다. -계정생성 #useradd 사용자계정 (홈 디렉토리는 생성 안됨) <---- 이걸로 계정만 생성하면 해당 도메인으로 이메일이 주고받기 가능 #adduser 사용자계정 (홈 디렉토리까지 같이 생성) -비번생성 및 수정 #passwd 사용자계정 -계정삭제 #userdel -r 사용자계정 (-r옵션은 홈디렉토리까지 한번에 삭제시켜준다) 위 명령어들로 linux 기본 계정은 물론 sendmail, postfix 메일 계정까지 동시에 관리한다.
|
SASL Authentification 설정
설정을 위해, cyrus-sasl 패키지 설치하자!
sudo yum install cyrus-sasl cd /etc/sasl2 vi smtpd.conf |
smtpd.conf가 다음 내용임을 확인
pwcheck_method: saslauthd mech_list: plain login |
sasl 실행
systemctl start saslauthd 계정 선택 후 비밀번호 입력 |
그다음 하나더 설치 해 줘야 할것이 있다.
너무 슬프게도 나는 이걸 몰라서 하루종일 헤맸다.
sudo yum install cyrus-sasl-plain 설치확인 saslauthd -v |
main.cf수정
sudo vi /etc/postfix/main.cf 아래에 다음을 추가 smtpd_sasl_path = smtpd smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_security_options = noanonymous smtpd_client_restrictions = permit_sasl_authenticated, reject smtpd_relay_restrictions = permit_sasl_authenticated, reject smtpd_recipient_restrictions = permit_auth_destination,permit_sasl_authenticated,reject |
인터넷에 올라간 많은 설정을 보면 permit_mynetworks 설정이 있지만, 나는 빼버렸다.
permit_mynetworks를 하게되면, mynetworks에 등록되어 있으면, 따로 인증을 거치지 않고 무조건 허용하겠다는 말이다.
하지만 그건 우리가 원한게 아니였기때문에 빼버렸다!
무조건 sasl인증을 받은 사람만이 우리 메일서버를 통해 메일을 보낼 수 있다.
main.cf를 변경했으니, smtp를 재시작 시키자!
sudo postfix stop sudo postfix start |
메일 인증을 받기전에, base64인코딩 된 idpw를 얻자
echo -ne '\0username\0password' | base64 |
|
사용자 인증이 완료되었다.