FreeBSD监狱添加多个IPv4/IPv6地址

时间:2020-01-09 10:38:36  来源:igfitidea点击:

如何在监狱中添加多个IPv4/IPv6?

FreeBSD确实支持Multi-IPv4/v6/no-IP监狱,并且已合并到STABLE版本。
您需要重建包括jls(8)的内核,并将新功能jail(8),jexec(8)和cpuset(1)与新内核一起使用。
另一个选择是使用cvsup获取FreeBSD 7.2(RC1或更高版本),只需创建buildworld。
对于httpd监狱的Multi-IPv4/v6/no-IP监狱配置,这是您需要放入/etc/rc.conf文件的内容(请注意已定义3个ips):

jail_enable="YES"
jail_list="httpd"
jail_httpd_rootdir="/iscsi/httpd"     # jail's root directory
jail_httpd_hostname="web01.theitroad.com"  # jail's hostname
jail_httpd_ip="10.24.55.106,10.16.48.99,2607:f0d0:1002:11::4" # jail's multi IPs address
jail_smtpd_devfs_enable="YES"          # mount devfs in the jail
jail_smtpd_devfs_ruleset="devfsrules_jail" # devfs ruleset to apply to jail

保存并关闭文件。
重新启动监狱服务:

# /etc/rc.d/jail restart

要验证多个IP,请执行:

# jls -v

输出示例:

JID  Hostname                      Path
        Name                          State
        CPUSetID
        IP Address(es)
     2  web01.theitroad.com           /iscsi/httpd
                                      ALIVE
        2     
        10.24.55.106   
        10.16.48.99  
        2607:f0d0:1002:11::4

jail_httpd_ip用于设置分配给监狱的主要IPv4和/或IPv6地址。
参数可以是唯一地址,也可以是逗号分隔的地址列表。
另外,每个地址都可以以接口名称作为前缀,后跟用于覆盖jail__interface或jail_interface的管道和/或以网络掩码,prefixlen或前缀为后缀。
如果没有给出网络掩码,prefixlen或prefix,则/32将用于IPv4,而/128将用于IPv6地址。
如果没有为监狱提供地址,那么监狱将在没有网络支持的情况下启动。