서버 설치 · 5 min read · Nov 09, 2025

완벽한 서버 - CentOS 6.0 x86_64 [ISPConfig 3] - 페이지 4

10 Courier-IMAP, Courier-Authlib 및 Maildrop 설치

불행히도 Courier-IMAP, Courier-Authlib 및 Maildrop에 대한 rpm 패키지가 없으므로, 우리는 직접 빌드해야 합니다.

먼저 Dovecot을 제거합니다 (CentOS 6.0에는 Dovecot 2.x가 포함되어 있으며, 불행히도 ISPConfig 3는 Dovecot 1.2.x만 지원하고 2.x는 지원하지 않습니다):

yum remove dovecot dovecot-mysql

그런 다음 Courier rpm 패키지를 빌드하는 데 필요한 필수 패키지를 설치합니다:

yum install rpm-build gcc mysql-devel openssl-devel cyrus-sasl-devel pkgconfig zlib-devel pcre-devel openldap-devel postgresql-devel expect libtool-ltdl-devel openldap-servers libtool gdbm-devel pam-devel gamin-devel libidn-devel 

RPM 패키지는 root로 빌드하면 안 됩니다; courier-imap은 root 사용자로 컴파일이 실행되는 것을 감지하면 컴파일을 거부합니다. 따라서 이제 일반 사용자 계정(falko라는 예제)을 만들고 비밀번호를 설정합니다:

useradd -m -s /bin/bash falko
passwd falko

나중에 falko 사용자가 rpm 패키지를 컴파일하고 설치할 수 있도록 sudo 명령이 필요합니다. 그러나 먼저 falko가 sudo를 사용하여 모든 명령을 실행할 수 있도록 허용해야 합니다:

실행

visudo

열리는 파일에는 root ALL=(ALL) ALL이라는 줄이 있습니다. 그 줄 바로 아래에 falko에 대한 유사한 줄을 추가합니다:

| [...] ## Allow root to run any commands anywhere root ALL=(ALL) ALL falko ALL=(ALL) ALL [...] |

이제 rpm 패키지를 빌드할 준비가 되었습니다. 먼저 falko 사용자로 전환합니다:

su falko

다음으로 빌드 환경을 만듭니다:

mkdir $HOME/rpm
mkdir $HOME/rpm/SOURCES
mkdir $HOME/rpm/SPECS
mkdir $HOME/rpm/BUILD
mkdir $HOME/rpm/BUILDROOT
mkdir $HOME/rpm/SRPMS
mkdir $HOME/rpm/RPMS
mkdir $HOME/rpm/RPMS/i386
mkdir $HOME/rpm/RPMS/x86_64

echo "%_topdir $HOME/rpm" >> $HOME/.rpmmacros

이제 다운로드 디렉토리를 만들고 http://www.courier-mta.org/download.php에서 소스 파일을 다운로드합니다:

mkdir $HOME/downloads
cd $HOME/downloads

wget https://sourceforge.net/projects/courier/files/authlib/0.63.0/courier-authlib-0.63.0.tar.bz2/download
wget https://sourceforge.net/projects/courier/files/imap/4.9.3/courier-imap-4.9.3.tar.bz2/download
wget https://sourceforge.net/projects/courier/files/maildrop/2.5.4/maildrop-2.5.4.tar.bz2/download

이제 ($HOME/downloads에 있는 동안) courier-authlib를 빌드할 수 있습니다:

sudo rpmbuild -ta courier-authlib-0.63.0.tar.bz2

빌드 프로세스 후에 rpm 패키지는 /root/rpmbuild/RPMS/x86_64에 있습니다 (/root/rpmbuild/RPMS/i686는 i686 시스템인 경우). 명령

sudo ls -l /root/rpmbuild/RPMS/x86_64

는 사용 가능한 rpm 패키지를 보여줍니다:

[falko@server1 downloads]$ sudo ls -l /root/rpmbuild/RPMS/x86_64
total 516
-rw-r–r– 1 root root 124296 Jul 11 17:27 courier-authlib-0.63.0-1.el6.x86_64.rpm
-rw-r–r– 1 root root 259620 Jul 11 17:27 courier-authlib-debuginfo-0.63.0-1.el6.x86_64.rpm
-rw-r–r– 1 root root 35044 Jul 11 17:27 courier-authlib-devel-0.63.0-1.el6.x86_64.rpm
-rw-r–r– 1 root root 17416 Jul 11 17:27 courier-authlib-ldap-0.63.0-1.el6.x86_64.rpm
-rw-r–r– 1 root root 13944 Jul 11 17:27 courier-authlib-mysql-0.63.0-1.el6.x86_64.rpm
-rw-r–r– 1 root root 13112 Jul 11 17:27 courier-authlib-pgsql-0.63.0-1.el6.x86_64.rpm
-rw-r–r– 1 root root 8316 Jul 11 17:27 courier-authlib-pipe-0.63.0-1.el6.x86_64.rpm
-rw-r–r– 1 root root 34168 Jul 11 17:27 courier-authlib-userdb-0.63.0-1.el6.x86_64.rpm
[falko@server1 downloads]$

