4

NAT网关安装笔记 -- 网络系统 -- IT技术博客大学习 -- 共学习 共进步!

 1 year ago
source link: https://blogread.cn/it/article/329?f=hot1
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

NAT网关安装笔记

浏览:1614次  出处信息
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!绝对不要远程调试防火墙配置!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

硬件需求:
    双网卡
    内存 > 64M
    硬盘 > 1G

注:
NAT网关本身效率都很高,所以即使在配置很低的机器上运行效率也是足够的(仍建议尽可能多的增加内存 > 256M),如果需要记录日志做分析,则会产生很大的I/O操作并占用大量硬盘空间,建议使用SCSI硬盘并做日志轮循。
假设2块网卡分别按照以下网段设置:
内网网卡IP地址:192.168.0.1/255.255.255.0       本身为网关
外网网卡IP地址:111.222.111.222/255.255.255.192 网关:111.222.111.1

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

FreeBSD 4.7上用IPFIREWALL做NAT网关

安装FreeBSD系统时包含开发平台(gcc工具等),因为内核缺省不支持地址转发和防火墙,所以需要重新编译内核。

内核编译
========
由于内核缺省不支持地址转发和防火墙,所以需要重新编译内核:
#cd /usr/src/sys/i386/conf/
#cp GENERIC GATEWAY
#vi GATEWAY

修改后的内核配置:修改了名称和增加了IPFIREWALL的相关选项:
#diff GATEWAY GENERIC
25c25
< ident         GATEWAY
---
> ident         GENERIC
62,64d61 加入IPFIREWALL选项
< options IPFIREWALL
< options IPFIREWALL_VERBOSE
< options IPDIVERT

重新编译:大约需要30分钟左右
#/usr/sbin/config GATEWAY
#cd ../../compile/GATEWAY/
#make depend; make; make install

重启机器一次,确认新的KERNEL正常启动。

修改rc.conf中的相关配置:假设内网使用网卡fxp0,外网网卡使用xl0
###############################################
gateway_enable="YES"

ifconfig_fxp0="inet 192.168.0.1  netmask 255.255.255.0"
ifconfig_xl0="inet 111.222.111.222  netmask 255.255.255.0"
defaultrouter="111.222.111.1"

natd_enable="YES"
natd_interface="xl0"

firewall_enable="YES"
firewall_type="open"
###############################################

防火墙过滤规则设置
==================
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,便于以后的错误后恢复,如果防火墙配置错误可能导致远程无法登陆,因此修改防火墙配置一定要在服务器终端界面进行。

日志记录
========
文件系统优化: 使用异步文件系统提高性能async
vi /etc/fstab
/dev/da0s1f             /tmp            ufs     rw,async        2       2
/dev/da0s1g             /usr            ufs     rw,async        2       2

修改rc.firewall中"open"模式中的配置:打开记录日志
        #${fwcmd} add 65000 pass all from any to any
        ${fwcmd} add 65000 pass log all from any to any

修改/etc/newsyslog.conf 增加security日志的存储上限从100k到 10000K
/var/log/security                       600  10    10000        *     Z

新的配置生效
============
修改防火墙配置后,可以用
#sh /etc/rc.firewall
让新的配置生效

常用命令
========
ipfw list:显示目前的配置规则:
#ipfw list
00050 divert 8668 ip from any to any via xl0
00100 allow ip from any to any via lo0
00200 deny ip from any to 127.0.0.0/8
00300 deny ip from 127.0.0.0/8 to any
65000 allow log ip from any to any
65535 deny ip from any to any

ipfw show:显示各种规则的统计信息
# ipfw show
00050 1008267  632203534 divert 8668 ip from any to any via vr0
00100       0          0 allow ip from any to any via lo0
00200       0          0 deny ip from any to 127.0.0.0/8
00300       0          0 deny ip from 127.0.0.0/8 to any
65000 1782079 1257247553 allow ip from any to any
65535      36      31871 deny ip from any to any

RedHat 8上用iptables做NAT网关

将下列内容加入/etc/rc.local文件中:eth0绑内网IP eth1绑外网IP
################
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/iptables --flush INPUT
/sbin/iptables --flush FORWARD
/sbin/iptables --flush POSTROUTING --table  nat
/sbin/iptables --policy FORWARD DROP
/sbin/iptables --table nat --append POSTROUTING --out-interface eth1 --source 192.168.0.0/24 --jump MASQUERADE
/sbin/iptables --append FORWARD --in-interface eth1 --match state --state ESTABLISHED,RELATED --jump ACCEPT
/sbin/iptables --append FORWARD --source 192.168.0.0/24 --jump ACCEPT
################

iptables --list查看过滤表

参考资料:

王波:FreeBSD使用大全
http://tech.sina.com.cn/focus/FreeBSD/2000-01-19/196.shtml

FreeBSD IPFW-HOWTO
http://www.freebsd-howto.com/HOWTO/Ipfw-HOWTO

ipfw的命令参考:
http://www.chedong.com/phpMan.php/man/ipfw

《linux下如何用iptables做NAT上网》原文作者:upkill98
http://it.rising.com.cn/newSite/Channels/Safety/SysSafety/Safe_Unix/200211/06-094108327.htm

IPTables的日志分析:
http://www.linuxlinks.com/Software/Log_Analyzers/
iptqlog

软盘防火墙制作:
http://www.zelow.no/floppyfw
http://directory.google.com/Top/Computers/Software/Operating_Systems/Linux/Distributions/Tiny/Floppy_Sized/

FreeBSD 4.7上的NAT网关安装笔记 RedHat 8上的NAT网关安装笔记

建议继续学习:

QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK