2006/05/25(木) [n年前の日記]
#1 [linux] 自宅サーバのFTPに対して1秒間隔で30分ぐらい延々とアクセスしてくる人が居るのだけど
Administrator というアカウント名で延々とアクセスしてくる。アカウント名からして、Windows の管理者権限が絡んでるアクションな気がする。さては、ウイルスやワームの類かしら…。何にせよ、ログが増えて鬱陶しいし、LAN内を無駄なパケットが流れて気持ち悪い。さて、どういう対策をしたらええのやろ。
◎ _FTPに対してadministratorやtestといったユーザーでログオンを1秒おきに試みる恐ろしいログ :
サーバーのログを見たらFTPに対してadministratorやtestといったユーザーでログオンを1秒おきに試みる恐ろしいログを発見。18日は朝から延々とやってたみたい。あー。同じだ。む。去年の話か…。おろかな日々 - うーむ より
◎ TCP Wrapper を設定してみた。 :
ウチの自宅サーバは Vine Linux で動かしてるのだけど。TCP Wrapper なるものを設定すれば、IPでアクセス制限できるらしい。また、ポートにアクセス(?)されたときだけサーバを起動するので、サーバをメモリ上に常駐(?)させずに済む、というメリットもあるらしく。…もちろん、サーバが起動するのに時間がかかるから、頻繁に使うサーバならかえってデメリットになりそうな。と言ってもウチのFTPサーバは1日に数回しか呼ばれないので、そのへんの問題はナサゲ。
以下を参考にして設定してみたり。
_Linuxで自宅サーバー構築(TCP Wrapperの設定)
_TCP_Wrapper を使う
_TCP Wrapper
_@IT:止められない基幹業務サーバの管理対策 第3回 - Page2
_設定内容の妥当性チェック(tcpdchk) + 設定したアクセス制限をシミュレーション(tcpdmatch)
ということで作業。
Vine Linux はFTPサーバに proftpd を使ってるので、/etc/proftpd.conf を編集。FTPサーバの起動方法(?)を変更する。
proftpd サーバが動いてるので、停止。…このへんの順番はよくわからない。/etc/proftpd.conf を編集する前に止めたほうがいいのかしら。
inetd.conf を編集。
hosts.allow、hosts.deny というファイルに、アクセス制限するIPを記述。
tcpdchk で hosts.allow、hosts.deny が正しいかチェック。
_[vine-users:062359] Re: sshd接続時のtcpwrapperでの動き
inetd を再起動。
tcpdmatch で、アクセス制限できてる感じかどうかをチェック。
Windows 機でFTPクライアントからアクセスしてみた。…アクセスできてる。…Windows 機のIPを hosts.deny に追加してみた。…アクセスできなくなった。期待通りに動いてるっぽい。
hosts.allow、hosts.deny に書いた瞬間に、アクセス制限は働くらしい。一々、inetd を再起動する必要はないらしく。
以下を参考にして設定してみたり。
_Linuxで自宅サーバー構築(TCP Wrapperの設定)
_TCP_Wrapper を使う
_TCP Wrapper
_@IT:止められない基幹業務サーバの管理対策 第3回 - Page2
_設定内容の妥当性チェック(tcpdchk) + 設定したアクセス制限をシミュレーション(tcpdmatch)
TCP Wrappers付属のtcpdchkを使い、hosts.allowおよびhosts.denyの設定に不備がないかをチェックする。存在しないパス名やプロセス名が含まれていた場合は、その問題点が報告される。
tcpdchkと同様に、TCP Wrapper付属のtcpdmatchコマンドを使うことで、設定したアクセス制限のルールを疑似的に確認することが可能だ。
ということで作業。
Vine Linux はFTPサーバに proftpd を使ってるので、/etc/proftpd.conf を編集。FTPサーバの起動方法(?)を変更する。
# vi /etc/proftpd.conf
ServerType standalone ↓ #ServerType standalone ServerType inetdstandalone で動かしてたものを、inetd 経由で起動するようにする、のかな。
proftpd サーバが動いてるので、停止。…このへんの順番はよくわからない。/etc/proftpd.conf を編集する前に止めたほうがいいのかしら。
# /etc/rc.d/init.d/proftpd stop
inetd.conf を編集。
# vi /etc/inetd.conf
#ftp stream tcp nowait root /usr/sbin/tcpd in.proftpd ↓ ftp stream tcp nowait root /usr/sbin/tcpd in.proftpdVine Linux なら、コメントの形で既に記述があるので、コメントアウトを外すだけ。
hosts.allow、hosts.deny というファイルに、アクセス制限するIPを記述。
- hosts.allow ← 許可するIPを記述。
- hosts.deny ← 拒否するIPを記述。
in.proftpd: xxx.xxx.xxx.xxxという形で、拒否したいIPを追加するだけにした。…また、本来なら、hosts.allow、hosts.deny を別のところにコピー → そちらを編集 → 内容が正しいかチェックしてから、本来の場所に移したほうがいいらしい。
tcpdchk で hosts.allow、hosts.deny が正しいかチェック。
# tcpdchk -vオプションをつけなければ、/etc/hosts.allow、/etc/hosts.deny をチェックする。…警告が出てきた。
warning: /etc/hosts.allow, line 8: sshd: no such process name in /etc/inetd.conf「sshd なんてプロセス名は /etc/inetd.conf に書いてないけど?」という感じ? なのかな?
_[vine-users:062359] Re: sshd接続時のtcpwrapperでの動き
これは多分,sshd の再起動をしてなかったからではないでしょうか。ということで、/etc/inetd.conf には書いてなくても、sshd が直接 hosts.allow、hosts.deny を見ていくらしい。なもんで、警告が出るらしい。気にしなくていいということかな。あくまで警告、でもあるし。
# 私もよくはまります。(^^;
sshd は, tcpd 経由で invoke されるのではなく, 直接 /etc/hosts.{allow,deny} を起動時に読みにいって制限を掛けるはずなので, /etc/hosts.{allow,deny} を書き換えた後には /etc/rc.d/init.d/sshd restart が必要です。
inetd を再起動。
# /etc/rc.d/init.d/inet restart
tcpdmatch で、アクセス制限できてる感じかどうかをチェック。
# tcpdmatch in.proftpd xxx.xxx.xxx.xxx client: address xxx.xxx.xxx.xxx server: process in.proftpd matched: /etc/hosts.deny line 13 access: denied一番最後に、「denied」と出てる。このIPは拒否、ということかな。 「granted」なら許可、ということらしい。
Windows 機でFTPクライアントからアクセスしてみた。…アクセスできてる。…Windows 機のIPを hosts.deny に追加してみた。…アクセスできなくなった。期待通りに動いてるっぽい。
hosts.allow、hosts.deny に書いた瞬間に、アクセス制限は働くらしい。一々、inetd を再起動する必要はないらしく。
◎ それでも問題が。 :
「Administrator」というアカウント名(ユーザ名?)でアクセスしてくる相手は、IPを変えてアクセスしてきてるので、その都度 hosts.deny に書いてかないといけない。なんだか、根本的に対策できてる感じがしない。
アカウント名で拒否するような設定にはできないんだろうか。参考ページによると、それもできるっぽいように見えたのだけど。具体的にはどう書けばいいのか、あるいは、そういう指定をする際に、何かしら条件があるのか、そのへんまだ判ってない状態。
アカウント名で拒否するような設定にはできないんだろうか。参考ページによると、それもできるっぽいように見えたのだけど。具体的にはどう書けばいいのか、あるいは、そういう指定をする際に、何かしら条件があるのか、そのへんまだ判ってない状態。
*1: hosts.allow と hosts.deny を見る順番は、hosts.allow が先らしい。hosts.allow に書かれた条件に該当するなら許可 → hosts.deny に書かれた条件に該当するなら拒否 → どっちにも指定が無ければ許可、てな処理の順番なのだとか。
この記事へのツッコミ
[ ツッコミを読む(4) | ツッコむ ]
以上です。
違ったかな?
ちょっと許可する幅が広くなるけど、
いちいちIPアドレス指定するよりは楽かも。
一長一短ですが…
はい。たしかそのはず。ではあるのですが。
逆引き(でいいのかな?)できなかったり、
まったく関連性のないIPからアクセスしてきたりするので、
その指定はおそらく難しい、のではないかと想像するのでありました。
それにしても、何だろうなぁ。やっぱりウイルス・ワームなのかしら…。
iptables? それは一体…
と思って検索したら、なるほどパケットフィルタってやつなのですか…
そのへんも勉強しないとあかんかなぁ…