セキュリティ情報ディレクトリ ITNAVI.net
Google
WWWを検索 itnavi.netを検索


HOME  定番情報源  情報漏洩を防止する  →個人情報保護  →情報漏洩防止商品  →データの消去・抹消・削除  Linux関連情報  →SELinux  →LIDS  Microsoft関連情報  プロファイリングで攻撃者を調査する  認証  脆弱性検査(ペネトレーションテスト)  ログチェック  ウィルス対策  →Gumblar(ガンブラー)  →ウイルスバスター ダウンロード  →ノートン ダウンロード  スパイウェア・トロイの木馬対策  パケットキャプチャでネットワーク監視  暗号化  VPN  セキュアな無線LAN  セキュアプログラミング  →SQLインジェクション  メール関連のセキュリティ  ファイアウォールで守る  侵入検知  →Snort  シンクライアント  インシデントレスポンス  セキュリティポリシー  セキュリティ監査  セキュリティ関連の法律  過去のニュース  クレジットカードのセキュリティ 電子マネーのセキュリティ  各種ツールメモ  ノンセクション  セキュリティ関連書籍  サイトマップ 


iptablesを使ってサーバにファイアウォールを 

iptablesを使ってサーバにファイアウォールを

iptablesを使ってサーバにパーソナルファイアウォールを実装してみましょう。
RedHatの場合、バージョンによってモジュールが、ipchains か iptables かが違うので、ipchains だった場合、下記のモジュール切り替え作業が必要です。
まず lsmod でモジュールを確認します。
# lsmod
Module                  Size  Used by
autofs                 11584   0  (autoclean) (unused)
8139too                13120   1
ipchains               39392   0
usb-uhci               21696   0  (unused)
usbcore                51808   1  [usb-uhci]
ext3                   62480   2
jbd                    41056   2  [ext3]
ipchains が組み込み済みのようです。下記のスクリプトを実行し、ipchains を無効にします。
# /etc/rc.d/init.d/ipchains stop
次に、iptables を使用するために、ipchainsを除去します。
# /sbin/rmmod ipchains
iptables を組み込みます。
# /sbin/insmod ip_tables
Using /lib/modules/2.4.9-13/kernel/net/ipv4/netfilter/ip_tables.o
ftp 接続の為のモジュールを挿入します。(カーネル直組み込みの場合は不要)
# /sbin/modprobe ip_nat_ftp
# /sbin/modprobe ip_conntrack_ftp
ここまでは前準備です。
以下は必要なルールを組み合わせてください。

