格下サラリーマンの備忘録

備忘録や何でも日記

ファイヤーウォール(iptables)

iptables設定スクリプトのメモです。

スクリプトファイルを作成して、実行してます。
不要な部分はコメントアウトして使えばおk。
ファイルには、実行権限が必要です。

#!/bin/sh

### IPアドレス、ネットワークアドレスの定義 ###
# サーバ機のアドレス #
MYHOST='192.168.1.61'

# 家庭内のアドレス(192.168.0.0/24と1.0/24を合わせて指定)#
HOME='192.168.1.0/24'

# NTPサーバのアドレス #
# NTP1: xxx.xxx.xxx.xxx -- プロバイダ
# NTP2: 210.173.160.57  -- MFEED(ntp2.jst.mfeed.ad.jp)
NTP1='xxx.xxx.xxx.xxx'
NTP2='210.173.160.57'

# ip_conntrack_ftpのロード #
modprobe ip_conntrack_ftp

### iptablesのコマンドパスの定義 ###
IPTABLES='/sbin/iptables'

### IPフォワードの停止 ###
echo 0 > /proc/sys/net/ipv4/ip_forward

### iptablesのチェーンの初期化 ###
$IPTABLES -F

### 暗黙の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

### 家庭内からのDNS問い合わせを許可 ###
$IPTABLES -A INPUT  -p udp -s $HOME --dport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p udp -d $HOME --sport 53 -j ACCEPT
$IPTABLES -A INPUT  -p tcp -m state --state NEW -s $HOME --dport 53 -j ACCEPT
### DNSサーバからの外部DNS問い合わせを許可 ###
$IPTABLES -A OUTPUT -p udp --dport 53 -j ACCEPT
$IPTABLES -A INPUT  -p udp --sport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -m state --state NEW --dport 53 -j ACCEPT

### 家庭内からのNTP問い合わせを許可 ###
$IPTABLES -A INPUT  -p udp -s $HOME --dport 123 -j ACCEPT
$IPTABLES -A OUTPUT -p udp -o $HOME --sport 123 -j ACCEPT
### NTPサーバからの外部NTP問い合わせを許可 ###
#$IPTABLES -A OUTPUT -d $NTP1 -p udp --dport 123 -j ACCEPT
#$IPTABLES -A INPUT  -s $NTP1 -p udp --sport 123 -j ACCEPT
#$IPTABLES -A OUTPUT -d $NTP2 -p udp --dport 123 --sport 123 -j ACCEPT
#$IPTABLES -A INPUT  -s $NTP2 -p udp --dport 123 --sport 123 -j ACCEPT

### 家庭内でのファイル共有(NetBIOS)を許可 ###
$IPTABLES -A INPUT  -p udp -s $HOME --dport 137:138 -j ACCEPT
$IPTABLES -A OUTPUT -p udp -d $HOME --sport 137:138 -j ACCEPT
$IPTABLES -A INPUT  -p tcp -m state --state NEW -s $HOME --dport 139 -j ACCEPT

### 家庭内からのSWAT(SWAT:901)アクセスを許可 ###
#$IPTABLES -A INPUT -p tcp -m state --state NEW -s $HOME --dport 901 -j ACCEPT

### 家庭内からのProxyアクセス(PROXY:8080)を許可 ###
#$IPTABLES -A INPUT -p tcp -m state --state NEW -s $HOME --dport 8080 -j ACCEPT

### 家庭内でのSSH(22)の使用を許可 ###
$IPTABLES -A INPUT  -p tcp -m state --state NEW -s $HOME --dport 22 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -m state --state NEW -d $HOME --dport 22 -j ACCEPT

### WWWサーバへのアクセス(HTTP:80,HTTPS:443)を許可 ###
#$IPTABLES -A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
$IPTABLES -A INPUT -p tcp -m state --state NEW --dport 443 -j ACCEPT

### 外部WWWサーバへのアクセス(HTTP:80,HTTPS:443)を許可 ###
$IPTABLES -A OUTPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -m state --state NEW --dport 443 -j ACCEPT

### FTPサーバへのアクセス(Active/Passive)を許可 ###
#$IPTABLES -A INPUT  -p tcp -m state --state NEW --dport 21 -j ACCEPT
#$IPTABLES -A INPUT  -p tcp -m state --state NEW --dport 4000:4029 -j ACCEPT
#$IPTABLES -A OUTPUT -p tcp -m state --state NEW --sport 20 -j ACCEPT

### 外部FTPサーバへのアクセス(Active/Passive)を許可 ###
$IPTABLES -A OUTPUT -p tcp -m state --state NEW --dport 21 -j ACCEPT
$IPTABLES -A INPUT  -p tcp -m state --state NEW --sport 20 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -m state --state NEW --dport 1024: -j ACCEPT

### メールサーバへのアクセス(SMTP:25/465)を許可 ###
$IPTABLES -A INPUT -p tcp -m state --state NEW --dport 25 -j ACCEPT
$IPTABLES -A INPUT -p tcp -m state --state NEW --dport 465 -j ACCEPT

### 外部メールサーバへのアクセス(SMTP:25,POP3:110)を許可 ###
$IPTABLES -A OUTPUT -p tcp -m state --state NEW --dport 25 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -m state --state NEW --dport 110 -j ACCEPT

### メールサーバへのアクセス(POP3:110/995,IMAP:143/993)を許可 ###
### 非SSL系は家庭内のみ許可 ###
$IPTABLES -A INPUT -p tcp -m state --state NEW -s $HOME --dport 110 -j ACCEPT
$IPTABLES -A INPUT -p tcp -m state --state NEW -s $HOME --dport 143 -j ACCEPT
$IPTABLES -A INPUT -p tcp -m state --state NEW --dport 993 -j ACCEPT
$IPTABLES -A INPUT -p tcp -m state --state NEW --dport 995 -j ACCEPT


### Ident(113)を拒否(DROPするとレスポンスが遅くなるのでReject) ###
$IPTABLES -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset

### PINGに対する処理 ###
$IPTABLES -A INPUT  -p icmp --icmp-type 8 -j ACCEPT
$IPTABLES -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT
$IPTABLES -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT
$IPTABLES -A INPUT  -p icmp --icmp-type 0 -j ACCEPT

### セッション確立後のパケット疎通は許可 ###
$IPTABLES -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

### 設定内容の保存 ###
/etc/rc.d/init.d/iptables save

### IPフォワードの開始 ###
echo 1 > /proc/sys/net/ipv4/ip_forward

関連記事
スポンサーサイト



テーマ:Linux - ジャンル:コンピュータ

  1. 2012/05/28(月) 12:18:53|
  2. Linux
  3. | トラックバック:0
  4. | コメント:0

コメント

<%template_post\comment>


管理者にだけ表示を許可する

トラックバック

トラックバック URL
https://don3893.blog.fc2.com/tb.php/36-8da5c277
この記事にトラックバックする(FC2ブログユーザー)