1、第四部分第四課:分析網絡,隔離防火
2、第四部分第五課:源碼編譯,安裝便利
俗語說得好:愛國愛家愛師妹! 防火防盜防師兄!
雖然說,Linux本身很安全,至少比Windows安全多了。你看Linux發行版哪有安裝殺毒軟件的,同樣基於修改的Unix系統的蘋果的Mac OS系統也幾乎不需要裝殺毒軟件。
如果Windows不裝個殺毒軟件,簡直不好意思出門跟別人打招呼(日常黑Windows任務完成 :P)。開個玩笑啦,Windows是很好的系統,小編也使用Windows系統的。
不過,在網絡上穿行,還是小心為妙。畢竟網上有不懷好意的黑客(或普通人),想方設法獲取我們的隱私,或者控制我們的電腦。
這一課很重要,我們來學習幾個厲害的命令,能幫助我們分析網絡,再來學習如何使用輕量級的防火牆。
我們一起學習經由電腦的網絡通信是怎麼回事。事實上,當你的電腦連接到互聯網(Internet)時,總會有那麼一些電腦裡的軟件會連上網,然後下載或上傳信息,很多時候還是偷偷地在後台進行。
如何監控此等“大逆不道”的行徑呢?如何知道哪個軟件正在與網絡通信,在哪個端口上進行呢?就是本課要探究的。
還有,懂得配置防火牆是很必要的,不管是在你的家用電腦上還是在你租用的服務器上。因為這能有效保護電腦,免得一些軟件未經你同意就和互聯網交換信息。使用防火牆是一個重要的安全防護措施,特別是每個系統管理員(System Administrator)更是不能逃避,總要學習。
好了,廢話了這麼多,開篇入正題吧。
希望你們沒有嫌我啰嗦,真的不要... 如果你嫌我啰嗦,你要說出來,你不說出來,我怎麼知道你嫌我啰嗦呢?如果你說出來了,但是不夠大聲,那也是不行的,不大聲我聽不清楚啊...
(好了,好了,不要再扔雞蛋了... 你,說的就是你啦,還拿了一個番茄准備扔诶,要不要辣麼誇張)要跨年(2015-2016)了,就原諒小編頑皮一次吧。
大家2016加油啊!要做T型人才噢~
host和whois命令:告訴我你是誰
我們已經知道,每台連上網的電腦都會被一個IP地址所標識,這個IP地址是全球唯一的。
目前,大多數的IP地址是這樣的形式:
96.172.150.23
這樣的形式被稱為IPv4格式(以小數點分隔)。IP就是Internet Protocol(網際協議),v是version(版本)的首字母,4表示這是版本四。
不過,因為IPv4的地址不夠用的關系,現在已經有不少IP地址的格式是IPv6的格式了,已有的IPv4地址也被慢慢替換成IPv6。IPv6的IP地址類似這樣:
fa80::109:62fa:cb80:29d2
上面的是簡寫形式(兩個冒號::用於合並連續的幾組0),完整的形式是:
fa80:0000:0000:0000:0109:62fa:cb80:29d2
以冒號分隔的8組4位的16進制(也就是8組16位二進制,因為2的4次方是16),所以 8 * 16 = 128
IPv6把 IP 地址由IPv4的32 位(4個2的8次方,4 * 8 = 32)增加到 128 位。
2的32次方是42億多一點。隨著互聯網的快速成長,IPv4的42億個地址的分配最終於2011年2月3日用盡。而IPv6的128位可以提供的IP地址數量可達3.402823669 × 10^38個,屆時每個人家居中的每件電器,每件對象,甚至地球上每一粒沙子都可以擁有好幾個IP地址。根本用不完,IP多就是這麼任性。
我們可以為每一個IP地址綁定一個主機名,主機名的英語是host name。
注意:
這裡的主機名其實應該被稱為完整主機名: Fully Qualified Domain Name (FQDN),是由主機名(host name)和域名(domain name)一起構成。我們一般會用主機名或域名來代稱FQDN,其實不是那麼准確。
(domain name和host name是不同概念,有點小復雜,可以去看看《鳥哥的Linux私房菜》的對應課程,講得非常通俗易懂:http://linux.vbird.org/linux_server/0350dns.php)
例如,程序員聯盟的服務器的完整主機名是www.coderunity.com,這裡的www是主機名,coderunity.com是域名。對應的IP地址是58.96.181.197
下面我們會用主機名或域名代指FQDN了。
相比於記憶一串數字(IPv4)或數字+字母(IPv6)的IP地址,人腦更擅長記住主機名。如下圖,IP地址和主機名對應:
IP地址和主機名的互相轉換
使用host(host是英語“主機”的意思)這個命令我們可以實現IP地址和主機名的互相轉換,例如:
host coderunity.com (或 host www.coderunity.com)會得到IP地址:
58.96.181.197
而host 58.96.181.197則會得到主機名
host命令的其他參數選項,可以用man host來查考。
自定義解析
IP地址和主機名的解析是由DNS(Domain Name System,域名解析系統)服務器完成的。我們不深入了解DNS的具體工作原理了,半天解釋不完,可以看上面給出的鳥哥的鏈接裡的內容。
因此,當你在浏覽器的地址欄裡輸入coderunity.com 時,你就能收到由網絡上的DNS服務器幫你解析出來的IP地址,你就可以訪問程序員聯盟的官網了。
你當然不能修改DNS服務器上的主機名和IP地址的對應關系列表(因為有風險,會影響到很多人)。但是你可以自定義你電腦上主機名和IP地址的對應關系。
以root身份打開/etc/hosts 文件:
sudo nano /etc/hosts
可以看到一些IP地址和主機名的對應關系,例如:
127.0.0.1 對應了localhost
127.0.1.1 對應了oscar-laptop,就是小編電腦的主機名
下面還有一些IPv6格式的IP地址。
你可以往裡面添加自己的解析對。寫在一行裡,在IP地址和主機名之間至少要留一個空格。
那麼自定義IP地址和主機名之間的解析關系,有什麼用呢?
當然有用,有的時候,網絡上負責解析域名的DNS服務器可能暫時出現故障(很少見),那這時你在地址欄直接輸入IP地址可以訪問對應網站,但是輸入主機名(域名)則不能訪問了,因為沒有DNS服務器解析,域名是不能被識別的。
這時,你自定義在本地Linux系統的/etc/hosts文件中的解析規則就可以發揮作用了。你還是可以訪問網站。
例如你可以加一條程序員聯盟網站的解析對:
58.96.181.197 coderunity.com
但是這樣的方法也有缺陷:假如你的主機的IP地址換了,那你輸入域名就不能上那個網站了。所以,一般來說,我們還是靠經常更新解析對的網絡上的DNS服務器更好(一般一天更新一次)。
對於局域網,這個host文件也是很有用的。
例如在自己家裡建立的局域網裡面,有你的電腦,還有你老爸的電腦。那你不想記住老爸的電腦的IP地址,怎麼辦呢?可以添加一條解析對,例如:
192.168.0.7 father-laptop
這樣,老爸的電腦的IP地址對應的主機名在你這裡就成為father-laptop了,你就可以更方便地訪問老爸的電腦。
例如,如果在老爸的電腦裡你有一個賬戶叫oscar,那麼用之前學的SSH來登錄老爸電腦上的oscar賬戶,就是:
ssh oscar@father-laptop
就不用輸入:
ssh [email protected]
whois:了解有關域名的信息
whois這個命令很好記,由who和is兩部分組成,who是英語“誰”的意思,is是英語“是”的第三人稱單數形式。所以連起來表示:是誰
每一個域名在登記注冊時都須要填寫:姓,名,聯系地址,聯系方式,等等。這是規定。
whois命令就可以幫助我們輕松獲得域名背後的這些信息
。
可以選一個主機名來試試,例如:
whois coderunity.com
你就有小編的郵寄地址啦,要送我新年禮物就趕緊哦。哈哈,開玩笑的~
ifconfig和netstat命令:控制和分析網絡流量
我們接著學習兩個非常強大的命令:ifconfig和netstat。
ifconfig:列出網絡接口
ifconfig是linux中用於顯示或配置網絡設備(網絡接口卡)的命令,英文全稱是(Network) Interface Configuration。if是Interface的縮寫,表示“接口”;configuration是“配置”的意思。
一般來說,你的電腦擁有好幾個網絡接口,也就是說有多種連接網絡的方式。
運行ifconfig命令,顯示如下:
在小編的電腦上顯示有三個網絡接口,分別是:
eth0,lo,wlan0
在你的電腦上可能網絡接口多於三個,也可能少於三個,本不足為奇,取決於你電腦的設備。幸好小編的電腦的三個網絡接口都是最常見的三個,詳述如下:
eth0:對應有線連接(對應你的有線網卡),就是用網線來連接的上網(一般是RJ45網線,見下圖),如果你的電腦目前使用網線來上網,那就是在使用這個接口。有些電腦可能同時有好幾條網線連著(有好幾個有線接口),例如服務器,那麼除了eth0(第一塊有線網卡),你還會看到例如eth1,eth2,等等。
lo:本地回環(Local Loopback,對應一個虛擬網卡)。可以看到它的IP地址是127.0.0.1,似曾相識是嗎?對啊,之前我們在/etc/hosts文件中看到對應localhost的就是這個IP。每台電腦都應該有這個接口,因為它對應著連向... 自己的鏈接。這也是我們稱之為本地回環的原因:所有經由這個接口發送的東西都會回到你自己的電腦。看起來好像並沒有什麼用,但是有時為了某些緣故(可以百度繼續探究),我們需要連接自己。例如用來測試一個網絡程序,但又不想讓局域網或外網的用戶能夠查看,只能在此台主機上運行和查看所用的網絡接口。比如把 HTTPD服務器指定到回壞地址,在浏覽器輸入 127.0.0.1 就能看到你所架設的Web網站了。但只有你自己能看得到,局域網的其它主機或用戶無從知道。
wlan0:對應Wi-Fi無線連接(對應你的無線網卡)。假如你有好幾塊無線網卡,那麼會看到wlan1,wlan2,等等。
仔細觀察上面ifconfig輸出的信息,你猜到小編此時用的是哪種方式連網的嗎?
聰明如你應該猜到了(可不要害怕閱讀一堆英語哦)。是的,小編此時用的是有線連接的方式上網。證明就在eth0的信息中:
RX packets : 4853
TX packets : 4821
分別是接收包和發送包的數目。RX是receive(表示“接收”)的縮寫,TX是transmit(表示“發送”)的縮寫。
而wlan0的信息中,這兩行是0。
當然,本地回環的這兩行也有148呢。所以說,給自己發送東西也是會發生的。
ifconfig命令還可以用來配置網絡接口。但這有些超出本課程的范圍了,畢竟需要懂一些網絡方面的知識才能配置啊,不然配錯了就糟了。
但是,有一個簡單的配置方式我們可以學習:
接口的激活/關閉
使用格式如下:
ifconfig interface state
替換 :
interface:由你想要修改的網絡接口名稱代替(eth0,wlan0等等)。
state:由up或down代替,分別表示激活和關閉對應接口。
例如:
ifconfig eth0 down
關閉eth0這個有線接口,之後就沒有任何網絡傳輸會在eth0上進行了。
ifconfig eth0 up
激活eth0這個有線接口。
配置IP地址
用ifconfig命令可以配置網絡接口的IP地址和其他數據
例如:
ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255
上面的命令用於給eth0網卡配置IP地址:192.168.120.56,加上子網掩碼:255.255.255.0,加上個廣播地址: 192.168.120.255
還有更多命令選項就用man ifconfig來查看吧。
netstat : 網絡統計
netstat命令很好記,它由兩部分組成:net和stat。
net是network的縮寫,表示“網絡”;stat是statistics的縮寫,表示“統計”。所以顧名思義就是對網絡信息進行統計啦。(再論學英語對編程的重要性)
假如你沒有一些網絡方面的知識,那麼netstat命令的輸出可能難以理解,但是也沒那麼難。假如你要了解你的電腦正在網絡上做什麼,那麼netstat是不二選擇。
netstat可以顯示很多信息,但是我們可以用參數來控制顯示信息的種類和樣式。下面介紹幾個常用的參數吧:
netstat -i : 網絡接口的統計信息
首先,試試i參數吧:
netstat -i
會顯示一張統計列表,列出你電腦的所有網絡接口的一些統計信息,例如小編的電腦就列出了eth0,lo,wlan0這三個接口的使用信息。
netstat -uta : 列出所有開啟的連接
運行
netstat -uta
參數uta分別表示:
-u : 顯示UDP連接(u是udp的首字母)
-t : 顯示TCP連接(t是tcp的首字母)
-a : 不論連接的狀態如何,都顯示(a是all的首字母)
TCP和UDP是兩種不同的協議,用於在網絡上傳輸數據。
UDP(User Datagram Protocol,用戶數據報協議)一般用於網絡游戲,音頻通訊(例如Skype)。除此之外,一般來說TCP(Transmission Control Protocol,傳輸控制協議)是最常用的。一般在互聯網上都是用TCP/IP協議。可以去看看小編的《TCP/IP探索之旅》。
我們也可以只顯示TCP連接的信息:
netstat -ta
或者只顯示UDP連接的信息(不常用):
netstat -ua
再來看看上面圖片中state(狀態)那一列的信息,有好幾種不同狀態:
ESTABLISHED:與遠程電腦的連接已建立
TIME_WAIT : 連接正在等待網絡上封包的處理,一旦處理完畢就開始關閉連接
CLOSE_WAIT:遠程服務器中止了連接(也許你太久沒什麼動作,處在不活躍狀態)
CLOSED:連接沒有被使用
CLOSING:連接正在關閉,但有些數據還沒有發送完畢
LISTEN:監聽著可能進入的連接。此時連接還沒有被使用。
當然,狀態還不止這幾種,其他的可以在netstat的命令手冊中找到(用man netstat)。
我們再來看看端口的信息,就是上面圖片中冒號(:)之後的數據。
事實上,我們連接其他電腦,可以透過不同的端口(port),有點類似門戶。比如我去朋友家,可能進他們的廚房門,書房門,地下室門,等等。不同的端口用處不同。進廚房門可能看看做菜如何,進書房門可能一窺書香,進地下室門可能去品品葡萄酒。反正臥室門是不可以隨便進的~
摘自百度百科:
==============
"端口"是英文port的意譯,可以認為是設備與外界通訊交流的出口。端口可分為虛擬端口和物理端口,其中虛擬端口指計算機內部或交換機路由器內的端口,不可見。例如計算機中的80端口、21端口、23端口等。物理端口又稱為接口,是可見端口,計算機背板的RJ45網口,交換機路由器集線器等RJ45端口。電話使用RJ11插口也屬於物理端口的范疇。
==============
如下圖所示:
你可以加上-n參數,假如你想讓端口信息以數字的形式顯示,而不是像上圖中那樣有點看不懂的狀態,比如https,nfs,mysql等等。
80端口是為HTTP(HyperText Transport Protocol)即超文本傳輸協議開放的,此為上網沖浪使用次數最多的協議,主要用於WWW(World Wide Web)即萬維網傳輸信息的協議。可以通過HTTP地址(即常說的“網址”)加“:80”來訪問網站,因為浏覽網頁服務默認的端口號都是80,因此只需輸入網址即可,不用輸入“:80”了。
110端口是為POP3(郵件協議3)服務開放的,用於收發電子郵件。
21端口用於FTP(File Transfer Protocol,文件傳輸協議)服務,FTP服務主要是為了在兩台計算機之間實現文件的上傳與下載。
netstat -lt : 列出狀態是LISTEN的統計信息
netstat -s : 列出總結性的統計信息
還有更多命令選項就用man ifconfig來查看吧。
iptables:參考系防火牆
現在既然我們已經知道如何分析網絡傳輸,我們就趁熱打鐵,學習如何用防火牆來過濾網絡傳輸。
Linux下著名的防火牆是iptables。它有點年紀了,已經服役十幾年。iptables命令可以制定一些規則,規定其他電腦可以使用哪些端口來連接你的電腦(入),以及你的電腦可以連接哪些端口(出)。也可以通過IP地址來過濾。類似下圖所示:
例如,我想要攔截所有FTP的連接,那麼我可以用iptables封鎖21端口。
安裝iptables防火牆
如果沒有安裝iptables需要先安裝,
CentOS執行:
sudo yum install iptables
Debian/Ubuntu執行:
sudo apt-get install iptables
為了使用iptables,你需要切換到root身份:
sudo su
iptables -L : 顯示所有規則
可以看到三個區域:
Chain INPUT : 對應控制《進入》的網絡傳輸的規則
Chain FORWARD : 對應控制《轉發》的網絡傳輸的規則
Chain OUTPUT : 對應控制《出去》的網絡傳輸的規則
暫時我們還沒有制定任何規則。我們慢慢來學習。
1、清除已有iptables規則(慎用)
iptables -F iptables -X iptables -Z
2、開放指定的端口
#允許本地回環接口(即運行本機訪問本機) 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
#如果有其他端口的話,規則也類似,稍微修改上述語句就行。
#禁止其他未允許的規則訪問(注意:如果22端口未加入允許規則,SSH鏈接會直接斷開。)
1).用DROP方法
iptables -A INPUT -p tcp -j DROP
2).用REJECT方法
iptables -A INPUT -j REJECT iptables -A FORWARD -j REJECT
3、屏蔽IP
#如果只是想屏蔽IP的話“3、開放指定的端口”可以直接跳過 #屏蔽單個IP的命令是 iptables -I INPUT -s 123.45.6.7 -j DROP #封整個段即從123.0.0.1到123.255.255.254的命令 iptables -I INPUT -s 123.0.0.0/8 -j DROP #封IP段即從123.45.0.1到123.45.255.254的命令 iptables -I INPUT -s 124.45.0.0/16 -j DROP #封IP段即從123.45.6.1到123.45.6.254的命令是 iptables -I INPUT -s 123.45.6.0/24 -j DRO
4、查看已添加的iptables規則
iptables -L -n
v:顯示詳細信息,包括每條規則的匹配包數量和匹配字節數
x:在 v 的基礎上,禁止自動單位換算(K、M) vps偵探
n:只顯示IP地址和端口號,不將ip解析為域名
5、刪除已添加的iptables規則
將所有iptables以序號標記顯示,執行:
iptables -L -n --line-numbers
比如要刪除INPUT裡序號為8的規則,執行:
iptables -D INPUT 8
6、iptables的開機啟動及規則保存
CentOS上可能會存在安裝好iptables後,iptables並不開機自啟動,可以執行一下:
chkconfig --level 345 iptables on
將其加入開機啟動。
CentOS上可以執行:service iptables save 保存規則。
Debian/Ubuntu上iptables是不會保存規則的。
需要按如下步驟進行,讓網卡關閉是保存iptables規則,啟動時加載iptables規則。
如果當前用戶不是root,即使使用了sudo,也會提示你沒有權限,無法保存,所以執行本命令,你必須使用root用戶。
可以使用sudo -i 快速轉到root,使用完成,請及時使用su username切換到普通帳戶。
為了重啟服務器後,規則自動加載,我們創建如下文件:
sudo vim /etc/network/if-pre-up.d/iptables#!/bin/bash iptables-save > /etc/iptables.rules
添加執行權限。
chmod +x /etc/network/if-pre-up.d/iptables
附上基礎規則:
*filter :INPUT ACCEPT [106:85568] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [188:168166] :RH-Firewall-1-INPUT - [0:0] #允許本地回環接口(即運行本機訪問本機) -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT #允許已建立的或相關連的通行 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允許所有本機向外的訪問 -A OUTPUT -j ACCEPT #允許PPTP撥號到外網 -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT #僅特定主機訪問Rsync數據同步服務 -A INPUT -s 8.8.8.8/32 -p tcp -m tcp --dport 873 -j ACCEPT #僅特定主機訪問WDCP管理系統 -A INPUT -s 6.6.6.6/32 -p tcp -m tcp --dport 8080 -j ACCEPT #允許訪問SSH -A INPUT -p tcp -m tcp --dport 1622 -j ACCEPT #允許訪問FTP -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT #允許訪問網站服務 -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT #禁止所有未經允許的連接 -A INPUT -p tcp -j DROP #注意:如果22端口未加入允許規則,SSH鏈接會直接斷開 #-A INPUT -j REJECT #-A FORWARD -j REJECT COMMIT
可以使用一下方法直接載入:
1、復制上面的規則粘貼到這裡,保存本文件
sudo vim /etc/iptables.test.rules
2、把本規則加載,使之生效,注意,iptables不需要重啟,加載一次規則就成了
sudo iptables-restore < /etc/iptables.test.rules
3、查看最新的配置,應該所有的設置都生效了.
sudo iptables -L -n
4、保存生效的配置,讓系統重啟的時候自動加載有效配置(iptables提供了保存當前運行的規則功能)
iptables-save > /etc/iptables.rules
看著很復雜,因為還沒學習腳本語言和Vim編輯器的關系。剛好,我們第五部分就會學習Vim編輯器和腳本。
如果你想提前試試,也可以看Ubuntu官方的關於保存和配置開機加載iptables規則的文章:https://help.ubuntu.com/community/IptablesHowTo
我們也見識到了,iptables的配置相當繁復,普通用戶簡直望而卻步。幸好,有一些軟件可以幫助我們減輕痛苦:<喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPiZuYnNwOzwvcD4NCjxwPlVGVyAtIFVuY29tcGxpY2F0ZWQgRmlyZXdhbGw8L3A+DQo8cD4mbmJzcDs8L3A+DQo8cD5VRlfKx1VuY29tcGxpY2F0ZWQgRmlyZXdhbGy1xMv10LSjrLnLw/vLvNLl1eK49sjtvP7KxyZsZHF1bzuyu7i01NO1xLfAu/DHvSZyZHF1bzujrLHIaXB0YWJsZXO88rWluty24KGjtat1ZneyorK7ysfU2sO/uPZMaW51eLei0NCw5tbQtrzT0LXEo6zQ0rrDo6xVYnVudHXW0NPQoaM8L3A+DQo8cD4mbmJzcDs8L3A+DQo8cD5VYnVudHW52be9VUZXzsS1taO6PGEgaHJlZj0="https://help.ubuntu.com/community/UFW" target="_blank" title="\">https://help.ubuntu.com/community/UFW
中文Ubuntu官方UFW文檔:http://wiki.ubuntu.org.cn/Ufw%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97
當然了,還有更好的圖形界面的UFW:gufw
Ubuntu官方GUFW文檔:https://help.ubuntu.com/community/Gufw
注意:
新的防火牆子系統/包過濾引擎nftables在 Linux 3.13 中替代有十多年歷史的iptables。iptables/netfilter是在2001年加入到2.4內核中。
誕生於2008年的nftables設計替代iptables,它提供了一個更簡單的Kernel ABI,減少重復代碼,改進錯誤報告,更有效支持過濾規則。
除了iptables,nftables還將替代ip6tables、arptables和ebtables。Linux內核的第一代包過濾機制是ipfwadm(1.2.1內核,1995年),之後是ipchains(1999年),iptables。nftables是第四代。
nftables引入了一個新的命令行工具nft。nft是iptables及其衍生指令(ip6tables,arptables)的超集。
同時,nft擁有完全不同的語法。如果你習慣於iptables,這是個不好的消息。但是有一個兼容層允許你使用iptables,而過濾是由內核中的nftables完成的。
但是基本的原理是類似的,nftables比iptables更方便,使用更有效率,可以把一些命令合並。
例如:
你想用iptables記錄並丟棄一個包,你必須寫兩條規則,一條記錄,一條丟棄:
iptables -A FORWARD -p tcp --dport 22 -j LOG iptables -A FORWARD -p tcp --dport 22 -j DROP
使用nft,你可以把兩個目標合並到一起:
nft add rule filter forward tcp dport 22 log drop
所以,假如你的Linux內核版本是3.13之前的,那就繼續使用iptables;如果是3.13版本之後,那就用nftables吧(其實nftables要從3.15版本才開始比較成熟)。
還有更多命令選項就用man iptables和man nftables來查看吧。
總結
在Internet(互聯網)上,每台電腦都由IP地址來標識。例如:89.210.135.74
我們可以把一個主機名綁定到一個IP地址上,主機名相對IP地址更容易被記住。例如:coderunity.com 在很多場合,用主機名就可以代替IP地址了。
host命令可以從IP地址解析出對應主機名,或者從主機名解析出IP地址。
ifconfig命令列出你電腦上的網絡接口(對應虛擬網卡或實體網卡),可以配置和操作這些接口。
netstat列出你電腦上打開的連接,說明當下哪些端口正打開著,一個端口就好比引導出入你電腦的門戶。
可以用iptables來攔截進入某些端口的連接,它是一個很不錯的防火牆。但是配置比較復雜。iptables配置很繁瑣,可以用ufw軟件來減輕壓力。從Linux 3.13開始,nftables替代了iptables。
今天的課就到這裡,一起加油吧!
下一課我們學習:源碼編譯,安裝便利