手把手教您把CentOS7伺服器變成上網路由器(基於iptables)
文章僅供參考,轉載請說明出處。由於配置內容比較複雜,不能保證完全正確,如有錯誤請及時提出,謝謝!
---
網路拓撲圖
說明
- 伺服器通過靜態IP上網,外網連接eth0口,IP為200.0.0.2;eth1口連接內網交換機,內網網段為192.168.10.1/24。
- 內網中的所有機器通過NAT上網,也要通過DHCP伺服器自動獲得IP地址。其中192.168.10.254為一台FTP伺服器,需要對外提供FTP服務。
- 伺服器本身不對外提供任何服務,僅對內網提供DHCP服務以及SSH管理。
- 內網機器使用運營商的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下雙網卡能不能設置同一網段?