User Tools

Site Tools


Sidebar

vps:vps4th2nd_04

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
    <Global IP>           fw fw.example.com
    <Global IP>           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 <Global IP> netmask <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 <Global IP> <外部向けsshポート>
    nat 1 config log redirect_port tcp 192.168.100.2:<内部向けsshポート> <Global IP>:<外部向け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ポート> <Global IP>:<外部向けsshポート>
    
    # nat設定 web向け http
    add nat 3 log tcp from any to <Global IP> 80
    nat 3 config log redirect_port tcp 192.168.100.1:80 <Global IP>: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 <Global IP>:80
    
    # nat設定 web向け https
    add nat 5 log tcp from any to <Global IP> 443
    nat 5 config log redirect_port tcp 192.168.100.1:443 <Global IP>: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 <Global IP>:443
    
    # nat設定 desktop向け novnc
    add nat 7 log tcp from any to <Global IP> <外部向けnovncポート>
    nat 7 config log redirect_port tcp 192.168.100.2:<内部向けnovncポート> <Global IP>:<外部向け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ポート> <Global IP>:<外部向けnovncポート>
    
    # nat設定 内部から外部
    add nat 9 log ipv4 from any to any via <Global IP>
    nat 9 config log ip <Global IP>
    
    # ルール
    add check-state
    add deny log all from any to 192.168.100.0/24 in recv <Global IP>
    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
vps/vps4th2nd_04.txt · Last modified: 2019/06/16 15:16 (external edit)