歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux防火牆iptables初學者教程

Linux防火牆iptables初學者教程

日期:2017/2/28 14:35:19   编辑:Linux教程

Iptables是專為Linux操作系統打造的極其靈活的防火牆工具。對Linux極客玩家和系統管理員來說,iptables非常有用。本文將向你展示如何配置最通用的Linux防火牆。

關於iptables

Iptables是一個基於命令行的防火牆工具,它使用規則鏈來允許/阻止網絡流量。當一條網絡連接試圖在你的系統中建立時,iptables會查找其對應的匹配規則。如果找不到,iptables將對其采取默認操作。
幾乎所有的Linux發行版都預裝了iptables。在Ubuntu/Debian中更新/安裝iptables的命令為:

sudo apt-get install iptables

現有的一些圖形界面軟件也可以替代iptables,如Firestarter。但iptables用起來並不難。配置iptables的規則時要特別小心,特別是在你遠程登陸服務器的時候。因為這時的一個錯誤有可能讓你和服務器永久失去連接,而你必須要到服務器面前才能解決它。

Iptables規則鏈的類型

Iptables的規則鏈分為三種:輸入、轉發和輸出。
輸入——這條鏈用來過濾目的地址是本機的連接。例如,如果一個用戶試圖使用SSH登陸到你的PC/服務器,iptables會首先匹配其IP地址和端口到iptables的輸入鏈規則。

轉發——這條鏈用來過濾目的地址和源地址都不是本機的連接。例如,路由器收到的絕大數數據均需要轉發給其它主機。如果你的系統沒有開啟類似於路由器的功能,如NATing,你就不需要使用這條鏈。
有一個安全且可靠的方法可以檢測你的系統是否需要轉發鏈:

iptables -L -v

上圖是對一台已經運行了幾個星期的服務器的截圖。這台服務器沒有對輸入和輸出做任何限制。從中可以看到,輸入鏈和輸出鏈已經分別處理了11GB和17GB的數據,而轉發鏈則沒有處理任何數據。這是因為此服務器沒有開啟類似於路由器的轉發功能。

輸出——這條鏈用來過濾源地址是本機的連接。例如,當你嘗試ping howtogeek.com時,iptables會檢查輸出鏈中與ping和howtogeek.com相關的規則,然後決定允許還是拒絕你的連接請求。

注意:當ping一台外部主機時,看上去好像只是輸出鏈在起作用。但是請記住,外部主機返回的數據要經過輸入鏈的過濾。當配置iptables規則時,請牢記許多協議都需要雙向通信,所以你需要同時配置輸入鏈和輸出鏈。人們在配置SSH的時候通常會忘記在輸入鏈和輸出鏈都配置它。

鏈的默認行為

在配置特定的規則之前,也許你想配置這些鏈的默認行為。換句話說,當iptables無法匹配現存的規則時,你想讓它作出何種行為。
你可以運行如下的命令來顯示當前iptables對無法匹配的連接的默認動作:

iptables -L

正如上面所顯示的,我們可以使用grep來使輸出的結果變得更加簡潔。在上面的截圖中,所有的鏈默認情況下均接受所有的連接。
通常情況下,你會希望你的系統默認情況下接收所有的網絡數據。這種設定也是iptables的默認配置。接收網絡連接的配置命令是:

iptables --policy INPUT ACCEPT
iptables --policy OUTPUT ACCEPT
iptables --policy FORWARD ACCEPT

你也可以在使用默認配置的情況下,添加一些命令來過濾特定的IP地址或端口號。我們稍後在本文介紹這些命令。
如果你想默認情況下拒絕所有的網絡連接,然後在其基礎上添加允許的IP地址或端口號,你可以將默認配置中的ACCEPT變成DROP,如下圖所示。這對於一些含有敏感數據的服務器來說是極其有用的。通常這些服務器只允許特定的IP地址訪問它們。

iptables --policy INPUT DROP
iptables --policy OUTPUT DROP
iptables --policy FORWARD DROP

推薦閱讀:

iptables—包過濾(網絡層)防火牆 http://www.linuxidc.com/Linux/2013-08/88423.htm

Linux防火牆iptables詳細教程 http://www.linuxidc.com/Linux/2013-07/87045.htm

iptables+L7+Squid實現完善的軟件防火牆 http://www.linuxidc.com/Linux/2013-05/84802.htm

iptables的備份、恢復及防火牆腳本的基本使用 http://www.linuxidc.com/Linux/2013-08/88535.htm

Linux下防火牆iptables用法規則詳解 http://www.linuxidc.com/Linux/2012-08/67952.htm

Copyright © Linux教程網 All Rights Reserved