利用iptables限制外網訪問


因服務器受木馬攻擊,導致CPU占用太高,手工清除后,准備采用防火牆對服務器限制外網訪問(不能訪問到外網,但可以訪問部分指定的外網IP)

一、安裝與配置

# 安裝iptables服務
yum install iptables-services -y

禁止上外網的腳本
vi /usr/local/forbid-Intranet.sh

#!/bin/sh

# 黃海反復試驗了幾次,發現在設置之前關閉防火牆才是最安全的辦法,否則會發生連接不上的問題
service iptables stop

iptables -F

iptables -X

iptables -Z


# 允許部分出去的網絡  			
iptables -A OUTPUT -d 192.168.0.0/8 -j ACCEPT    

# 測試一個外網
iptables -A OUTPUT -d www.cnblogs.com -j ACCEPT


#允許icmp包通過,也就是允許ping
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

#本機對外請求相當於OUTPUT,對於返回數據包必須接收啊,這相當於INPUT了
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT


#信任IP
iptables -A INPUT -s 192.168.192.1  -j ACCEPT

# 禁用所有出去的網絡
iptables -P OUTPUT DROP

# 保存iptbales規則
service iptables save

# 重新啟動
service iptables restart 

恢復上外網的腳本
vi /usr/local/allow-Intranet.sh

#!/bin/sh

# 黃海反復試驗了幾次,發現在設置之前關閉防火牆才是最安全的辦法,否則會發生連接不上的問題
service iptables stop

iptables -F

iptables -X

iptables -Z


# 據說這兩句話是必不可缺少的
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# 開放22端口
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT


#信任IP
iptables -A INPUT -s 192.168.192.1  -j ACCEPT

#關閉其它端口
iptables -P INPUT DROP

# 保存iptbales規則
service iptables save

# 重新啟動
service iptables restart 

二、測試

嘗試訪問內網
ping 192.168.198.2 通了!

嘗試訪問外網

ping www.baidu.com 
PING www.a.shifen.com (220.181.38.149) 56(84) bytes of data.
ping: sendmsg: Operation not permitted

測試cnblogs

curl -L www.cnblogs.com

可以測試一下修改set.sh中,注釋掉cnblogs那句,執行,然后再次測試curl -L www.cnblogs.com來測試一下是否有變化

三、常用命令

啟動iptables

systemctl enable iptables

打開iptables

systemctl start iptables

保存iptables

service iptables save

重啟服務

service iptables restart

查看iptables現行規則

iptables -L -n

查看網絡配置

vi /etc/sysconfig/network-scripts/ifcfg-ens33

查看網關

route -n
192.168.198.2


免責聲明!

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



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