- PR -

【Linuxルータ】同様の悩みです。。。

1
投稿者投稿内容
nwx
会議室デビュー日: 2006/04/13
投稿数: 1
投稿日時: 2006-04-13 01:37
こんばんは。

他の方が同じような悩みを抱えておられるのを見ましたが、
未解決のようでしたので、新規投稿させて頂きました。

私の環境は、インターフェースが3枚で、

eth0(ppp0)はモデムへ(PPPoE)
eth1は各サーバへ (IP:192.168.10.1)
eth2はローカルエリア (IP:192.168.1.1/24)

と定義しています。

@ITなどを検索して1つのiptablesを組んだのですが、
いくつか問題が出てきて解決できません。。

1は、他の方同様Webページが表示されないのですが、
ヤフーやその他、すぐに表示されるサイトもあります。
@ITは遅くて無理です。

2は、外部からPacketixでVPNをはりたいのですが、
443は外部から開いているのに接続ができない。
クライアントからサーバにはつながっているような感じなのですが、
接続はできません。

3つめはローカルホストからゲートウェイにPingが飛びません。。

※外部からのWebサーバは問題なく見れる。

この問題の為現在2つのiptablesスクリプトを使っています。
もう一方は上の3つの問題がなくなります。

長くなりますが、指摘を頂ければと思いますので、スクリプトを載せます。
よろしくお願いいたします。
※グローバルIPを直で書いている為、2*0.*55.2*6.17*と記載させて頂いております。


【問題が起きるiptables】

#!/bin/sh


#############
# 変数設定  #         
#############

IPTABLES="/sbin/iptables"

###################
# フォワード有効化  #         
###################

#echo 1 > /proc/sys/net/ipv4/ip_forward

#################
# テーブル初期化 #
#################

$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -X

################
# 初期設定ルール #
################

$IPTABLES -P INPUT DROP
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -P OUTPUT ACCEPT

$IPTABLES -P FORWARD DROP
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A FORWARD -i eth1 -o ppp0 -s 192.168.10.0/24 -j ACCEPT
$IPTABLES -A FORWARD -i eth2 -o ppp0 -s 192.168.1.0/24 -j ACCEPT

#####################################
# ローカルIP->グローバルIPへマスカレード #
#####################################

$IPTABLES -t nat -A POSTROUTING -o ppp0 -s 192.168.10.0/24 -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -o ppp0 -s 192.168.1.0/24 -j MASQUERADE

##################
# ループバック許可 #
##################

$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

#################
# LAN<->DMZ許可 #
#################

$IPTABLES -A FORWARD -i eth1 -o eth2 -j ACCEPT
$IPTABLES -A FORWARD -i eth1 -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A FORWARD -i eth2 -o eth1 -j ACCEPT
$IPTABLES -A FORWARD -i eth2 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

############
# ICMP許可 #
############

$IPTABLES -A OUTPUT -p icmp --icmp-type echo-reply -s 192.168.10.0/24 -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -s 192.168.10.0/24 -j ACCEPT

$IPTABLES -A OUTPUT -p icmp --icmp-type echo-reply -s 192.168.1.0/24 -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -s 192.168.1.0/24 -j ACCEPT

###########
# ssh許可 #
###########

$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

$IPTABLES -A INPUT -p tcp -m state --state NEW,ESTABLISHED,RELATED -s 192.168.10.0/24 -d 192.168.10.0/24 --dport 22 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -s 192.168.10.0/24 --sport 22 -d 192.168.10.0/24 -j ACCEPT

$IPTABLES -A INPUT -p tcp -m state --state NEW,ESTABLISHED,RELATED -s 192.168.1.0/24 -d 192.168.10.0/24 --dport 22 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -s 192.168.10.0/24 --sport 22 -d 192.168.1.0/24 -j ACCEPT


##########################
# スタティックルーティング #
##########################

#################
# DNAT(HTTP) #
#################

http_ip='192.168.10.100'
http_port='80'
$IPTABLES -t nat -A PREROUTING -p tcp -i ppp0 -d 2*0.*55.2*6.17* --dport 80 -j DNAT --to-destination $http_ip:$http_port
$IPTABLES -A FORWARD -i ppp0 -o eth1 -p tcp -d $http_ip --dport $http_port -j ACCEPT

