메일 서버 설정 · 3 min read · Feb 12, 2026

Exim, MySQL, Cyrus-Imapd, Horde 웹메일을 이용한 메일 서버 설정 - Centos 5.1 - 페이지 4

Pam_mysql 구성

Pam_mysql은 다음 cyrus-imapd 서비스를 mysql 데이터베이스에 대해 인증하는 데 사용됩니다: IMAP, POP, SIEVE, LMTP, CSYNC.

Pam_mysql 구성

서비스에 대해 pam_mysql을 활성화하려면 아래와 같이 변경합니다.

  • /etc/pam.d/imap auth optional pam_mysql.so user=horde passwd=hordepassword host=/var/lib/mysql/mysql.sock db=horde table=horde_users usercolumn=user_uid passwdcolumn=user_pass crypt=3 account required pam_mysql.so user=horde passwd=hordepassword host=/var/lib/mysql/mysql.sock db=horde table=horde_users usercolumn=user_uid passwdcolumn=user_pass crypt=3
  • /etc/pam.d/pop auth optional pam_mysql.so user=horde passwd=hordepassword host=/var/lib/mysql/mysql.sock db=horde table=horde_users usercolumn=user_uid passwdcolumn=user_pass crypt=3 account required pam_mysql.so user=horde passwd=hordepassword host=/var/lib/mysql/mysql.sock db=horde table=horde_users usercolumn=user_uid passwdcolumn=user_pass crypt=3
  • /etc/pam.d/sieve auth optional pam_mysql.so user=horde passwd=hordepassword host=/var/lib/mysql/mysql.sock db=horde table=horde_users usercolumn=user_uid passwdcolumn=user_pass crypt=3 account required pam_mysql.so user=horde passwd=hordepassword host=/var/lib/mysql/mysql.sock db=horde table=horde_users usercolumn=user_uid passwdcolumn=user_pass crypt=3
  • /etc/pam.d/lmtp auth optional pam_mysql.so user=horde passwd=hordepassword host=/var/lib/mysql/mysql.sock db=horde table=horde_users usercolumn=user_uid passwdcolumn=user_pass crypt=3 account required pam_mysql.so user=horde passwd=hordepassword host=/var/lib/mysql/mysql.sock db=horde table=horde_users usercolumn=user_uid passwdcolumn=user_pass crypt=3
  • /etc/pam.d/csync auth optional pam_mysql.so user=horde passwd=hordepassword host=/var/lib/mysql/mysql.sock db=horde table=horde_users usercolumn=user_uid passwdcolumn=user_pass crypt=3 account required pam_mysql.so user=horde passwd=hordepassword host=/var/lib/mysql/mysql.sock db=horde table=horde_users usercolumn=user_uid passwdcolumn=user_pass crypt=3

Saslauthd 구성

  • /etc/sysconfig/saslauthd를 편집하고 아래와 같이 수정합니다. SOCKETDIR=/var/run/saslauthd # 비밀번호를 확인할 때 사용할 메커니즘. "saslauthd -v"를 실행하여 설치된 메커니즘 목록을 확인합니다. MECH=pam # 명령줄에서 saslauthd에 전달할 추가 플래그. 허용된 플래그 목록은 saslauthd(8)를 참조하십시오. FLAGS="-r -n 0 -c"