설치할 패키지를 선택하고 다음과 같이 설치합니다:

sudo rpm -ivh /root/rpmbuild/RPMS/x86_64/courier-authlib-0.63.0-1.el6.x86_64.rpm /root/rpmbuild/RPMS/x86_64/courier-authlib-mysql-0.63.0-1.el6.x86_64.rpm /root/rpmbuild/RPMS/x86_64/courier-authlib-devel-0.63.0-1.el6.x86_64.rpm

이제 다운로드 디렉토리로 돌아갑니다:

cd $HOME/downloads

다음 명령을 실행하여 필요한 디렉토리를 만들고 디렉토리 권한을 변경합니다 (그렇지 않으면 Courier-Imap의 빌드 프로세스가 실패합니다):

sudo mkdir -p /var/cache/ccache/tmp
sudo chmod o+rwx /var/cache/ccache/
sudo chmod 777 /var/cache/ccache/tmp

이제 sudo 없이 rpmbuild를 다시 실행합니다. 그렇지 않으면 컴파일이 root로 실행되었기 때문에 실패합니다:

rpmbuild -ta courier-imap-4.9.3.tar.bz2

빌드 프로세스 후에 rpm 패키지는 $HOME/rpm/RPMS/x86_64에 있습니다 ($HOME/rpm/RPMS/i686는 i686 시스템인 경우):

cd $HOME/rpm/RPMS/x86_64

명령

ls -l

은 사용 가능한 rpm 패키지를 보여줍니다:

[falko@server1 x86_64]$ ls -l
total 1088
-rw-r–r– 1 falko falko 333540 Jul 11 17:38 courier-imap-4.9.3-1.x86_64.rpm
-rw-r–r– 1 falko falko 776112 Jul 11 17:38 courier-imap-debuginfo-4.9.3-1.x86_64.rpm
[falko@server1 x86_64]$

다음과 같이 courier-imap을 설치할 수 있습니다:

sudo rpm -ivh courier-imap-4.9.3-1.x86_64.rpm

이제 다운로드 디렉토리로 돌아갑니다:

cd $HOME/downloads

그리고 maildrop 패키지를 빌드하기 위해 rpmbuild를 다시 실행합니다:

sudo rpmbuild -ta maildrop-2.5.4.tar.bz2

빌드 프로세스 후에 rpm 패키지는 /root/rpmbuild/RPMS/x86_64에 있습니다 (/root/rpmbuild/RPMS/i686는 i686 시스템인 경우). 명령

sudo ls -l /root/rpmbuild/RPMS/x86_64

는 사용 가능한 rpm 패키지를 보여줍니다:

[falko@server1 downloads]$ sudo ls -l /root/rpmbuild/RPMS/x86_64
total 1660
-rw-r–r– 1 root root 124296 Jul 11 17:27 courier-authlib-0.63.0-1.el6.x86_64.rpm
-rw-r–r– 1 root root 259620 Jul 11 17:27 courier-authlib-debuginfo-0.63.0-1.el6.x86_64.rpm
-rw-r–r– 1 root root 35044 Jul 11 17:27 courier-authlib-devel-0.63.0-1.el6.x86_64.rpm
-rw-r–r– 1 root root 17416 Jul 11 17:27 courier-authlib-ldap-0.63.0-1.el6.x86_64.rpm
-rw-r–r– 1 root root 13944 Jul 11 17:27 courier-authlib-mysql-0.63.0-1.el6.x86_64.rpm
-rw-r–r– 1 root root 13112 Jul 11 17:27 courier-authlib-pgsql-0.63.0-1.el6.x86_64.rpm
-rw-r–r– 1 root root 8316 Jul 11 17:27 courier-authlib-pipe-0.63.0-1.el6.x86_64.rpm
-rw-r–r– 1 root root 34168 Jul 11 17:27 courier-authlib-userdb-0.63.0-1.el6.x86_64.rpm
-rw-r–r– 1 root root 281328 Jul 11 17:47 maildrop-2.5.4-1.x86_64.rpm
-rw-r–r– 1 root root 717476 Jul 11 17:47 maildrop-debuginfo-2.5.4-1.x86_64.rpm
-rw-r–r– 1 root root 101156 Jul 11 17:47 maildrop-devel-2.5.4-1.x86_64.rpm
-rw-r–r– 1 root root 63744 Jul 11 17:47 maildrop-man-2.5.4-1.x86_64.rpm
[falko@server1 downloads]$

이제 다음과 같이 maildrop을 설치할 수 있습니다:

sudo rpm -ivh /root/rpmbuild/RPMS/x86_64/maildrop-2.5.4-1.x86_64.rpm

필요한 모든 패키지를 컴파일하고 설치한 후, 다음을 입력하여 다시 root가 될 수 있습니다:

exit

