[root@localhost ~]# /sbin/iptables -[AD] チェイン ルール
[root@localhost ~]# /sbin/iptables -P チェイン ターゲット
[root@localhost ~]# /sbin/iptables -L チェイン

オプション,チェイン,ターゲット,ルール
━━━━━━━━━━━━━━━━━━━━━━━
オプション  概要
━━━━━━━━━━━━━━━━━━━━━━━
-A <チェイン> チェインの最後にルールを追加
-D <チェイン> チェインからルールを削除する
-P <チェイン> <ターゲット> チェインのポリシーを変更する
-L <チェイン> ルールのリストを表示

━━━━━━━━━━━━━━━━━━━━━━━
チェイン      設定
━━━━━━━━━━━━━━━━━━━━━━━
INPUT  入力パケット
OUTPUT   出力パケット
FORWARD         転送パケット

━━━━━━━━━━━━━━━━━━━━━━━
ターゲット     設定
━━━━━━━━━━━━━━━━━━━━━━━
ACCEPT  許可
DROP  破棄
REJECT  拒否(送信元に通知)

━━━━━━━━━━━━━━━━━━━━━━━
ターゲット     設定
━━━━━━━━━━━━━━━━━━━━━━━
-s <送信元>     送信元のIPアドレスを指定
-d <送信先> 送信先のIPアドレスを指定
–support <ポート番号> 送信元のポート番号指定
–drop    <ポート番号> 送信先のポート番号指定
-j <ターゲット> ターゲットを指定
-p <プロトコル> プロトコルを指定
-i <インターフェース> インターフェースを指定(eth0,eth1,ppp0など)

『設定の確認』
[root@localhost ~]# /sbin/iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

[root@localhost ~]# /sbin/iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
[root@localhost ~]#

iptables0.jpg

 

 

 

 

 

 

 

 

 

まずは,SSHにてアクセスを許可させる設定をしてみる。

※ リモートから設定はアクセス出来なくなる可能性があるので注意(今回はシェルにしてリモートから対応してみた)

[root@localhost ~]# cat iptable_config_base.sh
#! /bin/sh

#すべてのiptables設定を削除#
/sbin/iptables -F
/sbin/iptables -X

#すべてのパケットを拒否#

/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP

#ループバックアドレスからのパケットを全て許可#
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT

#ICMP許可 全て->自分#
/sbin/iptables -A INPUT -p icmp –icmp-type echo-request -s 0.0.0.0/0 -d 192.168.11.5 -i eth0 -j ACCEPT
/sbin/iptables -A OUTPUT -p icmp –icmp-type echo-reply  -s 192.168.11.5 -d 0.0.0.0/0 -o eth0 -j ACCEPT

#ICMP許可 自分->全て#
/sbin/iptables -A OUTPUT -p icmp –icmp-type echo-request -s 192.168.11.5 -d 0.0.0.0/0 -o eth0 -j ACCEPT
/sbin/iptables -A INPUT -p icmp –icmp-type echo-reply -s 0.0.0.0/0 -d 192.168.11.5 -i eth0 -j ACCEPT

#sshパケットの許可 自分のセグメント->自分
/sbin/iptables -A INPUT -p tcp -s 192.168.11.0/24 -d 192.168.11.5 –dport 22 -i eth0 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -s 192.168.11.5 –sport 22 -d 192.168.11.0/24 -o eth0 -j ACCEPT

#loggingの設定#
/sbin/iptables -N LOGGING
/sbin/iptables -A LOGGING -j LOG –log-level warning –log-prefix “DROP:” -m limit
/sbin/iptables -A LOGGING -j DROP
/sbin/iptables -A INPUT -j LOGGING
/sbin/iptables -A OUTPUT -j LOGGING

 

※SSHもICMPも接続可能Apache(Port80)は接続出来なくなってました。

iptables1.jpg

 

━━━━━━━━スクリプトの編集(Apache追加)━━━━━━━━━━━━

Apacheの接続を最後に設定に追加して,保存して終了。(またリモートからの作業なので,シェルスクリプトの編集)

[root@localhost ~]# cat iptable_config_base.sh
#! /bin/sh

#すべてのiptables設定を削除
/sbin/iptables -F
/sbin/iptables -X

#すべてのパケットを拒否

/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP

#ループバックアドレスからのパケットを全て許可
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT

#ICMPパケットの許可 (方向)trusthost->myhost
/sbin/iptables -A INPUT -p icmp –icmp-type echo-request -s 0.0.0.0/0 -d 192.168.11.5 -i eth0 -j ACCEPT
/sbin/iptables -A OUTPUT -p icmp –icmp-type echo-reply  -s 192.168.11.5 -d 0.0.0.0/0 -o eth0 -j ACCEPT

#ICMPの許可 (方向)myhost->trusthost
/sbin/iptables -A OUTPUT -p icmp –icmp-type echo-request -s 192.168.11.5 -d 0.0.0.0/0 -o eth0 -j ACCEPT
/sbin/iptables -A INPUT -p icmp –icmp-type echo-reply -s 0.0.0.0/0 -d 192.168.11.5 -i eth0 -j ACCEPT

#sshパケットの許可 (方向)trusthost-> myhost
/sbin/iptables -A INPUT -p tcp -s 192.168.11.0/24 -d 192.168.11.5 –dport 22 -i eth0 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -s 192.168.11.5 –sport 22 -d 192.168.11.0/24 -o eth0 -j ACCEPT

# HTTP 80,443 許可#
/sbin/iptables -A INPUT -p tcp –dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p tcp –dport 443 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp –sport 80 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp –sport 443 -j ACCEPT

# 内部から行ったアクセスに対する外部からの返答アクセスを許可#
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

#loggingの設定#
/sbin/iptables -N LOGGING
/sbin/iptables -A LOGGING -j LOG –log-level warning –log-prefix “DROP:” -m limit
/sbin/iptables -A LOGGING -j DROP
/sbin/iptables -A INPUT -j LOGGING
/sbin/iptables -A OUTPUT -j LOGGING

[root@localhost ~]#

━━━━━━━━保存と再起動━━━━━━━━━━━━

[root@localhost ~]# /etc/rc.d/init.d/iptables save
ファイアウォールのルールを /etc/sysconfig/iptables に保存中[  OK  ]
[root@localhost ~]# /etc/init.d/iptables restart
ファイアウォールルールを適用中:                            [  OK  ]
チェインポリシーを ACCEPT に設定中filter                   [  OK  ]
iptables モジュールを取り外し中                            [  OK  ]
iptables ファイアウォールルールを適用中:                   [  OK  ]
iptables モジュールを読み込み中ip_conntrack_netbios_ns     [  OK  ]
[root@localhost ~]#

 

iptables2.jpg