서버 설정 · 6 min read · Feb 12, 2026
완벽한 서버 - 페도라 15 x86_64 [ISPConfig 3] - 페이지 4
11 Courier-IMAP, Courier-Authlib 및 Maildrop 설치
불행히도 Courier-IMAP, Courier-Authlib 및 Maildrop에 대한 rpm 패키지가 없으므로 직접 빌드해야 합니다.
먼저 Dovecot을 제거합니다 (Fedora 15에는 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.8.1/courier-imap-4.8.1.tar.bz2/download
wget https://sourceforge.net/projects/courier/files/maildrop/2.5.4/maildrop-2.5.4.tar.bz2/download
(왜 최신 버전의 courier-imap - 이 글을 쓸 당시 4.9.3 -을 다운로드하지 않고 이전 버전인 4.8.1을 사용하는지 궁금할 수 있습니다. 이는 4.9.3이 내 시스템에서 빌드에 실패했기 때문이며, 4.8.1은 잘 작동합니다.)
이제 (여전히 $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 520
-rw-r–r– 1 root root 123448 May 25 18:06 courier-authlib-0.63.0-1.fc15.x86_64.rpm
-rw-r–r– 1 root root 265144 May 25 18:06 courier-authlib-debuginfo-0.63.0-1.fc15.x86_64.rpm
-rw-r–r– 1 root root 34876 May 25 18:06 courier-authlib-devel-0.63.0-1.fc15.x86_64.rpm
-rw-r–r– 1 root root 17448 May 25 18:06 courier-authlib-ldap-0.63.0-1.fc15.x86_64.rpm
-rw-r–r– 1 root root 13808 May 25 18:06 courier-authlib-mysql-0.63.0-1.fc15.x86_64.rpm
-rw-r–r– 1 root root 13020 May 25 18:06 courier-authlib-pgsql-0.63.0-1.fc15.x86_64.rpm
-rw-r–r– 1 root root 8276 May 25 18:06 courier-authlib-pipe-0.63.0-1.fc15.x86_64.rpm
-rw-r–r– 1 root root 34108 May 25 18:06 courier-authlib-userdb-0.63.0-1.fc15.x86_64.rpm
[falko@server1 downloads]$
설치할 패키지를 선택하고 다음과 같이 설치합니다:
sudo rpm -ivh /root/rpmbuild/RPMS/x86_64/courier-authlib-0.63.0-1.fc15.x86_64.rpm /root/rpmbuild/RPMS/x86_64/courier-authlib-mysql-0.63.0-1.fc15.x86_64.rpm /root/rpmbuild/RPMS/x86_64/courier-authlib-devel-0.63.0-1.fc15.x86_64.rpm이제 다운로드 디렉토리로 돌아갑니다:
cd $HOME/downloads다음 명령을 실행하여 필요한 디렉토리를 생성하고 디렉토리 권한을 변경합니다 (그렇지 않으면 Courier-Imap의 빌드 프로세스가 실패합니다):
sudo mkdir /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.8.1.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 1708
-rw-rw-r– 1 falko falko 596432 May 25 18:33 courier-imap-4.8.1-2.15.x86_64.rpm
-rw-rw-r– 1 falko falko 1149328 May 25 18:33 courier-imap-debuginfo-4.8.1-2.15.x86_64.rpm
[falko@server1 x86_64]$
다음과 같이 courier-imap을 설치할 수 있습니다:
sudo rpm -ivh courier-imap-4.8.1-2.15.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 1628
-rw-r–r– 1 root root 123448 May 25 18:06 courier-authlib-0.63.0-1.fc15.x86_64.rpm
-rw-r–r– 1 root root 265144 May 25 18:06 courier-authlib-debuginfo-0.63.0-1.fc15.x86_64.rpm
-rw-r–r– 1 root root 34876 May 25 18:06 courier-authlib-devel-0.63.0-1.fc15.x86_64.rpm
-rw-r–r– 1 root root 17448 May 25 18:06 courier-authlib-ldap-0.63.0-1.fc15.x86_64.rpm
-rw-r–r– 1 root root 13808 May 25 18:06 courier-authlib-mysql-0.63.0-1.fc15.x86_64.rpm
-rw-r–r– 1 root root 13020 May 25 18:06 courier-authlib-pgsql-0.63.0-1.fc15.x86_64.rpm
-rw-r–r– 1 root root 8276 May 25 18:06 courier-authlib-pipe-0.63.0-1.fc15.x86_64.rpm
-rw-r–r– 1 root root 34108 May 25 18:06 courier-authlib-userdb-0.63.0-1.fc15.x86_64.rpm
-rw-r–r– 1 root root 278520 May 25 18:50 maildrop-2.5.4-1.15.x86_64.rpm
-rw-r–r– 1 root root 685672 May 25 18:50 maildrop-debuginfo-2.5.4-1.15.x86_64.rpm
-rw-r–r– 1 root root 99924 May 25 18:50 maildrop-devel-2.5.4-1.15.x86_64.rpm
-rw-r–r– 1 root root 63968 May 25 18:50 maildrop-man-2.5.4-1.15.x86_64.rpm
[falko@server1 downloads]$
이제 다음과 같이 maildrop을 설치할 수 있습니다:
sudo rpm -ivh /root/rpmbuild/RPMS/x86_64/maildrop-2.5.4-1.15.x86_64.rpm필요한 모든 패키지를 컴파일하고 설치한 후, 다음을 입력하여 root로 다시 전환할 수 있습니다:
exit12 Postfix 설치
Postfix는 다음과 같이 설치할 수 있습니다:
yum install postfix그런 다음 Sendmail을 끄고 Postfix와 MySQL을 시작합니다:
chkconfig –levels 235 mysqld on
/etc/init.d/mysqld start
chkconfig sendmail off
chkconfig –levels 235 postfix on
/etc/init.d/sendmail stop
/etc/init.d/postfix start
13 Getmail 설치
Getmail은 다음과 같이 설치할 수 있습니다:
yum install getmail14 MySQL 비밀번호 설정 및 phpMyAdmin 구성
MySQL root 계정의 비밀번호를 설정합니다:
mysql_secure_installation [root@server1 ~]# 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): <– 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’라는 데이터베이스를 포함하고 있습니다.
이는 테스트 용도로만 사용되며 생산 환경으로 이동하기 전에 제거해야 합니다.
테스트 데이터베이스 및 접근을 제거하시겠습니까? [Y/n] <– ENTER
- 테스트 데이터베이스를 삭제하는 중…
… 성공! - 테스트 데이터베이스에 대한 권한을 제거하는 중…
… 성공!
권한 테이블을 다시 로드하면 지금까지 수행된 모든 변경 사항이 즉시 적용됩니다.
지금 권한 테이블을 다시 로드하시겠습니까? [Y/n] <– ENTER
… 성공!
정리 중…
모든 작업이 완료되었습니다!
위의 모든 단계를 완료했다면 MySQL 설치가 이제 보안이 유지되어야 합니다.
MySQL을 사용해 주셔서 감사합니다!
[root@server1 ~]#
이제 phpMyAdmin을 구성합니다. Apache 구성을 변경하여 phpMyAdmin이 localhost에서만 연결을 허용하지 않도록 합니다 (
vi /etc/httpd/conf.d/phpMyAdmin.conf| # phpMyAdmin - Web based MySQL browser written in php # # Allows only localhost by default # # But allowing phpMyAdmin to anyone other than localhost should be considered # dangerous unless properly secured by SSL Alias /phpMyAdmin /usr/share/phpMyAdmin Alias /phpmyadmin /usr/share/phpMyAdmin # |
그런 다음 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 비밀번호로 로그인할 수 있습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.