networkapp:pfsense:install
pfSenseをInstallする
今回は、XenServer上にpfSenseをVMとして導入する。
Install
ともあれ、公式サイトからInstallイメージ(isoイメージ)を取得し、XenServerから見えるようにしておくこと
普通にVMを作る。起動イメージを上記Installイメージにすること
今回の構成
設定
とにかく、設定が重要。
初期設定
- VMを起動
- ConsoleからNetwork関係の設定を投入
- WAN/LAN関係の設定を入れる
- LAN I/FからWeb Accessで設定することになる。ここを間違えると、かなり面倒なことになるので、十分に注意
- Webから初期設定出来なくなるのでconsoleからshell loginしてpfを止めなければならなくなる
1) Assign Interface
- VLAN設定についてきかれるので、
n
を選択。(必要に応じて設定すればよい) - WAN Interface name を訊かれるので、
re1
を入力 - LAN Interface name を訊かれるので、
re0
を入力 - Optional Interface name 1 を訊かれるので、
re2
を入力 - Optional Interface name 2 を訊かれるので、何も入力せず、Returnを押す
- Do you want to proceed と訊かれるので
y
を入力
Set interface(s) IP Address
- 先ほど入力したI/Fが表示されるので、IP Addressを入力するI/Fを選択。今回はLANの
2
- IPv4 Addressを入力
- Mask lengthを入力
- DHCP Serverを動かすか訊かれるので、
n
を入力- 動かしたい人は
y
を入力すればよいが、あとで設定できるので、最初はnにしておくことを勧める
- これでBrowserから設定できるようになる
10) Filter logs
- これで、Packet filterに引っかかっているパケットが見えるので、最初の設定が終了するまでは、表示しておこう
- Browserから設定をする
- 設定したIP Addressへhttpで接続するとlogin画面が出るはず
- 出ない人はまず、filterに引っかかっているか確認。もし引っかかっているならI/Fの設定の問題なので、もう一回LAN/WAN関係を確認
- filterに引っかかっていないなら、Network的に通信できているか確認
- filter画面でCtrl+cを入力
7) Ping host
を選択し通信確認をする- これでダメなら、色々確認。
- 初期userとpasswordはadmin/pfsenseなので、loginする
- まず何はともあれ、User情報を書き換える
- System→UserManagerでadminが存在するはずなので、右端の
e
のアイコンをクリック - 必要な情報を全部入力し、パスワードを変更する。
- saveする
- 自分用のアカウントを作成する。「右端下側」の「+」のアイコンをクリック
- 必要な情報を全部入力し、パスワードを変更する
- 特にGroup設定に注意すること。admin groupに入っていないと、設定変更が出来ない
- saveする
- ともあれlogoutし、adminや自分用のアカウントでlogin出来ることを確認する
- 失敗したら、コンソール画面から
4) Reset to factory defaults
を選択し、最初からやり直し
これで他の設定をする準備ができた。
全般的な設定
システム全般に関わる設定をする
- System → General Setup
- hostname を設定する
- Domain を設定する
- DNS Servers を設定する
- TimeZone を設定する(Asia/Tokyoかな?)
- NTP Time Serverを設定する。
- これは、一般に公開されているものでも良いし、内部に保持しているNTP ServerでもOK
- (好みで) Themeを設定する
- saveする
- System → Advanced → Admin Access
- (必要があれば)ProtocolをHTTPsにする
- (必要があれば)sshを生かす
- この場合、個人アカウント設定でsshのPublic keyを設定し、Authentication MethodでPassword loginをOffにすることを勧める
- また、sshのポートを22ではなく、別のポート番号にすることを勧める
- sshでloginした時に、簡易メニューを出したければ、/etc/rc.initialを実行すればよい
- saveする
- 他にも色々設定できるので、必要に応じて設定する
- System → Advanced → Firewall/NAT
IP Do-Not-Fragment compatibility
にチェックを入れるIP Random id generation
にチェックを入れる- saveする
- 他にも色々設定できるので、必要に応じて設定する
- System → Advanced → Networking
- (必要に応じて)Allow IPv6にチェックを入れる
- (必要に応じて)IPv6 over IPv4 Tunnelingにチェックを入れる
- (必要に応じて)Device pollingにチェックを入れる
- 非常に通信量が多い所にpfSenseを導入する場合、kernelが割り込みに追いつかずにパケットを取りこぼすことがある。このような場合に対応し、割り込みベースではなく、ポーリングベースで通信を処理させる時に、ここにチェックを入れる。特に仮想システム上でのVirtual Firewallとして利用する場合、状況をみて設定すると良い。
- 他にも色々設定できるので、必要に応じて設定する
- System → Advanced → Miscellaneous
- ほとんどいじる所はない
- System → Advanced → System Tunable
- net.inet.tcp.recvspace: 回線速度に応じて適切に(うちでは、仮想なので、defaultのまま。Bare MetalでMemoryも十分にあるなら3倍〜5倍くらい)
- net.inet.tcp.sendspace: 回線速度に応じて適切に(うちでは、仮想なので、defaultのまま。Bare MetalでMemoryも十分にあるなら3倍〜5倍くらい)
- 他にも色々設定できるので、必要に応じて設定する
- System → Advanced → Notifications
- 通知先の情報を入れる。特にE-Mailの部分をいじっておくと良い
- 他にも色々設定できるので、必要に応じて設定する
LAN設定
- Interface → LAN
- Enableであることを確認する
- (必要に応じて)Descriptionを変更する。(今回は、管理I/Fとして設定するので、Mgmtとした)
- (必要に応じて)Mac Address/MTU/MSSを設定する。LAN系統なので、変更の必要なし
- Interface → WAN
- Enableであることを確認する
- (必要に応じて)Descriptionを変更する。(今回は、管理I/Fとして設定するので、Mgmtとした)
- (必要に応じて)Mac Address/MTU/MSSを設定する。LAN系統なので、変更の必要なし
- 今回は、NATの内側にいるので、
Block private networks
はチェックしない Block bogon networks
をチェックする。Bogon Networkは使わないこと。
- Interface → OPT1
- Enableにする
- (必要に応じて)Descriptionを変更する。(今回は、Server収容Segmentとして使うので、SRVとした)
- TypeをStaticにする
- (必要に応じて)Mac Address/MTU/MSSを設定する。LAN系統なので、変更の必要なし
- IP Addressを設定する。Masklenを設定することを忘れないように
ここまで設定すれば、最小限の設定が済んだと考えて良い。
追加設定
- System → Packages
- 追加パッケージを突っ込む
- Available Packages タブをクリック
- 以下のpackagesを追加する
- sudo
- System → sudo から設定可能。自分のアカウントを追加すること。これ見て判らない人は、CommandLineで何かすることは考えない方が良い。
- mtr-nox11 (Enhanced traceroute)
- Diagnostic → mtr から使える。強化版traceroute
- pfBlocker
- pfを利用したPacket Blocker。Firewall→pfblockerから設定できる。
- Source Addressを国毎に分類して、国単位で通信を止めることが出来る。
- snort + Dashboard Widget: snort (Snort)
- 恐らく、最も有名なIDS
- Service → snortから設定可能。
- snort.orgにSign upして、oink master codeを取得する。
- Sign upして、Sign inして、My AccountからSubscriptions and Oinkcodesを確認すると、取得できる。
- Global Setting
- Install Snort VRT rules → Install Basic Rules or Premium rules にチェック
- Oinkmaster Configuration Codeに上記で取得したCodeを投入
- Install Snort Community rules にチェック
- Install Emerging Threats rules にチェック
- Update Interval を 1dayに
- Update Start Time を適切な時間に
- Remove blocked hosts every を 1 Hourに
- Update Rules
Update your ruleset
を実行する。これでうまくupdate出来ない場合、Oink Master Codeが間違っているので、確認すること。
- Snort Interfaces
- WAN Settings
- Enableにチェック
- saveする
- WAN Categories
- Select the rulesets Snort will load at startupで、Select Allをクリックする。
- 実際には、必要なRuleにしぼった方がよいが、最初はどれを外して良いのか判らないはずなので、取り敢えず全部。
- 全部チェックすると、当然遅いので、段々にTuningすること。
- Snort GPLv2 Community Rulesとemerging-*だけOnにしておくと言うのも一つの手ではある。
- saveする
- WAN Rules
- ここで、実際の詳細のRule設定を行う。しかし、正直ルールが多すぎるので、カテゴリーで判別するしかないだろう。
- Snort Interfacesの画面に戻るので、IfがWANの項目を確認。
- SnortがEnabled「×」になっているはずなので、「×」をクリックし、Snortを起動する
- 将来追加したいpackages
- HAVP antivirus + Dashboard Widget: HAVP + Dashboard Widget: Antivirus Status (HTTP Antivirus Proxy)
- squid + squidGuard + Sarg (Web Proxy/Reverse Proxy)
NAT/Firewall設定
その他サービス
対外部に直接つながっている機器が行うと良いサービスを動かす
- Service → NTP
- 生かしたいI/Fを選んでSaveするだけ
- Service → SNMP
- Enableにチェックする
- 必要な情報を書き込む
- 特にCommunityはDefaultから書き換えること。
- Interface Bindingで参照するI/Fを選ぶ
- Status → Dashboards
- 左上の「+」を選び、必要なものを追加する。
- Snort Alerts、Interface Statistics、Firewall logs、Service Status、Traffic Graphs
- Save settingsをクリック
- xe-guest-utilitiesを突っ込む
- これは、GUIからでは不可能
- CommandLineからpkg installする
pkg install xe-guest-utilities
echo “xenguest_enable=\”YES\“” » /etc/rc.conf.local
ln -s /usr/local/etc/rc.d/xenguest /usr/local/etc/rc.d/xenguest.sh
service xenguest start
その他運用
Configuration Backup
- Diagnostics → Backup/Restore
- Download Configuration
networkapp/pfsense/install.txt · 最終更新: 2016/05/05 21:34 by 127.0.0.1