#!/bin/sh # # IPTABLES の定義 IPTABLES="/sbin/iptables"
#
# 既存のテーブルを全て削除
$IPTABLES -F
#
##---------------------------IPアドレスの定義------------------------------##
HST_IP="172.16.50.2/27" # LinuxサーバーのIPアドレス
WWW_IP="172.16.50.2/27" # WebサーバーのIPアドレス
SSH_IP="172.16.50.2/27" # SSHサーバーのIPアドレス
SMT_IP="172.16.50.2/27" # SMTPサーバーのIPアドレス
POP_IP="172.16.50.2/27" # POPサーバーのIPアドレス
FTP_IP="172.16.50.2/27" # FTPサーバーのIPアドレス
SQD_IP="172.16.50.2/27" # SquidサーバーのIPアドレス
NS1_IP="172.16.50.2/27" # プライマリDNSのIPアドレス
NS2_IP="172.16.50.4/27" # 内向けセカンダリDNSのIPアドレス
NS3_IP="203.141.128.33/32" #
外向けセカンダリDNSのIPアドレス
NS4_IP="195.20.105.149/32" #
外向けセカンダリDNSのIPアドレス
NTP1_IP="133.100.9.2/32" # NTPサーバーのIPアドレス
NTP2_IP="133.100.11.8/32" #
NTPサーバーのIPアドレス
WSV_IP="172.16.50.4/27" # Windows2000サーバーのIPアドレス
## Port番号の定義
MUL_PORT="http,ssh,pop3,smtp,ftp"
# 応答のみのサーバーポート
FTP_PORT="40000:40100" # FTPポート(
Passive Mode 用)
## ネットワークアドレスの定義
MY_NET="172.16.0.0/16" # 自ネットワークの定義
AL_NET="0.0.0.0/0" # 全てのネットワークアドレス
## FTPモジュールのロード
modprobe ip_conntrack_ftp # FTPステートフル・パケットインスペクション
##---------------------------デフォルト拒否ルール---------------------------##
# 暗黙のdeny(デフォルト拒否)
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP
#
##---------------------------アクセス許可ルール-----------------------------##
#
# ループバックアドレスに関しては全て許可する
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
# ( For
WWW/SSH/POP3/SMTP/DNS/FTP )
$IPTABLES -A INPUT -p tcp -m multiport
-d $HST_IP --dport $MUL_PORT -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -m multiport
-s $HST_IP --sport $MUL_PORT -j ACCEPT
! --syn
# ( For
SMTP )
$IPTABLES -A INPUT -p tcp -d $SMT_IP --dport
25 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -s $SMT_IP
--sport 25 -j ACCEPT ! --syn
$IPTABLES
-A OUTPUT -p tcp -s $SMT_IP --dport 25
-j ACCEPT
$IPTABLES -A INPUT -p tcp -d $SMT_IP --sport
25 -j ACCEPT ! --syn
# ( For
Squid [ 自ネットワークからのみアクセスを許可 ] )
$IPTABLES -A INPUT -p tcp -s $MY_NET --dport
3128 -j ACCEPT
#
# ( For SMB [ 自ネットワークのファイル共有の許可 ] )
$IPTABLES -A INPUT -p udp -s $MY_NET --dport
137:138 -j ACCEPT
$IPTABLES -A OUTPUT -p udp -d $MY_NET
--sport 137:138 -j ACCEPT
$IPTABLES -A INPUT -p tcp -m state --state
NEW -s $MY_NET --dport 139 -j ACCEPT !
--syn
# ( For
DNS Rule1 [ 自ネットワークからのクエリの許可 ] )
$IPTABLES -A INPUT -p udp -s $MY_NET --dport
53 -j ACCEPT
$IPTABLES -A OUTPUT -p udp -d $MY_NET
--sport 53 -j ACCEPT
# ( For DNS Rule2 [ 自ネットワークからのクエリの許可 ]
)
$IPTABLES -A INPUT -p udp -s $NS3_IP --dport
53 -j ACCEPT
$IPTABLES -A OUTPUT -p udp -d $NS3_IP
--sport 53 -j ACCEPT
# ( For DNS Rule2 [ 外部DNSへの問い合わせを許可する
] )
$IPTABLES -A OUTPUT -p udp --dport 53
-j ACCEPT
$IPTABLES -A INPUT -p udp --sport 53 -j
ACCEPT
# ( For DNS [ ゾーン転送の許可 ] )
$IPTABLES -A INPUT -p tcp -s $NS2_IP -d
$NS1_IP --dport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -s $NS1_IP
-d $NS2_IP --sport 53 -j ACCEPT ! --syn
$IPTABLES -A INPUT -p tcp -s $NS3_IP -d
$NS1_IP --dport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -s $NS1_IP
-d $NS3_IP --sport 53 -j ACCEPT ! --syn
$IPTABLES -A INPUT -p tcp -s $NS4_IP -d
$NS1_IP --dport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -s $NS1_IP
-d $NS4_IP --sport 53 -j ACCEPT ! --syn
# ( For
FTP Control [ 自ネットワークのみ許可 ] )
$IPTABLES -A INPUT -p tcp -d $FTP_IP --dport
21 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -s $FTP_IP
--sport 21 -j ACCEPT ! --syn
# ( For
FTP Data by Passive Mode [ 自ネットワークのみ許可
] )
$IPTABLES -A INPUT -p tcp --dport $FTP_PORT
-m state --state ESTABLISHED,RELATED -j
ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport $FTP_PORT
-m state --state ESTABLISHED -j ACCEPT
# ( For
NTP [ 外部NTPサーバーからの問い合わせを許可 ] )
$IPTABLES -A INPUT -p udp -s $NTP1_IP
--dport 123 -j ACCEPT
$IPTABLES -A OUTPUT -p udp -d $NTP1_IP
--sport 123 -j ACCEPT
$IPTABLES -A INPUT -p udp -s $NTP2_IP
--dport 123 -j ACCEPT
$IPTABLES -A OUTPUT -p udp -d $NTP2_IP
--sport 123 -j ACCEPT
# ( For
Ident [ Identサーバーへのアクセスを拒否する])
$IPTABLES -A OUTPUT -p tcp --dport 113
-j REJECT
# ( For
dest-unreachable )
$IPTABLES -A INPUT -p icmp --icmp-type
destination-unreachable -j ACCEPT
$IPTABLES -A OUTPUT -p icmp --icmp-type
destination-unreachable -j ACCEPT
# ( For
Ping [ 自ネットワークからのPingに応答 ] )
$IPTABLES -A INPUT -p icmp --icmp-type
8 -s $MY_NET -d $HST_IP -j ACCEPT
$IPTABLES -A OUTPUT -p icmp --icmp-type
0 -s $HST_IP -d $MY_NET -j ACCEPT
#
# End Of Rules
|