Armadilloフォーラム

linux-pamについて

kz21_ym

2021年4月20日 13時40分

お世話になります。
atmarik-distでlinux-pamを利用することはできるでしょうか?
atmark-distのsshdでpamを使った認証を考えています。
menuconfig の切替えなどで利用可能でしょうか?

現在下記のことはやってみました。
menuconfigの
Library Configuration --->で
[*] Build libPAM を有効にする
これで romfs/lib に libpam.so.0 が出力されているのは確認しています。

romfs/sbin/sshd の方はarm-linux-gnueabi-readelf で確認しましたが
libpam.so.0 はリンクされていないようでした。

また、opensshのconfiguer に --whith-pamというオプションがあるのですが
これが指定されているかがわからず確認する方法はあるでしょうか?

宜しくお願いします。

コメント

at_akihito.irie

2021年4月22日 10時12分

入江です。

> また、opensshのconfiguer に --whith-pamというオプションがあるのですが
> これが指定されているかがわからず確認する方法はあるでしょうか?

opensshの場合は、user/openssh/Makefile内のCONF_OPTかCONF_OPT_MISCでオ
プションを指定できますが、デフォルトでは未指定です。
ここに--with-pamオプションを指定してビルドしても依存ライブラリの関係上
ビルドできません。

debianパッケージのopensshはpamが有効になっているようですので、そちらを
atmark-distに組み込んでみると使えるかもしれません。

手順は以下のページを参考としています。
https://armadillo.atmark-techno.com/blog/750/1218

具体的な手順としましてまずは、過去のdebian repositoryからopensshのdeb
パッケージをダウンロードしてきます。
以下の手順では、2018年12月3日時点のdebian repositoryから、
openssh-server_6.0p1-4+deb7u4_armel.debをダウンロードしています。

[ATDE]$ wget https://snapshot.debian.org/archive/debian/20181203T215621Z/pool/main/o/openssh/openssh-server_6.0p1-4%2Bdeb7u4_armel.deb

次に、予めArmadillo-460向けにコンフィギュレーション、makeした
atmark-distにダウンロードしたdebパッケージを組み込みます。
なお、libPAMを有効にする必要はありません。
atmark-distのパスは適宜読み替えてください。

[ATDE]$ dpkg -x openssh-server_6.0p1-4+deb7u4_armel.deb atmark-dist/romfs/

次にatmark-distのディレクトリ内に移動してmake romfsし、atmark-distに最
初から入っているsshdを削除してからmake imageしてください。

[ATDE]$ cd atmark-dist
[ATDE ~/atmark-dist]$ make romfs && rm romfs/sbin/sshd && make image
[ATDE ~/atmark-dist]$ ls images/romfs.img.gz
images/romfs.img.gz

生成されたromfs.img.gzをArmadillo-460に書き込み、期待した動作をするか
確認してください。

ちなみに、debパッケージからインストールしたsshdは/usr/sbin/sshdにあります。

[armadillo]# which sshd
/usr/sbin/sshd

kz21_ym

2021年4月22日 10時41分

入江様
回答ありがとうございます。
今 user/openssh/Makefile内のCONF_OPTに--with-pamを追加してmake実行し
configure: error: PAM headers not found
make[2]: *** [openssh-4.3p2/Makefile] エラー 1
のエラーがでている状況でした。

回答の内容でopensshのpamを試してみます。

kz21_ym

2021年4月22日 15時25分

教えて頂いた手順でパッケージをダウンロードしようとしたのですが
OpenSSL: error:140943FC:SSL routines:SSL3_READ_BYTES:sslv3 alert bad record mac
SSL による接続が確立できません。
というメッセージがでてダウンロードできませんでした。
対処方法など分かりますでしょうか?
環境としては atde3 を使用しています。
よろしくお願いします。

at_akihito.irie

2021年4月22日 15時41分

入江です。

> 対処方法など分かりますでしょうか?

atde3のiceweasel(Webブラウザ)でURLを開いてダウンロードするのはいかがでしょうか。

atde3の画面左上の[アプリケーション]>[インターネット]>[iceweasel ウェブ・ブラウザ]
から開くことができます。

デフォルトでは/home/atmark/Desktop/に保存されます。

kz21_ym

2021年4月23日 11時03分

ブラウザを使用してパッケージのダウンロードすることができました。
ありがとうございました。

その後、debianパッケージのsshdを組み込むところまではできたと思うのですが
sshdを起動すると
/usr/sbin/sshd: error while loading shared libraries: libwrap.so.0: cannot open shared object file: No such file or directory
というエラーになり起動する事ができませんでした。

確かにlibwrap.so.0が無いようなので
追加が必要ということと思いますが、
追加するにはどういう方法があるでしょうか?

よろしくお願いします。

at_akihito.irie

2021年4月26日 14時39分

入江です。

> /usr/sbin/sshd: error while loading shared libraries: libwrap.so.0: cannot open shared object file: No such file or directory
> というエラーになり起動する事ができませんでした。

linux-2.6.26をお使いだったんですね。誤ってlinux-3.14の手順をご案内して
いました。申し訳ございません。

先にご紹介した手順を実行後のatmark-distで構いませんので、以下の手順を
実行してください。

[ATDE] wget http://archive.debian.org/debian/pool/main/o/openssh/openssh-server_5.1p1-5_armel.deb
[ATDE] wget http://archive.debian.org/debian/pool/main/t/tcp-wrappers/libwrap0_7.6.q-16_armel.deb
[ATDE] wget http://archive.debian.org/debian/pool/main/p/pam/libpam0g_1.0.1-5+lenny1_armel.deb
[ATDE] dpkg -x openssh-server_5.1p1-5_armel.deb atmark-dist/romfs
[ATDE] dpkg -x libwrap0_7.6.q-16_armel.deb atmark-dist/romfs
[ATDE] dpkg -x libpam0g_1.0.1-5+lenny1_armel.deb atmark-dist/romfs
[ATDE] cd atmark-dist
[ATDE ~/atmark-dist] make romfs && rm romfs/sbin/sshd && make image
[ATDE ~/atmark-dist] ls images/romfs.img.gz
romfs.img.gz

上記手順で生成されたromfs.img.gzをArmadilloに書き込んで動作確認してい
ただけますでしょうか。

kz21_ym

2021年4月27日 8時25分

入江様
ありがとうございます。
確認してみます。

kz21_ym

2021年5月10日 9時21分

入江様
ご教示頂いた手順でライブラリなど追加することができました。
/lib/securityにもモジュールの追加が必要だったようですが同様な手順で追加することができました。
他に /etc/pam.dに設定ファイルが必要でしたがこれは取敢えずATDEのものを参考に配置してみました。
一先ずこれでsshでpamを使用した認証が可能になったようです。
ありがとうございました。