Linux/firewallの設定

Linux/firewallの設定

バージョンと製造年月日

  • 2011-12-10
  • CentOS5.5

Linuxのfirewall

Linuxのfirewallはiptablesというデーモンが受け持っている

iptables

iptablesという名称は設定で3つ出てくる。

  • iptablesコマンド
  • iptablesデーモン
  • iptablesデーモン起動スクリプト

iptablesデーモンのの動作を変更するのがiptablesコマンドでiptables自体の管理をするのがiptablesデーモン起動スクリプトということになる

iptablesはデーモンなので /etc/init.d/iptables stop とやればfirewallはなくなって全部OKになる。外部からのアクセスでトラブった場合は一旦iptablesを落としてみるのもいいかも

基本設定

基本設定は外から内とルーティングは全部禁止、内から外は全開放、内側は全部OKということになる。

これをiptablesコマンドでやると↓のようになる

全ルール削除

iptables -F
iptables -Z
iptables -X

外から内とりあえず全禁止

iptables -P INPUT DROP

内から外全開放

iptables -P OUTPUT ACCEPT

ルーティング禁止

iptables -P FORWARD DROP

内側全部OK

iptables -A INPUT  -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

そしてうけつけたいポートだけあける。定番は22版ポートのSSH用の穴。

SSHの新規コネクションだけを許可

iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT

その後に・・・コネクションを確立したものに対しては全OK。これで認証とfirewallが連携できたことになる

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

設定する

設定するには設定する項目をスクリプトファイルにしておいて一気に実行するほうがいい。 なぜかといえば、最初の外部からは全部Drop設定をやって時点でiptablesに設定が即時反映されてリモート接続の場合切れてしまうから

さっきのを一気に実行すると↓

iptables -F
iptables -Z
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A INPUT  -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

これでfirewallに即時反映される。即時反映はされるが、次にiptablesデーモンを起動した時に初期設定に戻ってしまう。

なので現状のfirewallの設定状態を初期設定として保存するやりかたがある。iptables起動スクリプトにsaveという引数を渡して実行する

/etc/init.d/iptables save

これでiptablesの初期設定ファイルに現状の設定状態が書きこまれて次回起動時にも反映される。

設定は

/etc/sysconfig/iptables

に保存されるので確認するといい

タグ

linux/setting_firewall.txt · 最終更新: 2011-12-26 17:41 by ore