RSS

FreeBSD做NAT网关安装笔记

1.注意事项:

不要远程调试防火墙

2.系统环境:

网关虚拟机 FreeBSD 5.1 i368 1G 内存 20G 硬盘 双网卡
客户端虚拟机 Windows 2003 单网卡

3.IP 地址规划:

外网网卡 IP 地址:202.114.216.81255.255.255.126 网关:202.114.216.126
内网网卡 IP 地址:192.168.100.1255.255.255.0 本身为网关

4.安全策略:

作为网关,安全性非常重要,建议除了远程登录用的 SSH 外,尽可能多的停掉所有不相关服务。本安装文档只是最简单的配置,没有任何安全过滤规则,更多安全过滤规则需要根据实际情况补充。

5.具体步骤

(1).安装操作系统
新建虚拟机,使用5.1-RELEASE-i386-disc1.iso安装操作系统,基本没什么设置,保持默认安装就成,先设置网卡 em0 的 ip 地址,em0 为外网网卡,安装最后要一定要记得添加 ports 和 src,如图

2013-08-05_083015
因为稍后要重新编译内核,需要源码。

(2).网络配置

安装好系统后,输入 ifconfig 可以看到 ip
2013-08-05_083629
em0 为外网网卡,em1 为内网网卡,确保机器可以正常访问外网
2013-08-05_083643
设置 em1 网卡地址

vi /etc/rc.conf

添加如下

ifconfig_em1="inet 192.168.100.1 netmask 255.255.255.0"

保存退出。
设置 ssh 允许 root 登陆

vi /etc/ssh/sshd_config

修改

PermitRootLogin yes

保存退出,并重启 ssh 服务

/etc/rc.d/sshd restart

重启服务器 reboot

(3).编译内核

重启后就可以 ssh 登陆到服务器,下面开始编译内核
进入内核配置目录

cd /usr/src/sys/i386/conf/

拷贝默认内核配置文件

cp GENERIC GATEWAY

编辑内核配置文件

vi GATEWAY

文件末尾添加如下

# Firewall support added
options IPFIREWALL
options IPFIREWALL_VERBOSE
# Divert support added (necessary for natd)
options IPDIVERT

保存退出
重新编译

/usr/sbin/config GATEWAY
cd ../compile/GATEWAY/
make depend
make
make install

大约需要 5 分钟,比较快,完成之后,直接重启机器,重新启动之后,可以看到已经加载新的内核
2013-08-05_090508
新内核
11
说明内核编译成功,此时会发现 ssh 无法连接到服务器,那是因为防火墙默认拒绝所有连接

(4).后续设置

vi /etc/rc.conf

添加如下

gateway_enable="YES"
natd_enable="YES"
natd_interface="em0"
firewall_enable="YES"
firewall_type="open"

保存并退出,em0 为外网网卡,em1 为内网网卡。为了使设置生效我们重启下机器.
最终 rc.conf
2013-08-05_113540

(5).防火墙规则

ipfw 的规则是通过运行/etc/rc.firewall 这个脚本生效的,rc.firewall 脚本会检查 rc.conf 中 firewall_type 等配置,然后根据 firewall_type 定义的模式”open” “client” “simple”等切换到 rc.firewall 中相应部分执行。
一个安全的防火墙本身是一个非常复杂的策略。为了方便配置,可以以 rc.firewall 文件为基础,在各种缺省模式的基础上加入自己的规则。缺省最简单的防火墙配置是在 rc.conf 里设置使用”open”模式,

注意:修改 rc.firewall 配置建议从最简单的”open”模式开始,而且让修改生效前,一定将旧的成功运行的配置文件备份成 rc.firewall.bak,便于以后的错误后恢复,如果防火墙配置错误可能导致远程无法登陆,因此修改防火墙配置一定要在服务器终端界面进行。
打开 rc.firewall,可以看到有部分说明
2013-08-05_094432

(6).常用命令

ipfw list:显示目前的配置规则:
ipfw show:显示各种规则的统计信息
2013-08-05_094519
新的配置生效
修改防火墙配置后,可以用

sh /etc/rc.firewall

让新的配置生效

6.测试

先看我的虚拟机网络
22
win2003 和 BSD 的 em1 网卡在一个标准交换机里。登陆 win2003,设置网卡

IPADDR:192.168.100.11
NETMASK:255.255.255.0
GATEWAY:192.168.100.1
DNS:202.103.24.68

设置后,就可以这台机器就可以通过 NAT 上网了。
2013-08-05_093637

7.添加网卡

如果一个内网网卡流量不能承受,可以添加另外一块网卡,添加好在/etc/rc.conf 里设置 IP 地址就可以了,也是可以 NAT 的。如果不想添加网卡,可以在内网网卡上绑定另外一个 IP 地址就可以了

vi /etc/rc.conf

添加如下

ifconfig_em1_alias0="inet 192.168.110.1 netmask 255.255.255.0"

保存,如图
2013-08-05_113514
重启机器,重启后可以看到已经绑定。

2013-08-05_112520

设置再找一台机器.把 IP 设置为 192.168.110.X 网段,网关为 192.168.110.1 发现也是可以通过 NAT 上网的
2013-08-05_113014
到此配置完成,更多功能大家可以摸索。