메일 서버 구성 · 5 min read · Nov 13, 2025
ISP 메일 서버를 가상 사용자/도메인으로 Centos 5.0에서 Postfix, Dovecot, MySQL, phpMyAdmin, TLS/SSL로 구성하는 방법 - 페이지 3
구성 테스트 및 검증:
Postfix MySQL 지원 확인
postconf -mbtree
cidr
environ
hash
ldap
mysql
is
proxy
regexp
static
unixMySQL이 나타나지 않으면 설치를 확인하고 Postfix를 다시 컴파일하십시오.
Postfix SMTP AUTH 지원 확인
telnet mail.example.co.tz 25(S: = 서버, C: = 클라이언트):
S: 220 mail.example.co.tz ESMTP Postfix
C: EHLO example.co.tz
S: 250-mail.example.co.tz
S: 250-PIPELINING
S: 250-SIZE 10240000
S: 250-VRFY
S: 250-ETRN
S: 250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 GSSAPI
S: 250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5 GSSAPI
S: 250-XVERP
S: 250 8BITMIME
C: quit두 개의 새로운 줄이 보입니까?
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 GSSAPI
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5 GSSAPI이것들은 Postfix가 SMTP AUTH 사용을 제공할 때 발행하는 줄입니다.
Postfix의 TLS 지원 확인
telnet mail.example.co.tz 25이 섹션은 NON-RPM 및 RPM 설치 모두에 적용됩니다.
우리의 HOWTO에서 smtpd 데몬은 /usr/libexec/postfix/에 있습니다. 따라서 명령줄에서 다음을 수행합니다:
ldd /usr/libexec/postfix/smtpdlibsasl.so.7 => /usr/lib/libsasl.so.7 (0x4001e000)
libssl.so.2 => /lib/libssl.so.2 (0x4002a000)
libcrypto.so.2 => /lib/libcrypto.so.2 (0x40057000)
libdb-3.2.so => /lib/libdb-3.2.so (0x4011a000)
libnsl.so.1 => /lib/libnsl.so.1 (0x401c1000)
libresolv.so.2 => /lib/libresolv.so.2 (0x401d7000)
libgdbm.so.2 => /usr/lib/libgdbm.so.2 (0x401ea000)
libc.so.6 => /lib/i686/libc.so.6 (0x401f1000)
libdl.so.2 => /lib/libdl.so.2 (0x4032c000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x40330000)
libpam.so.0 => /lib/libpam.so.0 (0x4035d000)
libgssapi_krb5.so.2 => /usr/kerberos/lib/libgssapi_krb5.so.2 (0x40365000)
libkrb5.so.3 => /usr/kerberos/lib/libkrb5.so.3 (0x40378000)
libk5crypto.so.3 => /usr/kerberos/lib/libk5crypto.so.3 (0x403d1000)
libcom_err.so.3 => /usr/kerberos/lib/libcom_err.so.3 (0x403e2000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)smtpd 데몬은 TLS를 지원합니다. 출력에서 libssl을 찾을 수 없다면 Postfix를 정적 라이브러리로 빌드했거나 TLS로 Postfix를 빌드하는 데 실패한 것입니다. 이 경우 Postfix SOURCE를 재구성하고 다시 컴파일하거나 재빌드해야 하며, /etc/postfix/의 데이터를 백업하고 새로 컴파일된 Postfix 바이너리를 재설치해야 합니다.
다음으로 TLS 세션을 시작할 수 있는지 확인합니다. 서버에 telnet을 연결하고 Postfix가 기능을 광고할 때 STARTTLS 문자열이 표시되는지 확인합니다. 그런 다음 STARTTLS를 입력하고 Postfix가 TLS를 시작할 준비가 되었음을 응답할 때까지 기다립니다. 성공적인 telnet 세션은 다음과 같아야 합니다:
telnet mail.example.co.tz 25S: 220 mail.example.co.tz ESMTP Postfix (1.1.5)
C: EHLO example.co.tz
S: 250-mail.example.co.tz
S: 250-PIPELINING
S: 250-SIZE 10240000
S: 250-VRFY
S: 250-ETRN
S: 250-STARTTLS - -TLS 지원
S: 250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 GSSAPI
S: 250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5 GSSAPI
S: 250-XVERP
S: 250 8BITMIME
C: STARTTLS
S: 220 Ready to start TLS로컬 머신에서 테스트 메일 보내기
먼저 로컬호스트에서 사용자 test에게 메일을 보낼 수 있는지 확인합니다. 이것이 우리가 가진 가장 간단한 테스트 케이스입니다. 성공하면 Postfix 서버에서 실행되지 않는 메일 클라이언트로 test에게 메일을 보내는 것으로 진행합니다.
mail [email protected]Subject: Test from localhost
Test #1
.
Cc:
[[email protected]]#로컬 머신에서 테스트 메일 배달 확인
pop3에 telnet을 연결하여 Postfix가 메일을 배달했는지 확인합니다:
telnet example.co.tz pop3Trying 192.168.49.81...
Connected to mail.example.co.tz (192.168.49.81).
Escape character is '^]'.
+OK Dovecot ready.
user [email protected]
+OK
pass mwamaLis
+OK Logged in.
list
+OK 1 messages:
1 429
.
retr 1
+OK 429 octets
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: by mail.example.co.tz (Postfix, from userid 500)
id 74408C0AC6; Thu, 19 Jun 2008 10:47:52 +0300 (EAT)
To: [email protected]
Subject: Test from local
Message-Id: <[email protected]>
Date: Thu, 19 Jun 2008 10:47:52 +0300 (EAT)
From: [email protected] (User)Test #1
.
]^ [[email protected]]$추가 테스트 케이스는 부록 B를 참조하십시오.
마지막으로 브라우저를 열고 http://mail.example.co.tz로 이동하여 사용자 이름과 비밀번호를 입력한 다음 로그인 버튼을 클릭합니다. 그리고 메일 서버와 함께 즐기십시오.
phpMyAdmin 설치 및 구성:
PhpMyAdmin은 MySQL 서버의 관리를 돕기 위해 PHP로 작성된 유틸리티로, 로컬 또는 WWW를 통해 사용할 수 있습니다. phpMyAdmin 프로젝트의 사람들의 노력과 헌신을 통해 유지 관리되며 현재 47개 언어로 제공됩니다.
설치:
phpMyAdmin 패키지를 다운로드하고 추출합니다. 파일을 필요한 위치로 이동하고 이름을 더 쉽게 변경합시다;
mv phpMyAdmin-2.11.6-english /var/www/html/phpadminphpadmin 루트 디렉토리로 이동합니다:
cd phpadmin/이제 config.sample.inc.php 파일의 이름을 바꾸고 편집하여 설정에 맞게 작동하도록 해야 합니다.
cp -p config.sample.inc.php config.inc.phpvi 또는 선호하는 편집기를 사용하여 config.inc.php를 열고 다음 줄을 찾아 설정에 맞게 편집합니다;
vi config.inc.php다음 줄을 편집하십시오:
비밀번호와 같은 단어 또는 구문을 입력하십시오; 예:
$cfg['blowfish_secret'] = 'bongo';
$cfg['Servers'][$i]['controluser'] = 'pma'; --MySQL 사용자 이름
$cfg['Servers'][$i]['controlpass'] = 'pmapass'; --MySQL 비밀번호파일을 저장하고 종료합니다.
/etc/httpd/conf/httpd.conf에 다음 줄을 추가하여 가상 별칭을 만듭니다.
vi /etc/httpd/conf/httpd.confAlias /phpadmin /var/www/html/phpadmin
Order allow,deny
Allow from all
이후 브라우저를 열고 주소 표시줄에 http://127.0.0.1/phpadmin을 입력합니다. 사용자 이름과 비밀번호를 입력하고 사용을 시작하십시오. 사용자, 도메인 및 별칭을 생성하기 위해 phpMyAdmin을 사용하여 즐기십시오.
부록 A:
컴파일러 옵션:
Postfix가 Makefile에서 필요로 하는 옵션은 CCARGS와 같은 환경 변수에 정의됩니다.
CCARGS: 컴파일러에 추가 인수를 제공합니다. 컴파일러가 특별한 옵션을 허용하거나 지원 파일이 기본 디렉토리에 위치하지 않는 경우 이 변수를 사용하여 해당 옵션을 나타냅니다. 헤더 파일의 표준 위치는 /usr/include 디렉토리입니다. 헤더 파일이 다른 곳에 위치한 경우 컴파일러에 해당 파일을 찾을 위치를 알려야 합니다. -I 컴파일러 옵션은 컴파일러가 헤더 파일을 찾을 수 있는 추가 디렉토리를 지정하는 데 사용됩니다.
CCARGS='-I/usr/local/include/'각 추가 디렉토리에 대해 추가 -I 옵션을 사용하십시오.
Postfix는 빌드 중에 시스템에서 사용할 수 있는 라이브러리나 기타 리소스에 따라 조건부 컴파일을 사용합니다. 시스템에 대해 발견한 내용이나 선택한 옵션에 따라 특정 매크로를 정의합니다. -D 옵션은 Postfix를 컴파일할 때 매크로를 정의하는 방법을 제공합니다. Postfix의 추가 패키지는 빌드할 때 포함하도록 Postfix에 특정 매크로를 정의해야 합니다.
예를 들어 MySQL 지원을 포함하려면 HAS_MYSQL 매크로를 정의합니다:
CCARGS='-DHAS_MYSQL'링커 옵션은 AUXLIBS 변수에 설정됩니다. Postfix가 개체 파일을 컴파일한 후, 필요한 라이브러리와 함께 실행 파일로 연결합니다. 시스템 라이브러리의 표준 위치는 /usr/lib입니다. 링커에 추가 디렉토리에서 라이브러리를 검색하도록 지시하려면 -L 옵션을 사용하십시오:
AUXLIBS='-L/usr/local/lib'어떤 특정 라이브러리를 링크할지 링커에 알려야 합니다. -l 옵션은 특정 라이브러리의 이름을 지정하는 데 사용됩니다. 라이브러리 파일은 표준 위치에 있거나 -L 옵션으로 지정된 디렉토리에 있어야 합니다. 라이브러리 아카이브 파일은 lib로 시작하고, 그 다음 이름이 오고, 확장자는 일반적으로 정적 라이브러리의 경우 .a, 공유 객체 또는 공유 라이브러리의 경우 .so 또는 .sl입니다. -l 옵션을 사용할 때는 초기 lib와 라이브러리 파일의 확장자를 생략합니다. 예를 들어 라이브러리 파일이 libmysqlclient.a인 MySQL 클라이언트 라이브러리와 링크하려면 -l 옵션은 다음과 같이 지정됩니다:
AUXLIBS='-L/usr/local/lib -lmysqlclient부록 B
원격 사용자에게 메일 전달 (릴레이)
우리는 telnet mail.example.co.tz 25를 사용합니다. 원격 머신에서 192.168.49.81의 포트 25로 telnet을 연결합니다. 성공적으로 연결되면 Postfix가 시작되고 smtpd 배너로 인사합니다. (연결에 실패하면 방화벽 테이블 규칙이나 Postfix가 실행 중인지 확인하십시오.) 연결되면 다음 명령을 실행합니다.
(S: = 서버, C: = 클라이언트):
S: 220 mail.example.co.tz ESMTP Postfix
C: EHLO example.co.tz
S: 250-mail.example.co.tz
S: 250-PIPELINING
S: 250-SIZE 10240000
S: 250-VRFY
S: 250-ETRN
S: 250-XVERP
S: 250 8BITMIME
C: mail from:< [email protected] >
S: 250 Ok
C: rcpt to:< [email protected] >
S: 250 Ok
C: data
S: 354 End data with
C: Testmail relaying mail from [email protected] to [email protected]
C: Test #3
C: .
S: 250 Ok: queued as 84BA64078A
C: quit
S: 221 Bye
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.