溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

iptables實(shí)現(xiàn)網(wǎng)絡(luò)防火墻功能,SNAT以及DNAT功能

發(fā)布時間:2020-07-13 00:16:45 來源:網(wǎng)絡(luò) 閱讀:688 作者:PowerMichael 欄目:建站服務(wù)器

iptables實(shí)現(xiàn)網(wǎng)絡(luò)防火墻功能,SNAT以及DNAT功能

一、網(wǎng)絡(luò)防火墻的實(shí)現(xiàn)

iptables實(shí)現(xiàn)網(wǎng)絡(luò)防火墻功能,SNAT以及DNAT功能

	1.環(huán)境準(zhǔn)備:
虛擬機(jī)vmware workstation 11
系統(tǒng)CentOS 7.3
               軟件包安裝:yum install httpd vsftpd tcpdump
2.前提條件
2.1各主機(jī)正確設(shè)置IP地址/子網(wǎng)掩碼
 參考設(shè)置:
主機(jī)A 網(wǎng)卡ens33:10.0.0.110/24 內(nèi)網(wǎng)客戶端
主機(jī)B 網(wǎng)卡ens33:10.0.0.111/24 ens37:172.16.252.52/24 網(wǎng)關(guān)服務(wù)器
主機(jī)C 網(wǎng)卡ens33:172.16.254.52/24 外網(wǎng)服務(wù)端
2.2各主機(jī)正確設(shè)置網(wǎng)關(guān)地址
 參考設(shè)置:
主機(jī)A添加默認(rèn)路由信息
route add default gw 10.0.0.111
主機(jī)C添加路由信息
route add -net 10.0.0.0/24 gw 172.16.252.52
3.推薦實(shí)現(xiàn)步驟
開啟路由轉(zhuǎn)發(fā)功能
在filter表中的FORWARD鏈中實(shí)現(xiàn)
4.要注意的問題
1.請求和響應(yīng)均會經(jīng)過FORWARD鏈,要注意規(guī)則的方向性
2.如果要啟用conntrack機(jī)制,建議雙方向的狀態(tài)為ESTABLISHED的報(bào)文直接放行通過
3.配置規(guī)則時可使用tcpdump抓包分析數(shù)據(jù)報(bào)文
 

步驟:

1.主機(jī)A添加默認(rèn)路由信息
    route add default gw 10.0.0.111 
    route -n
2.主機(jī)B開啟核心轉(zhuǎn)發(fā)功能
    sysctl -w net.ipv4.ip_forward=1
3.tcpdump抓包測試數(shù)據(jù)
    主機(jī)A:ping 172.16.254.52 
    主機(jī)B抓包:tcpdump -i ens33 -nn icmp
    測試結(jié)果:有10.0.0.110到172.16.254.52的請求報(bào)文信息,但沒有回應(yīng)報(bào)文信息
4.主機(jī)C使用tcpdump抓包測試數(shù)據(jù)
    tcpdump -i ens33 -nn icmp
    測試結(jié)果:有回應(yīng)報(bào)文信息,但回應(yīng)報(bào)文信息發(fā)往給其他主機(jī),因此要設(shè)定網(wǎng)關(guān)信息
5.主機(jī)C添加路由信息
    route add -net 10.0.0.0/24 gw 172.16.252.52
    route -n
6.主機(jī)A ping請求測試
    ping 172.16.254.52
    測試結(jié)果:ping通
7.主機(jī)C啟動httpd服務(wù)
        systemctl start httpd.service
8.主機(jī)A訪問主機(jī)C的web頁面
        curl http://172.16.254.52 #此時應(yīng)該正常顯式頁面內(nèi)容

在上面的基礎(chǔ)上搭建網(wǎng)絡(luò)防火墻

方式一:
9.拒絕所有轉(zhuǎn)發(fā)服務(wù)
        iptables -A FORWARD -j REJECT
10.添加鏈規(guī)則:允許本地主機(jī)A訪問外網(wǎng)主機(jī)C的80端口的服務(wù)
        iptables -I FORWARD -s 10.0.0.0/24 -p tcp --dport 80 -j ACCEPT
11.添加鏈規(guī)則:允許外網(wǎng)主機(jī)C的80端口http服務(wù)響應(yīng)本機(jī)
        iptables -I FORWARD 2 -d 10.0.0.0/24 -p tcp --sport 80 -j ACCEPT
12.主機(jī)A測試能否訪問主機(jī)C的web頁面
        curl http://172.16.254.52#此時應(yīng)該正常顯式頁面內(nèi)容
方式二:
9.拒絕所有轉(zhuǎn)發(fā)服務(wù)
        iptables -A FORWARD -j REJECT
10.放行所有建立連接的數(shù)據(jù)報(bào)文
        iptables -I FORWARD -m state --state ESTABLISHED -j ACCEPT
11.新建一條鏈規(guī)則允許本地主機(jī)A訪問外網(wǎng)主機(jī)C
        iptables -I FORWARD 2 -s 10.0.0.0/24 -m state --state NEW -j ACCEPT
