서버 설정 · 2 min read · Oct 07, 2025
Postfix, Courier 및 MySQL을 사용한 가상 사용자 및 도메인 (Debian Etch) - 페이지 3
6 Saslauthd 구성
먼저 실행합니다.
mkdir -p /var/spool/postfix/var/run/saslauthd그런 다음 /etc/default/saslauthd를 편집합니다. START를 yes로 설정하고 OPTIONS=”-c” 줄을 OPTIONS=”-c -m /var/spool/postfix/var/run/saslauthd -r”로 변경합니다:
vi /etc/default/saslauthd| # # saslauthd 데몬에 대한 설정 # # saslauthd가 시작 시 자동으로 실행되어야 합니까? (기본값: 아니오) START=yes # saslauthd가 사용할 인증 메커니즘은 무엇입니까? (기본값: pam) # # 이 Debian 패키지에서 사용할 수 있는 옵션: # getpwent -- getpwent() 라이브러리 함수 사용 # kerberos5 -- Kerberos 5 사용 # pam -- PAM 사용 # rimap -- 원격 IMAP 서버 사용 # shadow -- 로컬 shadow 비밀번호 파일 사용 # sasldb -- 로컬 sasldb 데이터베이스 파일 사용 # ldap -- LDAP 사용 (구성은 /etc/saslauthd.conf에 있음) # # 한 번에 하나의 옵션만 사용할 수 있습니다. 자세한 내용은 saslauthd 매뉴얼 페이지를 참조하십시오. # # 예: MECHANISMS="pam" MECHANISMS="pam" # 이 메커니즘에 대한 추가 옵션. (기본값: 없음) # 메커니즘별 옵션에 대한 정보는 saslauthd 매뉴얼 페이지를 참조하십시오. MECH_OPTIONS="" # 몇 개의 saslauthd 프로세스를 실행해야 합니까? (기본값: 5) # 값이 0이면 각 연결에 대해 새 프로세스를 포크합니다. THREADS=5 # 기타 옵션 (기본값: -c) # 이러한 옵션에 대한 정보는 saslauthd 매뉴얼 페이지를 참조하십시오. # # postfix 사용자에 대한 예: "-c -m /var/spool/postfix/var/run/saslauthd" # 참고: /usr/share/doc/sasl2-bin/README.Debian을 참조하십시오. OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r" |
그런 다음 /etc/pam.d/smtp 파일을 생성합니다. 다음 두 줄만 포함되어야 합니다 (정확한 데이터베이스 세부정보를 입력해야 합니다):
vi /etc/pam.d/smtp| auth required pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1 account sufficient pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1 |
다음으로 /etc/postfix/sasl/smtpd.conf 파일을 생성합니다. 다음과 같아야 합니다:
vi /etc/postfix/sasl/smtpd.conf| pwcheck_method: saslauthd mech_list: plain login allow_plaintext: true auxprop_plugin: mysql sql_hostnames: 127.0.0.1 sql_user: mail_admin sql_passwd: mail_admin_password sql_database: mail sql_select: select password from users where email = '%u' |
그런 다음 Postfix와 Saslauthd를 재시작합니다:
/etc/init.d/postfix restart
/etc/init.d/saslauthd restart7 Courier 구성
이제 Courier에게 MySQL 데이터베이스에 대해 인증해야 한다고 알려야 합니다. 먼저 /etc/courier/authdaemonrc를 편집하고 authmodulelist의 값을 다음과 같이 변경합니다:
vi /etc/courier/authdaemonrc| [...] authmodulelist="authmysql" [...] |
그런 다음 /etc/courier/authmysqlrc의 백업을 만들고 이전 파일을 비웁니다:
cp /etc/courier/authmysqlrc /etc/courier/authmysqlrc_orig
cat /dev/null > /etc/courier/authmysqlrc그런 다음 /etc/courier/authmysqlrc를 열고 다음 줄을 추가합니다:
vi /etc/courier/authmysqlrc| MYSQL_SERVER localhost MYSQL_USERNAME mail_admin MYSQL_PASSWORD mail_admin_password MYSQL_PORT 0 MYSQL_DATABASE mail MYSQL_USER_TABLE users MYSQL_CRYPT_PWFIELD password #MYSQL_CLEAR_PWFIELD password MYSQL_UID_FIELD 5000 MYSQL_GID_FIELD 5000 MYSQL_LOGIN_FIELD email MYSQL_HOME_FIELD "/home/vmail" MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') #MYSQL_NAME_FIELD MYSQL_QUOTA_FIELD quota |
그런 다음 Courier를 재시작합니다:
/etc/init.d/courier-authdaemon restart
/etc/init.d/courier-imap restart
/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop restart
/etc/init.d/courier-pop-ssl restart다음 명령을 실행하여
telnet localhost pop3POP3 서버가 제대로 작동하는지 확인할 수 있습니다. +OK Hello there.를 반환해야 합니다. (Linux 셸로 돌아가려면 quit를 입력하십시오.)
server1:/etc/postfix# telnet localhost pop3
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
+OK Hello there.
quit
+OK Better luck next time.
Connection closed by foreign host.8 /etc/aliases 수정
이제 /etc/aliases를 열어야 합니다. postmaster가 root를 가리키고 root가 자신의 사용자 이름 또는 이메일 주소를 가리키도록 확인하십시오. 예를 들어 다음과 같이:
vi /etc/aliases| [...] postmaster: root root: [email protected] [...] |
/etc/aliases를 수정할 때마다 다음 명령을 실행해야 합니다.
newaliases그런 다음 Postfix를 재시작합니다:
/etc/init.d/postfix restart새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.