av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Linux防火墻iptables初學(xué)者教程

瀏覽:6日期:2024-04-21 08:18:07

Iptables是專為L(zhǎng)inux操作系統(tǒng)打造的極其靈活的防火墻工具。對(duì)Linux極客玩家和系統(tǒng)管理員來(lái)說(shuō),iptables非常有用。本文將向你展示如何配置最通用的Linux防火墻。

關(guān)于iptables

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

sudo apt-get install iptables

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

Iptables規(guī)則鏈的類型

Iptables的規(guī)則鏈分為三種:輸入、轉(zhuǎn)發(fā)和輸出。

輸入——這條鏈用來(lái)過(guò)濾目的地址是本機(jī)的連接。例如,如果一個(gè)用戶試圖使用SSH登陸到你的PC/服務(wù)器,iptables會(huì)首先匹配其IP地址和端口到iptables的輸入鏈規(guī)則。

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

Linux防火墻iptables初學(xué)者教程 上圖是對(duì)一臺(tái)已經(jīng)運(yùn)行了幾個(gè)星期的服務(wù)器的截圖。這臺(tái)服務(wù)器沒(méi)有對(duì)輸入和輸出做任何限制。從中可以看到,輸入鏈和輸出鏈已經(jīng)分別處理了11GB和17GB的數(shù)據(jù),而轉(zhuǎn)發(fā)鏈則沒(méi)有處理任何數(shù)據(jù)。這是因?yàn)榇朔?wù)器沒(méi)有開(kāi)啟類似于路由器的轉(zhuǎn)發(fā)功能。

輸出——這條鏈用來(lái)過(guò)濾源地址是本機(jī)的連接。例如,當(dāng)你嘗試ping howtogeek.com時(shí),iptables會(huì)檢查輸出鏈中與ping和howtogeek.com相關(guān)的規(guī)則,然后決定允許還是拒絕你的連接請(qǐng)求。

注意:當(dāng)ping一臺(tái)外部主機(jī)時(shí),看上去好像只是輸出鏈在起作用。但是請(qǐng)記住,外部主機(jī)返回的數(shù)據(jù)要經(jīng)過(guò)輸入鏈的過(guò)濾。當(dāng)配置iptables規(guī)則時(shí),請(qǐng)牢記許多協(xié)議都需要雙向通信,所以你需要同時(shí)配置輸入鏈和輸出鏈。人們?cè)谂渲肧SH的時(shí)候通常會(huì)忘記在輸入鏈和輸出鏈都配置它。

鏈的默認(rèn)行為

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

iptables -L

Linux防火墻iptables初學(xué)者教程

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

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

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

iptables --policy INPUT DROP iptables --policy OUTPUT DROP iptables --policy FORWARD DROP 對(duì)特定連接的配置

下面來(lái)看看如何對(duì)特定的IP地址或端口作出設(shè)定。本文主要介紹三種最基本和常見(jiàn)的設(shè)定。

Accept – 接收所有的數(shù)據(jù)。Drop – 丟棄數(shù)據(jù)。應(yīng)用場(chǎng)景:當(dāng)你不想讓數(shù)據(jù)的來(lái)源地址意識(shí)到你的系統(tǒng)的存在(最好的處理方法)。Reject – 不允許建立連接,但是返回一個(gè)錯(cuò)誤回應(yīng)。應(yīng)用場(chǎng)景:當(dāng)你不想讓某個(gè)IP地址訪問(wèn)你的系統(tǒng),但又想讓它們知道你的防火墻阻止了其訪問(wèn)。

為了直觀的區(qū)分上述三種情況,我們使用一臺(tái)PC來(lái)ping一臺(tái)配置了iptables的Linux電腦:

Linux防火墻iptables初學(xué)者教程

允許或阻止特定的連接

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

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

iptables -A INPUT -s 10.10.10.10 -j DROP

來(lái)自一組IP地址的連接下面這個(gè)例子展示了如何阻止來(lái)自子網(wǎng)10.10.10.0/24內(nèi)的任意IP地址的連接。你可以使用子網(wǎng)掩碼或者標(biāo)準(zhǔn)的/符號(hào)來(lái)標(biāo)示一個(gè)子網(wǎng):

iptables -A INPUT -s 10.10.10.0/24 -j DROP

iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP

特定端口的連接這個(gè)例子展示了如何阻止來(lái)自10.10.10.10的SSH連接。

iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP

你可以將“ssh”替換成其它任何協(xié)議或者端口號(hào)。上述命令中的-p tcp告訴iptables連接使用的是何種協(xié)議。

下面這個(gè)例子展示了如何阻止來(lái)自任意IP地址的SSH連接。

iptables -A INPUT -p tcp --dport ssh -j DROP 連接狀態(tài)

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

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

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

Ubuntu:

sudo /sbin/iptables-save

Red Hat / CentOS:

/sbin/service iptables save

或者

/etc/init.d/iptables save其它命令

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

iptables -L

使用-v選項(xiàng)將顯示數(shù)據(jù)包和字節(jié)信息;使用-n選項(xiàng)將以數(shù)字形式列出信息,即不將IP地址解析為域名。換句話講,主機(jī)名,協(xié)議和網(wǎng)絡(luò)都以數(shù)字的形式列出。

清除當(dāng)前所有的配置規(guī)則:

iptables -F

原文 The Beginner’s Guide to iptables, the Linux Firewall

標(biāo)簽: Linux系統(tǒng)
相關(guān)文章:
主站蜘蛛池模板: 欧美精品二区 | 蜜桃在线一区二区三区 | www久久久| 欧美成ee人免费视频 | 精品视频一区在线 | 亚洲男人网 | 粉嫩国产精品一区二区在线观看 | 久久青视频 | 国产一级特黄aaa大片评分 | 精品国产三级 | 免费观看成人性生生活片 | 国产免费一区 | 国产小网站 | 久久久久9999 | 伊大人久久 | 国产精品精品视频一区二区三区 | 精品欧美一区二区三区久久久 | 日韩亚洲一区二区 | 亚洲日本一区二区三区四区 | 日韩免费中文字幕 | 欧美在线一区二区三区 | 午夜精品一区二区三区在线视频 | 91精品国产91久久久久久丝袜 | 午夜视频在线 | 国产成人短视频在线观看 | 欧美一级一 | 国产成人精品综合 | 亚洲视频在线免费 | 亚洲一区二区三区在线免费观看 | 在线欧美视频 | 99精品国自产在线观看 | 嫩草一区二区三区 | 99re99| 久久中文字幕在线 | 国产日韩精品视频 | 国精产品一品二品国精在线观看 | 免费观看国产视频在线 | 国产精品久久久久久久久久久久久久 | 亚洲成人中文字幕 | 国产精品视频一二三区 | 免费一二区 |