📌
FreeBSD
  • 《FreeBSD使用手册》
  • 第一章 基本命令
  • 第二章 系统安装
  • 第三章 基本设置
  • 第四章 开机关机命令
  • 第五章 管理服务
  • 第六章 vi编辑器使用
  • 第七章 安装vim及使用
  • 第八章 编写SHELL脚本
  • 第九章 配置网络服务
  • 第十章 配置日期和时间
  • 第十一章 开启SSH服务
  • 第十二章 防火墙IPFW
  • 第十三章 磁盘分区
  • 第十四章 管理用户和组
  • 第十五章 软件安装与卸载
  • 第十六章 搭建SAMBA服务
    • 16.1 scan扫描文件服务器配置实例
    • 16.2 设置samba为独立服务器
    • 16.3 FreeBSD11之将Samba设置为域成员
    • 16.4 FreeBSD12之将Samba设置为域成员
  • 第十七章 RSYNC服务
  • 第十八章 中文编码显示设置
  • 第十九章 安装XFCE桌面
  • 第二十章 安装QT Creator
  • 第二十一章 网站服务搭建
由 GitBook 提供支持
在本页
  • (一)介绍说明:
  • (二)配置ipfw:

这有帮助吗?

第十二章 防火墙IPFW

(一)介绍说明:

IPFIREWALL (IPFW) 是一个由 FreeBSD 发起的防火墙应用软件, 它由 FreeBSD 的志愿者成员编写和维护。

在FreeBSD 12中,ipfw已经默认编译进内核了,它默认会有一条规则,规则号为65536,是不可以删除的,这条规则会把所有流量都切断, 所以还没配置好之前,千万不要随意启动ipfw,否则就会面临无法连上远程FreeBSD的问题。

(二)配置ipfw:

1、执行以下命令:

# sysrc firewall_enable="YES"  # 允许防火墙开机自启
# sysrc firewall_type="open"  # 让系统把流量通过,这样就可以使用防火墙
# sysrc firewall_script="/etc/ipfw.rules"  # 制定ipfw规则的路径,我们待会儿在这里编辑规则
# sysrc firewall_logging="YES"  # 这样ipfw就可以打日志
# sysrc firewall_logif="YES"  # 把日志打到 `ipfw0` 这个设备里

2、编辑 /etc/ipfw.rules文件:

root@svros:~ # vi /etc/ipfw.rules 

IPF="ipfw -q add"
ipfw -q -f flush

#loopback 
$IPF 10 allow all from any to any via lo0
$IPF 20 deny all from any to 127.0.0.0/8
$IPF 30 deny all from 127.0.0.0/8 to any
$IPF 40 deny tcp from any to any frag

# statefull
$IPF 50 check-state
$IPF 60 allow tcp from any to any established
$IPF 70 allow all from any to any out keep-state
$IPF 80 allow icmp from any to any

# open port for ssh
$IPF 110 allow tcp from any to any 22 out
$IPF 120 allow tcp from any to any 22 in

# open port for samba
$IPF 130 allow tcp from any to any 139 out
$IPF 140 allow tcp from any to any 139 in
$IPF 150 allow tcp from any to any 445 out
$IPF 160 allow tcp from any to any 445 in
$IPF 170 allow udp from any to any 137 out
$IPF 180 allow udp from any to any 137 in
$IPF 190 allow udp from any to any 138 out
$IPF 200 allow udp from any to any 138 in



# deny and log everything 
$IPF 500 deny log all from any to any

额外说明: samba开放tcp/139,445端口,udp/137,138端口

3、启动ipfw:

root@svros:~ # service ipfw start

Firewall rules loaded.
Firewall logging enabled.
ifconfig: interface ipfw0 already exists
Firewall logging pseudo-interface (ipfw0) created.

4、查看ipfw状态:

root@svros:~ # service ipfw status

ipfw is enabled

5、查看ipfw规则条目

root@svros:~ # ipfw list

00010 allow ip from any to any via lo0
00020 deny ip from any to 127.0.0.0/8
00030 deny ip from 127.0.0.0/8 to any
00040 deny tcp from any to any frag
00050 check-state :default
00060 allow tcp from any to any established
00070 allow ip from any to any out keep-state :default
00080 allow icmp from any to any
00110 allow tcp from any to any 22 out
00120 allow tcp from any to any 22 in
00500 deny log ip from any to any
65535 deny ip from any to any

参考资料:

上一页第十一章 开启SSH服务下一页第十三章 磁盘分区

最后更新于3年前

这有帮助吗?

https://forums.freebsd.org/threads/enabled-ssh-in-ipfw-problem.52638/
https://docs.freebsd.org/zh_CN/books/handbook/firewalls-ipfw.html