


ユーザーがメールパスワードの変更ができるようにするpoppassdをCentOS 7にインストールしてみました。
今回はpam認証に対応したpoppassd-cetiで検証です。
kravietz/poppassd-ceti
https://github.com/kravietz/poppassd-ceti
環境
・CentOS Linux release 7.3.1611 (Core)
・Kernel:3.10.0-514.6.2.el7.x86_64
- 開発環境のインストール
- 必要なモジュールのインストール
- xinetdのインストール
- git clone
- autoreconf
- configure
- make
- make install
- 設定ファイル作成
- /etc/pam.d/poppassd
- /etc/xinetd.d/poppassd
- /etc/servicesの確認
- xinetdの起動
- 動作確認
1 |
# yum -y groupinstall "Development Tools" |
1 |
# yum -y install pam-devel |
1 |
# yum -y install xinetd |
1 2 3 4 5 6 |
# git clone https://github.com/kravietz/poppassd-ceti.git Cloning into 'poppassd-ceti'... remote: Counting objects: 159, done. remote: Total 159 (delta 0), reused 0 (delta 0), pack-reused 159 Receiving objects: 100% (159/159), 85.61 KiB | 0 bytes/s, done. Resolving deltas: 100% (87/87), done. |
1 2 3 4 5 |
# cd poppassd-ceti # autoreconf -I m4 -i configure.ac:2: installing './install-sh' configure.ac:2: installing './missing' Makefile.am: installing './depcomp' |
1 |
# ./configure |
1 2 3 4 5 6 7 |
# make make all-am make[1]: Entering directory `/root/poppassd-ceti' gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-all -Wl,-z,relro -Wl,-z,now -fPIE -pie -Wall -MT poppassd.o -MD -MP -MF .deps/poppassd.Tpo -c -o poppassd.o poppassd.c mv -f .deps/poppassd.Tpo .deps/poppassd.Po gcc -g -O2 -fstack-protector-all -Wl,-z,relro -Wl,-z,now -fPIE -pie -Wall -o poppassd poppassd.o -lpam make[1]: Leaving directory `/root/poppassd-ceti' |
1 2 3 4 5 6 7 |
# make install make[1]: Entering directory `/root/poppassd-ceti' /usr/bin/mkdir -p '/usr/local/sbin' /usr/bin/install -c poppassd '/usr/local/sbin' /usr/bin/mkdir -p '/usr/local/share/doc/poppassd-ceti' /usr/bin/install -c -m 644 README.md '/usr/local/share/doc/poppassd-ceti' make[1]: Leaving directory `/root/poppassd-ceti' |
サイトには/etc/pam.d/poppassd, /etc/xinetd.d/poppassdも同時にインストールされるように記載があたのですが、インストールされなかったので作成します。
1 2 3 4 5 |
# vi /etc/pam.d/poppassd # cat /etc/pam.d/poppassd auth include system-auth account include system-auth password include system-auth |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# vi /etc/xinetd.d/poppassd # cat /etc/xinetd.d/poppassd service poppassd { disable = no socket_type = stream wait = no user = root server = /usr/local/sbin/poppassd log_on_success += USERID log_on_failure += USERID only_from = 127.0.0.1 } |
1 2 3 4 5 6 7 8 |
# grep poppassd /etc/services # unfortunately the poppassd (Eudora) uses a port which has already # been assigned to a different service. We list the poppassd as an #3com-tsmux 106/tcp poppassd #3com-tsmux 106/udp poppassd poppassd 106/tcp # Eudora poppassd 106/udp # Eudora |
1 2 |
# systemctl enable xinetd # systemctl start xinetd |
パスワードが変更されると思います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# telnet 127.0.0.1 106 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 200 poppassd user guest 200 Your password please pass PassWord 200 Your new password please newpass !QAzx2WsX# 200 Password changed quit 200 Bye Connection closed by foreign host. |
パスワードポリシーを満たしていないとエラーになります。
このあたりはpoppassdを利用するアプリがエラー処理をするしか無いですね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# telnet 127.0.0.1 106 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 200 poppassd user guest 200 Your password please pass PassWord 200 Your new password please newpass password123 500 PAM error: BAD PASSWORD: The password fails the dictionary check - it is based on a dictionary word 500 PAM error: Password change aborted. 500 PAM error: Password change aborted. 500 PAM error: Password change aborted. 500 Server pam_chauthtok error 11, password not changed Connection closed by foreign host. |
uucpでnetnewsとemailを転送していた会社員時代に、EudoraのようなWindowsアプリを扱っていました。懐かしい(^^