iptablesについて調べて*1設定してみた。初期設定ではiptablesプロセスは起動するが全部通しになっている。
方針は、
設定する方法として、
の二通りの方法があるようだが、コマンドは面倒なので後者のやり方で。
*filter # INPUTチェーンのデフォルトは条件に合わない物は後でDROPするのでどっちでも良いがDROPと書いておく :INPUT DROP [0:0] # 中継はDROP :FORWARD DROP [0:0] # OUTPUTチェーンのデフォルトはACCEPT :OUTPUT ACCEPT [0:0] # ログに書いてDROPするというユーザー定義チェーンを作る :DROPLOG - [0:0] ##### 入力パケットについて # loopbackからはACCEPT -A INPUT -i lo -j ACCEPT # ICMPはとりあえずACCEPTにしておく。やっぱり止めるかも -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT # 通信途中の物はACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # 開始パケットはsshとhttpとsmtpはACCEPT。sshのポート番号は22でなく変更した物を書く -A INPUT -p tcp -m state --state NEW -m tcp --dport sshポートの番号 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT # それ以外の物はログに書いてDROP -A INPUT -j DROPLOG ##### 出力パケットについて # ブロードキャストはログに書いてDROP -A OUTPUT -d 255.255.255.255 -j DROPLOG -A OUTPUT -d 自分のサブネットのブロードキャストアドレス -j DROPLOG ##### ユーザー定義チェーンの内容 # ログに書くのは1時間に3件まで。メッセージ先頭に目印を付ける -A DROPLOG -m limit --limit 3/hour -j LOG --log-prefix "DROP:" # ログを書いた後DROP -A DROPLOG -j DROP # 反映する COMMIT
上記をファイル /root/iptables に書いて、
# iptables-restore < /root/iptables
この状態で一通りテストする。間違えてsshセッションが切れた場合は、管理パネルのコンソールからリブートすれば元に戻る。
問題がなければ、起動時に読み込む設定ファイルに書き込む。これで次回起動からも設定が生きる。
# iptables-save > /etc/sysconfig/iptables
Dropbox攻撃
ログを見てみると、そばのサーバーから17500ポートへUDPパケットが30秒ごとに2つずつ来ている。
ググルと、Dropbox のオプションによりそうなるようだ。
さくらへ、問い合わせフォームから要望を出しておく。
xx.xx.xx.xx から 30秒ごとに2回、ポート 17500 にUDPでブロードキャストが来ます。
上記サーバーのユーザに下記のメッセージを送ってください。
========================================
xx.xx.xx.xx の管理者殿あなたのサーバーから周りの他のサーバーに大量の無駄なネットワーク通信が行われています。
通信内容から、Dropboxの設定で「Enable LAN sync」をオンにしていると思われますが、そのオプションは、同一LAN内の他のコンピューター上のDropboxと同期するための物です。
「あなたが xx.xx.xx.xx と同じLANに別のサーバーを借りていて両方のサーバーでDropboxを動かしていて、その間で同期をしたい」
と言うことでない限り、無意味なオプションですので、すぐにオフにして、他のサーバーへの迷惑を停止してください。
何が迷惑かというと、せっかくDROPしたパケット情報をログに書くことにしたのに、このパケットだらけになって無意味。