最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux防火墻iptables入門教程

 更新時(shí)間:2014年03月06日 09:29:14   作者:  
Iptables是專為Linux操作系統(tǒng)打造的極其靈活的防火墻工具。對Linux極客玩家和系統(tǒng)管理員來說,iptables非常有用。本文將向你展示如何配置最通用的Linux防火墻

一、關(guān)于iptables

Iptables是一個基于命令行的防火墻工具,它使用規(guī)則鏈來允許/阻止網(wǎng)絡(luò)流量。當(dāng)一條網(wǎng)絡(luò)連接試圖在你的系統(tǒng)中建立時(shí),iptables會查找其對應(yīng)的匹配規(guī)則。如果找不到,iptables將對其采取默認(rèn)操作。
幾乎所有的Linux發(fā)行版都預(yù)裝了iptables。在Ubuntu/Debian中更新/安裝iptables的命令為:

復(fù)制代碼 代碼如下:

sudo apt-get install iptables

現(xiàn)有的一些圖形界面軟件也可以替代iptables,如Firestarter。但iptables用起來并不難。配置iptables的規(guī)則時(shí)要特別小心,特別是在你遠(yuǎn)程登陸服務(wù)器的時(shí)候。因?yàn)檫@時(shí)的一個錯誤有可能讓你和服務(wù)器永久失去連接,而你必須要到服務(wù)器面前才能解決它。

二、Iptables規(guī)則鏈的類型

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

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

復(fù)制代碼 代碼如下:

iptables -L -v


上圖是對一臺已經(jīng)運(yùn)行了幾個星期的服務(wù)器的截圖。這臺服務(wù)器沒有對輸入和輸出做任何限制。從中可以看到,輸入鏈和輸出鏈已經(jīng)分別處理了11GB和17GB的數(shù)據(jù),而轉(zhuǎn)發(fā)鏈則沒有處理任何數(shù)據(jù)。這是因?yàn)榇朔?wù)器沒有開啟類似于路由器的轉(zhuǎn)發(fā)功能。
3.輸出——這條鏈用來過濾源地址是本機(jī)的連接。例如,當(dāng)你嘗試ping howtogeek.com時(shí),iptables會檢查輸出鏈中與ping和howtogeek.com相關(guān)的規(guī)則,然后決定允許還是拒絕你的連接請求。
注意:當(dāng)ping一臺外部主機(jī)時(shí),看上去好像只是輸出鏈在起作用。但是請記住,外部主機(jī)返回的數(shù)據(jù)要經(jīng)過輸入鏈的過濾。當(dāng)配置iptables規(guī)則時(shí),請牢記許多協(xié)議都需要雙向通信,所以你需要同時(shí)配置輸入鏈和輸出鏈。人們在配置SSH的時(shí)候通常會忘記在輸入鏈和輸出鏈都配置它。
三、鏈的默認(rèn)行為

在配置特定的規(guī)則之前,也許你想配置這些鏈的默認(rèn)行為。換句話說,當(dāng)iptables無法匹配現(xiàn)存的規(guī)則時(shí),你想讓它作出何種行為。
你可以運(yùn)行如下的命令來顯示當(dāng)前iptables對無法匹配的連接的默認(rèn)動作:

復(fù)制代碼 代碼如下:

iptables -L


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

復(fù)制代碼 代碼如下:

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

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

復(fù)制代碼 代碼如下:

iptables --policy INPUT DROP

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

四、對特定連接的配置
下面來看看如何對特定的IP地址或端口作出設(shè)定。本文主要介紹三種最基本和常見的設(shè)定。
Accept – 接收所有的數(shù)據(jù)。
Drop – 丟棄數(shù)據(jù)。應(yīng)用場景:當(dāng)你不想讓數(shù)據(jù)的來源地址意識到你的系統(tǒng)的存在(最好的處理方法)。
Reject – 不允許建立連接,但是返回一個錯誤回應(yīng)。應(yīng)用場景:當(dāng)你不想讓某個IP地址訪問你的系統(tǒng),但又想讓它們知道你的防火墻阻止了其訪問。
為了直觀的區(qū)分上述三種情況,我們使用一臺PC來ping一臺配置了iptables的Linux電腦:

