- SMTP : 이메일을 이메일 서버에게 전송할때 사용(포트 번호 TCP 25)
- POP3 : 이메일 서버에게 이메일을 받아 올때 사용(포트 번호 TCP 110)
1. Sendmail
1-1. Sendmail 패키지 설치와 활성화
yum -y install sendmail
rpm -qa sendmail
rpm -ql sendmail | egrep -v '/usr/lib|/usr/share|/man/'
systemctl enable --now sendmail
systemctl status sendmail
1-2. Sendmail 서비스 관련 정보 확인
pgrep -a sendmail
ps -ef | grep sendmail
cat /etc/services | grep ^smtp
netstat -nltp | grep sendmail
/etc/aliases # 메일 엘리어스 설정 파일
/etc/mail/sendmail.cf # 메일 주 설정 파일(sendmail 주 설정 파일)
/etc/mail/sendmail.mc # sendmail.cf에 대한 설정 보조 파일
/etc/mail/access # 메일 중계 기능/스팸 메일 차단 설정 파일
/etc/mail/virtusertable # 메일 가상 메일 설정 파일
/etc/mail/local-host-names # 메일 서버 도메인 기록 파일
/etc/mail/trusted-users # 메일 신뢰 사용자 지정 파일
/etc/mail/domaintable # 다중 메일 서버를 위한 도메인 기록 파일
/etc/mail/spamassassin/ # 스팸 메일 등록 설정 파일 위치 디렉토리
/var/spool/mqueue/ # 메일 송신측의 사용자 메일 임시 저장 디렉토리
/var/mail/<사용자이름> # 메일 수신측의 사용자 메일 저장 파일
/var/spool/mail/<사용자이름>
1-3. Email 서버 구성
vi /etc/mail/sendmail.cf
Cwhannimpeha.com # 자신의 메일 서버 도메인 이름 또는 가상 도메인 이름을 설정한다.
Cwmail.hannimpeha.com
Fw/etc/mail/local-host-names # cat local-host-names
Djmail.hannimpeha.com # Sendmail 자신의 호스트명을 알아내지 못하는 경우, Dj로 지정된 도메인으로 동작할 수 있게 해주는 설정이다.
FR-o /etc/mail/relay-domains # cat /etc/mail/relay-domains
Kvirtuser hash -o /etc/mail/virtusertable.db # 메일러 테이블, 가상유저 테이블, 엑세스 테이블 지정
CPREDIRECT
Kaccess hash -T<TMPF> -o /etc/mail/access.db
O EightBitMode=pass8 # 한글 처리 지정
O AliasFile=/etc/aliases # 메일 엘리어스 지정, '/etc/aliases' 파일에 지정되어 다른 계정으로 메일이 전송될 수 있게 하는 기능이다.
O MaxMessageSize=0 # 메일 용량 제한 지정이 없거나, '0'으로 설정하면 제한이 없다는 의미이다. 이때, 단위는 Bytes 이다.
Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
T=DNS/RFC822/X-Unix,
A=procmail -t -Y -a $h -d $u, M=1024000 # Mlocal 설정 부분의 M 옵션을 통해 메일 공간 용량을 설정한다.
O ForwardPath=$z/.forward.$w:$z/.forward # '.forward' 파일이 사용자 홈 디렉토리에 존재할 경우, 해당 사용자에게 오는 이메일들은 '.forward' 파일에 지정된 이메일 주소로 전달된다.
O DaemonPortOptions=Port=smtp,Addr=0.0.0.0, Name=MTA # Addr=127.0.0.1으로 설정되어 있으면, 메일을 보낼수 있는 클라이언트는 로컬에서만 가능하다.
O QueueDirectory=/var/spool/mqueue # 사용자가 보낸 메일은 '/var/spool/mqueue' 디렉토리에 저장되었다가 메일 전송이 완료되면 삭제된다.
# /var/spool/mqueue : 보낸 메일을 임시적으로 저장하는 공간, /var/spool/mail/$USER : 받은 메일을 저장하는 공간(사용자 별 파일)
O SmtpGreetingMessage=$j Sendmail $v/$Z; $b # 텔넷으로 메일서버의 25포트로 접속 했을때 출력되는 샌드메일 정보를 설정하는 옵션이다. 배너 그래빙 공격을 방지하기 위해서 보안상 수정하는 것을 권장한다.
# $j : Dj 명령으로 설정된 호스트명으로 Dj로 설정된 호스트명이 없을 경우에는 로컬 호스트명이 대신 표시된다.
# $v : Sendmail 소스의 version.c에 있는 Sendmail 버전으로 표시되고, Sendmail 버전을 다르세 출력되도록하려면 소스를 수정해 주어야 한다.
# $Z : DZ로 설정된 Sendmail 버전으로 표시된다.
# $b : 접속을 했을때 때의 시간을 표시한다.
# O SmtpGreetingMessage=$Z; $b # for 보안
1-4. 메일 릴레이 기능
- 자신의 네트워크가 아닌 다른 네트워크상의 호스트에서 자신의 메일 서버를 이용하여 메일을 전송하고자 할 경우에는 원천적으로 외부로 메일이 전송이 되지 못하도록 하는 기능이다.
- '/etc/mail/access.db' 파일 안에 지정되어 있는 네트워크 주소에 대해서만 메일을 전송할 수 있기 때문에 자신의 네트워크 주소 정보를 RELAY로 설정해야 한다.
vi /etc/mail/local-host-names
hannimpeha.com
mail.hannimpeha.com
vi /etc/mail/access
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
Connect:hannimpeha.com RELAY
Connect:mail.hannimpeha.com RELAY
Connect:192.168.2 RELAY
makemap hash access.db < access
strings access.db
[참고] '/etc/mail/access' 동작 유형
- OK(무조건 허용)
- RELAY(중계 기능 허용)
- REJECT(허용 거부, 사용자에게 알림 거부 메세지 0)
- DISCARD(허용 거부, 사용자에게 알림 거부 메세지 X)
- SKIP
- ERROR:### 반응문자열
2. Dovecot
2-1. Dovecot 패키지 설치와 활성화
yum -y install dovecot
rpm -qa | grep dovecot
rpm -ql dovecot | egrep -v '/usr/lib|/usr/libexec|/usr/share|/usr/lib64'
systemctl enable --now dovecot
systemctl status dovecot
2-2. Dovecot 서비스 관련 정보 확인
pgrep -a dovecot
ps -ef | grep dovecot
cat /etc/services | egrep '^pop|^imap'
netstat -nltp | grep 110
cd /etc/dovecot/conf.d
2-3. POP3 활성화 및 모든 시스템에 대해서 이메일 요청을 수신할 수 있도록 설정한다.
vi /etc/dovecot/dovecot.conf # POP3 활성화 및 모든 시스템에 대해서 이메일 요청을 수신할 수 있도록 설정
protocols = imap pop3 lmtp submission
listen = *, ::
vi /etc/dovecot/conf.d/10-mail.conf # 사용자 메일 박스 관련 설정한다.
maill_location = mbox:MEMORY:INBOX=/var/spool/mail/%u:INDEX=MEMORY
vi /etc/dovecot/conf.d/10-ssl.conf # SSL 기능을 비활성화 한다.
ssl = no
vi /etc/dovecot/conf.d/10-auth.conf # 암호화된 텍스트 사용을 활성화한다.
disable_plaintext_auth = no
3. 'mailx'를 이용한 이메일
yum -y install mailx
mailx user1@hannimpeha.com
mailx # mailx -u user1
4. 'Evolution'을 이용한 이메일
yum -y install evolution
'메가IT아카데미 국기과정 > 리눅스와 시스템보안' 카테고리의 다른 글
[2-14] NTP 서버 (0) | 2022.09.12 |
---|---|
[2-13] DHCP 서버 (0) | 2022.09.12 |
[2-10] DNS 서버 (0) | 2022.09.12 |
[2-9] Apache 웹서버-3 (0) | 2022.09.12 |
[2-8] Apache 웹서버-2 (0) | 2022.09.12 |