中国教育和科研计算机网
EDU首页 |  中国教育 |   高校科技 |   教育信息化 |   CERNET
教育信息化

资讯 | 专题 会议 观点 专栏 访谈 企业 产品 CIO 技术 校园信息化 下一代互联网 IPv6视频课堂

中国教育网 > 教育信息化
您现在的位置: EDU首页 > 教育信息化 > 网络安全 > 防 火 墙 > 软件防火墙
用Linux实现NAT代替防火墙
http://www.edu.cn   2012-05-02 中国教育网络 作者:陶然 白睿

字体选择:【大】 【中】 【小】

  随着校园网多出口的出现,NAT是必不可少的设备,本文介绍如何将Linux配置成NAT:

  本文在CentOS 5上进行配置,主要有以下几个步骤:

  1. 打开Linux的IPv4转发,修改/etc/sysctl.conf文件,将

net.ipv4.ip_forward = 0

改成

net.ipv4.ip_forward = 1

  2. 修改/etc/sysconfig/iptables文件,内容如下:

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth1 -m state --state NEW -j SAME --to 1.1.1.1-1.1.1.10
--nodst
COMMIT

  -o eth1表示从eth1出去新建的连接进行转换,地址从1.1.1.1-1.1.1.10中根据哈希算法进行选择。

  -j SAME 表示对去往同一个目的地址转换成同一个IP地址。

  --nodst 在选择原地址时,目的地址不参与散列运算。这样设置后,每个用户访问所有网站都转换成同一个地址。

  3. 修改/etc/modprobe.conf增加:

options ip_conntrack hashsize=100000

  这样修改后,系统最大连接数就变成80万。

  4. 为NAT增加日志功能

  安装conntrack-tools工具,conntrack-tools是Linux下不同主机之间同步conntrack表的一个用户空间运行的程序,可以实现有状态防火墙之间的状态同步,实现防火墙的HA。通过conntrack-tools及syslog可以实现NAT的log功能。

  (1)安装conntrack-tools工具

  /etc/yum.repo.d目录增加CentALT.repo,内容如下:

[CentALT]
name=CentALT Packages for Enterprise Linux 5 - $basearch
baseurl=http://centos.alt.ru/repository/centos/5/$basearch/
enabled=1
gpgcheck=0

  运行如下命令:

yum install conntrack-tools

  (2)新增/usr/local/bin/conn-to-syslog,其内容为:

#!/usr/bin/perl -w
# Usage: conntrack -E -p tcp --state ESTABLISHED -j | conn-to-syslog
#by
wzk@neu 2011
use Sys::Syslog;
$log_ident="NAT";
$log_opt="pid,cons";
$log_facility="local3";
openlog$log_ident,$log_opt,$log_facility;
while (<STDIN>) {
syslog ('notice', "%s", $_);
#syslog ('err', "Test Error Log Entry: %s", $_);
#syslog ('debug', "Test Debug Log Entry: %s", $_);
}
closelog();

  为程序增加执行权限:

chmod +x /usr/local/bin/conn-to-syslog

  (3)修改/etc/syslog.conf文件,增加红色部分内容

*.info;mail.none;authpriv.none;cron.none;local3.none            /var/log/
messages
local3.*                                                -/var/log/nat.log

  注意配置文件中的facility与conn-to-syslog一致,这里使用的是local3,完毕后重启syslogd服务。

  5. 启动conntrack程序,可以写到rc.local中:

/usr/sbin/conntrack -b 1048576 -E -p tcp --state ESTABLISHED -j | /usr/
local/bin/conn-to-syslog &

  本例将状态为ESTABLISHED的TCP连接记录到日志中,大家可以根据man conntrack来调整相应的参数,可以实现TCP、UDP都记录下来,记录与/proc/net/ip_conntrack内容
  格式一致。

  经过以上配置后,重新启动机器即可实现NAT及日志功能。

  (作者单位1为辽宁省铁岭无线电监测站,2为中国航空油料有限责任公司沈阳分公司)

页面功能 【打印】 【关闭】 【我有话说

MOOC风暴来袭

版权所有:中国教育和科研计算机网网络中心 CERNIC,CERNET,京ICP备15006448号-16,京网文[2017]10376-1180号

关于假冒中国教育网的声明 | 有任何问题与建议请联络:Webmaster@staff.cernet.com