CentOS-8的新特性、部署、配置、測試

原文:https://www.jianshu.com/p/023be067b743

centos-stream  https://www.centos.org/centos-stream/

14. 網絡方面

更詳細的官方文檔

  • nftables 框架替代 iptables 作爲默認的網絡包過濾工具
  • firewalld 守護進程使用 nftables 作爲默認後端
  • 支持 IPVLAN 虛擬網絡驅動程序,可以爲多個容器提供網絡連接

nft -n list table ip crowdsec

nft list ruleset -a

 

3. 可Cockpit Web控制檯界面管理CentOS8

CentOS8的一大改變就是通過Web直觀的管理服務器的系統,這項新服務的名稱爲Cockpit,可以幫助不熟悉命令行的使用者管理服務器系統。不僅僅CenOS8 可以使用。ubuntu 和CentOS7 也是可以使用的。

  • 支持web終端,在web中關閉防火牆,selinux。
  • 支持虛擬機管理,需要安裝cockpit-machines
  • 支持k8s dashboard管理,需要安裝 cockpit-kubernetes
  • 支持web界面配置網卡
systemctl start cockpit.socket
systemctl enable cockpit.socket

訪問 http://IP:9090
用戶名密碼和Linux的是一樣的 打開Web界面後就可以實現對系統的監控和配置功能,Web界面的左側便是其各種功能的菜

\color{red}{三、CentOS8的新操作}

CentOS8系統優化快速上手

[root@CentOS8 ~]# ssh -V
OpenSSH_7.8p1, OpenSSL 1.1.1 FIPS  11 Sep 2018
[root@CentOS8 ~]# cat /etc/redhat-release 
CentOS Linux release 8.0.1905 (Core) 
[root@CentOS8 ~]# uname -a
Linux CentOS8 4.18.0-80.el8.x86_64 #1 SMP Tue Jun 4 09:19:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

3.1 網絡配置—NetworkManager

在CentOS7上,同時支持network.service和NetworkManager.service。默認情況下,這2個服務都有開啓,但許多人都會將NetworkManager禁用掉。

在CentOS8上,默認沒有安裝network.service,依然支持network。因此只能通過NetworkManager進行網絡配置,包括動態ip和靜態ip。換言之,在CentOS8上,必須開啓NM,否則無法使用網絡。

NetworkManager介紹:

  • 能管理各種網絡
    有線網卡、無線網卡
    動態ip、靜態ip
    以太網、非以太網
    物理網卡、虛擬網卡

  • 使用方法齊全
    nmcli:命令行。這是最常用的工具,本文將詳細講解該工具使用。
    nmtui:在shell終端開啓文本圖形界面。
    Freedesktop applet:如GNOME上自帶的網絡管理工具
    cockpit:redhat自帶的基於web圖形界面的"駕駛艙"工具,具有dashborad和基礎管理功能。

  • 爲什麼要用NetworkManager
    工具齊全:命令行、文本界面、圖形界面、web
    廣納天地:納管各種網絡,有線、無線、物理、虛擬
    參數豐富:多達200多項配置參數
    一統江湖:RedHat、CentOS、Suse、Debian/Ubuntu,均支持
    大勢所趨:下一個大版本只能通過NM管理網絡


3.2 設置網卡的新方法—nmcli

在NetworkManager裏,有2個維度:連接(connection)和設備(device),這是多對一的關係。想給某個網卡配ip,首先NetworkManager要能納管這個網卡。設備裏存在的網卡(即nmcli d可以看到的),就是NM納管的。接着,可以爲一個設備配置多個連接(即nmcli c可以看到的),每個連接可以理解爲一個ifcfg配置文件。同一時刻,一個設備只能有一個連接活躍。可以通過nmcli c up切換連接。

  • 查看網卡連接信息
    connection有2種狀態:
    活躍(帶顏色字體):表示當前該connection生效
    非活躍(正常字體):表示當前該connection不生效
[root@CentOS8 ~]# nmcli connection
NAME    UUID                                  TYPE      DEVICE 
eth0    07b4217d-3fc4-48f7-ac70-1495cb856f98  ethernet  eth0   
virbr0  4750c5db-fdd4-4423-812d-ab31120c88fd  bridge    virbr0 

#查看connection列表和詳細列表
nmcli c show 
nmcli c show eth0

#語法:
nmcli connection modify <interface_name> ipv4.address <ip/prefix>
譯作連接,可理解爲配置文件,相當於ifcfg-eth0 可以簡寫爲 nmcli c
  • 獲取網卡設備列表
    device有4種常見狀態:
    connected:已被NM納管,並且當前有活躍的connection
    disconnected:已被NM納管,但是當前沒有活躍的connection
    unmanaged:未被NM納管
    unavailable:不可用,NM無法納管,通常出現於網卡link爲down的時候
