科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件设置和使用ipfilter-FreeBSD 技术文摘

设置和使用ipfilter-FreeBSD 技术文摘

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

虽然ipfw/natd已经是相当强大的网络地址转换及防火墙系统,然而它还是有一定的缺点存在。其中最重要的一个缺点是natd是使用守护进程的方法来进行地址转换。

来源:早雪网 2008年5月20日

关键字: 技巧 操作系统 FreeBSD

  • 评论
  • 分享微博
  • 分享邮件

pass in quick on fxp1 proto tcp from any to any port = ftp-data keep statepass in quick on fxp1 proto tcp from any port = ftp-data to any port > 1023 keep state

  ftp中将打开额外的端口以进行数据传输,这两个设置允许对ftp数据端口的数据包能够进行转发。

block return-rst in log on fxp1 proto tcp from any to any flags S/SAblock return-icmp(net-unr) in log on fxp1 proto udp from any to any

  对于其他tcp连接请求,防火墙回应一个RST数据包关闭连接,S/SA标识TCP数据包的标志,S为Syn, A为Ack,而S/SA表示对Syn和Ack中的Syn标志进行检查,这类数据包是用于设定连接的数据包。对UDP请求,防火墙回应网络不可达到的ICMP包。

  上面的例子将屏蔽外部计算机发向网络内部的数据包,但允许内部向外的发起网络访问。如果要允许外部网络对内的访问,就必须增加其他pass in规则,以使得过滤规则能适应更复杂的情况。为了使上面的设置生效,必须将过滤规则加入到内核中去,这需要使用ipf命令。

# ipf -Fa# ipf -f  /etc/ipf.conf

  首先使用-Fa标志清除所有的过滤规则,然后将ipf.conf中的设置加入系统中。此后,可以使用ipfstat来检查ipfilter进行过滤的各种统计信息。

# ipfstat input packets:blocked 227 passed 116210 nomatch 68219 counted 0output packets:blocked 0 passed 74586 nomatch 20316 counted 0 input packets logged:blocked 227 passed 24883output packets logged:blocked 0 passed 17153 packets logged:input 0 output 0 log failures:input 25028 output 17139fragment state(in):kept 0lost 0fragment state(out):kept 0lost 0packet state(in):kept 1lost 0packet state(out):kept 14lost 8ICMP replies:160TCP RSTs sent:9Result cache hits(in):47523(out):53694IN Pullups succeeded:0failed:0OUT Pullups succeeded:0failed:0Fastroute successes:0failures:0TCP cksum fails(in):0(out):0Packet log flags set: (0x10000000)packets passed through filter

  虽然在规则中指定了log选项,但是缺省时候syslogd并不会记录ipfilter发送的信息。符合规则的数据记录并没有真正被发送到系统日志记录中,必须使用ipmon打开记录功能。

# ipmon -s -n -x

  由于ipmon使用的是syslog的local0通道,缺省情况下local0通道并没有打开,因此只有很少的错误信息被发送到 /var/log/messages文件中。为了打开local0通道,还需要改动syslogd.conf,增加下面的设置,以记录ipfilter的全部记录。

local0.*/var/log/ipfilter.log

  为了不让ipfilter的记录发送到/var/log/messages等其他日志文件中,可以在/var/log/messags设置行中添加一个记录local.none。

  此后,使用touch创建ipfilter.log文件,并重新启动syslogd,就能在/var/log/ipfilter.log中正确记录过滤记录了。当一切都设置完毕之后,就能将ipf和ipnat这两个设置命令放入系统启动文件rc.local,以便每次系统自动启动都能执行防火墙设置。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章