서버 관리 · 3 min read · Dec 02, 2025

완벽한 서버 확장 - 데비안 스퀴즈 [ISPConfig 3] - 페이지 2

3. ROUNDCUBE

위의 지침에 따라 apt-get을 통해 roundcube를 설치할 수 있습니다. 그러나 다른 논리를 따르려면 (시간과 용기가 있다면) roundcube를 자체 서브 도메인에 수동으로 설치할 수 있습니다.

“완벽한 서버 ….”에서는 일반적으로 Squirrelmail을 설치합니다. 그러나 원하지 않으면 제거할 수 있습니다:

apt-get remove squirrelmail

그리고 /etc/apache2/conf.d/squirrelmail.conf를 삭제합니다:

rm /etc/apache2/conf.d/squirrelmail.conf

또는 원한다면 /etc/apache2/conf.d/squirrelmail.conf를 편집하고 별칭을 ‘webmail1’과 같은 것으로 변경합니다.

roundcube를 설치합니다. (진행하기 전에 mysql 관리자 비밀번호가 있어야 합니다 – dbconfig-common이 데이터베이스를 구성하도록 하십시오. 데이터베이스 관리자 비밀번호와 roundcube를 위해 생성될 새 사용자의 비밀번호에 대한 몇 가지 질문을 받게 됩니다. 질문에 답하고 계속 진행하십시오:

apt-get install roundcube roundcube-mysql

예시 답변: “roundcube를 위해 dbconfig-common으로 데이터베이스를 구성하시겠습니까?” …. 예라고 대답하십시오. “roundcube에서 사용할 데이터베이스 유형: …mysql이라고 대답하십시오. “데이터베이스 관리자의 비밀번호:” … 귀하의 관리자 DB 비밀번호라고 대답하십시오. “roundcube의 MySQL 애플리케이션 비밀번호:” … roundcube 사용자에게 부여할 비밀번호라고 대답하십시오. “비밀번호 확인:”… roundcube 사용자에게 부여할 비밀번호라고 대답하십시오.

문제가 발생하면 언제든지 실행할 수 있습니다:

dpkg-reconfigure roundcube-core

자세한 정보는 이 게시물을 참조하십시오.

모든 사용자가 자신의 도메인 이름 아래에서 웹메일에 접근할 수 있도록 하려면 /etc/apache2/conf.d/roundcube 파일을 생성하거나 편집하여 별칭을 ‘webmail’로 설정해야 합니다. SSL을 원하면 마지막 두 지시문 (IfModule mod_rewrite.c)을 포함하여 apache가 항상 ISPConfig의 SSL 설치로 리디렉션되도록 해야 합니다.

nano /etc/apache2/conf.d/roundcube
# 이러한 별칭은 apache 서버에서 여러 호스트와 함께 제대로 작동하지 않습니다  
# 사용하려면 주석을 제거하거나 구성에 맞게 조정하십시오  
#    Alias /roundcube/program/js/tiny_mce/ /usr/share/tinymce/www/  
    Alias /roundcube /var/lib/roundcube  
    Alias /webmail /var/lib/roundcube  
  
# tinymce 파일에 대한 접근  
  
      Options Indexes MultiViews FollowSymLinks  
      AllowOverride None  
      Order allow,deny  
      allow from all  
  
  
  
  Options +FollowSymLinks  
  # 이것은 /var/lib/roundcube/.htaccess를 구문 분석하는 데 필요합니다.  
  # AllowOverride를 None으로 설정하기 전에 내용을 확인하십시오.  
  AllowOverride All  
  order allow,deny  
  allow from all  
  
  
# 기본 디렉토리 보호:  
  
        Options -FollowSymLinks  
        AllowOverride None  
  
  
  
        Options -FollowSymLinks  
        AllowOverride None  
        Order allow,deny  
        Deny from all  
  
  
  
        Options -FollowSymLinks  
        AllowOverride None  
        Order allow,deny  
        Deny from all  
  
  
  
    
      
      RewriteEngine on  
      RewriteCond %{HTTPS} !^on$ [NC]  
      RewriteRule . https://%{HTTP_HOST}:50443%{REQUEST_URI}  [L]  
      
    
  
  
  
    
      
      RewriteEngine on  
      RewriteCond %{HTTPS} !^on$ [NC]  
      RewriteRule . https://%{HTTP_HOST}:50443%{REQUEST_URI}  [L]  
      
    
  
  
  
# ISPConfig 3.0.5.1 이상에 대해서도 다음을 추가하십시오  
  
AddType application/x-httpd-php .php  
php_flag magic_quotes_gpc Off  
php_flag track_vars On  
php_admin_flag allow_url_fopen Off  
php_value include_path .:/usr/share/php:/usr/share/pear  
php_admin_value upload_tmp_dir /var/lib/roundcube/temp  
php_admin_value open_basedir /usr/share/php:/usr/lib/roundcube:/etc/roundcube:/usr/share/roundcube:/var/lib/roundcube:/var/log/roundcube  
php_flag register_globals off  
   

/var/lib/roundcube/config/main.inc.php를 편집합니다:

nano /var/lib/roundcube/config/main.inc.php

그리고 파일에서 몇 가지 변수를 설정합니다 (파일을 처음 편집하는 경우 60번과 66번 줄입니다):

auto_create_user = TRUE;  
$rcmail_config['default_host'] = 'localhost';

다음 플러그인 (fail2ban을 돕는 로거)을 설치할 경우 동일한 파일에서 플러그인 목록을 확장해야 합니다. 만약 설치할 플러그인이 바로 다음에 설치될 플러그인이라면 42번 줄을 아래와 같이 편집해야 합니다:

$rcmail_config['plugins'] = array('fail2ban'); 

http://mattrude.com/projects/roundcube-fail2ban-plugin/에서 roundcube 로거 플러그인을 설치합니다.

기본적으로 파일(fail2ban.php)을 다운로드하고 roundcube의 플러그인 폴더 내의 fail2ban 폴더에 붙여넣어야 합니다. 마지막으로 이 파일이 있어야 합니다: /usr/share/roundcube/plugins/fail2ban/fail2ban.php. 실행:

cd /usr/share/roundcube/plugins/
wget –no-check-certificate http://github.com/downloads/mattrude/rc-plugin-fail2ban/roundcube-fail2ban-plugin.1.0.tgz
tar -xvzf roundcube-fail2ban-plugin.1.0.tgz
touch /var/log/roundcube/userlogins
chown www-data:www-data /var/log/roundcube/userlogins

이 플러그인은 각 로그인 실패 시도에 대해 로그 파일을 업데이트합니다: /var/log/roundcube/userlogins

ISPConfig에서 웹메일 링크를 편집하는 것을 잊지 마십시오 (시스템 -> 인터페이스 구성 -> (탭) 메일) 및 /webmail로 설정하십시오. 마지막으로 apache를 재시작하십시오.

/etc/init.d/apache2 restart

이제 http://www.example.com/webmail에서 웹메일에 접근할 수 있습니다.

4. FAIL2BAN

falko가 제안하는 jail.local 파일을 확장하십시오. 완벽한 서버 - 데비안 스퀴즈 (Debian 6.0) BIND & Courier [ISPConfig 3]: /etc/fail2ban/jail.local

nano /etc/fail2ban/jail.local

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

[roundcube]  
enabled  = true  
port     = http,50443  
filter   = roundcube  
logpath  = /var/log/roundcube/userlogins  
maxretry = 5  
  
[webmin-auth]  
enabled = true  
port    = 50000  
filter  = webmin-auth  
logpath  = /var/log/auth.log  
maxretry = 3   
  
[ssh]  
enabled = true  
port    = 50022  
filter  = sshd  
logpath  = /var/log/auth.log  
maxretry = 6

roundcube의 50443 포트는 https로 리디렉션을 활성화한 경우에만 필요합니다 (이 튜토리얼의 시작 부분을 참조하십시오). webmin-auth의 50000 포트는 변경된 포트입니다 (이 튜토리얼의 시작 부분을 참조하십시오). ssh의 50022 포트는 변경된 포트입니다 (이 튜토리얼의 다음 섹션을 참조하십시오).

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

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

다음 내용을 포함합니다:

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

운이 좋게도 webmin-auth 및 ssh 필터는 이미 fail2ban에 의해 제공됩니다. fail2ban을 재시작하십시오:

/etc/init.d/fail2ban restart

누군가가 fail2ban에 많은 감옥을 추가하면 일부는 시작되지 않을 수 있습니다 (오류는 /var/log/fail2ban.log에 있지만 출력에는 없습니다 !!!). 직접 확인하려면:

iptables -L -n 

불행히도 해결책은 약간의 해킹입니다… 하지만 적어도 해결책입니다:

/usr/bin/fail2ban-client 파일의 145번째 줄에 time.sleep(0.1) 또는 time.sleep(0.05)를 삽입해야 합니다:

nano /usr/bin/fail2ban-client

그래서 변경 전 파일은 다음과 같습니다:

[...]  
def __processCmd(self, cmd, showRet = True):  
                beautifier = Beautifier()  
                for c in cmd:  
                        beautifier.setInputCmd(c)  
                        try:  
[...]  

그리고 변경 후 파일은 다음과 같습니다:

[...]  
def __processCmd(self, cmd, showRet = True):  
                beautifier = Beautifier()  
                for c in cmd:  
                        time.sleep(0.05)  
                        beautifier.setInputCmd(c)  
                        try:  
[...]  

fail2ban을 다시 재시작하십시오:

/etc/init.d/fail2ban restart

모든 감옥이 활성화되었는지 확인하려면 다음 명령을 사용하십시오:

iptables -L -n 
Share: X/Twitter LinkedIn

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

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