文/陶然 白睿
隨著校園網(wǎng)多出口的出現(xiàn),NAT是必不可少的設(shè)備,本文介紹如何將Linux配置成NAT:
本文在CentOS 5上進(jìn)行配置,主要有以下幾個(gè)步驟:
1. 打開(kāi)Linux的IPv4轉(zhuǎn)發(fā),修改/etc/sysctl.conf文件,將
net.ipv4.ip_forward = 0
改成
net.ipv4.ip_forward = 1
2. 修改/etc/sysconfig/iptables文件,內(nèi)容如下:
*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出去新建的連接進(jìn)行轉(zhuǎn)換,地址從1.1.1.1-1.1.1.10中根據(jù)哈希算法進(jìn)行選擇。
-j SAME 表示對(duì)去往同一個(gè)目的地址轉(zhuǎn)換成同一個(gè)IP地址。
--nodst 在選擇原地址時(shí),目的地址不參與散列運(yùn)算。這樣設(shè)置后,每個(gè)用戶(hù)訪(fǎng)問(wèn)所有網(wǎng)站都轉(zhuǎn)換成同一個(gè)地址。
3. 修改/etc/modprobe.conf增加:
options ip_conntrack hashsize=100000
這樣修改后,系統(tǒng)最大連接數(shù)就變成80萬(wàn)。
4. 為NAT增加日志功能
安裝conntrack-tools工具,conntrack-tools是Linux下不同主機(jī)之間同步conntrack表的一個(gè)用戶(hù)空間運(yùn)行的程序,可以實(shí)現(xiàn)有狀態(tài)防火墻之間的狀態(tài)同步,實(shí)現(xiàn)防火墻的HA。通過(guò)conntrack-tools及syslog可以實(shí)現(xiàn)NAT的log功能。
(1)安裝conntrack-tools工具
/etc/yum.repo.d目錄增加CentALT.repo,內(nèi)容如下:
[CentALT]
name=CentALT Packages for Enterprise Linux 5 - $basearch
baseurl=http://centos.alt.ru/repository/centos/5/$basearch/
enabled=1
gpgcheck=0
運(yùn)行如下命令:
yum install conntrack-tools
(2)新增/usr/local/bin/conn-to-syslog,其內(nèi)容為:
#!/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 (
syslog ('notice', "%s", $_);
#syslog ('err', "Test Error Log Entry: %s", $_);
#syslog ('debug', "Test Debug Log Entry: %s", $_);
}
closelog();
為程序增加執(zhí)行權(quán)限:
chmod +x /usr/local/bin/conn-to-syslog
(3)修改/etc/syslog.conf文件,增加紅色部分內(nèi)容
*.info;mail.none;authpriv.none;cron.none;local3.none /var/log/messages
local3.* -/var/log/nat.log
注意配置文件中的facility與conn-to-syslog一致,這里使用的是local3,完畢后重啟syslogd服務(wù)。
5. 啟動(dòng)conntrack程序,可以寫(xiě)到rc.local中:
/usr/sbin/conntrack -b 1048576 -E -p tcp --state ESTABLISHED -j | /usr/local/bin/conn-to-syslog &
本例將狀態(tài)為ESTABLISHED的TCP連接記錄到日志中,大家可以根據(jù)man conntrack來(lái)調(diào)整相應(yīng)的參數(shù),可以實(shí)現(xiàn)TCP、UDP都記錄下來(lái),記錄與/proc/net/ip_conntrack內(nèi)容格式一致。
經(jīng)過(guò)以上配置后,重新啟動(dòng)機(jī)器即可實(shí)現(xiàn)NAT及日志功能。