2009年2月18日

[linux-users:108206] Re: iptablesでポートフォワード

中司様、kenrouse様。お返事ありがとうございます。

> 以下のようにFORWARDログを取るとSSHの通信状態が見えたりしませんか。
> iptables -A FORWARD -j LOG --log-prefix "forward: "

iptablesを以下のように実行しました。

iptables -P INPUT DROP

iptables -F INPUT
iptables -P OUTPUT DROP
iptables -F OUTPUT
iptables -P FORWARD DROP
iptables -F FORWARD
iptables -F -t nat
iptables -X
iptables -Z
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i eth1 -d 192.168.11.1 -m state --state
ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o eth1 -s 192.168.11.1 -j ACCEPT
iptables -t nat -A PREROUTING -d 192.168.11.1 -p tcp --dport ssh -j LOG
--log-prefix 'prerouting: '
iptables -t nat -A PREROUTING -d 192.168.11.1 -p tcp --dport ssh -j DNAT
--to 192.168.11.2
iptables -A FORWARD -d 192.168.11.2 -p tcp --dport ssh -j LOG
--log-prefix 'forward: '
iptables -A FORWARD -d 192.168.11.2 -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -i eth1 -d 192.168.11.1 -m state --state NEW -s
0.0.0.0/0 -p tcp --dport ssh -j ACCEPT

FORWARDの設定を有効にするために以下を行いました。
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr

tail -f /var/log/message とすると以下のようなログがとれました。

1行目: Feb 18 09:51:42 dandelion kernel: prerouting: IN=eth1 OUT=
MAC=00:1e:4f:97:be:fc:00:0c:29:40:0f:da:08:00 SRC=192.168.11.3
DST=192.168.11.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=52930 DF PROTO=TCP
SPT=59497 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0
2行目: Feb 18 09:51:42 dandelion kernel: forward: IN=eth1 OUT=eth1
SRC=192.168.11.3 DST=192.168.11.2 LEN=60 TOS=0x00 PREC=0x00 TTL=63
ID=52930 DF PROTO=TCP SPT=59497 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0

2行目のログがずっと続きました。3行目以降はでてくる間隔が倍々になっている
感じでした。FORWARDチェーンの中でぐるぐる回っているのでしょうか。

>> iptables -t nat -A PREROUTING -d 192.168.11.1 -j DNAT --to 192.168.11.13
>
> 192.168.11.13 というアドレスがどこから出てきたのかは不明ですが、
> 192.168.1.3 だと考えてもこの書式ではうまくいかない気はします。

すみません11.2の間違いでした。

> 3つのホストはすべて同じネットワークアドレス(192.168.11.13/24)
> であると思われるので、NATを使うとうまくいかないかもしれませんね。
>
> 同じネットワーク内でのアドレス書き換えは、細工が必要なので、
> stone のような別の方法を使ったほうがよいかもしれません。
>
> http://www.gcd.org/sengoku/docs/NikkeiLinux00-08/Welcome.ja.html

iptablesだけでは難しいのですか。やりたいことは接続元のホスト(IPアドレス
で判別)ごとに違うサーバーに振り分けたいということなのですが、他にも方法
はあるでしょうか。ルーターで設定ができればいいのですが、私の所有するもの
はアドレス変換の設定に接続元の条件がないので困っています。

投稿者 xml-rpc : 2009年2月18日 10:31
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/82340
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。