linux 防火墙iptables简明教程
前幾天微魔部落再次遭受到個別別有用心的攻擊者的攻擊,順便給自己充個電,復習了一下linux下常見的防火墻iptables的一些內容,但是無奈網上的很多教程都較為繁瑣,本著簡明化學習的目的,微魔為大家剔除了許多冗余的內容,提取出盡量多的精華部分成文,和大家共同學習,本文涉及的內容包括如下?
Linux防火墻iptables簡明教程?
1.安裝iptables?
2.查看現有的iptables規則?
3.刪除某iptables規則?
4.清除現有iptables規則?
5.創建規則?
6.設置開機啟動?
7.保存iptables規則?
8.iptables在手動防CC攻擊中的簡單應用?
1.安裝iptables?
很多Linux已經默認安裝iptables,可使用后文的查看命令測試是否安裝?
CentOS/RedHat下執行:?
yum install iptablesDebian/Ubuntu下執行:?
apt-get install iptables?
2.查看現有的iptables規則?
命令后面的line-number為顯示行號(將規則一則一則輸出,并顯示行號),可選,方便后文的刪除指令。?
iptables -L -n --line-numbers?
3.刪除某iptables規則?
例如,刪除第12行的規則,行號可由之前的命令查看?
iptables -D INPUT 12?
4.清除現有iptables規則?
iptables -F?
iptables -X?
iptables -Z?
5.創建規則?
a).開放端口?
命令iptables -A INPUT -j REJECT將屏蔽其他未授權的端口,因此請務必開放22端口以保障SSH連接正常~?
#允許本機訪問?
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT?
# 允許已建立的或相關連的通行?
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT?
#允許所有本機向外的訪問?
iptables -A OUTPUT -j ACCEPT?
# 允許訪問22端口?
iptables -A INPUT -p tcp --dport 22 -j ACCEPT?
#允許訪問80端口?
iptables -A INPUT -p tcp --dport 80 -j ACCEPT?
#允許FTP服務的21和20端口?
iptables -A INPUT -p tcp --dport 21 -j ACCEPT?
iptables -A INPUT -p tcp --dport 20 -j ACCEPT?
#如果有其他端口的話,規則也類似,稍微修改上述語句就行?
#禁止其他未允許的規則訪問?
iptables -A INPUT -j REJECT?
iptables -A FORWARD -j REJECT?
b).屏蔽ip?
iptables -I INPUT -s 123.123.123.123 -j DROP可通過更換上述ip為ip段來達到屏蔽ip段的目的~?
若需屏蔽整個ip段(123.0.0.1到123.255.255.254)則換為123.0.0.0/8?
若需屏蔽ip段123.123.0.1到123.123.255.254,則換為124.123.0.0/16?
若需屏蔽ip段123.123.123.1到123.123.123.254則換為123.123.123.0/24?
6.設置開機啟動?
一般在安裝iptables完成后,開機啟動會自動設置成功,但在個別CentOS系統上,貌似還有些問題,可以使用如下命令手動設置?
chkconfig --level 345 iptables on?
7.保存iptables規則?
service iptables save?
8.iptables在手動防CC攻擊中的簡單應用?
關于獲取攻擊者ip的方法,可以通過很多方法獲取,如查看網站日志等,本文不再贅述。?
a).建立要屏蔽的ip/ip段文件,名為ip.txt?
#屏蔽的ip?
123.4.5.6?
#屏蔽的ip段(編寫方法,同前文)?
123.4.5.6/24b).建立block_ip.sh腳本文件?
#!/bin/sh?
# Filename: block_ip.sh?
# Purpose: blocks all IP address/network found in a text file?
# The text file must have one IP address or network per line?
#################################################################?
# Change the following path/filename to match yours?
IP_LIST_FILE=/path/to/ip.txt?
#################################################################?
# Don't change anything below unless you are a smarty pant!?
#################################################################?
IPTABLES_BIN=/sbin/iptables?
# Get the IP address/network from the file and ignore any line starting with # (comments)?
BAD_IP_ADDR_LIST=$(grep -Ev "^#" $IP_LIST_FILE)?
# Now loop through the IP address/network list and ban them using iptabels?
for i in $BAD_IP_ADDR_LIST?
do?
echo -n "Blocking $i ...";?
$IPTABLES_BIN -A INPUT -s $i -j DROP?
$IPTABLES_BIN -A OUTPUT -d $i -j DROP?
echo "DONE.";?
done?
##################################################################?
# END OF SCRIPT - NOTHING TO SEE HERE - THAT'S ALL FOLKS!?
##################################################################?
c).運行腳本?
sh /path/to/block_ip.sh?
d).查看iptables規則是否生效/正確,這一步的命令,之前有提到哦,開動腦筋,實在忘了,點擊此處~
轉載于:https://www.cnblogs.com/wanghuaijun/p/5403992.html
總結
以上是生活随笔為你收集整理的linux 防火墙iptables简明教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Swift学习--常量.变量.数据类型的
- 下一篇: 关于iOS知识的提升