VPSでiptablesを設定してみた

さくらのVPS(CentOS6.8)のiptablesを設定してみた。

参考ページ

・iptables

http://www.server-world.info/query?os=CentOS_6&p=initial_conf&f=2

https://help.sakura.ad.jp/app/answers/detail/a_id/2423/~/iptables%E3%81%AE%E8%A8%AD%E5%AE%9A%E6%96%B9%E6%B3%95

http://itpro.nikkeibp.co.jp/article/COLUMN/20140512/556022/?rt=nocnt

http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-ja-4/s1-iptables-options.html

http://kazmax.zpp.jp/cmd/i/iptables.8.html

http://www.asahi-net.or.jp/~aa4t-nngk/ipttut/output/implicitmatches.html

http://oxynotes.com/?p=6361

・マッチング

http://www.nina.jp/server/redhat/iptables/iptables.html

・ハンドシェイク

http://www.infraexpert.com/study/tcpip9.html

 

今回はさくらの設定をしてみました。

server worldのシェルにiptables -P INPUT DROPと書いてあったのでバカ正直にやってみたらターミナルからの信号も一切遮断されて立て直しになって、あー自分はなんと愚かなのだろうと反省しました。

設定項目の意味も少し読み解いてみたのでメモ

チェイン(フィルタリングを適応するタイミング)に対してルールを決めている。

主に使いそうなのはINPUT、OUTPUT、FORWORDっぽい。

これを真っ先に打つとターミナルからの入力などを全て拒否されます。

iptablesコマンドって設定ファイルに追加してくコマンドかと思ったのですが、その場で反映されるようで、勉強になりました。

(-Aは最後に追加の意味。-Iは先頭に追加の意味。vimっぽい。)

INPUTチェインの中でもプロトコルをTCPに限定してフィルタリングをしている。

–tcp-flagはハンドシェイクなどで使われるデータの中の特定ビットを指定してチェックさせる。

第一引数がチェック対象で、第二引数が1になっているべきビットを指定する。(カンマで複数指定可)

例えば–tcp-flags SYN,FIN,ACK SYNとなっていたら、SYNビットに1、FIN・ACKビットに0がセットされていることがマッチの条件となる。

今回は対象全てのビットが0であることがマッチの条件となる。

対象全てのビットが0のときTCP接続を拒否するということになる。

-iはネットワークインターフェースの指定。

loはたぶんlocalhostの意味。

ローカルホストからの接続を許可。

icmpプロトコルの許可。

それに伴いpingを利用してサーバーの生存確認ができるようになる。

-mは条件の拡張みたいなイメージ。

今回はtcpのポートに関して開くポートを指定。

80、443、22を指定。

確立済みの接続は許可する。

条件判定がなくなる=負荷が減るから一番最初に追加するのかな。

確かにTCPの通信をいちいち確認してたら大変そうだもんなー。

最後に設定を保存。

これで今まで行った設定がファイルに書き出されるっぽいです。

設定の詳細はさくらの方にあるので、そちらを参照してください。

Loading Facebook Comments ...

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です