iptablesを使って80番ポート以外からのINPUTをDROPする方法@CentOS
以下の環境で動いているCentOS上で起動しているウェブサーバにアクセスしようとしたとき、アクセスできなかったのでメモ。問題はiptablesによるファイアーウォールのようでした(まだよくわかっていない)。
環境
- CentOS 5.3
- Mac OS X 10.5.7
- VMware Fusion 2.0.5
流れ
まずはiptablesファイルのバックアップを取っておく。
# cp /etc/sysconfig/iptables iptables.backup
おもむろにiptablesの中を見てみる。
# iptables -L (いろいろ出てくる)
既にいろいろ設定されているけど、これらの設定を残しておくとどうもうまくいかない。なので思い切って設定を全て消してしまいました(^o^)
(このコマンドで設定を全て消す) # iptables -F
次にINPUTチェーンとFORWARDチェーンへのパケットをDROPする。
# iptables -P INPUT DROP # iptables -P FORWARD DROP # iptables -P OUTPUT ACCEPT
OUTPUTチェーンについてはACCEPTでも良いみたい。
そしてINPUTチェーンに80番ポートからのパケットの受け入れを許可するようにする。
# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
これでINPUTチェーンは80番ポートからのパケット受信のみを許可するようになる。必要に応じてSSHからの通信を許可したりする。
最後にiptablesへの変更を保存、iptablesの再起動をする。
# service iptables save # service iptables restart
おしまい。
iptablesは奥が深いらしいので、そのうち勉強する。