[root@CentOS8 ~]# nmcli device 
DEVICE  TYPE      STATE      CONNECTION 
eth0    ethernet  connected  eth0       
lo      loopback  unmanaged  -- 

#查看所有device詳細信息
nmcli d show
#查看指定device詳細信息
nmcli d show eth0

譯作設備,可理解爲實際存在的網卡(包括物理網卡和虛擬網卡) 可以簡寫爲 nmcli d
  • 查看ip地址和NetworkManager狀態
    類似於ifconfig、ip addr
[root@CentOS8 ~]# nmcli 
eth0: connected to eth0
        "Intel 82545EM"
        ethernet (e1000), 00:0C:29:B2:BE:2D, hw, mtu 1500
        ip4 default
        inet4 10.0.0.58/24
        route4 0.0.0.0/0
        route4 10.0.0.0/24
        inet6 fe80::b05:e02d:a476:ce8e/64
        route6 fe80::/64
        route6 ff00::/8

lo: unmanaged
        "lo"
        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536

DNS configuration:
        servers: 10.0.0.1
        interface: eth0

Use "nmcli device show" to get complete information about known devices and
"nmcli connection show" to get an overview on active connection profiles.

Consult nmcli(1) and nmcli-examples(5) manual pages for complete usage details.

啓用和停止網卡連接

#相當於ifup ifdown
啓用  nmcli c up eth0
停止  nmcli c down eth0

立即生效connection,有3種方法

nmcli c up eth0
nmcli d reapply eth0
nmcli d connect eth0

刪除網卡連接

nmcli c delete eth0

重載所有、指定 ifcfg或route到connection(不會立即生效)

nmcli c reload

nmcli c load /etc/sysconfig/network-scripts/ifcfg-eth0

創建網絡連接並配置靜態IP地址(等同於配置ifcfg,其中BOOTPROTO=none,並ifup啓動)

nmcli c add type ethernet con-name eth0 ifname eth0 ipv4.addr 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.method manual

創建網絡連接並配置動態IP地址(等同於配置ifcfg,其中BOOTPROTO=dhcp,並ifup啓動)

nmcli c add type ethernet con-name eth0 ifname eth0 ipv4.method auto

修改IP地址(非交互式)

nmcli c modify eth0 ipv4.addr '192.168.0.200/24'
nmcli c up eth0

修改IP地址(交互式)

nmcli c edit eth0
nmcli> goto ipv4.addresses
nmcli ipv4.addresses> change
Edit 'addresses' value: 192.168.1.200/24
Do you also want to set 'ipv4.method' to 'manual'? [yes]: yes
nmcli ipv4> save
nmcli ipv4> activate
nmcli ipv4> quit

關閉無線網絡

nmcli r all off

查看NetworkManager狀態

nmcli n 

#開啓NetworkManager
nmcli n on
#關閉NetworkManager
nmcli n off

監聽事件

nmcli m 

檢測NetworkMarger是否在線可用

nm-online 

例子:創建一個連接(connection)

nmcli c add type ethernet con-name eth0-test ifname eth0-test ipv4.addresses '192.168.1.100/24,192.168.1.101/32' ipv4.routes '10.0.0.0/8 192.168.1.10,192.168.0.0/16 192.168.1.11' ipv4.gateway 192.168.1.254 ipv4.dns '8.8.8.8,4.4.4.4' ipv4.method manual

 type ethernet:創建連接時候必須指定類型,類型有很多,可以通過nmcli c add type -h看到,這裏指定爲ethernet。
 con-name ethX ifname ethX:第一個ethX表示連接(connection)的名字,這個名字可以任意定義,無需和網卡名相同;第二個ethX表示網卡名,這個ethX必須是在nmcli d裏能看到的。
 ipv4.addresses '192.168.1.100/24,192.168.1.101/32':配置2個ip地址,分別爲192.168.1.100/24和192.168.1.101/32
 ipv4.gateway 192.168.1.254:網關爲192.168.1.254
 ipv4.dns '8.8.8.8,4.4.4.4':dns爲8.8.8.8和4.4.4.4
 ipv4.method manual:配置靜態IP

