Linux防火牆iptables簡明教程

來源:互聯網
上載者:User

   前幾天微魔部落再次遭受到個別別有用心的攻擊者的攻擊,順便給自己充個電,複習了一下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規則是否生效/正確,這一步的命令,之前有提到哦,開動腦筋,實在忘了,點擊此處~

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.