#################
# DNAT(HTTPS) #
#################

https_ip='192.168.10.50'
https_port='443'
$IPTABLES -t nat -A PREROUTING -p tcp -i ppp0 -d 2*0.*55.2*6.17* --dport 443 -j DNAT --to-destination $https_ip:$https_port
$IPTABLES -A FORWARD -i ppp0 -o eth1 -p tcp -d $https_ip --dport $https_port -j ACCEPT

#################
# DNAT(SMTP) #
#################

smtp_ip='192.168.10.110'
smtp_port='25'
$IPTABLES -t nat -A PREROUTING -p tcp -i ppp0 -d 2*0.*55.2*6.17* --dport $smtp_port -j DNAT --to-destination $smtp_ip:$smtp_port
$IPTABLES -A FORWARD -i ppp0 -o eth1 -p tcp -d $smtp_ip --dport $smtp_port -j ACCEPT

#################
# DNAT(POP3) #
#################

pop3_ip='192.168.10.110'
pop3_port='110'
$IPTABLES -t nat -A PREROUTING -p tcp -i ppp0 -d 2*0.*55.2*6.17* --dport $pop3_port -j DNAT --to-destination $pop3_ip:$pop3_port
$IPTABLES -A FORWARD -i ppp0 -o eth1 -p tcp -d $pop3_ip --dport $pop3_port -j ACCEPT

#################
# DNAT(SSH) #
#################

ssh_ip='192.168.10.10'
ssh_port='22'
$IPTABLES -t nat -A PREROUTING -p tcp -i ppp0 -d 2*0.*55.2*6.17* --dport $ssh_port -j DNAT --to-destination $ssh_ip:$ssh_port
$IPTABLES -A FORWARD -i ppp0 -o eth1 -p tcp -d $ssh_ip --dport $ssh_port -j ACCEPT

################################
# ローカルIPを外部へ漏れるのを防止 #
################################

$IPTABLES -A OUTPUT -o ppp0 -d 10.0.0.0/8 -j DROP
$IPTABLES -A OUTPUT -o ppp0 -d 176.16.0.0/12 -j DROP
$IPTABLES -A OUTPUT -o ppp0 -d 192.168.0.0/16 -j DROP
$IPTABLES -A OUTPUT -o ppp0 -d 127.0.0.0/8 -j DROP

############
# ロギング #
############

$IPTABLES -N LOGGING
$IPTABLES -A LOGGING -j LOG --log-level warning --log-prefix "DROP:" -m limit
$IPTABLES -A LOGGING -j DROP
$IPTABLES -A INPUT -j LOGGING
$IPTABLES -A FORWARD -j LOGGING

############
# 設定保存 #
############

/etc/init.d/iptables save

#################
# END #
#################






【問題は解決されるがセキュリティが低いと思われるiptables】
#!/bin/sh

IPTABLES="/sbin/iptables"

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

###################################################
#
# INPUT:入ってくるパケット
# FORWARD:転送パケット
# OUTPUT:出て行くパケット
#
##################################################

# 原則破棄
$IPTABLES -P INPUT DROP

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

####################################################
#
# INPUT
#
####################################################

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

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

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

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

# SSLのアクセスを許可
$IPTABLES -A INPUT -p tcp --dport 443 -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 192.168.10.0/24 -j ACCEPT
$IPTABLES -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT

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

####################################################################
#
# FORWARD
#
####################################################################

# 宛先ポート135,137&#12316;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 ppp0 -s 192.168.10.0/24 -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -o ppp0 -s 192.168.1.0/24 -j MASQUERADE

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

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

#######################################################################
#
# 静的NAT
#
########################################################################

$IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 22 -j DNAT --to 192.168.10.10
$IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to 192.168.10.100
$IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 25 -j DNAT --to 192.168.10.110
$IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 110 -j DNAT --to 192.168.10.110
$IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 443 -j DNAT --to 192.168.10.50
$IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 53 -j DNAT --to 192.168.10.130
$IPTABLES -t nat -A PREROUTING -i ppp0 -p udp --dport 53 -j DNAT --to 192.168.10.130



[ メッセージ編集済み 編集者: nwx 編集日時 2006-04-13 01:40 ]
1

スキルアップ/キャリアアップ(JOB@IT)