タグ別アーカイブ: proftpd

Proftpdでpam越しにldapの認証を使った

Proftpdでpam越しにldapの認証を使いたかった。

実はコレまでのproftpdの認証は、最も標準的である /etc/passwd あたりのファイルを見て認証をかけてた。だからproftpdはnisやldapと連携してなかった。

現にこれまではnisをunixのsystemの認証としていたのだけれど、それをproftpdでは使わず、nisのアカウントとunixのアカウントを手動で同期を取るというなんとも前時代的な運用をしていた。

現在管轄しているセグメントもほとんどのホストでldapに移行が完了しており、nisベースはほとんどなくなってきていたのでそろそろこのproftpdの認証回りもldapを使うようにしてあげないと、と思っていた。

一応profptdにはmod_ldapという自前でldap認証を行うモジュールがあるのだけれど、そこでいちいちフィルタやらdcやらを書いてやるのも面倒だなぁと思っていたし、ユーザごとにそこまで細やかに制限を入れる予定もなかった。制限といえばせいぜいrootでのログインを拒否するだとかそういったところだったので、その辺はproftpdの標準confでできるわけだった。

で、既にproftpdを動かすホストではpamでldapを使って認証してたので、このunixアカウント認証をそのままftpの認証系にしてしまうことにした。confはテキトウにググったら出てきた。

# pam
AuthOrder           mod_auth_pam.c* mod_auth_unix.c
AuthPAMConfig      system

上記の部分をconfに加えて再起動したらいけました。

最初はちょっと動かなかったりしたのでその点についてのメモ。
/etc/pam.dの中身にも依るのだけれど、pamには設定名っていうのがある。pam.dにあるファイルベースで設定名が決められている。proftpdでは標準でftpという設定名を使うのでpamのftpにldap使いますよと書いてないと有効にならない。ここで少しハマってしまった。

この辺のことは実は公式にちゃんと載ってて、ググってコピペで動かな~い、と困ってしまったことを反省。

 

以上

FreeNAS 0.72のftpに接続できない

FreeNAS 0.72のftpに接続できない。

shell> tail /var/log/ftp.log

Apr 12 16:09:53 blaster proftpd[40351]: 192.168.1.1 (::ffff:192.168.1.2[::ffff:192.168.1.2]) – USER yousan (Login failed): Limit access denies login
Apr 12 16:10:10 blaster proftpd[40351]: 192.168.1.1 (::ffff:192.168.1.2[::ffff:192.168.1.2]) – USER yousan (Login failed): Limit access denies login
Apr 12 16:11:01 blaster proftpd[40351]: 192.168.1.1 (::ffff:192.168.1.2[::ffff:192.168.1.2])- USER yousan (Login failed): Limit access denies login

Limit access denies loginでググってみると、proftpd.confの設定らしい。

It is due to a setting in /etc/proftpd.conf. This was a new Plesk 8.0.1 installation and the default setting :

<Limit LOGIN>
AllowGroup ftpusers
DenyAll
</Limit>

FTP Problem - limited access denies login - Parallels Forums

どうやらftpグループに属していないと接続できないような設定らしい。

デフォルトでこんな設定らしいけど、いままでおそらくこの設定は外して運用してきたんだろうね。知らなかった。

しょうが無いので接続させるユーザはftpグループに属するようにしてやる。

 

うまくつながった。

proftpdでjailする

proftpdでjailする。

jailって檻って意味で、ftpで接続したユーザがftpサーバの/とか、一番rootのところにアクセスできなくするための機能。

今回自分のところの鯖では、ユーザ間でのやりとりとかあるので他のユーザのところにはアクセスさせたい、でも/とかに行かれると困る、という条件。
困ることは無いんだけど、ユーザからごちゃごちゃするからわかりにくい、との意見が。

ProFTPdでjailを有効にするためのconfはDefaultRootオプションで行う。
元々記述されてコメントアウトされてるのがあったのでこの付近に。
グローバルディレクティブの位置、っていうのかな。

他の事例集だとまず間違いなくホームディレクトリでjailするものだったので、そこをちょこっとだけ変更。
またfreebsdの鯖でwheel、いわゆるadminグループ?に属してるユーザはjailから解放してやる。


DefaultRoot /usr/home/ !wheel

DefaultRootの最初の引数はjailかけたい場所、どの対象にかけるか、ユーザのフィルタリング。
何も書かなければたぶん全部のユーザで、否定形をつかうことによってそこからユーザの引き算ができる。
ここに書くのがユーザ名なのかグループ名なのかはわかんない、でもグループ名かけばなんとかしてくれた。
グループとユーザ名が一緒のやつで違う(ことってできるよね)だとどうなるんだろう。
hogeグループに属してないhogeさんをjailして、hogeグループに属したfooさんはjailしない、とか。まぁ杞憂だけど、うん。
ProFTPD Configuration Directive List DefaultRoot
TIPS » Blog Archive » proftpd chroot jail