# loopback アダプタからのパケットを受け付けます。
iptables -A INPUT -i lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT
# 自ホストからのパケットを受け付けます。
iptables -A INPUT -i eth0 -s 192.168.0.1/24 -d 0.0.0.0/0 -j ACCEPT
# 内部から発生した接続に関連するパケットを、受け付けます。いわゆるステートフルインスペクションのようなものです。
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# DNSサーバを構築する場合、domain(DNS)パケットを受け付けます。
iptables -A INPUT -p tcp -i eth0 -d 0.0.0.0/0 --dport 53 -j ACCEPT
iptables -A INPUT -p udp -i eth0 -d 0.0.0.0/0 --dport 53 -j ACCEPT
# domain(DNS)問い合わせに対する応答パケットを受け付けます。
iptables -A INPUT -p udp -i eth0 -s 0.0.0.0/0 --sport 53 -d 0.0.0.0/0 --dport 1024: -j ACCEPT
# ftpサーバを構築する場合、ftp パケットを受け付けます。
iptables -A INPUT -p tcp -i eth0 -d 0.0.0.0/0 --dport 21 -j ACCEPT
# メールサーバを構築する場合、smtp/pop3 パケットを受け付けます。
iptables -A INPUT -p tcp -i eth0 -d 0.0.0.0/0 --dport 25 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -d 0.0.0.0/0 --dport 110 -j ACCEPT
# Webサーバを構築する場合、http(&https)パケットを受け付けます。
iptables -A INPUT -p tcp -i eth0 -d 0.0.0.0/0 --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -d 0.0.0.0/0 --dport 443 -j ACCEPT
# ssh 接続を受け付ける場合。
iptables -A INPUT -p tcp -i eth0 -d 0.0.0.0/0 --dport 22 -j ACCEPT
# NTPサーバを構築する場合、ntp パケットを受け付けます。
iptables -A INPUT -p tcp -i eth0 -d 0.0.0.0/0 --dport 123 -j ACCEPT
iptables -A INPUT -p udp -i eth0 -d 0.0.0.0/0 --dport 123 -j ACCEPT
# DHCPサーバを構築する場合、dhcp パケットを受け付けます。
iptables -A INPUT -p udp -i eth0 -d 0.0.0.0/0 --dport 68 -j ACCEPT
# 全てのICMPパケットを受け付ける場合。
iptables -A INPUT -p icmp -i eth0 -d 0.0.0.0/0 -j ACCEPT
# 必要な ICMP パケットのみを受け付ける場合。
# echo-reply は ping に必要です。
iptables -A INPUT -p icmp -s 0/0 --icmp-type 0 -d 0/0 -j ACCEPT
# echo-requestは ping に必要です。
iptables -A INPUT -p icmp -s 0/0 --icmp-type 8 -d 0/0 -j ACCEPT
# destination-unreachable は 全ての tcp/udp トラフィックに必要です。
iptables -A INPUT -p icmp -s 0/0 --icmp-type 3 -d 0/0 -j ACCEPT
# time-exceeded は traceroute に必要です。
iptables -A INPUT -p icmp -s 0/0 --icmp-type 11 -d 0/0 -j ACCEPT
# LOGを取る場合の設定です。
iptables -A INPUT -p tcp -i eth0 -j LOG
iptables -A INPUT -p tcp -i eth0 -j DROP
iptables -A INPUT -p udp -i eth0 -j LOG
iptables -A INPUT -p udp -i eth0 -j DROP
iptables -A INPUT -p icmp -i eth0 -j LOG
iptables -A INPUT -p icmp -i eth0 -j DROP
ログを取るために全パケットを破棄する設定を追加しています。
ログは、/var/log/messagesに出力されます。

最後にポリシーを設定します。本当は最初にポリシーを設定するべきですが、リモートで設定する場合、接続が切れてしまうため最後にしています。
# FILTERING POLICY
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
それでは設定内容を見てみましょう。
# /sbin/iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  127.0.0.0/8          127.0.0.0/8
ACCEPT     all  --  192.168.0.1/24     anywhere
ACCEPT     all  --  anywhere             anywhere           state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere           udp dpt:domain
ACCEPT     udp  --  anywhere             anywhere           udp spt:domain dpts:1024:65535
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:ftp
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:smtp
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:pop3
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:ntp
ACCEPT     udp  --  anywhere             anywhere           udp dpt:ntp
ACCEPT     udp  --  anywhere             anywhere           udp dpt:bootpc
ACCEPT     icmp --  anywhere             anywhere           icmp echo-reply
ACCEPT     icmp --  anywhere             anywhere           icmp echo-request
ACCEPT     icmp --  anywhere             anywhere           icmp destination-unreachable
ACCEPT     icmp --  anywhere             anywhere           icmp time-exceeded
LOG        tcp  --  anywhere             anywhere           LOG level warning
DROP       tcp  --  anywhere             anywhere
LOG        udp  --  anywhere             anywhere           LOG level warning
DROP       udp  --  anywhere             anywhere
LOG        icmp --  anywhere             anywhere           LOG level warning
DROP       icmp --  anywhere             anywhere

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
これで良ければ、起動スクリプトの設定とフィルタリングルールを保存します。これにより、次回起動時もルールが有効になります。
/etc/sysconfig/iptables ファイルに保存されます。
# chkconfig --level 2345 ipchains off
# chkconfig --level 2345 iptables on
# /etc/rc.d/init.d/iptables save



セキュリティ情報ディレクトリセキュリティ情報ディレクトリ リンク集 Presented by ITNAVI.com