允許訪問



丟棄訪問



拒絕訪問

五、允許或阻止特定的連接

在配置完基本的規(guī)則鏈之后,你就可以配置iptables來允許或者阻止特定的IP地址或者端口。
注意:在這些例子中,我們使用iptables -A將額外的規(guī)則添加到現(xiàn)存的鏈中。Iptables在執(zhí)行匹配的時(shí)候,會從列表的頂端開始搜索。你可以使用iptables -I [chain] [number]將新的規(guī)則插入到列表的指定位置。

來自同一IP地址的連接
下面這個例子展示了如何阻止來自IP地址為10.10.10.10的所有連接。

復(fù)制代碼 代碼如下:
iptables -A INPUT -s 10.10.10.10 -j DROP

來自一組IP地址的連接
下面這個例子展示了如何阻止來自子網(wǎng)10.10.10.0/24內(nèi)的任意IP地址的連接。你可以使用子網(wǎng)掩碼或者標(biāo)準(zhǔn)的/符號來標(biāo)示一個子網(wǎng):
復(fù)制代碼 代碼如下:
iptables -A INPUT -s 10.10.10.0/24 -j DROP


復(fù)制代碼 代碼如下:
iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP

特定端口的連接
這個例子展示了如何阻止來自10.10.10.10的SSH連接。
復(fù)制代碼 代碼如下:
iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP

你可以將“ssh”替換成其它任何協(xié)議或者端口號。上述命令中的-p tcp告訴iptables連接使用的是何種協(xié)議。
下面這個例子展示了如何阻止來自任意IP地址的SSH連接。
復(fù)制代碼 代碼如下:
iptables -A INPUT -p tcp --dport ssh -j DROP


六、連接狀態(tài)

我們之前提到過,許多協(xié)議均需要雙向通信。例如,如果你打算允許SSH連接,你必須同時(shí)配置輸入和輸出鏈。但是,如果你只想允許來自外部的SSH請求,那該怎么做?
下面這個例子展示了如何允許源IP地址為10.10.10.10同時(shí)阻止目的地址為10.10.10.10的SSH連接:

復(fù)制代碼 代碼如下:

iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -d 10.10.10.10 -m state --state ESTABLISHED -j ACCEPT

七、保存更改
上述方法對iptables規(guī)則作出的改變是臨時(shí)的。如果你想永久保存這些更改,你需要運(yùn)行額外的命令(不同Linux發(fā)行版下的保存命令也不相同):
Ubuntu:
復(fù)制代碼 代碼如下:
sudo /sbin/iptables-save

Red Hat / CentOS:
復(fù)制代碼 代碼如下:
/sbin/service iptables save

或者
復(fù)制代碼 代碼如下:
/etc/init.d/iptables save

八、其它命令

列出iptables的當(dāng)前配置:

復(fù)制代碼 代碼如下:
iptables -L

使用-v選項(xiàng)將顯示數(shù)據(jù)包和字節(jié)信息;使用-n選項(xiàng)將以數(shù)字形式列出信息,即不將IP地址解析為域名。
換句話講,主機(jī)名,協(xié)議和網(wǎng)絡(luò)都以數(shù)字的形式列出。
清除當(dāng)前所有的配置規(guī)則:
復(fù)制代碼 代碼如下:

iptables -F

