Postfix �ǥХå� Howto


����ʸ�����Ū

���Υɥ�����Ȥˤ�ʪ�����פä��褦�ˤ����ʤ��Ȥ��ˡ�Postfix �᡼�� �����ƥ�����ʤ�ǥХå�������ˡ���񤫤�Ƥ��ޤ���������ˡ�� Postfix �� ���̤ξܺ٤ʥ�����񤫤��뤳�Ȥ��顢������ȥ졼����ǥХå��δ������� �ǡ����ץ�������ư�������Ȥޤ��͡��Ǥ���

����ʸ��Ǥϡ�Postfix main.cf ����� master.cf ����ե������ /etc/postfix �ˤ���Ȳ��ꤷ�ޤ����ޥ����ǤΤ��Υǥ��쥯�ȥ�μºݤ� ���򸫤Ĥ���ˤϡ�"postconf config_directory" ���ޥ�ɤ��Ȥ��ޤ���

�ǥХå��Υƥ��˥å�����������������󤹤�ȼ����̤�Ǥ�:

�ȥ�֥�����餫��������õ��

Postfix �����Ƥ������μ��Ԥ�����������ե�����˵�Ͽ���ޤ����ե������ �̾� /var/log/maillog �ޤ��� /var/log/mail �ȸƤФ�ޤ�; ���Τʥѥ�̾�� /etc/syslog.conf �ե�������������ޤ���

Postfix ���᡼���������ʤ��ä����������ʤ��ä���硢�ǽ�λŻ��� Postfix ��������Ư���ʤ��褦�ˤ������顼��õ�����ȤǤ�:

% egrep '(warning|error|fatal|panic):' /some/log/file | more

����: �Ǥ���פʥ�å������Ͻ��ϤΡֺǽ�פζ᤯�Ǥ�����˽ФƤ��륨�顼 ��å������Ϥ��ޤ����Ω���ޤ���

���줾��������������ʲ��˼����ޤ�:

�������� Postfix ��ǥХå�����

Postfix �С������ 2.1 �ʹߤǤϡ�Postfix �˥ǥХå��ѥ᡼��������ݡ��Ȥ� ���������뤳�Ȥ��Ǥ��ޤ��������Υ�ݡ��Ȥϥ��ɥ쥹�񤭴����䥨���ꥢ��Ÿ���� ž�����������/�����ԥ��ɥ쥹�򼨤������ǤϤʤ����᡼��ܥå����ؤ������� �� Postfix ���ޥ�ɤؤ���������⡼�� SMTP �����Фα����ʤɤ⼨���ޤ���

Postfix �ϥǥХå��Ѥ�2����Υ᡼��������ݡ��Ȥ��������뤳�Ȥ��Ǥ��ޤ�:

�����Υ�ݡ��Ȥˤ� Postfix ��������������Ȥ������������� �ޤޤ�ޤ��������ϥǡ����ץ������Ȥ���ư�����桼���Ȥ�ľ�� �ܿ�������ʤ����ᡢ��̤ϥƥ��ȥ�å������������Ԥ˥᡼��Ȥ��� �����ޤ��������Υ�ݡ��Ȥν񼰤��̾�����������ΤȻ��¾�Ʊ�� �񼰤Ǥ���

�᡼���������֥�ݡ��Ȥξܺ٤���ϡ� ADDRESS_REWRITING_README �ɥ�����ȤκǸ�ˤ��� �ǥХå���������� �򻲾Ȥ��Ƥ���������

master.cf �� chroot ����̵���ˤ��Ƥߤ�

�褯����ְ㤤�ϡ�chroot �Ķ����ۤ���Τ�ɬ�פ����ƤΥ��ƥåפ� Ƨ�ޤ��� master.cf �ե������ chroot ư���ͭ���ˤ��Ƥ��ޤ����ȤǤ��� ��������ȡ����ޤ��ޤʥե����뤬���Ĥ���ʤ������ Postfix �ǡ���� �ץ��������Ԥ����Ƥ��ޤ��ޤ���

�ʲ������ chroot ��̵�������ꤷ�� SMTP �����Ф򼨤��Ƥ��ޤ�:

/etc/postfix/master.cf:
    # =============================================================
    # service type  private unpriv  chroot  wakeup  maxproc command
    #               (yes)   (yes)   (yes)   (never) (100)
    # =============================================================
    smtp      inet  n       -       n       -       -       smtpd

