서버 설정 · 4 min read · Nov 13, 2025

우분투 대퍼, 메일스캐너, 스팸어쌔신, 레이저, 피조르, DCC 및 클램AV를 이용한 포스트픽스 스팸 필터

소개

이 문서는 여기에서 찾을 수 있는 HOWTO의 유사한 버전입니다: http://www200.pair.com/mecham/spam/spamfilter20050628.html. 이 HOWTO를 보고 있다면, 이메일 서버, DNS, TCP/IP, 방화벽 및 일반적으로 리눅스에 대한 어느 정도의 경험이 있다고 가정합니다.

1 우분투 서버 설정하기

우분투 서버 설정에 대한 자세한 내용은 이미 온라인에 있는 문서를 참조하십시오. HowToForge에는 매우 자세한 몇 가지 HowTo가 있습니다. 그러나 여기에는 서버 설정 시 다른 HOWTO와 다를 수 있는 몇 가지 설치 구성도 설명되어 있습니다.

NOTE: 우분투는 기본적으로 setuid 시스템으로 설치됩니다. 이는 루트 계정이 비활성화되어 있으며 모든 명령을 루트로 실행하기 위해 'sudo'를 앞에 붙여야 함을 의미합니다. 이를 우회하는 방법은 'sudo su -'를 실행하는 것이며, 그러면 루트로 bash 세션에 들어가게 되어 명령 앞에 'sudo'를 입력할 필요가 없습니다. 이 문서의 나머지 부분에서는 이를 수행했으며 루트로 bash 세션을 실행하고 있다고 가정하므로 sudo 명령은 제공되지 않습니다. 이야기의 도덕은, SSH 또는 콘솔을 통해 우분투에 로그인할 때 시스템 파일을 편집하거나 디렉토리를 이동/생성하거나 소프트웨어 및 서비스를 설치/제거하기 전에 'sudo su -'를 실행하는 것을 기억하십시오.

1.1 파티션

이렇게 드라이브를 파티셔닝하는 것은 필수 사항은 아니지만, /var 디렉토리에서 문제가 발생할 경우 서버가 완전히 공간이 부족해지는 것을 방지할 수 있습니다. 또한, 이렇게 드라이브를 파티셔닝하면 MailScannerMRTG를 사용하여 /var, /var/log 및 /var/spool을 별도로 볼 수 있는 추가 그래프를 생성할 수 있습니다. MailScannerMRTG는 디렉토리의 드라이브 공간을 확인하지 않으며, 파티션별로 크기를 계산할 수 있습니다.

내 파티션 테이블의 예:
/boot       50MB        부팅 파티션      EXT3 (PRIMARY)
Swap        2GB     스왑 파티션 (크기는 메모리에 따라 다르며, 메모리의 두 배면 괜찮음) (PRIMARY)
/       2GB     루트 파티션      EXT3 (LOGICAL)
/var        1GB     변수 데이터 파티션  EXT3 (LOGICAL)
/var/log    3GB     변수 데이터 파티션  EXT3 (LOGICAL)
/var/spool  2GB     변수 데이터 파티션 스풀   EXT3 (LOGICAL)
/usr        4GB     사용자 설치 프로그램     EXT3 (LOGICAL)
/usr/local  2GB     사용자 설치 프로그램     EXT3 (LOGICAL)
/home       ANY     홈 디렉토리 (여분의 공간을 두기에 좋은 장소, 공간이 부족하면 재파티셔닝할 수 있음)    EXT3 (LOGICAL)

1.2 네트워크 설정 확인

시스템이 유효한 정적 IP로 설정되어 있고, 올바른 DNS 서버가 /etc/resolv.conf에 있으며, 서버가 /etc/hosts 파일에 식별되어 있는지 확인해야 합니다.

vi /etc/network/interfaces

네트워크 인터페이스 파일은 다음과 비슷해야 합니다:

auto lo eth0
iface lo inet loopback
# 기본 네트워크 인터페이스
iface eth0 inet static
        address  192.168.1.100
        netmask  255.255.255.0
        network  192.168.1.0
        broadcast 192.168.1.255
        gateway  192.168.1.1

네트워크 서비스를 재시작하여 이러한 변경 사항을 적용합니다:

/etc/init.d/networking restart

DNS 서버를 추가하기 위해 resolv.conf 파일을 편집합니다:

vi /etc/resolv.conf

도메인 이름이 resolv.conf의 맨 위에 있어야 하며, 다음과 비슷해야 합니다:

search example.com
nameserver 192.168.0.1
nameserver 192.168.0.2
vi /etc/hosts

파일의 맨 위는 다음과 비슷해야 합니다:

127.0.0.1 localhost.localdomain localhost
192.168.0.100 sfp.example.com sfp

여기에서 스팸 필터가 알아야 할 다른 호스트를 추가할 수 있습니다. 내부 메일 서버를 여기에 추가하십시오. 목록의 맨 아래에 다른 항목을 추가하면 됩니다.

1.3 APT 및 기타 조정

APT는 universe 및 multiverse 저장소에서 검색하도록 설정해야 합니다. 현재 /etc/apt/sources.list를 백업합니다:

cp /etc/apt/sources.list /etc/apt/sources.list.default

다음 sources.list 파일로 교체합니다:

