1. sendmail 설치
[+]개요
- 센드메일(Sendmail)은 유닉스 및 리눅스 시스템에서 가장 널리 사용되는 메일 서버 SW
- 이메일 전송을 위한 에이전트로서, SMTP(Simple Mail Transfer Protocol)를 사용하여 메일 송수신
- 센드메일은 오픈 소스로 개발되었으며, 가장 오래된 메일 전송 에이전트 중 하나로 알려져 있습니다.
[+] 실습환경
- ubuntu 22.04
- 패키지 최신 상태 : sudo apt update && upgrade
- install : apt install sendmail
[+] 서비스 재시작 및 상태 확인
- systemctl restart sendmail
- systemctl status sendmail
2. 주요 설정 파일
- sendmail 설치 후 디렉터리의 파일 및 설명
[+] 주요 설정 파일 설명
파일명 | 설명 |
access | 메일 서버가 수신하는 이메일의 액세스 제어를 정의하는 파일 (스팸 방지를 위한 메일 릴레이 설정) |
access.db | access 파일을 컴파일하여 생성되는 데이터베이스 파일 |
aliases | 이메일 주소에 대한 별칭을 정의하는 파일 |
aliases.db | aliases 파일을 컴파일하여 생성되는 데이터베이스 파일 |
sendmail.cf | sendmail.mc 파일을 m4 컴파일러를 통해 생성된 실제 설정 파일 |
sendmail.mc | sendmail의 구성 파일 템플릿으로, 메일 서버의 설정을 수정하는 데 사용됨 |
[+] access 파일 설정
- 한글 번역
# /etc/mail/access
# 저작권 (c) 1998,2004 Richard Nelson <cowboy@debian.org>.
# 시간 표시: <1998/10/27 10:00:00 cowboy>
# GPL 라이선스의 설정 파일입니다. 불만, 제안 등은 저에게 전달해주세요.
#
# 기능:
# 이 SMTP 서버에 대한 액세스 제어 - 다음을 결정합니다:
# * 어디로부터의 이메일을 수신할지
# * 어디로부터 릴레이를 허용할지
# * 어느 주소로는 메일을 보내지 않을지
#
# 사용법:
# FEATURE(access_db[, type [-o] /etc/mail/access])dnl
# makemap hash access < access
#
# 형식:
# lhs:
# 이메일 주소 <user@[host.domain]>
# 도메인 이름 FEATURE(relay_hosts_only)를 사용하지 않으면
# 이것은 완전한 도메인 이름이어야 하며, 릴레이 도메인 ($=R)도 완전한 도메인 이름이어야 합니다.
# 네트워크 번호 옥텟 경계로 끝나야 합니다. 그렇지 않으면 번거로운 방법으로 가야 합니다. ;-{
# rhs:
# OK 다른 규칙에서 거부될 수 있는 메일도 받아들입니다.
# RELAY 도메인이 당신의 SMTP 서버를 통해 릴레이하도록 허용합니다. RELAY는 다른 체크에 대한 암묵적인 OK 역할을 합니다.
# REJECT 발신자/수신자를 일반적인 메시지로 거부합니다. 사용자 정의 가능한 메시지로 confREJECT_MSG [550 Access denied]이 발행됩니다.
# DISCARD 메시지를 완전히 버립니다. $#discard 메일러를 사용합니다.
# ### 임의의 텍스트 ###은 RFC 821 호환 오류 코드이며, "임의의 텍스트"는 해당 명령에 대한 반환 메시지입니다.
# 예제:
# spammer@aol.com REJECT
# FREE.STEALTH.MAILER@ 550 Spam not accepted
#
# 참고:
# FEATURE(blacklist_recipients)와 함께 다음과 같이 설정할 수도 있습니다:
# badlocaluser 550 Mailbox disabled for this username
# host.mydomain.com 550 That host does not accept mail
# user@otherhost.mydomain.com 550 Mailbox disabled for this recipient
#
# 관련:
# define(`confREJECT_MSG', `550 Access denied')dnl
# define(`confCR_FILE', `-o /etc/mail/relay-domains')dnl <<- $=R
# FEATURE(relay_hosts_only)dnl
# FEATURE(relay_entire_domain)dnl <<- $=m 클래스의 모든 호스트에 대해 릴레이 수행
# FEATURE(relay_based_on_MX)dnl <<- 릴레이되는 호스트의 MX로 릴레이 수행
# FEATURE(blacklist_recipients)dnl
# FEATURE(rbl[,alternate server])dnl
# FEATURE(orbs[,alternate server])dnl <<- Debian 추가
# FEATURE(orca[,alternate server])dnl <<- Debian 추가
# FEATURE(accept_unqualified_senders)dnl
# FEATURE(accept_unresolvable_domains)dnl
#
# 로컬 주소 10.x.x.x, 127.x.x.x, 172.16-31.x.x, 192.168.x.x는 릴레이할 수 있습니다.
# 주의! 외부에서 이러한 주소를 위조할 수 없도록 반드시 확인해야 합니다.
# 또한, 발신 릴레이는 연결과/또는 인증으로 제어됩니다.
# 방화벽이 설정되지 않았고 로컬 네트워크가 없다면 주석 처리하세요.
# 방화벽이 설정되지 않았고 로컬 네트워크가 있다면 *지금* 방화벽을 설정하세요.
# 스팸 확인을 위한 GreetPause - 지연 시간
# 클라이언트 연결 속도 (및 #) 제어
#Connect:localhost RELAY
#GreetPause:localhost 0
#ClientRate:localhost 0
#ClientConn:localhost 0
#Connect:10 RELAY
#GreetPause:10 0
#ClientRate:10 0
#ClientConn:10 0
Connect:127 RELAY
GreetPause:127 0
ClientRate:127 0
ClientConn:127 0
Connect:IPv6:::1 RELAY
GreetPause:IPv6:::1 0
ClientRate:IPv6:::1 0
ClientConn:IPv6:::1 0
#Connect:172.16 RELAY
#Connect:172.17 RELAY
3. 스팸 메일 및 릴레이 차단 설정
[+] sendmail.cf 설정 파일에서 access.db 사용 여부 확인
> 주석처리되어 있다면 주석 제거
[+] /etc/mail/access 정책 적용
- OK : 조건없이 무조건 허용
- RELAY : 지정 대상의 릴레이 허용
- REJECT : 지정 대상의 메일을 모두 거부 (거부 메세지 전달)
- DISCARD : 지정 대상의 메일을 모두 폐기(메시지 보내지 않음)
[+] access.db 생성
- 형식 : makemap hash /etc/mail/access.db < /etc/mail/access
'소소한 IT이야기 > 정보보안기사 실기' 카테고리의 다른 글
[한땀한땀] 정보보안기사 실기 기출풀이 (feat. 23회차, 23년 2회) - 01 (0) | 2023.08.10 |
---|---|
[정보보안기사] 아파치 주요 설정(feat. apache2.conf) (0) | 2023.07.23 |
[정보보안기사 실기] 시스템 보안 정리 (기본 개념) (0) | 2023.07.20 |