iptables的nat規則騷操作


水一槍

我對防火牆這塊的認知是比較低的, 之前一直沒怎么去用

最多的要么就是

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT

,這還是以前剛出來接觸linux的時候redhat6跑的,后來改革了,好吧,centos7

firewall-cmd --zone=public --add-port=6379/tcp --permanent && firewall-cmd --reload

直到我與區塊鏈搭上了肩膀才用上了iptables端口轉發

上面水了一段,正文開始

需求

在生產環境上面所在運行的數據庫做一個遠程連接,前提是數據庫不能重啟(由於原先只有一個root用戶而且限定是本地使用的,不能添加額外連接用戶)

那么這個時候就可以用iptables做一個小小的映射,其實說的那么玄乎,無非就是nat規則...

把本地的3306端口映射出去變成63306,外面連接的語句是

mysql -uroot -p'password' -h xxxxx -P 63306

注:當訪問63306的時候,會自動去請求3306,然后返回數據,當然,63306是不受監聽的哈,那些用過kali或者滲透的朋友是不是應該想到了什么呢...

什么?沒有?那當我沒說過。

實現

先扔三條code去摳一下

echo 1 >/proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.conf.eth0.route_localnet=1
sysctl -w net.ipv4.conf.default.route_localnet=1

不用說也知道這是干嘛的了,【允許數據包轉發】

nat規則

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 63306 -j DNAT --to-destination 127.0.0.1:3306
iptables -t nat -A POSTROUTING -p tcp -m tcp --dport 63306 -j SNAT --to-source 127.0.0.1

注:這是允許所有外來的IP訪問,慎用。

限制單個來源IP

iptables -t nat -R PREROUTING 4 -s 192.168.40.154 -p tcp -m tcp --dport 63306 -j DNAT --to-destination 127.0.0.1:3306
iptables -t nat -R POSTROUTING 4 -s 192.168.40.154 -p tcp -m tcp --dport 63306 -j SNAT --to-source 127.0.0.1

注:這是只給外網的192.168.40.154連接, 其他的都連不上,

修改規則(4代表編號, --line-number可查看對應編號, -s 指定來源IP)。

查看nat規則

iptables -L -t nat --line-number

刪除nat規則

iptables -t nat -D POSTROUTING 1

 筆記

-A 追加規則-->iptables -A INPUT
-D 刪除規則-->iptables -D INPUT 1(編號)
-R 修改規則-->iptables -R INPUT 1 -s 192.168.12.0 -j DROP 取代現行規則,順序不變(1是位置)
-I 插入規則-->iptables -I INPUT 1 --dport 80 -j ACCEPT 插入一條規則,原本位置上的規則將會往后移動一個順位
-L 查看規則-->iptables -L INPUT 列出規則鏈中的所有規則
-N 新的規則-->iptables -N allowed 定義新的規則

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM