linux security - 메일 보안 -

34
22年 6年 12年 # 1 Computer Network Lab. 年年年年 年年年 年 年 年 LINUX SECURITY - 메메 메메 -

Upload: kassia

Post on 25-Feb-2016

237 views

Category:

Documents


12 download

DESCRIPTION

LINUX SECURITY - 메일 보안 -. 네트워크 실험실 김 윤 수. 목 차. SMTP 서버와 클라이언트 Sendmail 보안 기초 Qmail 설치 요약. SMTP 서버와 클라이언트. SMTP 의 메일 처리 과정 - 들어오는 메시지 수신 - 메시지 주소 확인 - 로컬 주소이면 메시지 저장 - 원격 주소이면 메시지 전달. 전자메일의 구조 . 전자메일 헤더. From [email protected] Thu Jun 29 08:42:27 2000 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 # 1Computer Network Lab.

네트워크 실험실 김 윤 수

LINUX SECURITY- 메일 보안 -

Page 2: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

2Computer Network Lab.

SMTP 서버와 클라이언트 Sendmail 보안 기초 Qmail 설치 요약

목 차

Page 3: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

3Computer Network Lab.

SMTP 의 메일 처리 과정 - 들어오는 메시지 수신 - 메시지 주소 확인 - 로컬 주소이면 메시지 저장 - 원격 주소이면 메시지 전달

SMTP 서버와 클라이언트

Page 4: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

4Computer Network Lab.

전자메일의 구조

Page 5: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

5Computer Network Lab.

전자메일 헤더From [email protected] Thu Jun 29 08:42:27 2000

Received: from magpie.daelimrnd.co.kr (magpie.daelimrnd.co.kr [202.30.60.10])

by bomun.kaist.ac.kr (8.10.2/8.10.2) with ESMTP id e5SNgQL21721

for <[email protected]>; Thu, 29 Jun 2000 08:42:26 +0900 (KST)

Received: from hskim.daelimrnd.co.kr (dt002.daelimrnd.co.kr [202.30.60.16])

by magpie.daelimrnd.co.kr (8.9.3/8.9.3) with SMTP id JAA27737;

Thu, 29 Jun 2000 09:04:11 +0900 (KST)

Message-ID: <[email protected]>

Page 6: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

6Computer Network Lab.

SMTP 명령어 (1)명 령 어 목 적

DATA 메시지 본문을 입력하도록 한다 . DATA 명령 다음줄부터 입력하고 마지막 줄에 점 (.) 을 입력하면 메시지 입력이 끝난다 .

EXPAND 사용자의 메일 계정을 출력하고 그룹 계정일때는 그룹 멤버의 모든 메일 계정을 출력한다 .

HELO(HELLO) SMTP 세션을 초기화 하고 식별할 수 있는 데이터를 교환한다 .HELP 도움말을 출력한다 .MAIL 메일 작업의 초기화QUIT 현재세션을 종료하고 연결을 끊는다 .RCPT ( 수신자 ) 수신자를 명시한다 .RESET 현재 작업을 중지한다 .VRFY 사용자명을 확인

Page 7: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

7Computer Network Lab.

SMTP 명령어 (2)

Page 8: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

8Computer Network Lab.

SMTP 의 보안 외부 침입으로부터 서버를 보호하는 일 . 외부

공격자가 승인되지 않은 접근을 할 수 없도록 서버를 강화

외부 사용자가 메일 서버를 통해 스팸 (spam) 메일을 보내거나 위조된 메일을 보내는 것 같은 잘못된 사용으로 부터 SMTP 보호

Page 9: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

9Computer Network Lab.

sendmail 보안기초 (1)

sendmail 의 version

Page 10: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

10Computer Network Lab.

sendmail 을 목표로 공격하는 원인 - sendmail 은 공개적으로 이용 가능한 서비스이므로

누구나 연결해서 사용 할 수 있다 .- Sendmail 은 루트권한으로 수행되기때문에 루트

권한을 획득하기 쉽다 .- 환경설정이 어려워 설정오류를 기대하고 공격

sendmail 보안 기초 (2)

Page 11: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

11Computer Network Lab.

98 년 3 사분기 보고 sendmail 자체에 영향을 미치는 것이 아니라 sendmail

이 메일을 전달하는 클라이언트에게 영향을 미친다 . 즉 sendmail 은 공격대상이 아니라 공격에 이용되는 도구 .

