메일서버등록제(SPF) 인증기능적용안내서 (Ubuntu - qmail) OS Mail Server SPF 적용모듈 (C 언어기반) 작성기준 Ubuntu Desktop bit qmail 1.03 qmail-spf-rc5 patch 2016 년 6 월

Similar documents
메일서버등록제(SPF) 인증기능적용안내서 (CentOS - qmail) OS Mail Server SPF 적용모듈 (C 언어기반) 작성기준 CentOS bit qmail 1.03 qmail-spf-rc5 patch 2016 년 6 월

메일서버등록제(SPF) 인증기능적용안내서 (AIX - sendmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 AIX 5.3 sendmail spf-filter 년 6 월

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i postfix spf-filter 년 6 월

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - qmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i qmail 1.03 spf-filter 년 6 월

목 차 I. 개요 1 1. SPF( 메일서버등록제) 란? 1 2. SPF 를이용한이메일인증절차 1 II. postfix, SPF 인증모듈설치 2 1. postfix 설치여부확인 2 2. libmail-spf-perl 설치 2 3. postfix-policyd-spf-p

메일서버등록제(SPF) 인증기능적용안내서 (SunOS - Sendmail) OS Mail Server SPF 적용모듈 (C 언어기반) 작성기준 SunOS bit sendmail spfmilter

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2003) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2003 Exchange Server 2003 GFI MailEssentials 2010 fo

메일서버등록제(SPF) 인증기능적용안내서 (SunOS - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 SunOS bit Postfix postfix-policydspf-perl 년 6

(

목 차 I. 개요 1 1. SPF( 메일서버등록제) 란? 1 2. SPF 를이용한이메일인증절차 1 II. postfix, SPF 인증모듈설치 2 1. postfix 설치 2 2. Mail::SPF 모듈설치 3 3. postfix-policyd-spf-perl 설치및연동

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - enterprise-linux-2-3.doc

EJRWXFSEKSPJ.hwp

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

PowerPoint 프레젠테이션

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

PowerPoint 프레젠테이션

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

(

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

작성자 : 기술지원부 김 삼 수

무시하고진행합니다. $ sudo rootstock -d precise --seed ubuntu-standard -x en_us.utf-8 -f ubuntu -l ubuntu -p ubuntu -i 2G I: Running on a x86_64 machine I: Cre

목차 1. 시스템구성 개요 정의 목적 환경 준비사항 필수설치프로그램 Sendmail 서버구축을위한준비... -

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

이메일발송포트사용제한 기타OS - Sendmail 사용설명서 OS Mail Server 작성기준 ( 최적화버전) 기타 Sendmail 유사 버전 기타 Unix/ Linux Sendmail 8.10 ~ Sendmail 8.14 Sendmail 8.10버전이상

Install stm32cubemx and st-link utility

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Sendmail ) 설정변경 5 2. 스팸차단테스트 5 Ⅲ. 실시간스팸차단리스트 (RBL) (RBLDNSD 이용 ) 7 1. 시스템환경및프로그램상세내역 8 2.

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

PowerPoint 프레젠테이션

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Sena Technologies, Inc. HelloDevice Super 1.1.0

게시판 스팸 실시간 차단 시스템

PowerPoint 프레젠테이션

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

<31332DB9E9C6AEB7A2C7D8C5B72D3131C0E528BACEB7CF292E687770>

file://\\......\paper\tr2001\tr \spam_relay_test.html

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Windows 8에서 BioStar 1 설치하기

The Pocket Guide to TCP/IP Sockets: C Version

2009년 상반기 사업계획

RedHat Linux Fedora Core 4 + APM 소스컴파일설치 김희균 [ 사전준비 : 리눅스시디, 리눅스설치공간준비와컴퓨터의 IP 주소와넷마스크, 게이트웨이주소기록 1. Linux 시디로부팅을한다. 2. Gra

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt

Network seminar.key

PowerPoint 프레젠테이션

Adobe Flash 취약점 분석 (CVE )

슬라이드 1

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Report Designer V3.0 사용설명서 2장

Microsoft Word - src.doc

/chroot/lib/ /chroot/etc/

목차 1. 시스템구성 개요 정의 목적 환경 준비사항 Oracle Install configuration Xshell 에

28 THE ASIAN JOURNAL OF TEX [2] ko.tex [5]

리눅스 취약점대응방안권고 / KISA 취약점점검팀 영향받는플랫폼 OS, FAQ 추가 개요 미국보안회사 에의해 시스템의 라이브러리 의특정함수에서임의코드를실행할수있는취약점이공개 해당취약점은 CVE 지정, 도메인네임을

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다.

LXR 설치 및 사용법.doc

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

목차 1. 시스템구성 개요 정의 목적 환경 준비사항 필수설치프로그램 APM 서버구축을위한준비

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta

단계

PowerPoint 프레젠테이션

Microsoft PowerPoint 통신 및 압축 명령어.ppt

4 소스로부터 설치하기

chapter4

PowerPoint 프레젠테이션

3) MySQL data 백업백업방법 : dump 파일로저장저장위치 : /backup/mysqldump 백업주기 : 시간별 (/etc/cron.hourly) 또는일별 (/etc/cron.daily) 보관기간 : 7 일백업스크립트 : 아래예제 6-1). 참조 4) 웹데이

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

