三十一、Linux網絡相關、firewalld和netfilter、netfilter5表5鏈介紹、
一、Linux網絡相關
(一)ifconfig:查看網卡IP,若沒有該命令就安裝net-tools包。
當網卡down(停用)的時候網卡不會顯示IP,加上-a選項就會顯示。示例:
# ifconfig -a。
ifdown ens33/ifup ens33
ifup:啟動網卡。ifdown:停用網卡。
遠程連接服務器時,很可能後面的ifup就不會運行了,這樣會導致斷網而連接不了服務器,所以應該用systemcel restart network來重啟網卡。
當你正在遠程連接這臺服務器時,就不要用ifdown,不然就連不上服務器了。
當你不想把所有網卡都重啟,就用ifdown,前提是你沒連這臺服務器。就是指定重啟單個網卡。
ifdown ens33 && ifup ens33。先停再啟動。最好這樣使用,就能直接啟動指定的網卡了。
# ifdown ens33 && ifup ens33
成功斷開設備 'ens33'。
連接已成功激活(D-Bus 活動路徑:/org/freedesktop/NetworkManager/ActiveConnection/5)
( 二)給一個網卡設定多個IP
設定過程:
# cd /etc/sysconfig/network-scripts/
# cp ifcfg-ens33 ifcfg-ens33\:1
這裏加了脫義符號,是因為要把:轉義,不然Linux命令行無法識別。再編輯這個ifcfg-ens33:1這個配置文件。
# vi !$ 文件內就不用脫義了。
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33:1
DEVICE=ens33:1
ONBOOT=yes
IPADDR=192.168.93.131
NETMASK=255.255.255.0
GATEWAY=192.168.93.2
DNS1=119.29.29.29
修改一下NAME、DEVICE、IPADDR,dns和網關都可有可無,因為前面那個配置文件已經設置了。設置完後重啟網卡。
# ifdown ens33 && ifup ens33
# ifconfig (再查看就會發現多了個ens33:1)
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.93.130 netmask 255.255.255.0 broadcast 192.168.93.255
inet6 fe80::4baf:6071:c82a:762a prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:2f:85:e9 txqueuelen 1000 (Ethernet)
RX packets 1193 bytes 90267 (88.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 472 bytes 69521 (67.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.93.131 netmask 255.255.255.0 broadcast 192.168.93.255
ether 00:0c:29:2f:85:e9 txqueuelen 1000 (Ethernet)
(三)查看網卡連接狀態
# mii-tool ens33
ens33: negotiated 1000baseT-FD flow-control, link ok
link ok就說明網卡已連接。
no link,就說明網卡壞了或者沒有連接。
nonsupport有的顯示這個,就是不支持。就可以用:
# ethtool ens33
Settings for ens33:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: off (auto)
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
若沒有連接,最後一行就顯示為no。
(四)更改主機名
# hostname 查看主機名
# hostname ABC 這樣修改只會保存在內存裏,重啟還是之前的名稱。因此改主機名還要修改它的配置文件/etc/hostname。
自動更改文件內容的方法:
# hostnamectl set-hostname ABD
(五)設置DNS
DNS配置文件:/etc/resolv.conf
# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 119.29.29.29
第一行沒實際意義,僅是個註釋。意思是這個文件中的DNS IP地址是由NetworkManager服務生成的。
resolv.conf有固有的格式,一定要寫成nameserver IP的格式。
建議寫兩個或多個nameserver,系統默認用第一個解析域名,第一個不成功時就用第二個。
谷歌的DNS=8.8.8.8
臨時修改DNS IP地址時,就修改DNS配置文件;
若想永久生效,就修改網卡的配置文件。
修改了網卡配置文件的DNS時,DNS配置文件就也改了。
Linux下的一個特殊文件/etc/hosts也能解析域名,不過需要手動添加IP和域名。作用是臨時解析域名,非常有用。該文件內容是:
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
編輯該文件時用vim。比如增加一行192.168.93.131 www.baidu.com,那麽再ping這個百度的時候就會ping到這個IP去。
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.93.131 www.baidu.com
/etc/hosts格式很簡單,每一行為一條記錄,分成兩部分,前面是IP,後面是域名。
關於hosts文件,有四點註意事項:
1.一個IP後可以跟多個域名,可以幾十個甚至上百個。
2.每一行只能是一個IP,就是說一個域名不能對應多個IP。
3.若多行中出現相同的域名(對應IP不一樣),會按最前面出現的記錄來解析。
4.這個只在本機生效,改完後立即生效。
二、firewalld和netfilter
Linux防火墻:netfilter
selinux臨時關閉:setenforce 0
selinux永久關閉:# vi /etc/selinux/config
SELINUX=enforcing改為SELINUX=disabled
更改後重啟系統生效。
getenforce:查看selinux狀態。
# getenforce
Disabled
若臨時關閉,再查看會顯示permissive。
太多服務受限於selinux,因此運維一般 都直接關閉它。
netfilter:centos5和6防火墻。
firewalld:centos7的防火墻。
centos7上使用6的防火墻也沒有問題。
iptables僅是一個工具,不是防火墻。
關閉過程:
# systemctl disable firewalld //禁止firewalld服務開機啟動
# systemctl stop firewalld //關閉這個服務
# yum install -y iptables-services //安裝這個包,就可以使用之前版本的iptables了。
# systemctl enable iptables //讓它開機自啟動。
Created symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service.
# systemctl start iptables //啟動iptables服務
至此,方可使用之前版本的iptables。centos上默認設有規則,但這個規則暫時沒用,就先清除,清除後保存。示例:
# iptables -nvL //-nvL表示查看規則,-F選項表示清除當前規則,但清除只是臨時的,重啟系統或服務還會加載已保存的規則。因此清除後要保存:# iptables -F; service iptables save
通過該命令可發現配置文件在/etc/sysconfig/iptables。
# iptables -F; service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ 確定 ]
三、netfilter5表5鏈介紹
netfilter的5個表,可以man iptables一下,有5個表的解釋。
filter表:用於過濾包,是系統預設的表。用得多。
該表內建三個鏈:INPUT、OUTPUT和FORWARD。
INPUT鏈:作用於進入本機的包。
OUTPUT鏈:作用於本機送出的包。
FORWARD鏈:作用於和本機無關的包。
nat表:用於網絡地址切換。偶爾用。
該表有三個鏈:
PREROUTING鏈:在包剛到防火墻時改變它的目的地址。
OUTPUT鏈:改變本地產生的包的目的地址。
POSTROUTING鏈:在包即將離開防火墻時改變其源地址。
mangle表:用於給數據做標記,然後根據標記去操作相應的包。用得少
raw表:實現不追蹤某些數據包,默認系統的數據包都會被追蹤,但追蹤會消耗資源,因此用該表來指定某些端口的包不被追蹤。用得少。
security表:該表centos6裏沒有,用於強制訪問控制(MAC)的網絡規則。用得少。
5個鏈:
PREROUTING:數據包進入路由表前。
INPUT:通過路由表後目的地為本機。
FORWARD:通過路由表後目的地不為本機。
OUTPUT:由本機產生,向外轉發。
POSTROUTING:發送到網卡接口之前。
數據包流向:
五、iptables語法
配置文件/etc/sysconfig/iptables
service iptables restart 重啟iptables服務。
service iptables save 保存規則
(一)iptables -t nat -nvL:查看規則。
-t後面跟表名
-nvL表示查看該表規則
-n表示不針對IP反解析主機名
-L表示列出
-v表示列出的信息更詳細。
若不加-t,則打印filter表的相關信息。
清除規則:
iptables -F:把所有規則全部刪除,若不加-t指定表,默認清除filter表。
iptables -Z:把包以及流量計數器置零。
(二)增加/刪除一條規則,用法:
# iptables -A INPUT -s 192.168.93.131 -p tcp --sport 1234 -d 192.168.93.120 --dport 80 -j DROP
此處沒有加-t,因此針對的filter表。
選項註釋:
-A/-D:增加/刪除一條規則
-I:插入一條規則,效果和一樣。
-P:指定協議,可以是tcp、udp或者icmp。
--dport:跟-p一起用,表示指定目標端口。
--sport:跟-瓶一起用,表示指定源端口。
-s:指定源IP(可以是IP段)
-d:指定目的地IP(可以是IP段)
-j:後面跟動作,其中ACCEPT表示允許包,DROP表示丟掉寶,REJECT表示拒絕包。
-i:指定網卡。
-P:預設策略。
刪除一條規則時,必須和插入的規則一致。除了-I和-D不同,其他都一樣。
--dport/--sport必須和-p選項一起用,否則會出錯。
iptables -nvL --line--numbers 查看規則。
當想刪除規則時,又不知道規則的具體,就可以查看規則。
-D後面跟鏈名、規則num。num就是查看iptables規則時第1列的值。
-P後跟鏈名,策略內容或為DROP,或為ACCEPT,默認ACCEPT。若正在遠程連接服務器,千萬不要隨便執行這個命令,一執行,遠程連接就斷開。
需求:只針對filter表,預設策略INPUT鏈DROP,其他兩個鏈ACCEPT,然後針對192.168.188.0/24開通22端口,對所有網段開放80端口,對所有網段開放21端口。
三十一、Linux網絡相關、firewalld和netfilter、netfilter5表5鏈介紹、