手把手教您把CentOS7伺服器變成上網路由器(基於iptables)

文章僅供參考,轉載請說明出處。由於配置內容比較複雜,不能保證完全正確,如有錯誤請及時提出,謝謝!

---

網路拓撲圖

說明

  1. 伺服器通過靜態IP上網,外網連接eth0口,IP為200.0.0.2;eth1口連接內網交換機,內網網段為192.168.10.1/24。
  2. 內網中的所有機器通過NAT上網,也要通過DHCP伺服器自動獲得IP地址。其中192.168.10.254為一台FTP伺服器,需要對外提供FTP服務。
  3. 伺服器本身不對外提供任何服務,僅對內網提供DHCP服務以及SSH管理。
  4. 內網機器使用運營商的DNS。

配置步驟

(系統IP配置方法這裡不再贅述)

1. 關閉系統自帶的防火牆

停止firewalld服務

systemctl stop firewalld

禁止firewalld服務自啟動

systemctl disable firewalld

2. 安裝iptables防火牆和DHCP伺服器

安裝iptables服務

yum -y install iptables-services

安裝dhcp服務

yum -y install dhcp

3、對iptables進行初始化工作

清空filter表

iptables -F

清空nat表

iptables -t nat -F

默認禁止所有傳入連接

iptables -P INPUT DROP

默認允許所有傳出連接

iptables -P OUTPUT ACCEPT

默認禁止路由轉發

iptables -P FORWARD DROP

4、打開系統的IP轉發功能

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

不用重啟,立即生效

sysctl -p

5、按以下模版配置DHCP伺服器

配置文件位置:/etc/dhcp/dhcpd.conf

#為 192.168.10.0/24 提供DHCP服務subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.2 192.168.10.253; #地址池範圍 option broadcast-address 192.168.10.255; #廣播地址 option routers 192.168.10.1; #默認網關 option domain-name-servers 202.96.134.33, 202.96.128.22; #運營商DNS伺服器 option netbios-name-servers 192.168.10.1; #WINS伺服器 option domain-name lan; #搜索域 default-lease-time 86400; #默認租約時間,單位為秒 max-lease-time 86400; #最長租約時間,單位為秒}#FTP伺服器設置靜態IP綁定host ftp_server { hardware ethernet 12:34:56:11:11:11; #FTP伺服器的MAC地址 fixed-address 192.168.10.254; #綁定的IP地址}

6、配置iptables的傳入連接

允許環回介面的傳入連接

iptables -A INPUT -i lo -j ACCEPT

允許已建立的傳入連接

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

允許DHCP傳入連接

iptables -A INPUT -i eth1 -p udp --dport 67:68 -j ACCEPT

允許SSH傳入連接

iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT

7、配置iptables的NAT轉發(重點)

允許來自內網的傳出連接

iptables -A FORWARD -s 192.168.10.0/24 -j ACCEPT

開啟源NAT功能

即將來自內網主機的IP轉換為外網IP。

iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to 200.0.0.2

配置埠映射

iptables -t nat -A PREROUTING -d 200.0.0.2 -p tcp --dport 21 -j DNAT --to 192.168.10.254

允許到FTP伺服器的傳入連接

iptables -A FORWARD -d 192.168.10.254 -p tcp --dport 21 -j ACCEPT

8、保存iptables配置

iptables-save > /etc/sysconfig/iptables

9、啟動iptables和dhcp服務

啟動iptables

systemctl start iptables

開機自動啟動iptables

systemctl enable iptables

啟動dhcpd

systemctl start dhcpd

開機自動啟動dhcpd

systemctl enable dhcpd

配置完成!

推薦閱讀:

現在的linux運維工程師待遇如何?有沒有發展前景?
聽說不會開發的運維不是好運維,一個懂點Linux命令的但沒有開發經驗的運維如何提高自己的運維能力?
為什麼運維都這麼難招?
linux下雙網卡能不能設置同一網段?

TAG:Linux | 计算机网络 | Linux运维 |