HOMERSSサイトマップ

2009年02月26日

iptablesでファイヤーウォール

iptablesの設定は以下のサイトを勝手に参考にさせてもらいました。

Linux/iptablesでルータを作る

/etc/network/interfacesに1行追加。

# vi /etc/network/interfaces

次の1行を追加します。

pre-up /etc/iptables.sh

次にiptables.shを作成します。

# vi /etc/iptables.sh


#!/bin/sh
PRIVATE="192.168.1.0/24"
IPTABLES="/sbin/iptables"
MODPROBE="/sbin/modprobe"

# ルールをクリア
$IPTABLES -F
$IPTABLES -t nat -F

###################################################
#
# ポリシーの設定
# INPUT:入ってくるパケット
# FORWARD:転送パケット
# OUTPUT:出て行くパケット
#
##################################################

# 原則破棄
$IPTABLES -P INPUT DROP

# 原則許可
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT

####################################################
#
# INPUT
# サーバ機に入ってくるパケットに対するチェイン
#
####################################################

# icmpを許可
$IPTABLES -A INPUT -p icmp -j ACCEPT

# WEBサーバへのアクセスを許可
$IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT

# SMTPサーバへのアクセスを許可
$IPTABLES -A INPUT -p tcp --dport 25 -j ACCEPT

# SSHのアクセスを許可
$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT

# POPサーバへのアクセスを許可
$IPTABLES -A INPUT -p tcp --dport 110 -j ACCEPT

# DHCP リクエストを許可
$IPTABLES -A INPUT -i eth0 -p udp --sport 68 --dport 67 -j ACCEPT


# 外部からDNSサーバへのアクセスを許可
$IPTABLES -A INPUT -p tcp --dport 53 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 53 -j ACCEPT

# 自端末からのアクセスを許可
$IPTABLES -A INPUT -i lo -j ACCEPT

# LAN内の他端末からのアクセスを許可
$IPTABLES -A INPUT -i eth0 -s $PRIVATE -j ACCEPT

#接続が確立したパケットの応答は許可
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

####################################################################
#
# FORWARD
# サーバ機を経由するパケット
#
####################################################################

# 宛先ポート135,137〜139,445のパケットを破棄
$IPTABLES -A FORWARD -p tcp --dport 135 -j DROP
$IPTABLES -A FORWARD -p udp --dport 135 -j DROP
$IPTABLES -A FORWARD -p tcp --dport 137:139 -j DROP
$IPTABLES -A FORWARD -p udp --dport 137:139 -j DROP
$IPTABLES -A FORWARD -p tcp --dport 445 -j DROP
$IPTABLES -A FORWARD -p udp --dport 445 -j DROP

# パスMTU問題対策
$IPTABLES -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

##########################################################################
#
# LANから外に出て行くパケットの送信元IPを書き換える
# 透過プロキシを利用する。
#
##########################################################################
$IPTABLES -t nat -A POSTROUTING -o eth1 -s $PRIVATE -j MASQUERADE
$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

#######################################################################
#
# OUTPUT
# サーバ機で生成されたパケットに対するチェイン
#
#######################################################################

# 宛先ポート135,137〜139,445のパケットを破棄
$IPTABLES -A OUTPUT -o eth1 -p tcp --dport 135 -j DROP
$IPTABLES -A OUTPUT -o eth1 -p udp --dport 135 -j DROP
$IPTABLES -A OUTPUT -o eth1 -p tcp --dport 137:139 -j DROP
$IPTABLES -A OUTPUT -o eth1 -p udp --dport 137:139 -j DROP
$IPTABLES -A OUTPUT -o eth1 -p tcp --dport 445 -j DROP
$IPTABLES -A OUTPUT -o eth1 -p udp --dport 445 -j DROP

#######################################################################
#
# FTPを利用する
#
#######################################################################
$MODPROBE ip_conntrack_ftp
$MODPROBE ip_nat_ftp


実行権限を追加します。

# chmod +x /etc/iptables.sh

以上です。

カテゴリ:Ubuntuでルータ| パーマリンク |TOPページへ   ▲画面上へ

トラックバック

このエントリーのトラックバックURL:
http://kusumoto-jp.org/mt-tb.cgi/61

Copyright (C)堕落日記.