10.11 linux網絡相關linux
ifconfig 查看網卡相關IPweb
ifcionfig -a 當網卡沒有IP的時候,這個命令是不顯示的,加上 -a 就能夠查看到vim
開啓網卡: ifup eth0centos
關閉網卡: ifdown eth0安全
以上就是關閉網卡ifdown和啓動網卡ifup的操做,那麼這兩個命令何時用呢?有時候會單獨對一個網卡作更改,好比改了配置文件,須要重啓服務,這個時候不想全部的網卡都重啓一遍,只想重啓指定的網卡,這個時候就可使用 ifdown 和 ifup 命令來操做。可是遠程鏈接的話,最好不要使用 ifdown 這個命令,會直接連不上服務器,致使遠程操做不了。因此,咱們應該這樣操做,輸入命令 ifdown ens33 && ifup ens3服務器
網卡設定虛擬網卡,具體操做:網絡
cd /etc/sysconfig/network-scripts/tcp
cp ifcfg-eth0 ifcfg-eth0\:0 // \反斜槓是脫義:工具
編輯文件: vim ifcfg-eth0\:0 下圖紅框處測試
重啓網卡服務: ifdown eth0:0 && ifup eth0:0
mii-tool eth0 查看網卡是否連接
ethtool eth 查看網卡是否連接
hostnamectl set-hostname lxy 更改主機名
hostname 查看主機名
dns配置文件: cat /etc/resolv.conf
etc/host 文件解析
更改文件解析:
總結:
ifconfig 查看網卡IP
yum install net-tools 安裝或更新 ifconfig 命令
ip add 查看網卡IP,結果相比於 ifconfig 命令雜亂
ifconfig -a 當網卡沒有IP的時候,這個命令是不顯示的,加上 -a 就能夠查看到
ifdown 關閉網卡
ifup 啓動網卡
ifdown ens00 && ifup ens00 關閉和啓動網卡ens33同時進行,用於遠程鏈接服務器時
mii-tool ens00 命令和 ethtool ens00 命令均可以查看網卡是否鏈接,顯示的結果分別是 ok 和 yes
hostnamectl set-hostname lxy-1 更改主機名爲 - 1
vi /etc/sysconfig/network-scripts/ifcfg-ens33 能夠更改配置文件爲自定義內容
/etc/hostname 主機名配置文件
/etc/resolv.conf DNS配置文件
vi /etc/hosts 更改文件 /etc/hosts 的解析,能夠實現IP地址的更改,可是更改僅僅在本機生效,一行裏面同時也支持一個IP多個域名,僅支持一行的內容,換行就不能生效了,而且左邊是IP,右邊是域名。在重複的內容中,之後面的內容爲準生效。
10.12 firewalld和netfilter
selinux 是 Redhat/CentOS 系統特有的安全機制。不過由於這個東西限制太多,配置也特別繁瑣因此幾乎沒有人去真正應用它。因此裝完系統,咱們通常都要把selinux關閉,以避免引發沒必要要的麻煩。關閉 selinux 的方法爲,使 「SELINUX=disabled」, 默認爲 enforcing。
輸入命令 vi /etc/selinux/config ,回車,見下圖,
保存該配置文件後,重啓機器方可生效。咱們可使用 getenforce 命令得到當前 selinux 的狀態
getenforce 查看selinux 狀態
setenforce 0 臨時關閉selinux防火牆
二、 netfilter 防火牆
centos6和centos7都有iptables,這裏的iptables是一個工具或者叫命令.在centos6中叫netfilter,centos7中防火牆叫firewalld.底層都是基於iptables.
systemctl disable firewalld 命令表示先中止防火牆服務
systemctl stop firewalld 命令表示關閉防火牆服務
接着開啓 netfilter 防火牆,開啓以前,須要先安裝一個包,輸入命令 yum install -y iptables-services
安裝完成以後,就能夠開啓 iptables 服務,即開啓 netfilter 防火牆服務
systemctl enable iptables 表示開啓防火牆服務
systemctl start iptables 表示啓動防火牆服務
iptables -nvL 查看iptables 的默認規則
10.13 netfilter5表5鏈介紹
以上就是 netfilter 防火牆的5個表,filter,nat,mangle,raw,security(Centos7以前沒有這個表) 。
filter 表用於過濾包,最經常使用的表,有INPUT、FORWARD、OUTPUT三個鏈
nat 表用於網絡地址轉換,有PREROUTING、OUTPUT、POSTROUTING三個鏈
managle 表用於給數據包作標記,而後根據標記去操做那些包,幾乎用不到
raw 表能夠實現不追蹤某些數據包,幾乎用不到
security 表在centos6中並無,用於強制訪問控制(MAC)的網絡規則,幾乎用不到
五個鏈:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
PREROUTING:做用是在包剛剛到達防火牆時改變它的目的地址,若是須要的話
INPUT:做用於進入本機的包
FORWARD:做用於那些跟本機無關的包
OUTPUT:做用於本機送出的包,改變本地產生的包的目的地址
POSTROUTING:在包就要離開防火牆以前改變其源地址
iptables簡介
netfilter/iptables(簡稱爲iptables)組成Linux平臺下的包過濾防火牆,與大多數的Linux軟件同樣,這個包過濾防火牆是免費的,它能夠代替昂貴的商業防火牆解決方案,完成封包過濾、封包重定向和網絡地址轉換(NAT)等功能。
iptables基礎
規則(rules)其實就是網絡管理員預約義的條件,規則通常的定義爲「若是數據包頭符合這樣的條件,就這樣處理這個數據包」。規則存儲在內核空間的信息 包過濾表中,這些規則分別指定了源地址、目的地址、傳輸協議(如TCP、UDP、ICMP)和服務類型(如HTTP、FTP和SMTP)等。當數據包與規 則匹配時,iptables就根據規則所定義的方法來處理這些數據包,如放行(accept)、拒絕(reject)和丟棄(drop)等。配置防火牆的 主要工做就是添加、修改和刪除這些規則。
iptables和netfilter的關係:
這是第一個要說的地方,Iptables和netfilter的關係是一個很容易讓人搞不清的問題。不少的知道iptables殊不知道 netfilter。其實iptables只是Linux防火牆的管理工具而已,位於/sbin/iptables。真正實現防火牆功能的是 netfilter,它是Linux內核中實現包過濾的內部結構。
iptables傳輸數據包的過程
① 當一個數據包進入網卡時,它首先進入PREROUTING鏈,內核根據數據包目的IP判斷是否須要轉送出去。
② 若是數據包就是進入本機的,它就會沿着圖向下移動,到達INPUT鏈。數據包到了INPUT鏈後,任何進程都會收到它。本機上運行的程序能夠發送數據包,這些數據包會通過OUTPUT鏈,而後到達POSTROUTING鏈輸出。
③ 若是數據包是要轉發出去的,且內核容許轉發,數據包就會如圖所示向右移動,通過FORWARD鏈,而後到達POSTROUTING鏈輸出。
下面說法是4表5鏈的內容,如今是5表5鏈,多出來的表也幾乎用不到。
iptables的規則表和鏈:
表(tables)提供特定的功能,iptables內置了4個表,即filter表、nat表、mangle表和raw表,分別用於實現包過濾,網絡地址轉換、包重構(修改)和數據跟蹤處理。
鏈(chains)是數據包傳播的路徑,每一條鏈其實就是衆多規則中的一個檢查清單,每一條鏈中能夠有一 條或數條規則。當一個數據包到達一個鏈時,iptables就會從鏈中第一條規則開始檢查,看該數據包是否知足規則所定義的條件。若是知足,系統就會根據 該條規則所定義的方法處理該數據包;不然iptables將繼續檢查下一條規則,若是該數據包不符合鏈中任一條規則,iptables就會根據該鏈預先定 義的默認策略來處理數據包。
Iptables採用「表」和「鏈」的分層結構。具體見下圖,
規則表:
1.filter表——三個鏈:INPUT、FORWARD、OUTPUT
做用:過濾數據包 內核模塊:iptables_filter.
2.Nat表——三個鏈:PREROUTING、POSTROUTING、OUTPUT
做用:用於網絡地址轉換(IP、端口) 內核模塊:iptable_nat
3.Mangle表——五個鏈:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
做用:修改數據包的服務類型、TTL、而且能夠配置路由實現QOS內核模塊:iptable_mangle(別看這個表這麼麻煩,我們設置策略時幾乎都不會用到它)
4.Raw表——兩個鏈:OUTPUT、PREROUTING
做用:決定數據包是否被狀態跟蹤機制處理 內核模塊:iptable_raw
規則鏈:
1.INPUT——進來的數據包應用此規則鏈中的策略
2.OUTPUT——外出的數據包應用此規則鏈中的策略
3.FORWARD——轉發數據包時應用此規則鏈中的策略
4.PREROUTING——對數據包做路由選擇前應用此鏈中的規則
(記住!全部的數據包進來的時侯都先由這個鏈處理)
5.POSTROUTING——對數據包做路由選擇後應用此鏈中的規則
(全部的數據包出來的時侯都先由這個鏈處理)
規則表之間的優先順序:
Raw——mangle——nat——filter
規則鏈之間的優先順序(分三種狀況):
第一種狀況:入站數據流向
從外界到達防火牆的數據包,先被PREROUTING規則鏈處理(是否修改數據包地址等),以後會進行路由選擇(判斷該數據包應該發往何處),若是數據包 的目標主機是防火牆本機(好比說Internet用戶訪問防火牆主機中的web服務器的數據包),那麼內核將其傳給INPUT鏈進行處理(決定是否容許通 過等),經過之後再交給系統上層的應用程序(好比Apache服務器)進行響應。
第二衝狀況:轉發數據流向
來自外界的數據包到達防火牆後,首先被PREROUTING規則鏈處理,以後會進行路由選擇,若是數據包的目標地址是其它外部地址(好比局域網用戶經過網 關訪問QQ站點的數據包),則內核將其傳遞給FORWARD鏈進行處理(是否轉發或攔截),而後再交給POSTROUTING規則鏈(是否修改數據包的地 址等)進行處理。
第三種狀況:出站數據流向
防火牆本機向外部地址發送的數據包(好比在防火牆主機中測試公網DNS服務器時),首先被OUTPUT規則鏈處理,以後進行路由選擇,而後傳遞給POSTROUTING規則鏈(是否修改數據包的地址等)進行處理。
總結:
getenforce 查看當前 selinux 的狀態,Enforcing 表示開啓,Permissive 表示關閉。
setenforce 0 臨時關閉 selinux
vi /etc/selinux/config 進入配置selinux文件,更改SELINUX=disabled,能夠永久關閉selinux
systemctl disable firewalld 表示先中止防火牆服務
systemctl stop firewalld 表示關閉防火牆服務
5個表: filter,nat,mangle,raw,security
5個鏈: PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
本機: PREROUTING →INPUT →OUTPUT →POSTROUTING
非本機:PREROUTING→FORWARD→POSTROUTING
10.14 iptables語法
ipta les -nvL 查看規則
/etc/sysconfig/iptables 規則保存路徑
iptables -F 清空規則 注:清空規則以後,使用命令 iptables -nvL,就看不到默認規則了,可是配置文件 /etc/sysconfig/iptables 裏面的內容沒有改變。也就是說,想要把當前的規則保存到配置文件裏,還須要執行一個命令 service iptables save ,這樣清空的規則纔會生效。若是不保存的話,能夠重啓 iptables ,再加載回來
也就是說,重啓服務器或是重啓 iptables 規則,都會去加載配置文件上的規則。
這些默認的規則都在 filter 這個表上,-t 是指定表,不使用 -t 的話,默認就是 filter 這個表。nat 表裏面都是沒有規則的,見下圖,
service iptables save 保存規則。當咱們把規則寫完以後,僅僅在當前內存中生效。想要重啓後還依然生效,就要作這個保存規則的操做。
iptables -Z 能夠把計數器清零
如今給filter表增長一條規則,
iptables命令選項輸入順序:
iptables -t 表名 <-A/I/D/R> 規則鏈名 [規則號] <-i/o 網卡名> -p 協議名 <-s 源IP/源子網> --sport 源端口 <-d 目標IP/目標子網> --dport 目標端口 -j 動做
輸入命令 iptables -A INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP
這條命令省略了 -t ,默認爲 filter 表;-A 表示增長一條規則,另外還有-I (大寫的i)表示插入一條規則,-D刪除一條規則;INPUT 表示針對的鏈,還能夠是OUTPUT或者FORWORD;-s 表示後面跟着指定的來源IP,-p 表示協議(tcp, udp, icmp),--sport/--dport 後跟來源端口/目標端口;-d 後跟目的IP(主要針對內網或者外網);-j 後跟動做(DROP即把包丟掉,REJECT即包拒絕;ACCEPT即容許包)。上圖中,最下面的紅色框框內容就是剛剛增長上去的規則。
總結一下各個選項的做用:
-A/-D :增長刪除一條規則;
-I :插入一條規則,其實跟-A的效果同樣;
-p :指定協議,能夠是tcp,udp或者icmp;
--dport :跟-p一塊兒使用,指定目標端口;
--sport :跟-p一塊兒使用,指定源端口;
-s :指定源IP(能夠是一個ip段);
-d :指定目的IP(能夠是一個ip段);
-j :後跟動做,其中ACCEPT表示容許包,DROP表示丟掉包,REJECT表示拒絕包;
-i :指定網卡(不經常使用,但有時候能用到);
還有一種用法 -I(大寫的i),輸入命令 iptables -I INPUT -p tcp --dport 80 -j DROP ,回車,見下圖,
能夠看到使用 -I 選項,規則就插入到第一行了。
既然能夠增長和插入,確定也能夠刪除,使用選項 -D ,輸入命令 iptables -D INPUT -p tcp --dport 80 -j DROP
iptables -nvL --line-number 查看規則行號
輸入命令 iptables -D INPUT 7 根據行號刪除規則
還有一個選項 -P(大寫), 表示預設策略,這是默認的規則,在PuTTY上遠程登陸的話,輸入命令 iptables -P OUTPUT DROP ,回車,會發現整個斷掉了,什麼也執行不了,只能重啓。-P後面跟鏈名,策略內容或者爲DROP或者爲ACCEPT,默認是ACCEPT。
表名包括:
規則鏈名包括:
動做包括:
總結:
iptables -nvL 查看 iptables 規則
service iptables restart 重啓 iptables 規則
cat /etc/sysconfig/iptables 查看 iptables 配置文件
iptables -F 清空規則
-t 是指定表,不使用 -t 的話,默認就是 filter 這個表
service iptables save 保存規則
-Z (大寫) 能夠把計數器清零
iptables -A INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP 給filter表增長一條規則
iptables -I INPUT -p tcp --dport 80 -j DROP 在第一行插入一條規則
iptables -D INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP 刪除增長的規則
iptables -D INPUT -p tcp --dport 80 -j DROP 刪除插入的規則
-A/-D :增長刪除一條規則;
-I :插入一條規則,其實跟-A的效果同樣;
-p :指定協議,能夠是tcp,udp或者icmp;
--dport :跟-p一塊兒使用,指定目標端口;
--sport :跟-p一塊兒使用,指定源端口;
-s :指定源IP(能夠是一個ip段);
-d :指定目的IP(能夠是一個ip段);
-j :後跟動做,其中ACCEPT表示容許包,DROP表示丟掉包,REJECT表示拒絕包;
-i :指定網卡(不經常使用,但有時候能用到);
iptables -nvL --line-number 每一行規則前面加上行號
iptables -D INPUT 7 刪除行號爲 7 的規則
iptables -P OUTPUT DROP 用來指定鏈的默認策略,不要隨意執行
iptables -P OUTPUT ACCEPT 恢復鏈的默認策略
iptables -P OUTPUT DROP 刪除默認規則,不要隨意執行 iptables -P OUTPUT ACCEPT 恢復默認規則