[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 ~]#
まずは,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)は接続出来なくなってました。
━━━━━━━━スクリプトの編集(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 ~]#