master.cf ��Ĵ�٤ơ�chroot ư�̵���ˤʤäƤ��ʤ��ץ�������õ���ޤ��� ͭ���ˤʤäƤ����Τ����ä��顢master.cf �ե�����Υ��ԡ�����¸��������� ����ȥ�������ޤ���"postfix reload" ���ޥ�ɤ�¹Ԥ���������꤬ �ʤ��ʤäƤ��뤳�Ȥ��ǧ���ޤ���

chroot ư���̵���ˤ��뤳�Ȥ����꤬�ʤ��ʤä��餪��ǤȤ����ۤȤ�ɤ� �����ȤǤϤ�����ˡ�� Postfix ��ư����³����Τ�Ŭ���Ƥ��ޤ���chroot ���� ư�����Τ������ʤ顢 Postfix �Ǥ� chroot ư��ν�����ˡ�˴ؤ������� Postfix BASIC_CONFIGURATION_README �ե�����ǻ��Ȥ��Ƥ���������

����� SMTP ��³���Ф��ƾ�Ĺ�ʥ�������

/etc/postfix/main.cf �ǡ� debug_peer_list �ѥ�᡼���˥�⡼�ȤΥ�����̾�ޤ��� ���ɥ쥹��ꥹ�ȥ��åפ��ޤ����㤨�С��롼�ץХå����󥿡��ե��������顢 �⤷���ϥ롼�ץХå����󥿡��ե������ؤ���³���Ф������̤ξ���򥽥եȥ������� syslog �ǡ����ǥ�����Ͽ����褦�ˤ��뤿��ˤϡ����Τ褦�ˤ��ޤ�:

/etc/postfix/main.cf:
    debug_peer_list = 127.0.0.1

��İʾ�Υۥ��Ȥ�ɥᥤ�󡢥��ɥ쥹��net/masks �����Ǥ��ޤ����ѹ��� ������ͭ���ˤ��뤿��ˤϡ�"postfix reload" ���ޥ�ɤ�¹Ԥ��ޤ���

�ͥåȥ�����˥ե��� SMTP ���å�����Ͽ����

������Ǥ� tcpdump��Ȥ��ޤ������ä�Ͽ���뤿��ˡ� "-s" ���ץ����ǽ�ʬ���礭�ʥХåե�����ꤹ��ɬ�פ�����ޤ����������ʤ��ȡ� �ѥ��åȥڥ������ɤΰ����⤷�������Ƥ򼺤����Ȥˤʤ�ޤ���

# tcpdump -w /file/name -s 2000 host example.com and port 25

����򤷤Ф餯ư����������ä��� Ctrl-C �ǻߤ�ޤ����ǡ����򸫤�ˤ� �Х��ʥ�ӥ塼����ethereal ��Ȥ����� ftp://ftp.porcupine.org/pub/debugging/ �������� tcpdumpx �桼�ƥ���ƥ���Ȥ��ޤ���

Postfix �ǡ����ץ�������������ˤ���

/etc/postfix/master.cf �����򤷤��ǡ���������˰�İʾ�� "-v" ���ץ�����Ĥ��� "postfix reload" �ȥ����פ��ޤ��� ��������̤γ�ư�� syslog �ǡ����ǥ����˵�Ͽ���ޤ�����:

/etc/postfix/master.cf:
    smtp      inet  n       -       n       -       -       smtpd -v

����� Postfix SMTP �����Ф�������ˤ��ޤ������ɥ쥹�񤭴����Ǥ������ ���Ǥ���ˤϡ�"-v" ���ץ����� cleanup(8) �� trivial-rewrite(8)�ǡ����ˡ��᡼�� �������������Ǥ���ˤϡ�"-v" ���ץ����� qmgr(8) �ޤ��� oqmgr(8) ���塼�ޥ͡����㡢�⤷���� lmtp(8)�� local(8)��pipe(8)�� smtp(8)��virtual(8) ��������������Ȥ˻��ꤷ�ޤ���

Postfix �ǡ����ץ�������ޥ˥奢��ǥȥ졼������

¿���Υ����ƥ�Ǥϡ������ƥॳ����ȥ졼����Ȥä�ư���Ƥ���ץ������� Ĵ�٤뤳�Ȥ��Ǥ��ޤ����㤨��:

