- PR -

SSHで複数のサーバーに別々のポートを割り当てて接続したい

投稿者投稿内容
未記入
常連さん
会議室デビュー日: 2006/04/11
投稿数: 21
投稿日時: 2006-04-26 03:09
私が言いたかったのはLinuxはドキュメントが多いので、
安易に質問されず、ご自身でいろいろ調べることができると
いいたかったのです。まぁ確かにそんなこといったら
この掲示板は存在しませんねw

ですので、アドバイスさせていただきます。
 listを公開していただいたのですが、
  iptables --list -v と iptables -t nat --list -v
としていただくか、スクリプトを公開していただけますか。
   例えばINPUTの
    ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
  たぶんデバイスを設定されているのだと思うのですがiptables --listだけでは
  デバイス指定が出力されませんので、こちらから見るとすべてを許可しているように
  認識してしまいます。(ちなみに私はそう思ってました)
Jumpin'' Jack Flash
大ベテラン
会議室デビュー日: 2006/01/24
投稿数: 198
投稿日時: 2006-04-26 11:58
アドバイスありがとうございます。

一応、自分なりに調べてみたのですが理解できないことが多く、この場に頼ってしまった次第です。
問題を解決しながら理解を深めたいと思っております。

情報が不足していて申し訳ございませんでした。
以下、よろしくお願いいたします。

# iptables --list -v
----
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 OTHERFILTER all -- any any 222.251.128.0/17 anywhere

----
OTHERFILTERが多くて、1時間たっても終わらないので、割愛させていただきます。
後方にスクリプトを掲載します。

# iptables -t nat --list -v
----
Chain PREROUTING (policy ACCEPT 5225 packets, 524K bytes)
pkts bytes target prot opt in out source destination
6 448 REDIRECT tcp -- ppp0 any anywhere anywhere tcp dpt:ssh redir ports 22
0 0 DNAT tcp -- ppp0 any anywhere anywhere tcp dpt:ssh to:192.168.1.2:22
186 12203 DNAT udp -- ppp0 any anywhere anywhere udp dpt:domain to:192.168.1.3
7 420 DNAT tcp -- any any ns.maihama-net.com anywhere tcp dpt:domain to:192.168.1.3
99 4832 DNAT tcp -- ppp0 any anywhere anywhere tcp dpt:http to:192.168.1.3
1 52 DNAT tcp -- ppp0 any anywhere anywhere tcp dpt:https to:192.168.1.3
73 4260 DNAT tcp -- ppp0 any anywhere anywhere tcp dpt:smtp to:192.168.1.3
0 0 DNAT tcp -- ppp0 any anywhere anywhere tcp dpt:smtps to:192.168.1.3
105 6720 DNAT tcp -- ppp0 any anywhere anywhere tcp dpt:pop3 to:192.168.1.3
24 1152 DNAT tcp -- ppp0 any anywhere anywhere tcp dpt:pop3s to:192.168.1.3
0 0 DNAT tcp -- ppp0 any anywhere anywhere tcp dpt:imap to:192.168.1.3
0 0 DNAT tcp -- ppp0 any anywhere anywhere tcp dpt:imaps to:192.168.1.3
2 140 DNAT udp -- ppp0 any anywhere anywhere udp dpt:1194 to:192.168.1.3
0 0 DNAT udp -- ppp0 any anywhere anywhere udp dpt:svn to:192.168.1.3

Chain POSTROUTING (policy ACCEPT 864 packets, 52738 bytes)
pkts bytes target prot opt in out source destination
4655 279K MASQUERADE all -- any ppp0 anywhere anywhere

Chain OUTPUT (policy ACCEPT 908 packets, 50578 bytes)
pkts bytes target prot opt in out source destination
----

iptablesのスクリプトです。
----
# デフォルトルール(下記にマッチしない場合のルール)
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# フラグメント化されたパケットはログを記録して破棄
iptables -N LOG_FRAGMENT
iptables -A LOG_FRAGMENT -j LOG --log-tcp-options --log-ip-options --log-prefix '[IPTABLES FRAGMENT] : '
iptables -A LOG_FRAGMENT -j DROP
iptables -A INPUT -f -j LOG_FRAGMENT
iptables -A FORWARD -f -j LOG_FRAGMENT