Webtob( 멀티도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

슬라이드 1

OnTuneV3_Agent_Install

슬라이드 1

고급 프로그래밍 설계

사용자계정관리 1. 사용자계정관리 사용자 (user), 그룹 (group) u 다중사용자시스템 (Multi-User System) - 1 대의시스템을동시에여러사람이접속하여쓸수있게하는시스템 u 사용자 (user) - 시스템관리자 : root (=Super user) -

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

Table of contents 1. 구성도 Maxgauge For MySQL 설치정보... 6 설치파일정보... 6 포트정보... 6 주요디렉토리... 6 소프트웨어기동 / 종료... 7 기동... 7 종료 Maxgauge For MySQ

Microsoft PowerPoint - 03-Development-Environment-2.ppt

Oracle Database 11g R2 Installation Guide for OEL5(x86) Writer : 이경호

Mango220 Android How to compile and Transfer image to Target

chapter1,2.doc

PowerPoint 프레젠테이션

bn2019_2

PowerPoint 프레젠테이션

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

4. 스위치재부팅을실시한다. ( 만약, Save 질문이나오면 'no' 를실시한다.) SWx#reload System configuration has been modified. Save? [yes/no]: no Proceed with reload? [confirm] (

Discrete Mathematics

Apache( 단일도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

Chapter 1

Apache( 멀티도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

제 1402 회리눅스마스터 1 급 1 차 B 형정답


Transcription:

메일서버등록제(SPF) 인증기능적용안내서 (Ubuntu - qmail) OS Mail Server SPF 적용모듈 (C 언어기반) 작성기준 Ubuntu Desktop 9.1 32bit qmail 1.03 qmail-spf-rc5 patch 2016 년 6 월

목 차 I. 개요 1 1. SPF( 메일서버등록제) 란? 1 2. SPF 를이용한이메일인증절차 1 II. qmail, SPF 인증모듈설치 2 1. sendmail 제거 2 2. gcc 설치 3 3. ucspi-tcp 설치 4 4. daemontools 설치 6 5. qmail 설치및 SPF 패치 9 III. SPF 적용여부확인및차단 16 1. SPF 판별을위한판정값설정 16 2. 차단확인 17

I. 개요 1. SPF( 메일서버등록제) 란? 메일서버등록제 (SPF: Sender Policy Framework) 는메일서버정보를사전에 DNS 에공개등록함으로써수신자로하여금이메일에표시된발송자정보가 실제메일서버의정보와일치하는지를확인할수있도록하는인증기술이다. 대다수스팸발송자가자신의신원을감추기위하여발송자주소나전송경로를 허위로표기하거나변경하는경우가많다는데착안되었다. SPF를 DNS에설정하는방법은 http://www.kisarbl.or.kr > White Domain 등록작성도우미메뉴를참고한다. > SPF SPF를이용하여스팸메일을차단하기위해서는메일서버에 적용되어있어야한다. SPF 인증기능이 Ubuntu 환경에서기본적으로설치된메일서버에는 SPF 인증기능이적용되어 있지않으므로 SPF 모듈설치및패치를해야한다. 본안내서는메일수신 서버에 SPF 인증기능을쉽게적용하는방법을소개한다. 2. SPF 를이용한이메일인증절차 발신자 : 자신의메일서버정보와정책을나타내는 SPF 레코드를해당 DNS에등록 수신자 : 이메일수신시발송자의 DNS에등록된 SPF 레코드를확인하여 해당이메일에표시된발송IP와대조하고그결과값에따라수신여부를결정 ( 메일서버나스팸차단솔루션에 SPF 인증기능이설치되어있어야함) [ 그림 1] SPF 인증흐름도 - 1 -

II. qmail, SPF 인증모듈설치 본안내서는운영체제및메일서버를처음구축하는것을기준으로작성하였다. 설치과정에서사용하는모든명령어는 root 권한으로실행해야한다. 1. sendmail 제거 Ubuntu 에는 postfix 가기본적으로설치되어있다. qmail 을설치하면 tcp/25번 포트충돌이발생하므로제거하도록한다. 아래는 telnet 명령어를이용하여 tcp/25번포트에접속하여메일전송 프로그램(MTA: Mail Transfer Agent) 이동작하고있는상태를확인하는 것으로써 postfix 가동작하고있음을알수있다. root@spf:/etc/init.d# telnet 0 25 ( 메일서버 25 번포트접속) Trying 0.0.0.0... Connected to 0. Escape character is '^]'. 220 spf.kisa.or.kr ESMTP Sendmail 8.14.3/8.14.3/Debian-9ubuntu1; Sun, 4 Jul 2010 15:04:49 +0900; (No UCE/UBE) logging access from: localhost(ok)-localhost [127.0.0.1] quit ( 접속종료) 221 2.0.0 spf.kisa.or.kr closing connection 아래와같이패키지관리도구인 apt-get을이용하여기존에설치된 postfix 를삭제한다. root@spf:/etc/init.d# apt-get autoremove postfix - 2 -

2. gcc 설치 2.1 gcc 설치여부확인 qmail 의기본패키지에는 SPF 인증기능이포함되어있지않으므로 SPF 라이브러리를통합하여 qmail 을구성해야한다. qmail 설치시소스코드를 컴파일해서설치해야하기때문에아래와같이 gcc 설치여부를확인한다. [root@spf ~]# gcc --version gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1 Copyright (C) 2009 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.2 설치 gcc가설치되어있지않다면 apt-get 을이용하여아래와같이설치한다. root@spf:~# apt-get install gcc 패키지목록을읽는중입니다... 완료 의존성트리를만드는중입니다 상태정보를읽는중입니다... 완료 제안하는패키지 : ( 데이터베이스읽는중... 현재 133910 개의파일과디렉토리가설치되어있습니다.) gcc 패키지를푸는중입니다 (.../gcc_4%3a4.4.1-1ubuntu2_i386.deb 에서)... man-db 에대한트리거를처리하는중입니다... gcc (4:4.4.1-1ubuntu2) 설정하는중입니다... - 3 -

3. ucspi-tcp 설치 qmail 은단독데몬프로세스로동작하지않기때문에 데몬형태의포트서비스프로그램을필요로한다. ucpsi-tcp 와같은네트워크 ucpsi-tcp 는유닉스계열클라이언트 / 서버프로그램으로서 tcpserver 와 tcpclient 프로그램을 생성한다. tcpserver 는동시접속제한및프로세스와메모리를보호하는역할을하게된다. 3.1 다운로드및압축해제 아래와같이 wget 명령어를이용하여 ucspi-tcp-0.88 패키지를다운로드한후 압축을해제한다. [root@spf ~]# wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz Resolving cr.yp.to... 131.193.36.21 Connecting to cr.yp.to 131.193.36.21 :80... connected. HTTP request sent, awaiting response... 200 OK Length: 53019 (52K) [application/x-gzip] Saving to: `ucspi-tcp-0.88.tar.gz' ucspi-tcp-0.88.tar.gz' saved [53019/53019] [root@spf ~]# tar xzf ucspi-tcp-0.88.tar.gz 압축해제후소스패키지를설치하면 라이브러리등이설치된다. /usr/local 디렉토리에실행파일및 - 4 -

3.2 컴파일및설치 설치된 glibc 버전이 2.3.1 이상이면컴파일과정에서에러가발생하므로 패키지에포함된 error.h 의파일에 #include <errno.h> 를추가한다. [root@spf ~]# cd ucspi-tcp-0.88 [root@spf ucspi-tcp-0.88]# vi error.h #include <errno.h> #ifndef ERROR_H #define ERROR_H :wq! 주의) #include <errno.h> 항목이추가가되지않았을경우 /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section.tbss mismatches non-tls reference in tcpserver.o 과같은에러가발생한다. 아래와같이 make, make setup check 을입력하여설치를완료한다. [root@spf ucspi-tcp-0.88]# make ( cat warn-auto.sh; \ echo 'main="$1"; shift'; \ echo exec "`head -1 conf-ld`" \... ( 중략)./auto-str auto_home `head -1 conf-home` > auto_home.c./compile auto_home.c./load install hier.o auto_home.o unix.a byte.a./compile instcheck.c./load instcheck hier.o auto_home.o unix.a byte.a [root@spf ucspi-tcp-0.88]# make setup check./install./instcheck... ( 중략) /usr/local/bin 디렉토리에프로그램이설치된다. - 5 -

4. daemontools 설치 daemontools는 Unix 서비스를감시하는프로그램으로서네트워크포트데몬으로동작하는서비스가죽거나반응이없으면해당데몬을자동으로재시작하는기능을제공하는도구이다. 4.1 설치디렉토리생성 daemontools를설치하기위해서아래와같이 생성하고권한을부여한다. /package 디렉토리를 [root@spf ~]# mkdir /package [root@spf ~]# chmod 1775 /package/ [root@spf ~]# cd /package/ 주의) daemontools 는임의의네트워크데몬을감시할수있는프로그램이므로, 보안을위해서디렉토리에 t 퍼미션(sticky bit) 을부여해야한다. - 6 -

4.2 다운로드및압축해제 아래와같이 daemontools-0.76 을다운로드한후압축을해제한다. [root@spf /package]# wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz http://cr.yp.to/daemontools/daemontools-0.76.tar.gz Resolving cr.yp.to... 131.193.36.21 daemontools-0.76.tar.gz' saved [36975/36975] [root@spf /package]# tar xzf daemontools/daemontools-0.76.tar.gz 4.3 컴파일및설치 설치된 glibc 버전이 2.3.1 이상이면컴파일과정에서에러가발생하므로 패키지에포함된 error.h 의파일에 #include <errno.h> 를추가한다. [root@spf package]# cd admin/daemontools-0.76/src/ [root@spf src]# vi error.h #include <errno.h> #ifndef ERROR_H #define ERROR_H :wq! 아래와같이디렉토리이동후설치스크립트를실행한다. [root@spf admin]# cd /package/admin/daemontools-0.76/ [root@spf daemontools-0.76]# package/install Linking./src/* into./compile... Creating /service... Adding svscanboot to inittab... init should start svscan now. - 7 -

Ubuntu 에서는부팅이완료된후 rc.local 스크립트를통하여 daemontools 유틸리티 들이실행된다. 따라서아래와같이스크립트를수정한후 실행권한을부여한다. [root@spf admin]# vi /etc/rc.local csh -cf /command/svscanboot & exit 0 [root@spf admin]# chmod 755 /etc/rc.local 스크립트실행시 csh(c shell) 이필요하다. 기본설치되어있지않으므로 아래와같이설치한다. root@spf:~# apt-get csh install 패키지목록을읽는중입니다... 완료 의존성트리를만드는중입니다 상태정보를읽는중입니다... 완료 Registering documents with scrollkeeper... csh (20070713-2ubuntu1) 설정하는중입니다... update-alternatives: using /bin/bsd-csh to provide /bin/csh (csh) in auto mode. qmail 을설치하기전에 /etc/rc.local 에등록된 daemontools 시작스크립트 의 오류사항을점검하기위하여시스템을재시작한다. [root@spf admin]# reboot - 8 -

5. qmail 설치및 SPF 패치 5.1 qmail 다운로드 qmail 원본소스를아래와같이 wget 명령어를이용하여다운로드한다. 칵테일, knetqmail 등의사용자패치는미적용하였다. [root@spf ~]# wget http://cr.yp.to/software/qmail-1.03.tar.gz http://cr.yp.to/software/qmail-1.03.tar.gz Resolving cr.yp.to... 131.193.36.21 Connecting to cr.yp.to 131.193.36.21 :80... connected. HTTP request sent, awaiting response... 200 OK Saving to: `qmail-1.03.tar.gz' qmail-1.03.tar.gz' saved [220668/220668] 5.2 qmail-spf 패치파일다운로드 아래와같이 wget 명령어를이용하여 qmail-spf-rc5 패치파일을다운로드한다. [root@spf ~]# wget http://www.saout.de/misc/spf/qmail-spf-rc5.patch http://www.saout.de/misc/spf/qmail-spf-rc5.patch Resolving www.saout.de... 78.46.99.52, 2001:6f8:13b1:3::2:1 Saving to: `qmail-spf-rc5.patch' qmail-spf-rc5.patch' saved [63582/63582] - 9 -

5.3 qmail-spf 패치 아래와같이 qmail patch 명령어를실행한다. 소스파일을압축해제한후소스디렉토리로이동하여 patch 는원본소스와수정된소스를비교(diff) 해서패치파일을적용하는스크립트이다. [root@spf ~]# tar xzf qmail-1.03.tar.gz [root@spf ~]# cd qmail-1.03 [root@spf qmail-1.03]# patch -p1 <../qmail-spf-rc5.patch patching file byte_cspn.c patching file byte.h patching file byte_rcspn.c patching file TARGETS patching file tcp-env.c 주의) patch 옵션과디렉토리가다른경우에는패치과정에서오류가발생한다. 5.4 qmail 디렉토리및계정/ 그룹생성 qmail 을컴파일하기전에아래와같이사용자계정과그룹을생성한다. [root@spf ~]# mkdir /var/qmail [root@spf ~]# groupadd nofiles [root@spf ~]# useradd -g nofiles -d /var/qmail/alias alias [root@spf ~]# useradd -g nofiles -d /var/qmail qmaild [root@spf ~]# useradd -g nofiles -d /var/qmail qmaill [root@spf ~]# useradd -g nofiles -d /var/qmail qmailp [root@spf ~]# groupadd qmail [root@spf ~]# useradd -g qmail -d /var/qmail qmailq [root@spf ~]# useradd -g qmail -d /var/qmail qmailr [root@spf ~]# useradd -g qmail -d /var/qmail qmails 주의) useradd 과정에서 useradd: 경고: 홈디렉토리가이미존재합니다. skel 디렉토리에서파일을복사하지않습니다 라고출력되는부분은무시한다. - 10 -

5.5 컴파일및설치 설치된 glibc 버전이 2.3.1 이상이면컴파일과정에서에러가발생하므로 패키지에포함된 error.h 의파일에 #include <errno.h> 를추가한다. [root@spf ~]# cd qmail-1.03 [root@spf qmail-1.03]# vi error.h #include <errno.h> #ifndef ERROR_H #define ERROR_H :wq! 아래와같이 make, make setup check,./config-fast 도메인명 을 입력하여컴파일/ 설치를한다. 도메인명은 FQDN(Fully Qualified Domain Name 의약자) 을입력한다. [root@spf qmail-1.03]# make ( cat warn-auto.sh; \ echo CC=\'`head -1 conf-cc`\'; \ now.o dns.o datetime.a stralloc.a alloc.a str.a substdio.a \ case.a error.a fs.a `cat dns.lib` `cat socket.lib` [root@spf qmail-1.03]# make setup check [root@spf qmail-1.03]#./config-fast mail.testdomain.com /var/qmail 디렉토리에실행/ 설정파일들이설치된다. - 11 -

5.6 구동스크립트디렉토리생성 qmail 구동스크립트를작성하기위하여아래와같이디렉토리를생성한후 t 퍼미션(sticky bit) 을부여한다. [root@spf qmail-1.03]# mkdir -p /var/qmail/supervise/qmail-send/log [root@spf qmail-1.03]# mkdir -p /var/qmail/supervise/qmail-smtpd/log [root@spf qmail-1.03]# chmod +t /var/qmail/supervise/qmail-send [root@spf qmail-1.03]# chmod +t /var/qmail/supervise/qmail-smtpd 5.7 구동스크립트작성 각 qmail 구동스크립트의작성방법과의미는다음과같다. o /var/qmail/rc : qmail의기본구동스크립트 [root@spf qmail]# cd /var/qmail/ [root@spf qmail]# vi rc #!/bin/sh exec env - PATH="/var/qmail/bin:$PATH" qmail-start./maildir/ [root@spf qmail]# chmod 755 rc o /var/qmail/supervise/qmail-send/run : 메일발송을담당하는스크립트 [root@spf qmail]# cd /var/qmail/supervise/qmail-send/ [root@spf qmail-send]# vi run #!/bin/sh exec /var/qmail/rc [root@spf qmail-send]# chmod 755 run - 12 -

o /var/qmail/supervise/qmail-send/log/run : 메일발송시로그를기록하는스크립트 [root@spf qmail]# cd /var/qmail/supervise/qmail-send/log/ [root@spf log]# vi run #!/bin/sh exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail [root@spf log]# chmod 755 run o /var/qmail/supervise/qmail-smtpd/run : 메일수신을위한서비스를실행하는스크립트 [root@spf qmail]# cd /var/qmail/supervise/qmail-smtp/ [root@spf qmail-smtp]# vi run #!/bin/sh Q_UID=`id -u qmaild` Q_GID=`id -g qmaild` exec /usr/local/bin/softlimit -m 2000000 \ /usr/local/bin/tcpserver -vhrl 0 -x /etc/tcp.smtp.cdb \ -u $Q_UID -g $Q_GID 0 25 /var/qmail/bin/qmail-smtpd 2>&1 [root@spf qmail-smtp]# chmod 755 run o /var/qmail/supervise/qmail-smtpd/log/run : 메일수신시로그를기록하는스크립트 [root@spf qmail]# cd /var/qmail/supervise/qmail-smtp/log [root@spf log]# vi run #!/bin/sh exec /usr/local/bin/setuidgid qmaill \ /usr/local/bin/multilog t /var/log/qmail/smtpd [root@spf log]# chmod 755 run - 13 -

5.8 로그디렉토리생성 로그를기록하기위해서아래와같이디렉토리를생성하고접근권한을부여한다. [root@spf qmail]# mkdir -p /var/log/qmail/smtpd [root@spf qmail]# chown -R qmaill /var/log/qmail [root@spf qmail]# ln -s /var/qmail/supervise/qmail-send \ /var/qmail/supervise/qmail-smtpd /service 5.9 반송메일수신계정생성 반송메일수신을위해서 root, postmaster 계정으로수신되는메일을 관리자계정으로포워딩을할수있도록아래와같이설정을한다. 예시의주소 admin@example.com 계정대신에실제메일서버관리자계정을입력한다. [root@spf qmail]# echo admin@example.com > /var/qmail/alias/.qmail-root [root@spf qmail]# echo admin@example.com > /var/qmail/alias/.qmail-postmaster 5.10 릴레이허용을위한 IP 설정 아래와같이 localhost(127.0.0.1) 와메일서버 IP의릴레이를허용한다. tcprules 명령어를이용하여 DB 화한파일을생성한다. [root@spf qmail]# vi /etc/tcp.smtp 127.0.0.1:allow,RELAYCLIENT="" 192.168.1.1:allow,RELAYCLIENT="" [root@spf qmail]# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp - 14 -

5.11 서비스구동스크립트다운로드 아래와같이 wget 명령어를이용하여 qmail 서비스구동스크립트를 다운로드한후스크립트의이름을변경하고실행권한을부여한다. [root@spf qmail]# cd /etc/init.d [root@spf init.d]# wget http://lifewithqmail.org/qmailctl-script-dt70 http://lifewithqmail.org/qmailctl-script-dt70 `qmailctl-script-dt70' saved [3053/3053] [root@spf init.d]# mv qmailctl-script-dt70 qmail [root@spf init.d]# chmod 755 qmail 5.12 qmail 시작 아래와같이 qmail 구동스크립트를실행한후 tcp/25 번포트에접속하여 정상적으로 qmail 이실행되고있는지확인한다. [root@spf ~]# /etc/init.d/qmail start Starting qmail [root@spf ~]# telnet 0 25 Escape character is '^]'. 220 kisarbl.or.kr ESMTP quit ( 접속종료) (qmail 실행) (25 번포트접속) - 15 -

III. SPF 1. SPF 적용여부확인및차단 판별을위한판정값설정 qmail 에적용되는차단레벨을설정하기위해서 /var/qmail/control spfbehavior 파일에서레벨을지정할수있다. 디렉토리의 아래는 SPF fail 시메일수신을거부(reject) 하는값인 3 을적용한예시이다. [root@spf qmail]# cd /var/qmail/contorl [root@spf control]# vi spfbehavior 3 SPF 판정값은 0~6 까지지정할수있으며각각의의미는아래와같다. 상위판정값은하위판정값을포함한다. 즉, 판정값 6 은하위 0~5 판정값을 포함한다. 판정값 의미 0 SPF 확인하지않음, SPF-Received 헤더추가하지않음 1 SPF-Recevied 헤더만추가, 메일거부기능사용하지않음 2 DNS 서버의다운으로인해조회가되지않는경우 (451 SPF lookup failure 과같이응답을하면서거부) 3 fail 판정시거부(reject) 4 Soft-fail 판정시거부(reject) 5 neutral 판정시거부(reject) 6 pass 이외의모든상태거부(reject) 주의) 값을변경한이후에는 qmail 을재시작한다. Temperr - 16 -

2. 차단확인 메일서버에 SPF 적용이완료되었으면, 아래와같이 telnet 명령어를 이용하여 SPF 인증기능이적용된메일서버로접속해본다. 메일발송 IP와 SPF 레코드의 IP가일치하지않으면메일수신주소를입력하는 단계에서 SPF 인증이실패하여메일전송이차단되는것을확인할수있다. 550 See http://spf.pobox.com/why.html?sender=kisa%40kisarbl.or.kr&ip=9.8.7.6 &receiver=0 (#5.7.1) 와같은오류코드가나타나며표시되는 URL에서 상세내용을확인할수있다. [root@ ~]# Trying 1.2.3.4... telnet 메일서버IP 25 ( 공인 IP 만가능하며, 127.0.0.1 은확인불가) Connected to your (1.2.3.4). 220 mail.yourdomian.com ESMTP Escape character is '^]'. ehlo test.com 250 kisarbl.or.kr mail from: test@kisarbl.or.kr 250 ok rcpt to: test@yourdomain.com ( 메일발신주소) ( 메일수신주소) 550 See http://spf.pobox.com/why.html?sender=kisa%40kisarbl.or.kr&ip=9.8.7.6 &receiver=0 (#5.7.1) quit ( 접속종료) ( 차단되었음을확인할수있음) - 17 -

2.1 reject 사유페이지확인 http://spf.pobox.com/why.html?sender=kisa%40kisarbl.or.kr&ip=x.x.x.x&receiver=0 페이지에서거부 (reject) 사유와해결방법을확인할수있다. [ 그림 2] SPF fail 시차단확인페이지 - 18 -