12.主機(jī)A測試
        curl http://172.16.254.52 #此時應(yīng)該正常顯式頁面內(nèi)容
13.添加鏈規(guī)則:允許外網(wǎng)主機(jī)C訪問本地主機(jī)A的80端口的http服務(wù)
        iptables -I FORWARD 3 -d 10.0.0.110 -p tcp --dport 80 -m state --state NEW -j ACCEPT 
14.主機(jī)C測試
        curl http://10.0.0.110 #此時應(yīng)該正常顯式頁面內(nèi)容
15.添加鏈規(guī)則:允許本機(jī)主機(jī)A開放更多端口的服務(wù)
        iptables -R FORWARD 3 -d 10.0.0.110 -p tcp -m multiport --dport 21:23,80 -m state --state NEW -j ACCEPT
16.加載FTP模塊(兩種方式)
        1.modprobe nf_conntrack_ftp
        2.vi /etc/sysconfig/iptables-config 
        IPTABLES_MODULES="nf_conntrack_ftp"
17.建立FTP訪問鏈規(guī)則,開放FTP被動模式
        iptables -A FORWARD -d 10.0.0.110 -p tcp -m state --state RELATED -j ACCEPT
18.主機(jī)C測試
        lftp 10.0.0.110
        ssh root@10.0.0.110
        curl http://10.0.0.110 #此時測試應(yīng)該都能正常獲取信息

二、SNAT轉(zhuǎn)發(fā)功能實(shí)現(xiàn)

iptables實(shí)現(xiàn)網(wǎng)絡(luò)防火墻功能,SNAT以及DNAT功能

	前提條件
各主機(jī)正確設(shè)置IP地址/子網(wǎng)掩碼
 參考設(shè)置:
主機(jī)A 網(wǎng)卡ens33:10.0.0.110/24 內(nèi)網(wǎng)客戶端
主機(jī)B 網(wǎng)卡ens33:10.0.0.111/24 ens37:172.16.252.52/24 網(wǎng)關(guān)服務(wù)器
主機(jī)C 網(wǎng)卡ens33:172.16.254.52/24 外網(wǎng)服務(wù)器
各主機(jī)正確設(shè)置網(wǎng)關(guān)地址
 參考設(shè)置:
主機(jī)A添加默認(rèn)路由信息
route add default gw 10.0.0.111
主機(jī)C添加路由信息
route add -net 10.0.0.0/24 gw 172.16.252.52
推薦實(shí)現(xiàn)步驟
1. 開啟網(wǎng)關(guān)主機(jī)的路由轉(zhuǎn)發(fā)功能
主機(jī)B開啟核心轉(zhuǎn)發(fā)功能
sysctl -w net.ipv4.ip_forward=1
2. 添加使用SNAT策略的防火墻規(guī)則
規(guī)則示例
iptables -t nat -I POSTROUTING -j SNAT --to-source 172.16.252.52

3.驗(yàn)證SNAT結(jié)果
主機(jī)A curl http://172.16.254.52
主機(jī)C tail -f /var/log/httpd/access_log #查看到的ip地址應(yīng)該為主機(jī)B的公網(wǎng)地址

三、DNAT轉(zhuǎn)發(fā)功能的實(shí)現(xiàn)

iptables實(shí)現(xiàn)網(wǎng)絡(luò)防火墻功能,SNAT以及DNAT功能


         前提條件
各主機(jī)正確設(shè)置IP地址/子網(wǎng)掩碼
 參考設(shè)置:
主機(jī)A 網(wǎng)卡ens33:10.0.0.110/24 內(nèi)網(wǎng)服務(wù)器
主機(jī)B 網(wǎng)卡ens33:10.0.0.111/24 ens37:172.16.252.52/24,網(wǎng)關(guān)服務(wù)器
主機(jī)C 網(wǎng)卡ens33:172.16.254.52/24 外網(wǎng)客戶端
各主機(jī)正確設(shè)置網(wǎng)關(guān)地址
 參考設(shè)置:
主機(jī)A添加默認(rèn)路由信息
route add default gw 10.0.0.111
主機(jī)C添加路由信息
route add -net 10.0.0.0/24 gw 172.16.252.52
推薦實(shí)現(xiàn)步驟
1. 開啟網(wǎng)關(guān)主機(jī)的路由轉(zhuǎn)發(fā)功能
主機(jī)B開啟核心轉(zhuǎn)發(fā)功能
sysctl -w net.ipv4.ip_forward=1
2. 添加使用SNAT策略的防火墻規(guī)則
規(guī)則示例
iptables -t nat -I PREROUTING  -d 172.16.252.52 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.110
3.驗(yàn)證DNAT結(jié)果(主機(jī)C訪問主機(jī)B的公網(wǎng)地址顯式的內(nèi)應(yīng)該為主機(jī)A的web內(nèi)容)
主機(jī)C curl http://172.16.252.52
主機(jī)A tail -f /var/log/httpd/access_log #查看到的ip地址應(yīng)該為外網(wǎng)主機(jī)C的地址
 
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI