ipfw – 夏清然的日志 https://www.qingran.net Xia Qingran Geek Blog Sun, 07 Aug 2016 09:50:33 +0000 en-US hourly 1 https://wordpress.org/?v=4.6.1 112893047 FreeBSD在线开启ipfw https://www.qingran.net/2011/05/freebsd%e5%9c%a8%e7%ba%bf%e5%bc%80%e5%90%afipfw/ https://www.qingran.net/2011/05/freebsd%e5%9c%a8%e7%ba%bf%e5%bc%80%e5%90%afipfw/#respond Tue, 10 May 2011 10:31:48 +0000 https://www.qingran.net/?p=1108 在FreeBSD 7.1 amd64版下,由于默认的内核编译选项没有并加入以下内容:

options IPFIREWALL
options IPFIREWALL_DEFAULT_TO_ACCEPT

所以在启用ipfw的时候,会启用默认禁止的全部连接的规则,那么直接的后果是把ssh的连接踢下线,并切断外界到这个服务器一切端口的连接请求。

解决方案,在启用ipfw后,马上加入一条允许所有请求的规则:

kldload ipfw && ipfw add 65534 allow ip from any to any

另外需要注意一点:绝对禁止使用/sbin/ipfw -q -f flush,会导致把上面这条手动添加的开放规则删除!

同时,如果想在重启后ipfw也开启生效,那么需要这样做:

在/etc/rc.conf里加入:

firewall_enable="YES"
firewall_script="/etc/firewall.sh"

同时/etc/firewall.sh的内容是

#!/bin/sh
/sbin/ipfw -q -f flush
/sbin/ipfw add 65534 allow ip from any to any

同时自定义的ipfw规则也可以向/etc/firewall.sh中添加,比如阻止118.215.66.135到本机80端口的连接,那么加入

/sbin/ipfw add 1 deny ip from 124.193.167.1 to any dst-port 80

]]>
https://www.qingran.net/2011/05/freebsd%e5%9c%a8%e7%ba%bf%e5%bc%80%e5%90%afipfw/feed/ 0 1108