# 外部からの送信元がプライベートIPアドレスのパケットはログを記録して破棄
iptables -N LOG_SPOOFING
iptables -A LOG_SPOOFING -j LOG --log-tcp-options --log-ip-options --log-prefix '[IPTABLES SPOOFING] : '
iptables -A LOG_SPOOFING -j DROP
iptables -A INPUT -i ppp0 -s 127.0.0.0/8 -j LOG_SPOOFING
iptables -A INPUT -i ppp0 -s 10.0.0.0/8 -j LOG_SPOOFING
iptables -A INPUT -i ppp0 -s 172.16.0.0/12 -j LOG_SPOOFING
iptables -A INPUT -i ppp0 -s 192.168.0.0/16 -j LOG_SPOOFING
iptables -A FORWARD -i ppp0 -s 127.0.0.0/8 -j LOG_SPOOFING
iptables -A FORWARD -i ppp0 -s 10.0.0.0/8 -j LOG_SPOOFING
iptables -A FORWARD -i ppp0 -s 172.16.0.0/12 -j LOG_SPOOFING
iptables -A FORWARD -i ppp0 -s 192.168.0.0/16 -j LOG_SPOOFING

# 外部とのNetBIOS関連のアクセスはログを記録せずに破棄
iptables -A INPUT -i ppp0 -p tcp -m multiport --dports 135,137,138,139,445 -j DROP
iptables -A INPUT -i ppp0 -p udp -m multiport --dports 135,137,138,139,445 -j DROP
iptables -A OUTPUT -o ppp0 -p tcp -m multiport --sports 135,137,138,139,445 -j DROP
iptables -A OUTPUT -o ppp0 -p udp -m multiport --sports 135,137,138,139,445 -j DROP
iptables -A FORWARD -i ppp0 -p tcp -m multiport --dports 135,137,138,139,445 -j DROP
iptables -A FORWARD -i ppp0 -p udp -m multiport --dports 135,137,138,139,445 -j DROP
iptables -A FORWARD -o ppp0 -p tcp -m multiport --sports 135,137,138,139,445 -j DROP
iptables -A FORWARD -o ppp0 -p udp -m multiport --sports 135,137,138,139,445 -j DROP

# 1秒間に4回を超えるpingはログを記録して破棄
iptables -N LOG_PINGDEATH
iptables -A LOG_PINGDEATH -m limit --limit 1/s --limit-burst 4 -j ACCEPT
iptables -A LOG_PINGDEATH -j LOG --log-prefix '[IPTABLES PINGDEATH] : '
iptables -A LOG_PINGDEATH -j DROP
iptables -A INPUT -p icmp --icmp-type echo-request -j LOG_PINGDEATH
iptables -A FORWARD -o ! ppp0 -p icmp --icmp-type echo-request -j LOG_PINGDEATH

# 送信元IPアドレスが内部ネットワーク範囲外のアクセスはログを記録して破棄
iptables -N LOG_INGRESS
iptables -A LOG_INGRESS -j LOG --log-tcp-options --log-ip-options --log-prefix '[IPTABLES INGRESS] : '
iptables -A LOG_INGRESS -j DROP
iptables -A FORWARD -i eth0 -s ! 192.168.1.0/255.255.255.0 -j LOG_INGRESS

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

# 自ホストからのアクセスをすべて許可
iptables -A INPUT -i lo -j ACCEPT

# 内部からのアクセスをすべて許可
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -j ACCEPT

# IPマスカレード(NAPT)
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

# 内部から行ったアクセスに対する外部からの返答アクセスを許可
iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# 外部からの必須ICMPパケットを許可
iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
iptables -A INPUT -p icmp --icmp-type source-quench -j ACCEPT
iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
iptables -A INPUT -p icmp --icmp-type parameter-problem -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type destination-unreachable -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type source-quench -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type time-exceeded -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type parameter-problem -j ACCEPT

# 113番ポート(IDENT)へのアクセスには拒否応答
iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset
iptables -A FORWARD -p tcp --dport 113 -j REJECT --reject-with tcp-reset

# 22番ポート(SSH)へのアクセスを許可
iptables -A INPUT -i ppp0 -p tcp --dport 22 -j ACCEPT

# PCルータ:10122番ポート(SSH)へのアクセスを許可
iptables -A FORWARD -i ppp0 -p tcp -d 192.168.1.1 --dport 10122 -j ACCEPT
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 10122 -j REDIRECT --to-port 22

# サーバ:10222番ポート(SSH)へのアクセスを許可
iptables -A FORWARD -i ppp0 -p tcp -d 192.168.1.2 --dport 10222 -j ACCEPT
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 10222 -j DNAT --to 192.168.1.2:22

# サーバ2へのアクセス制限:省略

# 指定したIPアドレスからのアクセスはログを記録せずに破棄
iptables -N OTHERFILTER
iptables -A OTHERFILTER -j DROP
iptables -I INPUT -s 222.251.128.0/17 -j OTHERFILTER
iptables -I FORWARD -s 222.251.128.0/17 -j OTHERFILTER
:省略

# 上記のルールにマッチしなかったアクセスはログを記録して破棄
iptables -A INPUT -j LOG --log-tcp-options --log-ip-options --log-prefix '[IPTABLES INPUT] : '
iptables -A INPUT -j DROP
iptables -A FORWARD -j LOG --log-tcp-options --log-ip-options --log-prefix '[IPTABLES FORWARD] : '
iptables -A FORWARD -j DROP
----
Jumpin'' Jack Flash
大ベテラン
会議室デビュー日: 2006/01/24
投稿数: 198
投稿日時: 2006-04-26 12:05
引用:

OTHERFILTERが多くて、1時間たっても終わらないので、割愛させていただきます。


と書いている間に終わりましたので、掲載させていただきます。
見辛くて申し訳ございませんが、よろしくお願いいたします。

