서버 관리 · 2 min read · Dec 16, 2025

전용 웹 및 MySQL, 이메일 및 DNS 서버가 있는 가상 다중 서버 환경 - Debian Squeeze와 ISPConfig 3 - 페이지 5

7.2.7 fail2ban 설치

falko가 The Perfect Server - Debian Squeeze (Debian 6.0) With BIND & Courier [ISPConfig 3]에서 제안한 jail.local 파일을 확장합니다: /etc/fail2ban/jail.local

nano /etc/fail2ban/jail.local

다음 내용을 추가하거나 편집해야 합니다:

[roundcube]  
enabled  = true  
port     = http  
filter   = roundcube  
logpath  = /var/log/roundcube/userlogins  
maxretry = 5

마지막으로 (그리고 매우 중요하게) roundcube.conf 파일을 생성하는 것을 잊지 마세요: /etc/fail2ban/filter.d/roundcube.conf.

nano /etc/fail2ban/filter.d/roundcube.conf

다음 내용을 포함합니다:

[Definition]
failregex = FAILED login for .*. from 
ignoreregex =

fail2ban을 재시작합니다:

/etc/init.d/fail2ban restart

모든 감옥이 활성화되어 있는지 확인할 수 있는 명령어:

iptables -L -n 

7.2.8 fail2ban 지원이 있는 mod_evasive 설치

mod_evasive는 DDoS 공격을 처리하기 위한 Apache 모듈입니다. 이를 설치하고 fail2ban을 구성하여 보고된 공격을 자동으로 차단/해제합니다.

apt-get install libapache2-mod-evasive
mkdir /var/lock/mod-evasive
chown www-data /var/lock/mod-evasive
ln -s /etc/alternatives/mail /bin/mail
nano /etc/apache2/mods-available/mod-evasive.conf

그리고 붙여넣습니다:


   DOSHashTableSize 3097
   DOSPageCount 3
   DOSSiteCount 60
   DOSPageInterval 1
   DOSSiteInterval 2
   DOSBlockingPeriod 15
   DOSEmailNotify [email protected]
   DOSLogDir "/var/lock/mod_evasive"

그 후 모듈을 활성화하고 apache를 재시작합니다.

a2enmod mod-evasive
/etc/init.d/apache2 restart

mod_evasive는 DDoS 공격을 감지하지 않습니다. IPTables로 차단하기 위해 파일을 생성해야 합니다: /etc/fail2ban/filter.d/apache-dosevasive.conf:

# Fail2Ban 구성 파일
#
# 작성자: Xela
#
# $Revision: 728 $
#

[Definition]

# 옵션:  failregex
# 비고.:  apache error.log에서 Forbidden 로그 항목과 일치하는 정규 표현식
#          mod_evasive에 의해 제공될 수 있습니다 (하지만 그에 국한되지 않음)
#
# 값:  TEXT
#
failregex = ^\[[^\]]*\]\s+\[error\]\s+\[client \] client denied by server configuration:\s

# 옵션:  ignoreregex
# 비고.:  무시할 정규 표현식. 이 정규 표현식과 일치하면 해당 줄은 무시됩니다.
# 값:  TEXT
#
ignoreregex =

그리고 /etc/fail2ban/jail.local에 다음을 추가합니다:

[apache-dosevasive]
enabled = true
filter  = apache-dosevasive
action = iptables-allports[name=dos]
logpath = /var/log/apache*/*error.log
bantime = 600
maxretry = 10

7.3 메일 서버 확장

7.3.1 향상된 이메일 스팸 보호

아래 명령어는 ISPConfig 3 서버에서 postfix에 대한 더 엄격한 스팸 처리를 활성화합니다.

postconf -e 'smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_invalid_hostname, reject_non_fqdn_hostname, reject_unknown_recipient_domain, reject_non_fqdn_recipient, reject_unauth_destination, reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_rbl_client cbl.abuseat.org,reject_rbl_client dul.dnsbl.sorbs.net,reject_rbl_client ix.dnsbl.manitu.net, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, reject_unauth_destination'

그런 다음 postfix를 재시작합니다:

/etc/init.d/postfix restart

7.3.2 Postgrey 설치

Postgrey는 수신하는 모든 스팸 이메일의 99%를 제거합니다. 설치하려면 다음 명령어를 실행합니다:

apt-get install postgrey
/etc/init.d/postgrey start

Postfix 구성 파일은 /etc/postfix에 위치합니다. /etc/postfix/main.cf를 편집하고 smtpd_recipient_restrictions에 check_policy_service inet:127.0.0.1:60000을 추가합니다.

그런 다음 postfix의 구성을 다시 로드합니다:

postfix reload

7.4 SSL을 사용하여 서버 보안 강화

마지막으로 이 튜토리얼을 따라야 합니다: https://www.howtoforge.com/securing-your-ispconfig-3-installation-with-a-free-class1-ssl-certificate-from-startssl. 올바른 서버에서 명령어를 실행하는 것을 잊지 마세요!

8 서버 유지 관리

서버를 최신 상태로 유지하기 위해 정기적으로 다음을 실행해야 합니다:

apt-get update && apt-get -y upgrade && apt-get -y dist-upgrade

9 링크/크레딧/출처

대부분이 제 것이 아니므로, 이 튜토리얼에 사용된 모든 링크는 다음과 같습니다:

Share: X/Twitter LinkedIn

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

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