相關(guān)文章

  • centos6.6 下 安裝 php7 + nginx環(huán)境的方法

    centos6.6 下 安裝 php7 + nginx環(huán)境的方法

    這篇文章主要介紹了centos6.6 下 安裝 php7 + nginx環(huán)境的方法,總結(jié)分析了centos6.6 安裝 php7 + nginx環(huán)境的相關(guān)配置命令與操作技巧,需要的朋友可以參考下
    2020-03-03
  • Linux移動文件與目錄-mv命令的10個實(shí)用例子

    Linux移動文件與目錄-mv命令的10個實(shí)用例子

    在Linux中很重要也很基礎(chǔ)的一個命令就是mv移動或重命名文件與目錄命令。當(dāng)你想要將文件從一個位置移動到另一個地方并且不想復(fù)制它,那么mv 命令是完成這個任務(wù)的首選。下面這篇文章給大家詳細(xì)介紹了使用mv命令的10個實(shí)用例子,有需要的朋友們可以參考借鑒。
    2017-01-01
  • 5分鐘搭建一個WebRTC視頻聊天

    5分鐘搭建一個WebRTC視頻聊天

    這篇文章主要介紹了WebRTC視頻聊天,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • centos7下搭建ZooKeeper3.4中間件常用命令小結(jié)

    centos7下搭建ZooKeeper3.4中間件常用命令小結(jié)

    Zookeeper 作為一個分布式的服務(wù)框架,主要用來解決分布式集群中應(yīng)用系統(tǒng)的一致性問題,它能提供基于類似于文件系統(tǒng)的目錄節(jié)點(diǎn)樹方式的數(shù)據(jù)存儲。這篇文章主要介紹了centos7下搭建ZooKeeper3.4中間件常用命令小結(jié),需要的朋友可以參考下
    2019-07-07
  • Linux服務(wù)器選擇什么版本好

    Linux服務(wù)器選擇什么版本好

    服務(wù)器選擇什么版本的linux,這個問題是個老生常談的問題,每個月都有人討論,根據(jù)我運(yùn)維過1000臺 server的經(jīng)驗(yàn),回答如下
    2014-03-03
  • vagrant如何啟動虛擬機(jī)

    vagrant如何啟動虛擬機(jī)

    本文介紹了使用Vagrant和VirtualBox快速搭建Linux虛擬機(jī)的過程,包括創(chuàng)建Vagrantfile、配置網(wǎng)絡(luò)、使用SSH連接以及賬戶配置等步驟
    2024-11-11
  • 使用linux命令crontab間隔時(shí)間執(zhí)行其它命令

    使用linux命令crontab間隔時(shí)間執(zhí)行其它命令

    crontab命令的功能是在一定的時(shí)間間隔調(diào)度一些命令執(zhí)行,詳解使用方法看下示例和解釋
    2014-01-01
  • linux下怎樣用命令啟動docker服務(wù)

    linux下怎樣用命令啟動docker服務(wù)

    這篇文章主要介紹了linux下怎樣用命令啟動docker服務(wù)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 解決Linux可執(zhí)行文件目錄下明明存在*.so文件,但卻提示找不到

    解決Linux可執(zhí)行文件目錄下明明存在*.so文件,但卻提示找不到

    這篇文章主要介紹了解決Linux可執(zhí)行文件目錄下明明存在*.so文件,但卻提示找不到問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • linux系統(tǒng)命令筆記整理

    linux系統(tǒng)命令筆記整理

    這篇文章主要介紹了linux系統(tǒng)命令,整理總結(jié)了linux系統(tǒng)常用的安裝、卸載、編輯器使用等相關(guān)操作命令與使用注意事項(xiàng),需要的朋友可以參考下
    2020-03-03

最新評論

宁夏| 亚东县| 永年县| 洛南县| 金华市| 旺苍县| 娄底市| 汉源县| 喀喇| 彰武县| 鸡西市| 泰宁县| 泌阳县| 博白县| 武穴市| 昌图县| 泉州市| 上虞市| 邮箱| 平阳县| 湘阴县| 新野县| 巢湖市| 大余县| 桐柏县| 徐闻县| 沂源县| 南城县| 出国| 平原县| 鄂托克旗| 麻城市| 嘉善县| 舟曲县| 贺州市| 萝北县| 遵义市| 丰县| 阜城县| 白玉县| 鄂尔多斯市|