vi /etc/apt/sources.list
deb http://us.archive.ubuntu.com/ubuntu dapper main restricted
deb-src http://us.archive.ubuntu.com/ubuntu dapper main restricted
deb http://us.archive.ubuntu.com/ubuntu dapper-updates main restricted
deb-src http://us.archive.ubuntu.com/ubuntu dapper-updates main restricted
deb http://us.archive.ubuntu.com/ubuntu dapper universe multiverse
deb-src http://us.archive.ubuntu.com/ubuntu dapper universe multiverse
deb http://security.ubuntu.com/ubuntu dapper-security main restricted
deb-src http://security.ubuntu.com/ubuntu dapper-security main restricted
deb http://security.ubuntu.com/ubuntu dapper-security universe multiverse
deb-src http://security.ubuntu.com/ubuntu dapper-security universe multiverse

APT 캐시를 업데이트/새로 고치고 일부 소프트웨어를 설치해야 합니다. 캐시를 업데이트하려면 다음을 실행합니다:

apt-get update

참고: 이 시점에서 커널 이미지를 올바른 것으로 변경하는 것이 좋습니다. 대부분 ‘linux-image-i686’이 필요할 것입니다. 그것이 무엇을 의미하는지 모른다면 찾아보십시오. apt-get upgrade를 실행하고 발생할 수 있는 오류나 문제를 해결하는 데 잠시 시간을 가지십시오. 우리는 미래에 문제를 일으킬 수 있는 모든 것을 제거하고자 합니다. 모든 것이 준비되면 재부팅하고 빠른 dmesg | less를 실행하는 것을 기억하십시오. 이는 큰 도움이 될 수 있습니다.

apt-get install ssh

ssh가 설치되면 PuTTY를 사용하여 리눅스 또는 윈도우 데스크탑에서 서버에 연결해야 합니다. 이렇게 하면 나머지 HOWTO를 완료하는 데 더 쉬워질 것입니다. 데스크탑에서 터미널로 복사/붙여넣기를 할 수 있습니다. 그러니 계속해서 이 작업을 ssh로 진행하십시오.

저는 일반적으로 BIOS 시계를 지역 시간으로 설정한 다음 다음을 실행하여 시계를 동기화합니다.

apt-get install ntpdate  

hwclock --systohc

이제 필요한 대부분의 소프트웨어를 설치합니다. 설치 목록을 4개의 APT 설치 실행으로 나누었습니다. 한 번에 5-15개 설치하는 것이 신중해 보이며, 이는 여러분에게 달려 있습니다:

apt-get install libc6-dev dpkg-dev db4.3-util libdb4.3-dev vim lynx bzip2 unzip perl-doc libwww-perl ntp-simple  
  
apt-get install zlib1g-dev zip libdbi-perl libconvert-binhex-perl gcc make autoconf automake libtool libmail-spf-query-perl rblcheck libnet-ident-perl  
  
apt-get install flex bison libcompress-zlib-perl pax libberkeleydb-perl ncftp unzoo arj lzop nomarch arc zoo  
  
apt-get install postfix postfix-pcre postfix-mysql postfix-ldap cabextract lha unrar razor pyzor spamassassin

Debconf에서 Postfix에 대한 구성 시 NO CONFIGURATION을 선택하십시오.

unarj를 설치합니다:

wget http://archive.ubuntu.com/ubuntu/pool/universe/a/arj/unarj_3.10.21-2_all.deb  
  
dpkg -i unarj_3.10.21-2_all.deb

이제 일부 프로그램을 제거해야 합니다. PCMCIA 또는 프린터 지원이 필요하지 않기를 바랍니다. 이 서버는 다이얼업 지원도 필요하지 않습니다. 모든 프로그램이 설치되어 있지는 않을 수 있습니다.

다음 소프트웨어를 제거합니다 (모두 한 줄로):

apt-get remove ipchains lpr nfs-common portmap pidentd pcmcia-cs pcmciautils pppoe pppoeconf ppp pppconfig uw-imapd qpopper mailagent

1.6 서비스 정리

일부 서비스는 데몬을 제거한 후에도 여전히 남아 있을 수 있습니다. 먼저 inet.d를 백업해야 합니다:

cp -R /etc/init.d /etc/init.d.backup

이제 필요하지 않은 모든 서비스를 중지할 수 있습니다:

/etc/init.d/lpd stop  
update-rc.d -f lpd remove  
  
/etc/init.d/nfs-common stop  
update-rc.d -f nfs-common remove  
  
/etc/init.d/portmap stop  
update-rc.d -f portmap remove  
  
/etc/init.d/pcmcia stop  
update-rc.d -f pcmcia remove  
  
/etc/init.d/pcmciautils stop  
update-rc.d -f pcmciautils remove  
  
/etc/init.d/ppp stop  
update-rc.d -f ppp remove  
  
/etc/init.d/exim4 stop  
update-rc.d -f exim4 remove  
  
update-rc.d -f ntpdate remove

중지한 모든 서비스의 사용을 비활성화합니다:

update-inetd --disable time  
  
update-inetd --disable daytime  
  
update-inetd --disable echo  
  
update-inetd --disable chargen  
  
update-inetd --disable ident  
  
update-inetd --disable discard

마지막 항목은 “다중 항목”에 대한 질문을 할 수 있으며, 예(yes)로 대답하십시오.

모든 것이 잘 되었는지 확인합니다:

lsof -i | grep LISTEN

이 시점에서 볼 수 있는 유일한 데몬은 *:ssh여야 합니다. 이 명령을 다시 실행해야 할 수도 있습니다:

update-inetd --disable discard

다른 프로그램이 표시되면 재부팅하고 다시 테스트하십시오.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.