====== prisoner fw設定 ====== prisonerのfwをfirewallとnatboxにする。 ===== 事前設定 ===== jailerから各設定ファイルを直接編集する。各設定ファイルのプレフィックスは/usr/jail/fwとなる。 * etc/syslog.confでconsole出力をコメント化する。 # *.err;kern.warning;auth.notice;mail.crit /dev/console * etc/crontabで不要なcronをコメント化する。 # 1,31 0-5 * * * root adjkerntz -a * etc/pw.confを新規作成する。prisoner内のuid, gidとjailerのuid, gidが同じになるとセキュリティ上の問題が発生するため、uid, gidの範囲を設定する。 minuid 2001 maxuid 2100 mingid 2001 maxgid 2100 * etc/fstabをtouchで作成する。 * etc/resolv.confを作成する。 domain "ドメイン名" nameserver "さくらのVPS指定 1" nameserver "さくらのVPS指定 2" * etc/hostsにfw自身と内側のホスト(jailer, prisoner)を登録する。 127.0.0.1 localhost localhost.example.com fw fw.example.com fw.example.com. 192.168.100.254 gw gw.example.com 192.168.100.254 gw.example.com. 192.168.100.1 web web.example.com 192.168.100.2 desktop desktop.example.com 192.168.100.253 vps vps.example.com * etc/rc.confを新規作成する。 hostname="fw.example.com" ifconfig_vtnet0="inet netmask " ifconfig_epair1b="inet 192.168.100.254 netmask 255.255.255.0" gateway_enable="YES" defaultrouter="<さくらのVPS指定>" firewall_enable="YES" firewall_type="/etc/fw.txt" firewall_logging="YES" firewall_nat_enable="YES" * ifcofig_epair1b\\ jailerで作成したepair1の一端。jailerからprisonerであるfwに割り当てる。 * firewall_type\\ 指定したファイルにfirewallのルールが記載される。 ===== OS設定 ===== prisoner:fwを起動後、以下の設定を行う。 * prisoner:fwへ移動 # jexec fw /bin/sh * newaliasesの実行 # newaliases /etc/mail/aliases: 27 aliases, longest 10byte, 275 bytes total * bsdconfigでそれぞれ設定。 * Root Password * User Management * Time Zone ===== ipfwルール設定(例) ===== /etc/rc.confで指定したfirewall_type="/etc/fw.txt"を作成する。 * /etc/fw.txt -f flush # nat設定 desktop向け ssh add nat 1 log tcp from any to <外部向けsshポート> nat 1 config log redirect_port tcp 192.168.100.2:<内部向けsshポート> :<外部向けsshポート> add nat 2 log tcp from 192.168.100.2 <内部向けsshポート> to any nat 2 config log redirect_port tcp 192.168.100.2:<内部向けsshポート> :<外部向けsshポート> # nat設定 web向け http add nat 3 log tcp from any to 80 nat 3 config log redirect_port tcp 192.168.100.1:80 :80 add nat 4 log tcp from 192.168.100.1 80 to any nat 4 config log redirect_port tcp 192.168.100.1:80 :80 # nat設定 web向け https add nat 5 log tcp from any to 443 nat 5 config log redirect_port tcp 192.168.100.1:443 :443 add nat 6 log tcp from 192.168.100.1 443 to any nat 6 config log redirect_port tcp 192.168.100.1:443 :443 # nat設定 desktop向け novnc add nat 7 log tcp from any to <外部向けnovncポート> nat 7 config log redirect_port tcp 192.168.100.2:<内部向けnovncポート> :<外部向けnovncポート> add nat 8 log tcp from 192.168.100.2 <内部向けnovncポート> to any nat 8 config log redirect_port tcp 192.168.100.2:<内部向けnovncポート> :<外部向けnovncポート> # nat設定 内部から外部 add nat 9 log ipv4 from any to any via nat 9 config log ip # ルール add check-state add deny log all from any to 192.168.100.0/24 in recv add allow log tcp from any to 192.168.100.2 <内部向けsshポート> add allow log tcp from any to 192.168.100.2 <内部向けnovncポート> add allow log tcp from any to 192.168.100.1 80 add allow log tcp from any to 192.168.100.1 443 add allow log ip from 192.168.100.0/24 to any keep-state add allow log ip from 127.0.0.1 to 127.0.0.1 * Global IP\\ em0に割り当てたIP * 外部向けsshポート\\ 22から変更した方が無難かも * 内部向けsshポート\\ desktopのssh listenポート * add allow log ip from 127.0.0.1 to 127.0.0.1\\ fwのメールが Permission Deniedになるため開放 * /etc/fw.txt作成後、有効にする為、ipfwを再起動する。 # service ipfw restart