# iptables --list -v
----
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 OTHERFILTER all -- any any 222.251.128.0/17 anywhere
:中略
0 0 LOG_FRAGMENT all -f any any anywhere anywhere
0 0 LOG_SPOOFING all -- ppp0 any 127.0.0.0/8 anywhere
0 0 LOG_SPOOFING all -- ppp0 any 10.0.0.0/8 anywhere
0 0 LOG_SPOOFING all -- ppp0 any 172.16.0.0/12 anywhere
0 0 LOG_SPOOFING all -- ppp0 any 192.168.0.0/16 anywhere
161 7824 DROP tcp -- ppp0 any anywhere anywhere multiport dports 135,netbios-ns,netbios-dgm,netbios-ssn,microsoft-ds
6 468 DROP udp -- ppp0 any anywhere anywhere multiport dports 135,netbios-ns,netbios-dgm,netbios-ssn,microsoft-ds
26 2392 LOG_PINGDEATH icmp -- any any anywhere anywhere icmp echo-request
58 18531 ACCEPT all -- lo any anywhere anywhere
5960 886K ACCEPT all -- eth0 any anywhere anywhere
20256 9668K ACCEPT all -- ppp0 any anywhere anywhere state RELATED,ESTABLISHED
3 224 ACCEPT icmp -- any any anywhere anywhere icmp destination-unreachable
0 0 ACCEPT icmp -- any any anywhere anywhere icmp source-quench
0 0 ACCEPT icmp -- any any anywhere anywhere icmp time-exceeded
0 0 ACCEPT icmp -- any any anywhere anywhere icmp parameter-problem
0 0 REJECT tcp -- any any anywhere anywhere tcp dpt:auth reject-with tcp-reset
35 2292 ACCEPT tcp -- ppp0 any anywhere anywhere tcp dpt:ssh
480 189K LOG all -- any any anywhere anywhere LOG level warning tcp-options ip-options prefix `[IPTABLES INPUT] : '
480 189K DROP all -- any any anywhere anywhere

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 OTHERFILTER all -- any any 222.251.128.0/17 anywhere
:中略
0 0 LOG_FRAGMENT all -f any any anywhere anywhere
0 0 LOG_SPOOFING all -- ppp0 any 127.0.0.0/8 anywhere
0 0 LOG_SPOOFING all -- ppp0 any 10.0.0.0/8 anywhere
0 0 LOG_SPOOFING all -- ppp0 any 172.16.0.0/12 anywhere
0 0 LOG_SPOOFING all -- ppp0 any 192.168.0.0/16 anywhere
0 0 DROP tcp -- ppp0 any anywhere anywhere multiport dports 135,netbios-ns,netbios-dgm,netbios-ssn,microsoft-ds
0 0 DROP udp -- ppp0 any anywhere anywhere multiport dports 135,netbios-ns,netbios-dgm,netbios-ssn,microsoft-ds
0 0 DROP tcp -- any ppp0 anywhere anywhere multiport sports 135,netbios-ns,netbios-dgm,netbios-ssn,microsoft-ds
0 0 DROP udp -- any ppp0 anywhere anywhere multiport sports 135,netbios-ns,netbios-dgm,netbios-ssn,microsoft-ds
0 0 LOG_PINGDEATH icmp -- any !ppp0 anywhere anywhere icmp echo-request
34 8127 LOG_INGRESS all -- eth0 any !192.168.1.0/24 anywhere
1489 74748 TCPMSS tcp -- any any anywhere anywhere tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
20740 5472K ACCEPT all -- eth0 any anywhere anywhere
18727 6324K ACCEPT all -- ppp0 any anywhere anywhere state RELATED,ESTABLISHED
0 0 ACCEPT icmp -- any any anywhere anywhere icmp destination-unreachable
0 0 ACCEPT icmp -- any any anywhere anywhere icmp source-quench
0 0 ACCEPT icmp -- any any anywhere anywhere icmp time-exceeded
0 0 ACCEPT icmp -- any any anywhere anywhere icmp parameter-problem
0 0 REJECT tcp -- any any anywhere anywhere tcp dpt:auth reject-with tcp-reset
0 0 ACCEPT tcp -- ppp0 any anywhere 192.168.1.1 tcp dpt:ssh
0 0 ACCEPT tcp -- ppp0 any anywhere 192.168.1.2 tcp dpt:ssh
68 4532 ACCEPT udp -- ppp0 any anywhere 192.168.1.3 udp dpt:domain
7 420 ACCEPT tcp -- any any ns.maihama-net.com 192.168.1.3 tcp dpt:domain
97 4752 ACCEPT tcp -- ppp0 any anywhere 192.168.1.3 tcp dpt:http
1 52 ACCEPT tcp -- ppp0 any anywhere 192.168.1.3 tcp dpt:https
68 4020 ACCEPT tcp -- ppp0 any anywhere 192.168.1.3 tcp dpt:smtp
0 0 ACCEPT tcp -- ppp0 any anywhere 192.168.1.3 tcp dpt:smtps
104 6656 ACCEPT tcp -- ppp0 any anywhere 192.168.1.3 tcp dpt:pop3
24 1152 ACCEPT tcp -- ppp0 any anywhere 192.168.1.3 tcp dpt:pop3s
0 0 ACCEPT tcp -- ppp0 any anywhere 192.168.1.3 tcp dpt:imap
0 0 ACCEPT tcp -- ppp0 any anywhere 192.168.1.3 tcp dpt:imaps
2 140 ACCEPT udp -- ppp0 any anywhere 192.168.1.3 udp dpt:1194
0 0 ACCEPT udp -- ppp0 any anywhere 192.168.1.3 udp dpt:svn
0 0 LOG all -- any any anywhere anywhere LOG level warning tcp-options ip-options prefix `[IPTABLES FORWARD] : '
0 0 DROP all -- any any anywhere anywhere

Chain OUTPUT (policy ACCEPT 24357 packets, 3013K bytes)
pkts bytes target prot opt in out source destination
0 0 DROP tcp -- any ppp0 anywhere anywhere multiport sports 135,netbios-ns,netbios-dgm,netbios-ssn,microsoft-ds
0 0 DROP udp -- any ppp0 anywhere anywhere multiport sports 135,netbios-ns,netbios-dgm,netbios-ssn,microsoft-ds

Chain LOG_FRAGMENT (2 references)
pkts bytes target prot opt in out source destination
0 0 LOG all -- any any anywhere anywhere LOG level warning tcp-options ip-options prefix `[IPTABLES FRAGMENT] : '
0 0 DROP all -- any any anywhere anywhere

Chain LOG_INGRESS (1 references)
pkts bytes target prot opt in out source destination
34 8127 LOG all -- any any anywhere anywhere LOG level warning tcp-options ip-options prefix `[IPTABLES INGRESS] : '
34 8127 DROP all -- any any anywhere anywhere

