[FreeBSD-users-jp 95495] Re: ipfwで特定IP以外の接続を転送したい

Hiroo Ono (小野寛生) hiroo.ono+freebsd at gmail.com
Mon Mar 30 01:05:40 UTC 2015


小野寛生です。

2015/03/30 午前0:44 <zen-freebsd-users at suzuki.que.ne.jp>:
> 鈴木@葛飾区です。
>
> > ipfwを利用して、特定IP以外からのssh(22/tcp)アクセスは
> > 違うポート(2222/tcp)に転送したいと考えています。
> >
> > 特定IPから22/tcpで接続した場合は普通にsshに接続されるが、
> > それ以外からの22/tcp接続は、kippo(2222/tcp)へ接続させたいと考えています。
> >
> > そこで、ipfwの設定ファイルに下記の記載をしてみました。
> >
> > add 1001 fwd 127.0.0.1,2222 log tcp from not <特定IP> to me 22
> >
> > 接続テストをしたところ、2222に接続せず、そのまま22/tcpのsshに
> > 接続されました。
>
> ipfwの fwd ではリモートに転送する場合ポート番号の変更は行われません(無
> 視されます)。

> リモートポートの変更を行うためにはパケットの中身を書き換えないとダメな
> のでipfw単独では対応していないのだと思います。
> 試していませんので分かりませんが、natdを使ってのポート変換を行うか、

現在の ipfw は nat 機能もありますので、それを使えばよさそうです。
例が ipfw の manpage の EXAMPLES の終わりの方にありますが、ちょっと分かりにくいです。
libalias(3)の機能を使っているようなので、

add 1001 nat 100 log tcp from not <特定IP> to me 22
nat config 100 redirect_port <特定IP>:22 127.0.0.1:2222

でいけないでしょうか。
すみませんが、上記は実際に試してはいません。
まるごと NAT するルールなら家で運用しています。


More information about the freebsd-users-jp mailing list