ファイアウォールによる不正アクセス対処(iptables)とDROPBOX対策
なかなか反響の大きかった不正アクセス対処ですが、やっぱり悪い人のアクセスは、元から断たないとだめかなと思い直接ファイアウォール(IPTABLES)で不正アクセス対処したいと思います。
今までは、deny.confを使用して下記のようにIPを入れて/etc/init.d/httpd restartしてました。
<Directory "/var/www/*"> deny from 199.241.144.251 deny from 103.27.127.6 deny from 178.216.16.68 deny from 1.226.48.121 deny from 5.167.125.15 </Directory>
しかしちょっとかっこ悪いので、iptablesでIPを指定して排除したいと思います。
当サイトは、iptables.shというシェルを用いて行っているため、この中で記載している/root/deny_ipというファイルにIPアドレスを追記していくと自動的にファイアーウォールで排除してくれるようです。
そのままアクセス拒否の国として指定も出来ますがとりあえずそのIPアドレスのみ追記していくようにしました。
[root@www16071ue ~]# vi deny_ip 1.200.12.127 91.200.12.61 199.241.144.251 103.27.127.6 178.216.16.68 1.226.48.121 5.167.125.15
あとは、iptables.shを走らせればOKです。
細部参考にさせていただいたサイトは、こちらになります。
また、これを機にiptables.shの設定を見直してみると1箇所ほど修正の余地がありました。
ブロードキャスト宛のパケットはログを記録せずに破棄の設定で下記のようにしていました。
[root@www16071ue ~]# vi iptables.sh ~一部抜粋~ echo "-A INPUT -d 255.255.255.255 -j DROP" >> $IPTABLES_CONFIG echo "-A INPUT -d 224.0.0.1 -j DROP" >> $IPTABLES_CONFIG
これだけじゃ不十分で自分のサーバ(さくらVPS)のブロードキャストもログに記録しないようにするため
下記コマンドで調べます。
[root@www16071ue ~]# ifconfig eth0 Link encap:Ethernet HWaddr XXXXXXXXXXXXXXXXXXX inet addr:49.212.170.85 Bcast:○○○.○○○.○○○.255 Mask:XXX.XXX.XXX.XXX inet6 addr: XXX::XXX:XXX:XXXX:XXXX/XX Scope:Link ~省略~
くわしい情報は、あまり公開するものどうかと思いましたので省略しております。Bcast:○○○.○○○.○○○.255
のところが自分のサーバのブロードキャストアドレスだそうです。
通常は、自分のIPアドレスの第4オクテットが255になりますがさくらVPS(共有サーバなので)だとそのほかも違う箇所があったので上記コマンドで確認が必要です。
こちらもiptables.shに追記します。
echo "-A INPUT -d 255.255.255.255 -j DROP" >> $IPTABLES_CONFIG echo "-A INPUT -d 224.0.0.1 -j DROP" >> $IPTABLES_CONFIG echo "-A INPUT -d ○○○.○○○.○○○.255 -j DROP" >> $IPTABLES_CONFIG
※○○○.○○○.○○○.255は、適宜自分のサーバのブロードキャストアドレスに変えてください。
これでブロードキャスト宛のパケットはログを記録せずに破棄の設定になりました。
今回この設定を調べていくうちにDROPBOXがブロードキャストを投げているということを記事でみて実際に自分のサーバがどうなっているかを確認してみました。ちなみに当サーバには、dorpboxはインストールしていないです。
やはり調べてみると隣のサーバと思われるとことからパケットが流れてきていました。
下記は、メッセージログからの抜粋です。(一部修正してます)
/var/log/messages
Dec 22 18:24:05 www16071ue kernel: [IPTABLES INPUT] : IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff: SRC=49.212.XXX.XXX DST=ブロードキャストアドレス LEN=165 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=17500 DPT=17500 LEN=145 Dec 22 18:24:35 www16071ue kernel: [IPTABLES INPUT] : IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff: SRC=49.212.XXX.XXX DST=ブロードキャストアドレス LEN=165 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=17500 DPT=17500 LEN=145
SRCというのがお隣のサーバのIPです。DSTがブロードキャストアドレスです。どちらもIPアドレスは、伏せてますがこのように30秒ごとに送られてきます。
当然ログも増えていきます。
コマンド確認すると顕著にわかります。
[root@www16071ue ~]# tcpdump -i any -s 1600 port 17500 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 1600 bytes 19:03:39.069450 IP www16XXXue.sakura.ne.jp.17500 > 255.255.255.255.17500: UDP, length 137 19:03:39.073703 IP www16XXXue.sakura.ne.jp.17500 > 49.XXX.XXX.255.17500: UDP, length 137 19:04:09.117188 IP www16XXXue.sakura.ne.jp.17500 > 255.255.255.255.17500: UDP, length 137 19:04:09.121075 IP www16XXXue.sakura.ne.jp.17500 > 49.XXX.XXX.255.17500: UDP, length 137 19:04:39.164674 IP www16XXXue.sakura.ne.jp.17500 > 255.255.255.255.17500: UDP, length 137 19:04:39.168525 IP www16XXXue.sakura.ne.jp.17500 > 49.XXX.XXX.255.17500: UDP, length 137
IPやホスト名から推察するにお隣さんでしょう。(さくらVPSの同一ネットワークのため)
たぶんこの管理者は、気付いてないのでしょう。dropboxをインストールしたときにデフォルトでLAN Syncが有効になるそうです。知っている人は、この設定をOFFにすれば解決するそうです。
ちなみにこのサーバですがApacheアクセスログ解析(AWStats)では、11月の時点でなかったのですがものの見事にホスト (トップ 10)の第3位となっておりました。最近DROPBOXを入れたのでしょう。また第2位に自分のサーバが入っているのでもう一度awstatsのconf設定を見直します。
そういえばなんで近いサーバ(ホスト名から推測)がアクセスしに着ているんだろう?と思っていました。しかし、そのときは、それで疑問も終わっていました。きちんと調べないといけないですね。
もしVPSサーバで同じようなホスト名もしくは、同一ネットワークからのアクセスが多かったらDROPBOXからのアクセスかもしれません。
/var/log/messagesのログを確認してみてください。もしアクセスがあればログに残さないように設定をしてください。上記のようなIPTABLESでの設定をオススメします。
DROPBOXのLAN Syncが無効化する設定は、他のサイトを参考にしていただくとして他のサーバに迷惑をかけないようにしたいものですね。