iptables 實戰篇
實戰1 伺服器禁止ping
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
// 禁止任何人ping通本機
除了上面禁止PING的方法,我們還可以通過修改核心配置實作,如下:
echo net.ipv4.icmp_echo_ignore_all=1 >> /etc/sysctl.conf
sysctl -p
// 如果允許PING,則将 `ignore_all=1`,修改成 `ingore_all=0` 即可
實戰2 利用iptables保護公司 web 伺服器
2.1 web伺服器配置:
1、安裝httpd及vsftpd服務
yum -y install httpd
yum -y install vsftpd //安裝vsfptd服務目的是為了對比iptables
2、啟動httpd及vsftpd服務
systemctl start httpd
systemctl start vsftpd
2.2 用戶端驗證(未配置iptables)
測試web通路
測試vsftpd
2.3 配置iptables防火牆政策
iptables -A INPUT -i lo -j ACCEPT
// 放行環回口所有資料
iptables -A INPUT -p tcp -m multiport --dports 22,80 -j ACCEP
// 放行 TCP/22,80 端口
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
// 允許已經建立 tcp 連接配接的包以及該連接配接相關的包通過
iptables -P INPUT DROP
// 設定filter表INPUT鍊預設規則。當資料包沒有被任何規則比對時,則按預設規則拒絕所有
2.4 再次驗證
測試結果正如我們所料:可以正常通路web服務,但由于iptables規則未放行ftp相關端口,是以無法通路ftp服務。
實戰3 利用iptables搭建網關伺服器
背景
:公司使用雙網卡Linux主機作為網關伺服器,其中網卡eth0連接配接區域網路,網卡eth1接入Internet。由于公司隻注冊了一個公網IP位址,要求合理配置網關政策,使區域網路内的PC機可以通過共享的方式通路Internet,如下圖所示:
具體實驗步驟,點選:
幹貨|利用iptables搭建網關伺服器實戰4 利用iptables實作端口映射(DNAT)
實驗拓撲圖
4.1 qll252 web伺服器
1、安裝httpd服務
[root@qll252 ~]# yum -y install httpd
2、設定http服務首頁内容
[root@qll252 ~]# echo 10.10.10.2 > index.html
3、啟動httpd服務
[root@qll252 ~]# systemctl start httpd
4、指定qll251為網關
[root@qll252 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY=10.10.10.1
5、重新開機網卡服務
[root@qll252 ~]# systemctl restart network
4.2 在qll251上做DNAT
1、開啟核心轉發
echo "net.ipv4.ip_forward = 1" >> etc/sysctl.conf
sysctl -p
2、添加iptables規則
[root@qll252 ~]# iptables -t nat -A PREROUTING -d 10.43.5.166 -p tcp --dport 8000 -j DNAT --to 10.43.187.252:80
3、儲存iptables規則
[root@qll251 ~]# service iptables save
4.3 驗證
結果正如我們所料,浏覽器上輸入,即可跳轉到
http://20.20.20.20:8000
的内容,實作端口映射。
qll252
結語
公衆号『
開源Linux
』,專注分享Linux/Unix相關内容,包括Linux運維、Linux系統開發、網絡程式設計、以及虛拟化和雲計算等技術幹貨。背景回複『
學習
』,送你一套學習Linux的系列書籍,期待與你相遇。