# trace -p process-id (SunOS 4)
# strace -p process-id (Linux and many others)
# truss -p process-id (Solaris, FreeBSD)
# ktrace -p process-id (generic 4.4BSD)

��껲�ͤˤʤ�Τϥ����ƥ�饤�֥�ꥳ����Υȥ졼���Ǥ�����:

# ltrace -p process-id (Linux, FreeBSD �� BSD/OS �ˤ�ݡ��ƥ��󥰤���Ƥ��ޤ�)
# sotruss -p process-id (Solaris)

�ܺ٤ϥ����ƥ�Υɥ�����Ȥ򻲾Ȥ��Ƥ���������

ư���Ƥ���ץ������Υȥ졼���ϥץ����������褦�Ȥ��Ƥ��뤳�Ȥ˴ؤ��� �ȼ�ʾ����Ϳ���ޤ�����Υ��������˵��Ҥ���Ƥ���褦�ˡ������ ���󥿥饯�ƥ��֥ǥХå��ץ�������ư��������������Τ�Ʊ�����餤�� �̤ξ���Ǥ���

Postfix �ǡ����ץ�������ưŪ�˥ȥ졼������

Postfix �ϥǡ����ץ������ε�ư���ˤ��ĤǤ⥳����ȥ졼�������դ��� ���Ȥ��Ǥ��ޤ���������ȥ졼���ˤϤ����Ĥ��μ��ब����ޤ���

  1. trace �� truss��strace��ktrace �Τ褦�� ������ȥ졼���������ϥץ������ȥ����ͥ�δ֤��̿���ɽ�����ޤ���

  2. sotruss �� ltrace �Τ褦�ʥ饤�֥�ꥳ����ȥ졼���� �����ϥ饤�֥��롼����Υ������ɽ�������ץ���������ǵ��������Ȥ��� ���뤳�Ȥ���狼��䤹�������ޤ���

-D ���ץ����� /etc/postfix/master.cf �ε��路�����ޥ�ɤ� �ä��ޤ����㤨��:

/etc/postfix/master.cf:
    smtp      inet  n       -       n       -       -       smtpd -D

���򤷤�������ȥ졼����ƤӽФ������ debugger_command ������Խ� ���ޤ����㤨��:

/etc/postfix/main.cf:
    debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin;
         (truss -p $process_id 2>&1 | logger -p mail.info) & sleep 5

"postfix reload" �ȥ����פ��ơ������ե������ƻ뤷�ޤ���

���󥿥饯�ƥ��� xxgdb �ǥХå��ǥǡ����ץ������� ���餻��

Postfix �ޥ���� X Windows �����󥹥ȡ��뤵��Ƥ���ʤ顢xxgdb �Τ褦�ʥ��󥿥饯�ƥ��֥ǥХå��������Ǥ���

xxgdb ��ƤӽФ������ /etc/postfix/main.cf �� debugger_command ������� �Խ����ޤ�:

/etc/postfix/main.cf:
    debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         xxgdb $daemon_directory/$process_name $process_id & sleep 5

gdb �����ޥ�ɥ������ѥ��ˤ��뤳�Ȥ��ǧ����X ������������ȥ����뤬 Ư���褦�� XAUTHORITY �򥨥����ݡ��Ȥ��Ƥ����������㤨��

% setenv XAUTHORITY ~/.Xauthority (csh ʸˡ)
$ export XAUTHORITY=$HOME/.Xauthority (sh ʸˡ)

-D ���ץ����� /etc/postfix/master.cf �ε��路���ǡ����˲ä��ޤ��� �㤨��:

/etc/postfix/master.cf:
    smtp      inet  n       -       n       -       -       smtpd -D

Postfix �����ƥ��ߤ�ơ����줫�鵯ư���Ƥ�������������� Postfix �� ������ XAUTHORITY ����� DISPLAY �����ư���Τ�ɬ�פǤ���

���路���ǡ����ץ���������ư����뤿�Ӥˡ��ǥХå�������ɥ����ݥå� ���åפ��������äƤ��뤳�Ȥ�ܺ٤˴ƻ�Ǥ��ޤ���

�󥤥󥿥饯�ƥ��֥ǥХå��β��ǥǡ����ץ������� ���餻��

Postfix �ޥ���� X Windows �򥤥󥹥ȡ��뤷�Ƥ��ʤ��ä��ꡢ���󥿥饯�ƥ��� �ǥХå��˴���Ƥ��ʤ��ΤǤ���С�gdb �ǥХå����󥤥󥿥饯�ƥ��� �⡼�ɤ�ư�����Ƥߤơ��ץ�����������å��夷���Ȥ��˥����å��ȥ졼����ɽ�� �����ޤ���

gdb �ǥХå���ƤӽФ�����ˤ� /etc/postfix/main.cf �� debugger_command ����� �Խ����ޤ�:

/etc/postfix/main.cf:
    debugger_command =
        PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont;
        echo where) | gdb $daemon_directory/$process_name $process_id 2>&1
        >$config_directory/$process_name.$process_id.log & sleep 5

-D ���ץ����� /etc/postfix/master.cf �ε��路���ǡ����˲ä��ޤ��� �㤨��:

/etc/postfix/master.cf:
    smtp      inet  n       -       n       -       -       smtpd -D

������ѹ���ͭ���ˤ��뤿��� "postfix reload" �򥿥��פ��� ����������

���路���ǡ����ץ���������ư����뤿�Ӥˡ��ǡ����̾�ȥץ����� ID ���� ̾�����դ���줿���ϥե����뤬����ޤ� (�㤨�� smtpd.12345.log)���ץ������� ����å��夹��ȡ������å��ȥ졼�� (��"where" ���ޥ�ɤ���ν���) �� �����ե�����˽񤫤�ޤ���

�Թ����ʿ�����

Postfix �ˤ�ä�ɽ����뿶���񤤤������������ɤ˹��ʤ���礬���� ����ޤ����ʤ���Ԥˤ�ä�Ϳ����줿�ؼ�����ץ�����ब����ΤǤ��礦���� 2�Ĥβ�ǽ��������ޤ���

�ɤ���ξ��⡢�¹Ԥ��줿�ץ����������ꤵ�줿ư��򤹤�ץ������Ǥ� �ʤ����ᡢ���Ǥⵯ�������ޤ���

3���ܤβ�ǽ���⤢��ޤ�:

�ϡ��ɥ�������Ϣ���Զ��ϡ��Ÿ�������ľ�����ꥷ���ƥ��Ƶ�ư����ȡ� �����Ƥ��ξ������Ʊ���褦�ˤϺƸ����ޤ��󡣰����ϡ��ɥ������ˤĤ��� Postfix �� �Ǥ��뤳�ȤϤۤȤ�ɤ���ޤ��󡣺���¥��ꥨ�顼�򸡽ФǤ���ϡ��ɥ������� �Ȥ��褦�ˤ��Ƥ��������������Ǥʤ���С�Postfix �ϥӥåȥ��顼��������Τ� �����ԤäƤ�������Ǥ������פʥ����ƥ����ʪ�Υϡ��ɥ������ǹ������٤��Ǥ���

����ѥ��餬���顼����ȡ��ץ�����ब�¹Ԥ���뤿�Ӥ����꤬�Ƹ����ޤ��� ����ѥ���Υ��顼�ϥ����ɺ�Ŭ���ǺǤ�褯������ޤ����Ÿ�������ľ������ �����ƥ��Ƶ�ư���Ƥ����꤬�Ƹ������硢��Ŭ����̵���ˤ��� Postfix �� �ƹ��ۤ��ƺ�Ŭ���ǰ㤤���ǤƤ��ʤ�����ǧ������ͤ�����ޤ���

��Ŭ����̵���ˤ��� Postfix �򥳥�ѥ��뤹��ˤ�:

% make tidy
% make makefiles OPT=

����ϥ���ѥ���˺�Ŭ�����׵ᤷ�ʤ� Makefile �Υ��åȤ��������ޤ���

��ö makefile �����åȥ��åפ��줿�顢���եȥ��������ۤ��ޤ�:

% make
% su
# make install

���꤬�ʤ��ʤ�С����������٥���˽����������֤Ǥ���

[email protected] ���������𤹤�

[email protected] �˻��ä��Ƥ���ͤ����ϡ��äˡ֤��ʤ����� ��ʬ�ʾ����Ф��ФȤƤ�����ˤʤ�ޤ��������Υܥ��ƥ����οͤ����� ���ǽ����Ƥ���ޤ��������λ��֤ϸ¤��Ƥ��뤳�Ȥ�˺��ʤ��Ǥ���������

�������𤹤�ݤˤϡ��ʲ��ξ����ޤ��褦�ˤ��Ƥ���������