歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> CentOS裡iptables的NAT

CentOS裡iptables的NAT

日期:2017/2/28 13:59:48   编辑:Linux教程

用CentOS 5.3配nat死活都不行,參考N多配置方法都無濟於事。
覺得是操作系統那裡出了問題,又用了CentOS 6.6,裡面有個配置的圖形引導界面,很容易就搞定了。
後來在英文網頁裡發現
echo "1" > /proc/sys/net/ipv4/ip_forward
這樣就可以了。尋找N多地方,終於知道這是在OS系統默認不轉發流量的時候,強制轉發的方法。
常態的讓系統轉發需要修改配置文件。
/etc/sysctl.conf
裡面
net.ipv4.ip_forward = 1
不起作用是因為默認值是0,disable,換成1就是enable了。
sysctl -p
更新,當然重啟也可以。

chkconfig iptables on
常態開啟防火牆,作為服務。

然後才是/etc/sysconfig/iptables文件的配置。
用添加命令也是實現,這裡eth0為外,eth1為內部
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
這就是內部上外部不做限制,這對於外網卡的IP地址為DHCP的時候很好用。
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 172.26.1.79
這是內部網192.168.1.0/24,到外部,替換源地址為172.26.1.79
讓外界訪問內部服務器,比如說遠程桌面
iptables -t nat PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to-destination 192.168.1.2
-i eth0是進入的網卡,i是input的意思;-p tcp,協議是tcp; --dport 3389端口號是3389,--to-destination是內部服務器的IP地址

僅僅是這些還不夠,上面是nat表,-t是指定table的,
在filter表裡也需要配置
iptables -t filter -A FORWARD -i eth0 -m state --state NEW -m tcp -p tcp -d 192.168.1.2 --dport 3389 -j ACCEPT
不在轉發鏈路裡放行到內部的流量是不行的。為什麼這裡的-d是192.168.1.2,因為在前面的nat表裡 PREROUTING已經進行了NAT路由,到達FORWARD處理流程的時候,目的地址已經從外網卡IP地址變成192.168.1.2,進入內網當然只能用內網IP地址過濾了。
還要轉發一些流量許可
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p icmp -j ACCEPT
iptables -A FORWARD -i lo -j ACCEPT
iptables -A FORWARD -o eth0 -j ACCEPT

不要用系統自己帶的那個防火牆圖形配置,一用就出RH-Firewall-1-INPUT,搞的自己都亂了。

另外用CentOS 5.3速度很慢,遠程桌面接進去,畫面都不動,看了CentOS 5.3默認封掉轉發是有原因的。
用CentOS 6.6就沒啥問題了,速度還可以接受。

下面是一些網絡的配置命令
如果開始只有一個網卡,後來添加的,那麼只有
/etc/sysconfig/network-scripts/ifcfg-eth0
沒有ifcfg-eth1,可以復制ifcfg-eth0為ifcfg-eth1,然後修改裡面的內容。
需要去查看網卡硬件文件
/etc/udev/rules.d/70-persistent-net.rules
確認裡面有新增加的網卡,記錄下mac地址,
DEVICE=eth1
NAME="System eth1"
HWADDR=00:50:56:A0:40:18
IPADDR=192.168.1.1
PREFIX=24
GATEWAY=
DNS1=
DOMAIN=
修改項,ip地址,掩碼,HWADDR就是mac地址,如果版本高,有UUID,改的和eth0不同就可以。
內網卡不設網關。PREFIX是前綴,和掩碼是一個意思,不同寫法。os版本不同,5的寫NETMASK,6就是PREFIX

iptables -F
清除預設表filter中的所有規則鏈的規則
iptables -X
清除預設表filter中使用者自定鏈中的規則
/etc/rc.d/init.d/iptables save 或者 service iptables save
保存命令打進去的配置,不然重啟就沒了
service iptables restart
重啟服務

--------------------------------------分割線 --------------------------------------

CentOS 7.0關閉默認防火牆啟用iptables防火牆 http://www.linuxidc.com/Linux/2015-05/117473.htm

iptables使用范例詳解 http://www.linuxidc.com/Linux/2014-03/99159.htm

Linux防火牆iptables詳細教程 http://www.linuxidc.com/Linux/2013-07/87045.htm

iptables的備份、恢復及防火牆腳本的基本使用 http://www.linuxidc.com/Linux/2013-08/88535.htm

Linux下防火牆iptables用法規則詳解 http://www.linuxidc.com/Linux/2012-08/67952.htm

--------------------------------------分割線 --------------------------------------

更多CentOS相關信息見CentOS 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=14

Copyright © Linux教程網 All Rights Reserved