서버 설정 · 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 restartDNS 서버를 추가하기 위해 resolv.conf 파일을 편집합니다:
vi /etc/resolv.conf도메인 이름이 resolv.conf의 맨 위에 있어야 하며, 다음과 비슷해야 합니다:
search example.com
nameserver 192.168.0.1
nameserver 192.168.0.2vi /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.listdeb 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 multiverseAPT 캐시를 업데이트/새로 고치고 일부 소프트웨어를 설치해야 합니다. 캐시를 업데이트하려면 다음을 실행합니다:
apt-get update참고: 이 시점에서 커널 이미지를 올바른 것으로 변경하는 것이 좋습니다. 대부분 ‘linux-image-i686’이 필요할 것입니다. 그것이 무엇을 의미하는지 모른다면 찾아보십시오. apt-get upgrade를 실행하고 발생할 수 있는 오류나 문제를 해결하는 데 잠시 시간을 가지십시오. 우리는 미래에 문제를 일으킬 수 있는 모든 것을 제거하고자 합니다. 모든 것이 준비되면 재부팅하고 빠른 dmesg | less를 실행하는 것을 기억하십시오. 이는 큰 도움이 될 수 있습니다.
apt-get install sshssh가 설치되면 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 spamassassinDebconf에서 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 mailagent1.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다른 프로그램이 표시되면 재부팅하고 다시 테스트하십시오.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.