ClamAV 구성

  • clamav 사용자를 exim 그룹에 추가합니다. usermod -G exim clamav
  • 소켓의 위치를 변경하고 TCP를 비활성화합니다. /etc/clamd.conf를 수정합니다. LocalSocket /var/run/clamav/clamd.socket #TCPSocket 3310 #TCPAddr 127.0.0.1
  • sane 보안 서명을 설치합니다. wget http://www.sanesecurity.co.uk/clamav/update_sanesecurity.txt -O /usr/local/bin/update_sanesecurity.sh
    chmod +x /usr/local/bin/update_sanesecurity.sh
    ln -s /usr/local/bin/update_sanesecurity.sh /etc/cron.hourly/
    /usr/local/bin/update_sanesecurity.sh
  • clamav에 대한 로컬 selinux 모듈을 활성화합니다. clamdlocal.te 파일을 생성하고 다음을 추가합니다. module clamdlocal 1.0; require { type proc_t; type var_t; type sysctl_kernel_t; type var_spool_t; type clamd_t; class dir { write search read remove_name add_name }; class file { write getattr read lock create unlink }; } #============= clamd_t ============== allow clamd_t proc_t:file { read getattr }; allow clamd_t sysctl_kernel_t:dir search; allow clamd_t sysctl_kernel_t:file read; allow clamd_t var_spool_t:dir read; allow clamd_t var_spool_t:file { read getattr }; allow clamd_t var_t:dir { write read add_name remove_name }; allow clamd_t var_t:file { write getattr read lock create unlink };
  • 모듈을 컴파일하고 로드합니다. checkmodule -M -m -o clamdlocal.mod clamdlocal.te
    semodule_package -o clamdlocal.pp -m clamdlocal.mod
    semodule -i clamdlocal.pp

Spamassassin 구성

  • 시작 옵션을 수정합니다. /etc/sysconfig/spamassassin을 편집하고 아래와 같이 수정합니다. SPAMDOPTIONS=" -l -d -c -m5 -H -m 10 --socketpath=/var/run/spamassassin/spamd.sock --socketowner=exim"
  • spamassassin에 대한 로컬 spamd 모듈을 활성화합니다. spamdlocal.te 파일을 생성하고 다음을 추가합니다. module spamdlocal 1.0; require { type spamd_t; type spamd_var_run_t; class capability { fowner chown kill }; class sock_file { write create unlink getattr setattr }; } #============= spamd_t ============== allow spamd_t self:capability { fowner chown kill }; allow spamd_t spamd_var_run_t:sock_file { write create unlink getattr setattr };
  • 모듈을 컴파일하고 설치합니다. checkmodule -M -m -o spamdlocal.mod spamdlocal.te
    semodule_package -o spamdlocal.pp -m spamdlocal.mod
    semodule -i spamdlocal.pp

최종 점검

서비스 비활성화

원하지 않는 서비스를 비활성화합니다. 이 스크립트를 사용하십시오.

서비스 활성화

chkconfig –level 234 exim on
chkconfig –level 234 mysqld on
chkconfig –level 234 spamassassin on
chkconfig –level 234 clamd on
chkconfig –level 234 httpd on
chkconfig –level 234 saslauthd on
chkconfig –level 234 cyrus-imapd on

service mysqld restart
service saslauthd restart
service spamassassin restart
service clamd restart
service exim restart
service cyrus-imapd restart
service httpd restart

관리자 사용자 생성

  • admin.sql 파일을 생성하고 다음을 추가합니다 (비밀번호를 적절히 수정하십시오). USE horde; REPLACE INTO horde_users (user_uid,user_pass) VALUES ( '[email protected]', -- 이 부분을 변경하세요 md5('verystrongpassword') );
  • 데이터베이스에 사용자 추가 mysql -p horde < admin.sql

방화벽

구성 파일 /etc/sysconfig/iptables에 다음 규칙을 추가합니다.

*raw
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
*filter
:FORWARD DROP [0:0]
:INPUT DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m multiport -j ACCEPT --dports 80,443,25,110,143
-A INPUT -p icmp -m icmp -m limit --icmp-type 8 --limit 5/min -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -s 192.168.1.4 -j ACCEPT
COMMIT

로그인

휴! 완료되었습니다. 브라우저를 열고 https://192.168.1.4/로 이동하여 위의 세부정보로 로그인하십시오. 그런 다음 관리 아래에서 다른 사용자를 생성할 수 있습니다. 모든 다른 기능도 테스트할 수 있습니다.

참고 문헌

Share: X/Twitter LinkedIn

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

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