linux security - 메일 보안 -
Post on 25-Feb-2016
237 Views
Preview:
DESCRIPTION
TRANSCRIPT
23 4 22年 月 日 # 1Computer Network Lab.
네트워크 실험실 김 윤 수
LINUX SECURITY- 메일 보안 -
23 4 22年 月 日 #
2Computer Network Lab.
SMTP 서버와 클라이언트 Sendmail 보안 기초 Qmail 설치 요약
목 차
23 4 22年 月 日 #
3Computer Network Lab.
SMTP 의 메일 처리 과정 - 들어오는 메시지 수신 - 메시지 주소 확인 - 로컬 주소이면 메시지 저장 - 원격 주소이면 메시지 전달
SMTP 서버와 클라이언트
23 4 22年 月 日 #
4Computer Network Lab.
전자메일의 구조
23 4 22年 月 日 #
5Computer Network Lab.
전자메일 헤더From hskim@daelimrnd.co.kr 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 <yskim@bomun.kaist.ac.kr>; 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: <000801bfe15a$56e94e60$103c1eca@daelimrnd.co.kr>
23 4 22年 月 日 #
6Computer Network Lab.
SMTP 명령어 (1)명 령 어 목 적
DATA 메시지 본문을 입력하도록 한다 . DATA 명령 다음줄부터 입력하고 마지막 줄에 점 (.) 을 입력하면 메시지 입력이 끝난다 .
EXPAND 사용자의 메일 계정을 출력하고 그룹 계정일때는 그룹 멤버의 모든 메일 계정을 출력한다 .
HELO(HELLO) SMTP 세션을 초기화 하고 식별할 수 있는 데이터를 교환한다 .HELP 도움말을 출력한다 .MAIL 메일 작업의 초기화QUIT 현재세션을 종료하고 연결을 끊는다 .RCPT ( 수신자 ) 수신자를 명시한다 .RESET 현재 작업을 중지한다 .VRFY 사용자명을 확인
23 4 22年 月 日 #
7Computer Network Lab.
SMTP 명령어 (2)
23 4 22年 月 日 #
8Computer Network Lab.
SMTP 의 보안 외부 침입으로부터 서버를 보호하는 일 . 외부
공격자가 승인되지 않은 접근을 할 수 없도록 서버를 강화
외부 사용자가 메일 서버를 통해 스팸 (spam) 메일을 보내거나 위조된 메일을 보내는 것 같은 잘못된 사용으로 부터 SMTP 보호
23 4 22年 月 日 #
9Computer Network Lab.
sendmail 보안기초 (1)
sendmail 의 version
23 4 22年 月 日 #
10Computer Network Lab.
sendmail 을 목표로 공격하는 원인 - sendmail 은 공개적으로 이용 가능한 서비스이므로
누구나 연결해서 사용 할 수 있다 .- Sendmail 은 루트권한으로 수행되기때문에 루트
권한을 획득하기 쉽다 .- 환경설정이 어려워 설정오류를 기대하고 공격
sendmail 보안 기초 (2)
23 4 22年 月 日 #
11Computer Network Lab.
98 년 3 사분기 보고 sendmail 자체에 영향을 미치는 것이 아니라 sendmail
이 메일을 전달하는 클라이언트에게 영향을 미친다 . 즉 sendmail 은 공격대상이 아니라 공격에 이용되는 도구 .
MIME 은 그림이나 소리 , 특정 형식의 텍스트 등 다양한 종류의 데이터를 지원하기 위한 방법으로 , MIME헤더에는 어떤 종류의 데이터가 인코딩 되어있는지에대한 정보저장
MIME 버퍼 오버플로 버그 (1)
23 4 22年 月 日 #
12Computer Network Lab.
CERT 권고안 (CERT 권고안 CA 98.10, 1998 년 8 월 11일 ) – sendmail 8.9.1 -
“ 공격자는 정교하게 제작된 메일을 보냄으로써 공격자가
선택한 코드가 실행될 수 있도록 하고 , 경우에 따라서는 메일 클라이언트를 망가뜨릴 수 도 있다 . 또한 , 운영체제에 따라서 사용자의 권한을 가지고 수행되기 때문에 루트 같은 관리자 계정으로 악의적으로 제작된 메일을 읽게 된다면 시스템에 대한 권한을 얻을 수도 있다 .”
MIME 버퍼 오버플로 버그 (2)
23 4 22年 月 日 #
13Computer Network Lab.
패스워드 파일 / 루트 접근 sendmail 8.8.4 에서는 sendmail 이 배달되지 않은
메시지를 /var/tmp/dead.letter 파일끝에 저장한다는 사실과 링크를 이용하여 내부 사용자는 루트 권한을 얻을 수가 있었다 .
/var/tmp/dead.letter /etc/passwd 메시지내용은 사용자계정을 기록하고 도착할 수
없는 메시지를 보내면 새로운 계정기록
23 4 22年 月 日 #
14Computer Network Lab.
sendmail 헤더 파싱 DoS 공격
sendmail 헤더 파싱 코드의 버그에 초점 많은수의 “ To:” 헤더를 가진 메시지를 생성함으로써
크래커들은 서버를 정지시킬 수 있는데 sendmail 8.9.2 와 그 이전 버전에 영향을 미쳤다 .
P.379 잘레브스키의 테스트 코드 서버와 연결후에 사용자에게 전자메일을 보내는 일을
반복한다 . 특히 전송되는 메시지안에 15,000 개의 To: 가 있어 sendmail 을 정지시키에 되고 서버는 메일 송수신을 거부한다 .
23 4 22年 月 日 #
15Computer Network Lab.
/etc/mail/access
sendmail 서비스 보호 (1)
23 4 22年 月 日 #
16Computer Network Lab.
sendmail 서비스 보호 (2)
23 4 22年 月 日 #
17Computer Network Lab.
sendmail 서비스 보호 (3)
23 4 22年 月 日 #
18Computer Network Lab.
실시간 블랙 리스트 관리 (1)
RealTime Blackhole List 스팸을 전송하는 사람들의 목록 , sendmail 은 동적으로
특정 도메인으로부터 메일을 받을 것인가를 결정 .
23 4 22年 月 日 #
19Computer Network Lab.
실시간 블랙 리스트 관리 (2)
23 4 22年 月 日 #
20Computer Network Lab.
실시간 블랙 리스트 관리 (3)
23 4 22年 月 日 #
21Computer Network Lab.
실시간 블랙 리스트 관리 (4)
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)
23 4 22年 月 日 #
23Computer Network Lab.
EXPN 과 VRFY 기능억제 (1)
SMTP 명령어중 EXPN(expand) 와 VRFY(verify) 는 사용자의 정보를 외부로 유출할수 있다 .
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!!
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
파일설정
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
23 4 22年 月 日 #
27Computer Network Lab.
http://www.qmail.org qmail-1.03.tar.gz Qmail 의 특징 - 안전성 - 속도 - 신뢰성 - 쉬운 가상도메인 - ezmlm 을 이용한 이용자가 제어하는 메일링 리스트 .
Qmail 의 설치 (1)
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
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
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)
23 4 22年 月 日 #
31Computer Network Lab.
Qmail 의 설치 (5)
23 4 22年 月 日 #
32Computer Network Lab.
Qmail 의 설치 (6)
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 관련문서들
23 4 22年 月 日 #
34Computer Network Lab.
요 약 중계기능을 막고 계정 해킹을 방지하기 우해 MTA 를
설정함으로써 네트워크와 서버 그리고 사용자들을 보호 할 수 있다 . Sendmail 은 높은 성능의 SMTP서비스를 제공하고 , 현존하는 리눅스 /유닉스 유틸리티와 호환성이 잘 이루어지는 반면에 , Qmail 은 작지만 빠르고 안전하다 .
top related