1. Sendmail에서 스팸 메일 릴레이 제한 설정 후 access db를 생성하려고 한다. ( )에 들어갈 명령어를 기술하시오.
( A ) ( B ) etc/mail/access.db < etc/mail/access |
(답) makemap, hash
메일 관련 프로토콜
1. SMTP(Simple Mail Transfer Protocol)
- 메일을 주고 받을 때 사용하는 프로토콜
- 25/tcp 포트 사용, 보안목적 포트 587/tcp
2. POP3 (Post Office Protocol version 3)
- 메일 서버에 수신된 메일을 클라이언트로 가져올 때 사용
- 클라이언트에만 메일을 저장
- 110/tcp 포트 사용
3. IMAP(Internet Message Access Protocol)
- POP3와 동일하게 수신된 메일을 클라이언트로 가져올 때 사용
- 서버와 클라이언트 모두 메일 저장
- 143/tcp 포트 사용
POP - IMAP 차이점
- pop3는 메일 서버에 수신된 메일을 클라이언트로 가져올 때 사용하지만 메일 서버에 메일이 저장되지 않으므로
메일 서버의 리소스에 무리를 주지 않는 장점이 있다. - 그러나, 메일이 클라이언트에만 저장되기 때문에 클라이언트 관리를 중요시 해야한다.
센드메일(Sendmail)이란?
- 리눅스에서 SMTP 프로토콜을 이용해 다른 메일 서버로 전달하는 프로그램
- 즉, 리눅스 메일 서버 프로그램으로 메일 서버를 구축할 때 필요
스팸 릴레이(Spam Relay)란?
- 보안이 취약한 메일 서버의 릴레이 기능을 이요하여 스팸메일을 보내는 것
- 메일 서버를 정당한 권한 없이 스팸메일 서버로 악용하여 대량의 이메일을 송·수신할 수 있고 이에따라 트래픽이 증가해 정상적인 이메일 수신을 방해할 수 있다
왜 Sendmail에서 스팸 메일 릴레이 제한을 해야하는가?
한국인터넷진흥원(KISA)에서 발간한 리눅스(Linux) 주요정보통신기반시설 기술적 취약점 분석·평가 방법 상세가이드에 따르면 SMTP 서버의 릴레이 기능을 제한하지 않는 경우를 위험도 '상'으로 안내하고 있다.
보안 위협
- SMTP 서버의 릴레이 기능을 제한하지 않는 경우, 악의적인 사용목적을 가진 사용자들이 스팸메일 서버로 사용하거나 DoS 공격의 대상이 될 수 있음
판단 기준
- 양호: SMTP 서비스를 사용하지 않거나 릴레이 제한이 설정되어 있는 경우
- 취약: SMTP 서비스를 사용하며 릴레이 제한이 설정되어 있지 않은 경우
>> 즉, SMTP 서비스를 사용한다면 무조건 릴레이 제한을 설정 하라는 뜻.
조치 방법
- Sendmail 서비스를 사용하는 경우 릴레이 방지 설정 또는 릴레이 대상 접근제어
1. vi sendmail.cf //vi 편집기를 이용하여 sendmail 설정파일 열기
2. 주석 처리된 부분을 주석 제거
3. 특정 IP, domain, Email Address 및 네트워크에 대한 sendamail 접근 제한 확인
(접근제한 파일이 없다면 생성)
# cat /etc/mail/access
4. access 접근 제한 파일 생성하거나 수정을 완료했다면 DB 파일 생성
# makemap hash /etc/mail/access.db < /etc/mail/access
보안기사 문제는 조치방법 4번 명령어를 문제로 낸 것!
Sendmail 추가 내용
Sendmail 주요 설정파일
설정파일 위치 | 설명 |
/etc/mail/access | 메일 Relay 제한 및 스팸메일 방지 설정 파일 |
/etc/mail/local-host-names | 최종 수신지 도메인 설정 파일 |
/etc/mail/virtusertable | 가상 메일 유저 설정 파일 |
/etc/aliases | 메일 유저 별명 설정 파일 |
~/.forward | 메일 포워딩 설정 파일(각 사용자의 홈 디렉토리에 위치) |
/etc/mail/sendmail.mc | sendmail.cf를 생성하기 위한 설정 파일 |
/etc/mail/sendmail.cf | sendmaild의 주 설정 파일 |
access 설정
/etc/mail/access 설정파일은 메일 Relay를 제어하고 스팸메일을 방지하는 기능을 위한 설정파일이다.
access 파일이 직접 Sendmail에서 읽혀지는 것은 아니고 sendmail.cf에 명시한 대로 access 파일을 이용해 생성한 access.db 파일이 사용된다.
때문에, access 파일을 수정하였다면 꼭 makemap 명령어로 db파일을 만들어주어야 한다.
access 파일을 이용하면 간단히 IP, 도메인, 이메일 주소 등을 막아 스팸메일을 방지할 수 있다.
access 파일 접근 제한 옵션 | 설명 |
RELAY | Relay 허용 |
OK | 조건 없이 허용 |
REJECT | Relay를 허용하지 않음 (스팸 서버의 IP를 등록하여 사용) 스패머들은 도메인을 조작해서 보내기 때문에 IP로 등록 |
DISCARD | 메일을 Relay하지 않고 폐기 발신자는 발신된 것으로 알며 어떠한 리턴 메일도 보내지 않음 |
501 '메세지' | 지정된 메일주소와 일치하는 메일 수신차단 |
503 '메세지' | 지정된 도메인과 관련된 메일 수신 차단 |
550 '메세지' | 특정한 도메인에 대해 지정된 메세지로 거부 |
553 '메세지' | 발신자 주소와 호스트명이 없을 경우 메일 수신 거부 |
571 '메세지' | 지정된 메세지로 경로메일을 보낸 후 수신 거부 |
/etc/mail/access 파일의 편집이 끝났으면 DB파일(/etc/mail/access.db)로 만들어줘야 한다.
sendmail에서는 빠른 엑세스를 위해 대부분의 자료는 DB파일로 만들어 사용한다.
# makemap hash /etc/mail/access < /etc/mail/access
위 명령어로 DB파일을 생성할 수 있는데, access 파일을 수정한 다음 매번 DB 파일을 생성하기 번거롭다.
Sendmail은 이러한 번거로움을 덜기 위해 /etc/mail/Makefile을 제공하여 access파일 수정 후 'make' 명령어만 내리면 access파일과 access.db 파일을 비교하여 최근 수정된 access파일로 db를 업데이트 쳐준다.
sendmail 재시작 할 때도 수정시간을 비교하여 업데이트 해준다.
'지식공유 > 정보보안' 카테고리의 다른 글
SMTP 메일보안 25번, 587번 포트 (0) | 2023.09.02 |
---|---|
TrickBot 트릭봇 뱅킹 트로이 목마 (0) | 2023.09.02 |
POP메일과 웹 메일 (0) | 2023.02.15 |
CIDR 계산 방법 (0) | 2023.02.10 |