MIME 은 그림이나 소리 , 특정 형식의 텍스트 등 다양한 종류의 데이터를 지원하기 위한 방법으로 , MIME헤더에는 어떤 종류의 데이터가 인코딩 되어있는지에대한 정보저장

MIME 버퍼 오버플로 버그 (1)

Page 12: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

12Computer Network Lab.

CERT 권고안 (CERT 권고안 CA 98.10, 1998 년 8 월 11일 ) – sendmail 8.9.1 -

“ 공격자는 정교하게 제작된 메일을 보냄으로써 공격자가

선택한 코드가 실행될 수 있도록 하고 , 경우에 따라서는 메일 클라이언트를 망가뜨릴 수 도 있다 . 또한 , 운영체제에 따라서 사용자의 권한을 가지고 수행되기 때문에 루트 같은 관리자 계정으로 악의적으로 제작된 메일을 읽게 된다면 시스템에 대한 권한을 얻을 수도 있다 .”

MIME 버퍼 오버플로 버그 (2)

Page 13: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

13Computer Network Lab.

패스워드 파일 / 루트 접근 sendmail 8.8.4 에서는 sendmail 이 배달되지 않은

메시지를 /var/tmp/dead.letter 파일끝에 저장한다는 사실과 링크를 이용하여 내부 사용자는 루트 권한을 얻을 수가 있었다 .

/var/tmp/dead.letter /etc/passwd 메시지내용은 사용자계정을 기록하고 도착할 수

없는 메시지를 보내면 새로운 계정기록

Page 14: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

14Computer Network Lab.

sendmail 헤더 파싱 DoS 공격

sendmail 헤더 파싱 코드의 버그에 초점 많은수의 “ To:” 헤더를 가진 메시지를 생성함으로써

크래커들은 서버를 정지시킬 수 있는데 sendmail 8.9.2 와 그 이전 버전에 영향을 미쳤다 .

P.379 잘레브스키의 테스트 코드 서버와 연결후에 사용자에게 전자메일을 보내는 일을

반복한다 . 특히 전송되는 메시지안에 15,000 개의 To: 가 있어 sendmail 을 정지시키에 되고 서버는 메일 송수신을 거부한다 .

Page 15: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

15Computer Network Lab.

/etc/mail/access

sendmail 서비스 보호 (1)

Page 16: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

16Computer Network Lab.

sendmail 서비스 보호 (2)

Page 17: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

17Computer Network Lab.

sendmail 서비스 보호 (3)

Page 18: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

18Computer Network Lab.

실시간 블랙 리스트 관리 (1)

RealTime Blackhole List 스팸을 전송하는 사람들의 목록 , sendmail 은 동적으로

특정 도메인으로부터 메일을 받을 것인가를 결정 .

Page 19: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

19Computer Network Lab.

실시간 블랙 리스트 관리 (2)

Page 20: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

20Computer Network Lab.

실시간 블랙 리스트 관리 (3)

Page 21: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

21Computer Network Lab.

실시간 블랙 리스트 관리 (4)

Page 22: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

22Computer Network Lab.

RBL 서비스의 활용 /etc/sendmail.mc 파일에 다음을 추가한다 .

- Sendmail Version 8.9 Use FEATURE(rbl) - sendmail 8.10 and above FEATURE(dnsbl) Then, reconfigure and restart the daemon.

실시간 블랙 리스트 관리 (5)

Page 23: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

23Computer Network Lab.

EXPN 과 VRFY 기능억제 (1)

SMTP 명령어중 EXPN(expand) 와 VRFY(verify) 는 사용자의 정보를 외부로 유출할수 있다 .

Page 24: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

24Computer Network Lab.

EXPN 과 VRFY 기능억제 (2)

EXPN(expand) 와 VRFY(verify) 의 억제 sendmail.cf 의 다음 부분을 추가하여 기능억제

# privacy flags O PrivacyOption=authwarnings, noexpn, novrfy

And Then sendmail Restart!!

Page 25: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

25Computer Network Lab.

TCP wrapper 와 SMTP (1)

Daemon프로세서로 수행하지 않고 inetd 의 일부로 사용 (단 , traffic 이 많지 않을 경우 )

