proftpd
さて、ftp鯖です。
ファイル転送に必須だった(過去形)ftp鯖です。
今や、パスワードを生のまま垂れ流しているからセキュリティが悪いとかなんとか・・・
まぁ、でも、いまだに現役バリバリ(死)なサービスです。
いらないかなぁ・・・と思ってたんですが、やっぱり使ってみたい!
ってことで、インストール♪
「セキュリティが悪い」
って言うかさ、わざわざ個人鯖のパスワードを盗聴する人って居るんでしょうか?
盗聴って面倒臭いらしいし・・・
まぁ、sshでほとんど同じことができるし、個人使用ではわざわざ外部公開する必要性がないのは否定しないけどさ・・・
でも、まだまだ便利なサービスだと思うけどなぁ・・・
やること一覧 ・警告 ・PAMの再インストール ・事前準備 ・インストール:ProFTPD NLSTパッチ ・設定変更 ・I.E.対策
関連ページ ・pam(suの実行ユーザー制限のため) ・xinetd(アクセスコントロールのために)
警告
anonymous-FTPを許可すると誰でも玄箱内をのぞくことができます。
不適切な設定だと最悪クラッキング/システム改ざん等の可能性があります。
第3者からのファイルのアップロードを受ける必要が無ければ、
FTP鯖を”使用しない”ことをお勧めします。
必須というわけではない。
やらなければやらないでいい。というだけ。
やりたい人はpamを参照のこと。
「pam」
ftp鯖では何度かはまってるんですが、これが最初のはまりポイント。
純正そのままだと、pamのバージョンが低いためか「pamがねぇよ!ヽ(`Д´)ノ」といわれます(うろ覚え)
で、pamのことを調べると・・・結構重要そうな部分じゃん(;´Д`)弄りたくねぇ・・・
と、断念したというわけ。
/bin/pwdが無いといわれるのでシンボリックリンクを張る(coreutilsにて既出)
# ln -s /usr/bin/pwd /bin/pwdproftpd用のユーザー作成
# groupadd -g 24 proftpd # useradd -g proftpd -u 24 -d /var/empty -s /bin/false proftpdユーザーをロックする
# vipw または # vi /etc/passwd 変更点:! を * に書き換える「事前準備」
FFFTP用の修正も一緒に行う。
パッチはバージョンによって違うので注意すること。
proftpd-1.3.0a.tar.gzとproftpd-1.3.0a-nlst-ffftp.patchを探してくる。
The ProFTPD Project: Home
ProFTPD NLSTパッチ
で、ユーザーのホームディレクトリにFFFTPで送る。
例のあれ
$ tar xvfz proftpd-1.3.0a.tar.gz $ patch -p0 < proftpd-1.3.0a-nlst-ffftp.patch $ cd proftpd-1.3.0a $ ./configure --prefix=/opt/proftpd [--disable-auth-pam]
option | 説明など |
--disable-auth-pam | pamによる認証を使わない pamを入れなおしていなければ指定しないとエラーになる |
起動前にやらなければならないことがたくさんある。
設定の方針は、以下の通りとする(全てできます@面倒だから設定は書かないけど)
・純正FTPと共存する。
・anonymousのみ接続できるようにし、他ユーザーは一切接続できないようにする。
・また、warezなどに利用されないようにアップロード専用フォルダとその他を区別し、
アップロード専用フォルダからダウンロードできず、その他にはアップロードできないようにする。
・xinetd経由での起動のみとする。
設定ファイルを弄る
# vi /opt/proftpd/etc/proftpd.conf 注:まぁ、がんばれ(ヒント)hosts.allowに許可を記入
# vi /etc/hosts.allow (追加) ┃proftpd : 192.168.0. 注:本格的に運用するときにはALLなどを許可する/var/log/wtmpがないといってくるので
# touch /var/log/wtmpログファイルの作成
# touch /opt/proftpd/var/system.log # touch /opt/proftpd/var/extend.log # touch /opt/proftpd/var/transfer.log/etc/ftpusersにftpがftpへのログイン不可ユーザーとして書かれているので修正
# vi /etc/ftpusers
(修正)
┃#ftp
anonymous用のUPフォルダ作成# mkdir /mnt/share-mac/up-only # chmod 777 /mnt/share-mac/up-only 注:anonymous用のフォルダとして/mnt/share-macを利用しているxinetdの設定ファイルを書く
# vi /etc/xinetd.d/proftpd (新規) ┃service proftpd.sub.ftp ┃{ ┃ type = UNLISTED ┃ port = 2121 ┃ socket_type = stream ┃ protocol = tcp ┃ wait = no ┃ user = root ┃ server = /opt/proftpd/sbin/proftpd ┃ server_args = ┃ disable = no ┃ access_times = 5:00-18:00 ┃} 注:サービス提供時間を5時〜18時に制限しているxinetdの再起動
# /etc/init.d/xinetd reload接続テストを行う。
# vi /etc/logrotate.d/proftpd logrotate参照 # crontab -e ┃30 4 * * * cp /dev/null /var/log/wtmp wtmpは特殊なアクセスログなので定期的に内容を消去(肥大していく) または、 # vi /etc/logrotate.d/binary_log (新規) ┃/var/log/?tmp { ┃ missingok ┃ monthly ┃ create ┃ olddir /var/log/old ┃ rotate 1 ┃}ルーターの設定をする
1.ポート変換機能のあるものはwan:21を開放してlocal:2121に変換(または2.) 2.変換機能の無いものは2121を開放してクライアント側でポート2121を指定してもらう アドレスは ftp://[yourhost.yourdomain]:2121/ となる。「warez」
I.E.:つまりはインターネットエクスプローラのこと。
IEではパッシブ接続しかしないのでルーターの中のproftpdに接続できないことがある。
その問題を回避する方法。
対策1:IEの設定を変える インターネットオプション>詳細設定の中のブラウズ:パッシブFTPのチェックをはずす 問題点:全員に同じ設定をしてもらうのは非現実的 対策2:passiveモードで使うポートを制限(指定)して、ルーターで指定したポートを開放する # vi /opt/proftpd/etc/proftpd.conf (追加) ┃#passive mode settings : ddns set and limit passive mode use port ┃MasqueradeAddress [your.domain] ┃PassivePorts [start port] [end port] 注:MaxInstancesの分だけ開けておけば良い 注:他のサービスとかぶらないようにする( /etc/services 参照) PassivePortsで指定したポートを開放する(ルーターの設定) 問題点:ほとんど無駄に開いているポートが30くらい発生する 対策3:使えないIEなんか使うな!FTPクライアントソフトを使え!(を 要は、passiveモードを使わなければ接続できます (UP/DOWNの)安全性から言ってもクライアントソフトを使ったほうが良いです(FFFTPなど) 問題点:だから、不特定の人たちに・・・(ぶつぶつ 対策4:ルーターにパッシブモードで公開可能な機能があればそれを使う 問題点:全部のルーターにあるわけじゃない「問題を回避する方法」
戻るなら押せ!