「FreeBSDのパケットフィルタpfでポートフォワーディングを設定する方法」の版間の差分
提供: FreeBSD入門
(ページの作成:「'''pf'''とは、 '''OpenBSD''' プロジェクトで開発された '''カーネルパケットフィルフィルタ''' です。 '''pf''' では、アドレス変換や...」) |
(相違点なし)
|
2015年12月19日 (土) 11:34時点における版
pfとは、 OpenBSD プロジェクトで開発された カーネルパケットフィルフィルタ です。 pf では、アドレス変換やポートフォワーディングなどのアクセスコントロールが実現できます。今回は、22番ポートへのアクセスを2222番ポートへポートフォワーディングする設定を紹介します。設定は簡単なので、同じような設定であれば、3分ぐらいでできます。
読み方
- pf
- ぴーえふ
概要
Linux では、 iptables でポートフォワーディングを行えます。 FreeBSD の場合は、 pf を利用して行えます。 ipfw でも可能かもしれませんが、今回は、 pf を利用しました。
インターネットからの TCP 22番ポートへのアクセスは、 2222 番ポートで受け、プライベートネットワークからのアクセスは、22番で受けることを実現することを目的としています。こういった制御は、ルータでやれば良いのですが、たまたま利用していたルータにその機能がなかったため、 pf で補うことになりました。
今回の要件は、ハニーポット を 2222番で動かしているけど、 2222番だとボットの訪問数が少なくて寂しいため、 22番のアクセスも許したくて、設定しました。
Linuxユーザの方は、pf の書式が iptables と異なるので、戸惑うかもしれません。なれるまでの辛抱です。
要件
- プライベートネットワークからの TCP 22番ポート(ssh)へのアクセスは、22番にアクセスを許可する。
- プライベートネットワーク以外からの TCP 22番ポート(ssh)へのアクセスは、2222番にポートフォワーディングする。
- それ以外の通信は、すべて許可する。
前提
- インタフェース名は ue0
- 対象となる FreeBSD のホストの IPアドレスは 192.168.0.100
- プライベートネットワークのアドレスは 192.168.0.0/24, 192.168.60.0/24
インストール
デフォルトで備わっているため、インストールは不要です。
設定
/etc/pf.conf を編集・作成します。
前提は、以下のとおりです。
IF="ue0" MYHOST="192.168.0.100" trusted = "{ 192.168.0.0/24 192.168.60.0/24 }" rdr pass on $IF proto tcp from $trusted to any port ssh -> $MYHOST port ssh rdr pass on $IF proto tcp from any to any port ssh -> $MYHOST port 2222
使い方
pf をスタートするコマンドは、以下の通りです。
sudo service pf start # or sudo service pf onestart
OS起動時にpfを有効にする
OS (FreeBSD) が起動したときに、 pf を有効にしたい場合は、 /etc/rc.conf に以下の設定を追加します。
pf_enable="YES"