서버 설정 · 5 min read · Dec 31, 2025
완벽한 서버 - Ubuntu 14.04 (Apache2, PHP, MySQL, PureFTPD, BIND, Dovecot, ISPConfig 3) - 페이지 4
12. Postfix, Dovecot, MySQL, phpMyAdmin, rkhunter, binutils 설치하기
Postfix를 설치하기 위해 sendmail을 중지하고 제거해야 합니다.
service sendmail stop; update-rc.d -f sendmail remove이제 Postfix, Dovecot, MySQL, rkhunter 및 binutils를 단일 명령으로 설치할 수 있습니다:
apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve sudo다음 질문을 받게 됩니다:
MySQL “root” 사용자에 대한 새 비밀번호: <– yourrootsqlpassword
MySQL “root” 사용자에 대한 비밀번호 반복: <– yourrootsqlpassword
메일 구성의 일반 유형: <– Internet Site
시스템 메일 이름: <– server1.example.com
다음으로 Postfix에서 TLS/SSL 및 제출 포트를 엽니다:
vi /etc/postfix/master.cf제출 및 smtps 섹션의 주석을 제거합니다. 다음과 같이 -o smtpd_client_restrictions=permit_sasl_authenticated,reject를 두 섹션 모두에 추가하고 그 이후의 모든 것은 주석 처리합니다:
| [...] submission inet n - - - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING smtps inet n - - - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING [...] |
그 후 Postfix를 재시작합니다:
service postfix restartMySQL이 localhost뿐만 아니라 모든 인터페이스에서 수신 대기하도록 하려면 /etc/mysql/my.cnf를 편집하고 bind-address = 127.0.0.1 줄의 주석을 제거합니다:
vi /etc/mysql/my.cnf| [...] # 대신 skip-networking의 기본값은 이제 # localhost에서만 수신 대기하는 것입니다. 이는 더 호환성이 있으며 덜 안전하지 않습니다. #bind-address = 127.0.0.1 [...] |
그런 다음 MySQL을 재시작합니다:
service mysql restart이제 네트워킹이 활성화되었는지 확인합니다. 다음을 실행합니다:
netstat -tap | grep mysql출력은 다음과 같아야 합니다:
root@server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 21298/mysqld
root@server1:~#13. Amavisd-new, SpamAssassin 및 Clamav 설치하기
amavisd-new, SpamAssassin 및 ClamAV를 설치하려면 다음을 실행합니다:
apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perlISPConfig 3 설정은 내부적으로 SpamAssassin 필터 라이브러리를 로드하는 amavisd를 사용하므로 RAM을 확보하기 위해 SpamAssassin을 중지할 수 있습니다:
service spamassassin stop
update-rc.d -f spamassassin remove14. Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear 및 mcrypt 설치하기
Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear 및 mcrypt는 다음과 같이 설치할 수 있습니다:
apt-get install apache2 apache2-doc apache2-utils libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libruby libapache2-mod-python php5-curl php5-intl php5-memcache php5-memcached php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl memcached snmpPHP5 mcrypt 모듈은 수동으로 활성화해야 합니다:
php5enmod mcrypt다음 질문을 보게 됩니다:
웹 서버를 자동으로 재구성하시겠습니까: <– apache2
phpmyadmin의 데이터베이스를 dbconfig-common으로 구성하시겠습니까? <– 아니요
그런 다음 다음 명령을 실행하여 Apache 모듈 suexec, rewrite, ssl, actions 및 include(원하는 경우 dav, dav_fs 및 auth_digest도 포함)를 활성화합니다:
a2enmod suexec rewrite ssl actions include cgia2enmod dav_fs dav auth_digest다음으로 /etc/apache2/mods-available/suphp.conf를 엽니다…
vi /etc/apache2/mods-available/suphp.conf… 그리고
| |
그 후 Apache를 재시작합니다:
service apache2 restartISPConfig를 통해 생성된 웹사이트에서 .rb 확장자를 가진 Ruby 파일을 호스팅하려면 /etc/mime.types에서 application/x-ruby rb 줄의 주석을 제거해야 합니다:
vi /etc/mime.types| [...] #application/x-ruby rb [...] |
(이는 .rb 파일에만 필요합니다; .rbx 확장자를 가진 Ruby 파일은 기본적으로 작동합니다.)
그 후 Apache를 재시작합니다:
service apache2 restart14.1 Xcache
Xcache는 PHP 중간 코드를 캐싱하고 최적화하기 위한 무료 오픈 PHP opcode 캐셔입니다. eAccelerator 및 APC와 같은 다른 PHP opcode 캐셔와 유사합니다. PHP 페이지 속도를 높이기 위해 이러한 것 중 하나를 설치하는 것이 강력히 권장됩니다.
Xcache는 다음과 같이 설치할 수 있습니다:
apt-get install php5-xcache이제 Apache를 재시작합니다:
service apache2 restart14.2 PHP-FPM
ISPConfig 3.0.5부터 Apache와 함께 사용할 수 있는 추가 PHP 모드인 PHP-FPM이 있습니다.
Apache와 함께 PHP-FPM을 사용하려면 mod_fastcgi Apache 모듈이 필요합니다(이것을 mod_fcgid와 혼동하지 마십시오 - 매우 유사하지만 mod_fcgid와 함께 PHP-FPM을 사용할 수 없습니다). PHP-FPM 및 mod_fastcgi는 다음과 같이 설치할 수 있습니다:
apt-get install libapache2-mod-fastcgi php5-fpm모듈을 활성화하고 Apache를 재시작하는 것을 잊지 마십시오:
a2enmod actions fastcgi alias
service apache2 restart14.2 추가 PHP 버전
ISPConfig 3.0.5부터 하나의 서버에서 여러 PHP 버전을 가질 수 있습니다(ISPConfig를 통해 선택 가능) 이는 FastCGI 및 PHP-FPM을 통해 실행될 수 있습니다. 추가 PHP 버전(PHP-FPM 및 FastCGI)을 빌드하고 ISPConfig을 구성하는 방법에 대한 자세한 내용은 이 튜토리얼을 확인하십시오: ISPConfig 3 (Ubuntu 12.10)와 함께 여러 PHP 버전 사용 방법 (Ubuntu 14.04에서도 작동).
15. Mailman 설치하기
버전 3.0.4부터 ISPConfig는 Mailman 메일링 리스트를 관리(생성/수정/삭제)할 수 있습니다. 이 기능을 사용하려면 다음과 같이 Mailman을 설치합니다:
apt-get install mailman최소한 하나의 언어를 선택합니다, 예:
지원할 언어: <– en (영어)
누락된 사이트 목록 <– 확인
Mailman을 시작하기 전에 mailman이라는 첫 번째 메일링 리스트를 생성해야 합니다:
newlist mailmanroot@server1:~# newlist mailman
리스트를 운영하는 사람의 이메일을 입력하세요: <– 관리자 이메일 주소, 예: [email protected]
초기 mailman 비밀번호: <– mailman 리스트의 관리자 비밀번호
메일링 리스트를 생성하려면 /etc/aliases(또는 동등한) 파일을 편집하여 다음 줄을 추가하고, 필요에 따라 newaliases 프로그램을 실행해야 합니다:
mailman 메일링 리스트
mailman: “|/var/lib/mailman/mail/mailman post mailman”
mailman-admin: “|/var/lib/mailman/mail/mailman admin mailman”
mailman-bounces: “|/var/lib/mailman/mail/mailman bounces mailman”
mailman-confirm: “|/var/lib/mailman/mail/mailman confirm mailman”
mailman-join: “|/var/lib/mailman/mail/mailman join mailman”
mailman-leave: “|/var/lib/mailman/mail/mailman leave mailman”
mailman-owner: “|/var/lib/mailman/mail/mailman owner mailman”
mailman-request: “|/var/lib/mailman/mail/mailman request mailman”
mailman-subscribe: “|/var/lib/mailman/mail/mailman subscribe mailman”
mailman-unsubscribe: “|/var/lib/mailman/mail/mailman unsubscribe mailman”
Enter를 눌러 mailman 소유자에게 알리십시오… <– ENTER
root@server1:~#
그 후 /etc/aliases를 엽니다…
vi /etc/aliases… 그리고 다음 줄을 추가합니다:
| [...] ## mailman 메일링 리스트 mailman: "|/var/lib/mailman/mail/mailman post mailman" mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman" mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman" mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman" mailman-join: "|/var/lib/mailman/mail/mailman join mailman" mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman" mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman" mailman-request: "|/var/lib/mailman/mail/mailman request mailman" mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman" |
그 후
newaliases를 실행하고 Postfix를 재시작합니다:
service postfix restart마지막으로 Mailman Apache 구성을 활성화해야 합니다:
ln -s /etc/mailman/apache.conf /etc/apache2/conf-available/mailman.conf이것은 모든 Apache vhosts에 대해 /cgi-bin/mailman/이라는 별칭을 정의하며, 이는 http://
http://
그 후 Apache를 재시작합니다:
service apache2 restart그런 다음 Mailman 데몬을 시작합니다:
service mailman start새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.