對應生成的網卡配置文件就是
[root@CentOS8 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0-test 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=192.168.1.100
PREFIX=24
IPADDR1=192.168.1.101
PREFIX1=32
GATEWAY=192.168.1.254
DNS1=8.8.8.8
DNS2=4.4.4.4
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=eth0-test
UUID=ced95bb1-d856-4ace-8f2e-79a3f2d572c6
DEVICE=eth0-test
ONBOOT=yes

#通過該nmcli c 可以看到增加了一條連接
[root@CentOS8 ~]# nmcli c
NAME       UUID                                  TYPE      DEVICE 
eth0       6eebabfa-8f58-40af-b298-a385094b2f04  ethernet  eth0   
eth0-test  ced95bb1-d856-4ace-8f2e-79a3f2d572c6  ethernet  --     

3.3 使用nmtui命令管理網卡

nmtui
nmtui edit eth0
 

 

3.4 配置yum/dnf 源

CentOS 8 默認是會讀取centos.org的mirrorlist的,所以一般來說是不需要配置鏡像的。

cd /etc/yum.repos.d
#備份
cp CentOS-Base.repo CentOS-Base.repo.bak
cp CentOS-AppStream.repo CentOS-AppStream.repo.bak
cp CentOS-Extras.repo CentOS-Extras.repo.bak


---
vim /etc/yum.repos.d/CentOS-Base.repo
[BaseOS]
name=CentOS-$releasever - Base
baseurl=https://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

---
vim /etc/yum.repos.d/CentOS-AppStream.repo
[AppStream]
name=CentOS-$releasever - AppStream
baseurl=https://mirrors.aliyun.com/centos/$releasever/AppStream/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficia

---
vim /etc/yum.repos.d/CentOS-Extras.repo
[extras]
name=CentOS-$releasever - Extras
baseurl=https://mirrors.aliyun.com/centos/$releasever/extras/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

3.5 關閉selinux firewalld

setenforce 0
systemctl stop firewalld
systemctl disable firewalld

3.6 安裝tab補全插件

yum install bash-completion
source /etc/profile

3.7 最小化系統安裝Cockpit Web控制檯

dnf install cockpit -y
systemctl start cockpit
netstat -lntup|grep 9090

瀏覽器訪問 https://ip:9090

3.8 常用軟件包安裝

對開發者的工具支持,可以用原生yum源安裝了,不再需要通過第三方yum源。
@注意:CentOS8 嚴格區分pip2 和pip3,python2-pip和python3-pip

dnf install python3 php perl java-1.8.0 java-11 maven docker mysql-server mlocate lrzsz tree vim nc nmap wget bash-completion htop iotop iftop lsof net-tools sysstat unzip bc psmisc telnet-server -y

3.9 nftables防火牆規則

更詳細的官方文檔

  • nftables 框架替換了 iptables 默認網絡數據包過濾工具,可以通過nft命令可編程式的配置防火牆。
  • firewalld也是Linux的防火牆,同時支持iptables和nftables,最新版本默認使用nftables。
  • 簡單的說firewalld是基於nftfilter防火牆的用戶界面工具。而iptables和nftables是命令行工具。
  • firewalld引入區域的概念,可以動態配置,讓防火牆配置及使用變得簡便。
  • 從用戶的角度來看,nftables添加了一個名爲nft的新工具,它取代了iptables,arptables和ebtables中的所有其他工具。
  • 從架構的角度來看,它還取代了處理包過濾規則集的運行時評估的內核部分。

查詢所有表名

[root@CentOS8 ~]# nft list tables
table ip filter
table ip6 filter
table bridge filter
table ip security
table ip raw
table ip mangle
table ip nat
table ip6 security
table ip6 raw
table ip6 mangle
table ip6 nat
table bridge nat

查看某個表的規則

[root@CentOS8 ~]# nft list table filter
table ip filter {
    chain INPUT {
        type filter hook input priority 0; policy accept;
    }

    chain FORWARD {
        type filter hook forward priority 0; policy accept;
    }

    chain OUTPUT {
        type filter hook output priority 0; policy accept;
    }
}

打開交互配置模式

nft -i

3.10 nft基礎操作

雲棲社區-linux nftables簡介和基礎操作

1、增

增加表:nft add table fillter
增加鏈:nft add chain filter input { type filter hook input priority 0 \; } # 要和hook(鉤子)相關連
增加規則:nft add rule filter input tcp dport 22 accept

2、刪

只需要把上面的 add 改爲 delete 即可

3、改

更改鏈名用rename
更改規則用replace

4、查

nft list ruleset # 列出所有規則
nft list tables # 列出所有表
nft list table filter # 列出filter表
nft chain filter input # 列出filter表input鏈
以上命令後面也可以加 -nn  用於不解析ip地址和端口
加 -a 用於顯示 handles


作者:Linux丶晨星
鏈接:https://www.jianshu.com/p/023be067b743
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章