FreeBSD Jail允许Ping/tracerouter命令
时间:2020-01-09 10:38:36 来源:igfitidea点击:
无法从FreeBSD监狱(监狱)ping通。
无法解析名称或将ftp/http用于端口,但是ping和traceroute访问被禁用。
如何允许虚拟化的监狱应用程序/用户执行traceroute和ping命令?
默认情况下,FreeBSD不允许监狱用户/应用创建原始套接字。
这是一项安全功能。
使用原始套接字,可以使用perl/python或nc等工具来创建原始套接字并发起攻击。
但是,可以使用sysctl命令从主机环境中修改监狱环境的这些方面。
security.jail.allow_raw_sockets MIB条目确定是否允许监狱根创建原始套接字。
将此MIB设置为1可使诸如ping和traceroute之类的实用程序在监狱内运行。
执行以下命令:
# sysctl security.jail.allow_raw_sockets=1
现在使用jexec登录到监狱:
host # jexec 1 csh jail# ping theitroad.local
将以下行添加到sysctl.conf中:
# echo 'security.jail.allow_raw_sockets=1' >> /etc/sysctl.conf
关于MIB的说明
这是可选配置。
MIB之上的变量会影响系统上的所有监狱。
换句话说,所有的监狱都将能够使用ping和traceroute命令。
您可以使用主机防火墙(例如PF)拒绝或允许访问某些监狱。
这是一个示例PF防火墙:
# interface int_if="em0" ext_if="em1" # ICMP types icmp_types = "{ echoreq, unreach }" # Allowed ips for traceroute troute_outbound_ips = "{ 10.24.55.101, 10.24.55.103, 10.24.55.111 }" # Allowed ips for ping ping_outbound_ips = "{ 10.24.55.103, 10.24.55.111 }" # Some defaults set block-policy return set loginterface $ext_if scrub in all # Drop ALL - drop incoming and everything else block log all # skip loopback and vpn interface set skip on {lo0, $int_if} block in quick from urpf-failed antispoof log for $ext_if ## your other rules STARTS ### ## add your other pf rules to open port and other stuff # ... # ... ## your other rules ENDS ### ### Allow ping and trace route from selected jails ### pass out on $ext_if inet proto udp from $troute_outbound_ips to any port 33433 >< 33626 keep state ### Allow ping pong from selected jails ### pass out on $ext_if inet proto icmp from $ping_outbound_ips to any icmp-type $icmp_types keep state