1. Sendmail 초기화 스크립트 삭제 /etc/rc.d/rc3.d/S80sendmail or /etc/rc.d/rc5.d/S80sendmail 2. /etc/inetd.conf에 sendmail 메일에 대한 항목 추가 smtp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/sendmail –bD

3. inetd 설정파일 다시 읽도록 한다 . 4. Tcp wrapper 제어 파일인 /etc/hosts.allow, /etc/hosts.deny

파일설정

Page 26: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

26Computer Network Lab.

TCP wrapper 와 SMTP (2)

TCP wrapper 설정예 (1) games.com, toys.com, weapons.com 의 요구만 수용 - /etc/hosts.deny deny:deny - /etc/hosts.allow ALL:LOCAL, games.com, toys.com, weapons.com TCP wrapper 설정예 (2) badpeople.com 과 evilspam.com 에서 오는 요구를 제외하고는

누구나 연결 가능 - /etc/hosts.deny ALL:badpeople.com, evilspam.com - /etc/hosts.allow ALL:ALL

Page 27: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

27Computer Network Lab.

http://www.qmail.org qmail-1.03.tar.gz Qmail 의 특징 - 안전성 - 속도 - 신뢰성 - 쉬운 가상도메인 - ezmlm 을 이용한 이용자가 제어하는 메일링 리스트 .

Qmail 의 설치 (1)

Page 28: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

28Computer Network Lab.

1. source DownLoad qmail-1.03.tar.gz2. tar zxvf qmail-1.03.tar.gz3. 몇 개의 사용자 계정과 그룹 생성4. cd qmail-1.03

5. Make setup check

Qmail 의 설치 (2)

# groupadd nofiles # useradd -g nofiles -d /var/qmail/alias -s /bin/false alias # useradd -g nofiles -d /var/qmail -s /bin/false qmaild# useradd -g nofiles -d /var/qmail -s /bin/false qmaill # useradd -g nofiles -d /var/qmail -s /bin/false qmailp# groupadd qmail # useradd -g qmail -d /var/qmail -s /bin/false qmailq # useradd -g qmail -d /var/qmail -s /bin/false qmailr # useradd -g qmail -d /var/qmail -s /bin/false qmails

Page 29: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

29Computer Network Lab.

6. [root@yskim qmail-1.03]# ./config7. [root@yskim qmail-1.03]# (cd ~alias; touch .qmail-postmaster .

qmail-mailer-daemon .qmail-root)8. [root@yskim qmail-1.03]# chmod 644 ~alias/.qmail*9. Sendmail 삭제

Qmail 의 설치 (3)

# mv /usr/lib/sendmail /usr/lib/sendmail.old

# mv /usr/sbin/sendmail /usr/sbin/sendmail.old

# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail

# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

# killall –9 sendmail

Page 30: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

30Computer Network Lab.

10. /etc/inetd.conf 추가 stmp stream tcp nowait qmaild /var/qmail/bin/tcp-env tcp-env /var/qmail/bin/qmail-smtp

d

11. [root@yskim qmail-1.03]# cp /var/qmail/boot/proc /var/qmail/rc

12. [root@yskim qmail-1.03]# csh –cf ‘/var/qmail/rc &’13. 자동스크립트에 추가

Qmail 의 설치 (4)

Page 31: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

31Computer Network Lab.

Qmail 의 설치 (5)

Page 32: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

32Computer Network Lab.

Qmail 의 설치 (6)

Page 33: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

33Computer Network Lab.

http://www.qmail.org/ http://kldp.org/qmail/ Michael Samuel 의 Qmail 문서화 프로젝트 http://qmail-docs.surfdirect.com.au David Sill 의 LWQ(Life with Qmail) http://Web.InfoAve.Net/~dsill/lwq.html Qmail 에서 RBL을 지원하도록 하기 위한 페이지 http://www.qmail.org/rbl/

Qmail 관련문서들

Page 34: LINUX SECURITY -  메일 보안  -

23 4 22年 月 日 #

34Computer Network Lab.

요 약 중계기능을 막고 계정 해킹을 방지하기 우해 MTA 를

설정함으로써 네트워크와 서버 그리고 사용자들을 보호 할 수 있다 . Sendmail 은 높은 성능의 SMTP서비스를 제공하고 , 현존하는 리눅스 /유닉스 유틸리티와 호환성이 잘 이루어지는 반면에 , Qmail 은 작지만 빠르고 안전하다 .