Chain LOG_PINGDEATH (2 references)
pkts bytes target prot opt in out source destination
26 2392 ACCEPT all -- any any anywhere anywhere limit: avg 1/sec burst 4
0 0 LOG all -- any any anywhere anywhere LOG level warning prefix `[IPTABLES PINGDEATH] : '
0 0 DROP all -- any any anywhere anywhere

Chain LOG_SPOOFING (8 references)
pkts bytes target prot opt in out source destination
0 0 LOG all -- any any anywhere anywhere LOG level warning tcp-options ip-options prefix `[IPTABLES SPOOFING] : '
0 0 DROP all -- any any anywhere anywhere

Chain OTHERFILTER (2796 references)
pkts bytes target prot opt in out source destination
418 47511 DROP all -- any any anywhere anywhere
----


[ メッセージ編集済み 編集者: Jumpin' Jack Flash 編集日時 2006-04-26 12:06 ]
未記入
常連さん
会議室デビュー日: 2006/04/11
投稿数: 21
投稿日時: 2006-04-28 01:28
引用:
OTHERFILTERが多くて、1時間たっても終わらないので、割愛させていただきます。
====================================================
1時間もかかったのはドメインの逆引きを行っていたためで、[-n]オプションをつけると早くおわりますよ。

IPアドレスとポート番号の変換自体は下記の2つの設定を行うことで正常に行えます。
# PCルータ:10122番ポート(SSH)へのアクセスを許可
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 10122 -j REDIRECT --to-port 22
# サーバ:10222番ポート(SSH)へのアクセスを許可
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 10222 -j DNAT --to 192.168.1.2:22
 したがって、フィルタリングに問題がありそうです。詳細を見てみると
Chain FORWARDで 
0 0 ACCEPT tcp -- ppp0 any anywhere 192.168.1.1 tcp dpt:ssh
0 0 ACCEPT tcp -- ppp0 any anywhere 192.168.1.2 tcp dpt:ssh
 になっている事から、ここに来るまでのどこかで引っかかっている模様ですので、
  この設定をもっと頭のほうへ持ってきて試されてはいかがでしょうか?
   また、カウントを一度リセットし、どこに検出されているか確かめることをお勧めいたします。

[ メッセージ編集済み 編集者: 未記入 編集日時 2006-04-28 11:31 ]
未記入
常連さん
会議室デビュー日: 2006/04/11
投稿数: 21
投稿日時: 2006-04-28 01:46
今気づいたんですが
PREROUTINGで
6 448 REDIRECT tcp -- ppp0 any anywhere anywhere tcp dpt:ssh redir ports 22
0 0 DNAT tcp -- ppp0 any anywhere anywhere tcp dpt:ssh to:192.168.1.2:22
ってなってますよね、これちょっとおかしくないですか?
両方「tcp -- ppp0 any anywhere anywhere tcp dpt:ssh」でかぶってますね。
これだと上にあるほうしか反応しませんよね。
それにdportがsshってのもおかしいですね。
 
  新しい設定が反映されず、過去の変なものが残ったままになってませんか?
   スクリプトの頭に -Fと-Xオプションを入れてリセットされたほうが、
   よろしいかと思います。

[ メッセージ編集済み 編集者: 未記入 編集日時 2006-04-28 02:03 ]
Jumpin'' Jack Flash
大ベテラン
会議室デビュー日: 2006/01/24
投稿数: 198
投稿日時: 2006-04-29 02:15
ご対応ありがとうございます。

引用:

PREROUTINGで
6 448 REDIRECT tcp -- ppp0 any anywhere anywhere tcp dpt:ssh redir ports 22
0 0 DNAT tcp -- ppp0 any anywhere anywhere tcp dpt:ssh to:192.168.1.2:22
ってなってますよね、これちょっとおかしくないですか?
両方「tcp -- ppp0 any anywhere anywhere tcp dpt:ssh」でかぶってますね。
これだと上にあるほうしか反応しませんよね。
それにdportがsshってのもおかしいですね。


いろいろ設定を変えていた中で、/etc/services に、
----
ssh 10122/tcp # SSH Remote Login Protocol
ssh 10122/udp # SSH Remote Login Protocol
ssh 10222/tcp # SSH Remote Login Protocol
ssh 10222/udp # SSH Remote Login Protocol
----
このように追加していたためでした。

----
ssh1 10122/tcp # SSH Remote Login Protocol
ssh1 10122/udp # SSH Remote Login Protocol
ssh2 10222/tcp # SSH Remote Login Protocol
ssh2 10222/udp # SSH Remote Login Protocol
----
このように設定すると、
----
Chain PREROUTING (policy ACCEPT 51 packets, 5121 bytes)
pkts bytes target prot opt in out source destination
4 280 REDIRECT tcp -- ppp0 any anywhere anywhere tcp dpt:ssh1 redir ports 22
3 144 DNAT tcp -- ppp0 any anywhere anywhere tcp dpt:ssh2 to:192.168.1.2:22
----
このようになりました。


引用:

  新しい設定が反映されず、過去の変なものが残ったままになってませんか?
   スクリプトの頭に -Fと-Xオプションを入れてリセットされたほうが、
   よろしいかと思います。


スクリプトの先頭に、追加しました。
----
iptables -F
iptables -X
----

引用:

Chain FORWARDで 
0 0 ACCEPT tcp -- ppp0 any anywhere 192.168.1.1 tcp dpt:ssh
0 0 ACCEPT tcp -- ppp0 any anywhere 192.168.1.2 tcp dpt:ssh
 になっている事から、ここに来るまでのどこかで引っかかっている模様ですので、
  この設定をもっと頭のほうへ持ってきて試されてはいかがでしょうか?
   また、カウントを一度リセットし、どこに検出されているか確かめることをお勧めいたします。



# iptables -Z
でカウンタをクリアして試してみました。

CASE 1. 10122ポートへの接続(2回トライし、2回とも接続できた)
----
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 OTHERFILTER all -- * * 222.251.128.0/17 0.0.0.0/0
:中略
0 0 LOG_FRAGMENT all -f * * 0.0.0.0/0 0.0.0.0/0
0 0 LOG_SPOOFING all -- ppp0 * 127.0.0.0/8 0.0.0.0/0
0 0 LOG_SPOOFING all -- ppp0 * 10.0.0.0/8 0.0.0.0/0
0 0 LOG_SPOOFING all -- ppp0 * 172.16.0.0/12 0.0.0.0/0
0 0 LOG_SPOOFING all -- ppp0 * 192.168.0.0/16 0.0.0.0/0
0 0 DROP tcp -- ppp0 * 0.0.0.0/0 0.0.0.0/0 multiport dports 135,137,138,139,445
0 0 DROP udp -- ppp0 * 0.0.0.0/0 0.0.0.0/0 multiport dports 135,137,138,139,445
0 0 LOG_PINGDEATH icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 8
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
130 18696 ACCEPT all -- eth0 * 0.0.0.0/0 0.0.0.0/0
34 3980 ACCEPT all -- ppp0 * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 3
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 4
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 11
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 12
0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:113 reject-with tcp-reset
2 96 ACCEPT tcp -- ppp0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 6 level 4 prefix `[IPTABLES INPUT] : '
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
----
10122ポートへ接続しているのに、WANの22ポートに引っかかっています。なんでだろう?

CASE 2. 10222ポートへの接続(1回トライし、接続エラー)
----
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 OTHERFILTER all -- * * 222.251.128.0/17 0.0.0.0/0
:中略
0 0 LOG_FRAGMENT all -f * * 0.0.0.0/0 0.0.0.0/0
0 0 LOG_SPOOFING all -- ppp0 * 127.0.0.0/8 0.0.0.0/0
0 0 LOG_SPOOFING all -- ppp0 * 10.0.0.0/8 0.0.0.0/0
0 0 LOG_SPOOFING all -- ppp0 * 172.16.0.0/12 0.0.0.0/0
0 0 LOG_SPOOFING all -- ppp0 * 192.168.0.0/16 0.0.0.0/0
0 0 DROP tcp -- ppp0 * 0.0.0.0/0 0.0.0.0/0 multiport dports 135,137,138,139,445
0 0 DROP udp -- ppp0 * 0.0.0.0/0 0.0.0.0/0 multiport dports 135,137,138,139,445
0 0 DROP tcp -- * ppp0 0.0.0.0/0 0.0.0.0/0 multiport sports 135,137,138,139,445
0 0 DROP udp -- * ppp0 0.0.0.0/0 0.0.0.0/0 multiport sports 135,137,138,139,445
0 0 LOG_PINGDEATH icmp -- * !ppp0 0.0.0.0/0 0.0.0.0/0 icmp type 8
0 0 LOG_INGRESS all -- eth0 * !192.168.1.0/24 0.0.0.0/0
3 144 TCPMSS tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU
1 58 ACCEPT all -- eth0 * 0.0.0.0/0 0.0.0.0/0
1 105 ACCEPT all -- ppp0 * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 3
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 4
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 11
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 12
0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:113 reject-with tcp-reset
0 0 ACCEPT tcp -- ppp0 * 0.0.0.0/0 192.168.1.1 tcp dpt:10122
0 0 ACCEPT tcp -- ppp0 * 0.0.0.0/0 192.168.1.2 tcp dpt:10222
:略
3 144 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 6 level 4 prefix `[IPTABLES FORWARD] : '
3 144 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
----
WANの10222ポートには引っかからず、デフォルトルールになります。
この時の /var/log/messages の内容は、下記のとおりです。
----
Apr 29 02:06:40 <router> kernel: [IPTABLES FORWARD] : IN=ppp0 OUT=eth0 SRC=xxx.xxx.xxx.xxx DST=192.168.1.2 LEN=48 TOS=0x00 PREC=0x00 TTL=118 ID=57292 DF PROTO=TCP SPT=1216 DPT=22 WINDOW=62216 RES=0x00 SYN URGP=0 OPT (0204058401010402)
Apr 29 02:06:43 <router> kernel: [IPTABLES FORWARD] : IN=ppp0 OUT=eth0 SRC=xxx.xxx.xxx.xxx DST=192.168.1.2 LEN=48 TOS=0x00 PREC=0x00 TTL=118 ID=57296 DF PROTO=TCP SPT=1216 DPT=22 WINDOW=62216 RES=0x00 SYN URGP=0 OPT (0204058401010402)
Apr 29 02:06:49 <router> kernel: [IPTABLES FORWARD] : IN=ppp0 OUT=eth0 SRC=xxx.xxx.xxx.xxx DST=192.168.1.2 LEN=48 TOS=0x00 PREC=0x00 TTL=118 ID=57298 DF PROTO=TCP SPT=1216 DPT=22 WINDOW=62216 RES=0x00 SYN URGP=0 OPT (0204058401010402)
----

ちょっと混乱しています。
未記入
常連さん
会議室デビュー日: 2006/04/11
投稿数: 21
投稿日時: 2006-04-29 03:52
なぜ「/etc/services」をいじられてるんでしょうか。
いじる必要はありませんよ。

自分で試してみてやっとわかりました、私の理解不足だったんですが
FORWARDはNATで変換した後に適応されるようです。
ですので
# PCルータ:10122番ポート(SSH)へのアクセスを許可
iptables -A INPUT -i ppp0 -p tcp --dport 22 -j ACCEPT
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 10122 -j REDIRECT --to 22

# サーバ:10222番ポート(SSH)へのアクセスを許可
iptables -A FORWARD -i ppp0 -p tcp -d 192.168.1.2 --dport 22 -j ACCEPT
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 10222 -j DNAT --to 192.168.1.2:22

で、うまくいくはずです。
Jumpin'' Jack Flash
大ベテラン
会議室デビュー日: 2006/01/24
投稿数: 198
投稿日時: 2006-05-08 11:12
お返事が遅くなり、申し訳ございませんでした。

ご指摘の設定で問題なく動作するようになりました。
言われてみれば、そのとおりでした。

長々とお付き合いいただきありがとうございました。

なお、/etc/services は元に戻しました。
正しく動くようになった今となっては、iptablesのlistを
表示するとポート番号をサービス名に逆引きしてくれて、
それはそれでわかりやすかったかもしれません。


[ メッセージ編集済み 編集者: Jumpin' Jack Flash 編集日時 2006-05-08 11:13 ]

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