이제 다음과 같이 Courier-IMAP/-POP3를 시작합니다:

/etc/init.d/courier-imap start 

11 Postfix 설치

Postfix는 다음과 같이 설치할 수 있습니다:

yum install postfix

그런 다음 Sendmail을 끄고 Postfix와 MySQL을 시작합니다:

chkconfig –levels 235 mysqld on
/etc/init.d/mysqld start

chkconfig –levels 235 sendmail off
chkconfig –levels 235 postfix on
/etc/init.d/sendmail stop
/etc/init.d/postfix start

12 Getmail 설치

Getmail에 대한 rpm 패키지가 없으므로, 소스에서 설치해야 합니다. 다음과 같이 할 수 있습니다:

cd /tmp
wget http://pyropus.ca/software/getmail/old-versions/getmail-4.20.3.tar.gz
tar xvfz getmail-4.20.3.tar.gz
cd getmail-4.20.3
python setup.py build
python setup.py install

13 MySQL 비밀번호 설정 및 phpMyAdmin 구성

MySQL root 계정의 비밀번호를 설정합니다:

mysql_secure_installation

[root@server1 tmp]# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

MySQL에 로그인하여 보안을 설정하려면, 현재 root 사용자에 대한 비밀번호가 필요합니다.
MySQL을 방금 설치했으며, root 비밀번호를 아직 설정하지 않았다면, 비밀번호는 비어 있으므로, 여기서 그냥 Enter를 누르십시오.

현재 root에 대한 비밀번호 입력 (없으면 Enter):
OK, 비밀번호를 성공적으로 사용했습니다. 계속 진행합니다…

root 비밀번호를 설정하면, 아무도 적절한 인증 없이 MySQL root 사용자로 로그인할 수 없도록 보장합니다.

root 비밀번호를 설정하시겠습니까? [Y/n] <– ENTER
새 비밀번호: <– yourrootsqlpassword
새 비밀번호 재입력: <– yourrootsqlpassword
비밀번호가 성공적으로 업데이트되었습니다!
권한 테이블을 다시 로드하는 중..
… 성공!

기본적으로 MySQL 설치에는 익명 사용자가 있어, 누구나 사용자 계정을 만들지 않고도 MySQL에 로그인할 수 있습니다.
이는 테스트용으로만 의도되며, 설치를 조금 더 원활하게 진행하기 위한 것입니다.
생산 환경으로 이동하기 전에 이를 제거해야 합니다.

익명 사용자를 제거하시겠습니까? [Y/n] <– ENTER
… 성공!

보통 root는 ‘localhost’에서만 연결할 수 있어야 합니다.
이는 누군가가 네트워크에서 root 비밀번호를 추측할 수 없도록 보장합니다.

원격으로 root 로그인을 금지하시겠습니까? [Y/n] <– ENTER
… 성공!

기본적으로 MySQL에는 누구나 접근할 수 있는 ‘test’라는 데이터베이스가 있습니다.
이는 테스트용으로만 의도되며, 생산 환경으로 이동하기 전에 제거해야 합니다.

test 데이터베이스 및 접근을 제거하시겠습니까? [Y/n] <– ENTER

  • test 데이터베이스 삭제 중…
    … 성공!
  • test 데이터베이스에 대한 권한 제거 중…
    … 성공!

권한 테이블을 다시 로드하면 지금까지의 모든 변경 사항이 즉시 적용됩니다.

권한 테이블을 지금 다시 로드하시겠습니까? [Y/n] <– ENTER
… 성공!

정리 중…

모든 작업이 완료되었습니다!
위의 모든 단계를 완료했다면, MySQL 설치가 이제 안전해졌습니다.

MySQL을 사용해 주셔서 감사합니다!

[root@server1 tmp]#

이제 phpMyAdmin을 구성합니다. phpMyAdmin이 localhost에서만 연결을 허용하도록 Apache 구성을 변경합니다 ( 구문 주석 처리):

vi /etc/httpd/conf.d/phpmyadmin.conf

| # # Web application to manage MySQL # # # Order Deny,Allow # Deny from all # Allow from 127.0.0.1 # Alias /phpmyadmin /usr/share/phpmyadmin Alias /phpMyAdmin /usr/share/phpmyadmin Alias /mysqladmin /usr/share/phpmyadmin |

다음으로 phpMyAdmin의 인증을 쿠키에서 http로 변경합니다:

vi /usr/share/phpmyadmin/config.inc.php

| [...] /* Authentication type */ $cfg['Servers'][$i]['auth_type'] = 'http'; [...] |

그런 다음 Apache의 시스템 시작 링크를 생성하고 시작합니다:

chkconfig –levels 235 httpd on
/etc/init.d/httpd start

이제 브라우저를 http://server1.example.com/phpmyadmin/ 또는 http://192.168.0.100/phpmyadmin/로 이동하여 사용자 이름 root와 새 root MySQL 비밀번호로 로그인할 수 있습니다.

Share: X/Twitter LinkedIn

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

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