Centos7新功能

tonykorn97發表於2018-09-18

Centos7新功能

Centos7 單使用者模式

 

centos7裡不再有0-6啟動級別,而是4個target

 

graphical.target  多人模式,支援圖形和命令列兩種登入,對應之前的3,5級別

 

multi-user.target  多人模式,只支援命令列登入,對應之前的3級別

 

rescue.target   單人模式,對應之前的1級別

 

emergency.target 單人模式,不過系統進入後根目錄是隻讀的

 

 

centos7採用的是grub2,和之前的方式有所不同

 

在對應的核心條目上,按下"e",會進入edit模式,搜尋ro那一行,以linux16開頭的,按“end”鍵到最後,輸入rd.break,再按ctrl+x進入

 

進去後重新掛載 /sysroot/,增加寫許可權

 

mount -o remount,rw /sysroot/

 

切換到原始系統下

 

chroot /sysroot/

 

passwd

修改密碼輸入新密碼

 

touch /.autorelabel    //這句是為了selinux生效

 

退出單使用者的方法是

 

先ctrl+d 退出,然後reboot

 

 

 

1.3 centos7救援模式

 

設定光碟機啟動

選擇Troubleshooting

選擇Rescure a centos system

選擇continue

chroot /mnt/sysimage

passwd

 

1.4 設定IP

 

網路卡名字不再是eth0、eth1

dhclient先自動獲取ip

沒有 ifconfig命令,要使用 ip add 檢視ip

要想繼續使用 ifconfig,需要安裝 net-tools

yum install -y net-tools

編輯配置檔案

vi  /etc/sysconfig/network-scripts/ifcfg-eno16777736

裡面配置和centos6一樣

 

 

1.5  設定主機名 && 設定命令自動補全

 

hostname 檢視主機名

hostnamectl set-hostname  test1

hostnamectl status //檢視主機名狀態

cat /etc/hostname //檢視配置檔案

centos7支援命令引數補全

安裝 bash-completion

yum install -y bash-completion

source /etc/profile

 

1.6 centos7服務相關

 

centos7 不再有chkconfig工具了,而是使用systemd

使某服務自啟動 systemctl enable httpd.service

不自啟動 systemctl disable httpd.service

檢視服務狀態 systemctl status httpd.service

檢視所有服務 systemctl list-units --type=service

啟動服務  systemctl start httpd.service

停止服務 systemctl stop httpd.service

重啟服務 systemctl restart httpd.service

啟動指令碼路徑 /usr/lib/systemd/system/

檢查一個服務是否為開機啟動  systemctl is-enabled httpd

 

 

1.7 centos7 systemd-unit

 

systemd管理服務的機制的特點:

支援服務並列啟動,不用順序啟動,從而開機時間縮短

支援自動檢測服務依賴的服務

Systemd 可以管理所有系統資源。不同的資源統稱為 Unit(單位)。

Unit 一共分成12種型別

Service unit:系統服務   Target unit:多個 Unit 構成的一個組

Device Unit:硬體裝置  Mount Unit:檔案系統的掛載點

Automount Unit:自動掛載點  Path Unit:檔案或路徑

Scope Unit:不是由 Systemd 啟動的外部程式

Slice Unit:程式組  Snapshot Unit:Systemd 快照,可以切回某個快照

Socket Unit:程式間通訊的 socket  Swap Unit:swap 檔案

Timer Unit:定時器

 

列出正在執行的 Unit   systemctl list-units

列出所有Unit,包括沒有找到配置檔案的或者啟動失敗的

systemctl list-units --all

列出所有沒有執行的 Unit   systemctl list-units --all --state=inactive

列出所有載入失敗的 Unit   systemctl list-units --failed

列出所有正在執行的、型別為 service 的 Unit

systemctl list-units --type=service

顯示某個 Unit 是否正在執行  systemctl is-active application.service

顯示某個 Unit 是否處於啟動失敗狀態

systemctl is-failed application.service

顯示某個 Unit 服務是否建立了啟動連結

systemctl is-enabled application.service

 

 

1.8 centos7 systemd-target

 

target類似於centos6裡面的啟動級別,但target支援多個target同時啟動。target其實是多個unit的組合,系統啟動說白了就是啟動多個unit,為了管理方便,就使用target來管理這些unit。

檢視當前系統的所有 Target

systemctl list-unit-files --type=target

檢視一個 Target 包含的所有 Unit

systemctl list-dependencies multi-user.target

檢視啟動時的預設 Target  systemctl get-default

設定啟動時的預設 Target  systemctl set-default multi-user.target

切換 Target 時,預設不關閉前一個 Target 啟動的程式,

systemctl isolate 命令改變這種行為,關閉前一個 Target 裡面所有不屬於後一個 Target 的程式

systemctl isolate multi-user.target

 

1.9 centos7 target關聯unit

 

主配置檔案 /etc/systemd/system.conf

開機會先載入/etc/systemd/system/default.target

所有的service和target在 /usr/lib/systemd/system/

ls -l /etc/systemd/system/defaut.target 是一個軟連線

軟連線到了/usr/lib/systemd/system/multi-user.target

它會載入/usr/lib/systemd/system/multi-user.target.wants下面的service

檢視一個service屬於哪個target,需要cat 具體的service檔案

cat /usr/lib/systemd/system/sshd.service

看裡面[install]部分

 

 

2.0 centos7 繼續使用centos6的iptables管理機制

 

centos7不再使用iptables,而是使用firewalld

若不想使用firewalld,繼續使用iptables,可以停掉firewalld,並且安裝iptables-services包

systemctl stop firewalld

systemctl disable firewalld

yum install -y iptables-services

systemctl enable iptables

systemctl start iptables

 

 

firewalld 的使用

 

centos6上使用的靜態防火牆,規則儲存在/etc/sysconfig/iptalbes, 更新規則,需要重新載入或者重啟iptables服務,相當於是把之前的規則全部清空,再把配置檔案裡面的規則載入。

而centos7使用了動態防火牆,即firewalld,這種防火牆方案不再像之前,更改了規則不需要重新載入配置。

無論是firewalld還是之前的iptables服務,底層都是使用iptables工具來配置規則的。

fiewalld有zone和service的概念

每一個zone裡面的iptables規則不一樣,預設有9個zone。

centos7的預設zone是public

使用命令  firewall-cmd --get-zones 獲取所有的zone

使用命令  firewall-cmd --get-default-zone  獲取預設的zone

 

2.1 centos7 firewalld的zone

 

drop(丟棄) 任何接收的網路資料包都被丟棄,沒有任何回覆。僅能有傳送出去的網路連線。

block(限制)任何接收的網路連線都被 IPv4 的 icmp-host-prohibited 資訊和 IPv6 的 icmp6-adm-prohibited 資訊所拒絕。

public(公共)在公共區域內使用,不能相信網路內的其他計算機不會對您的計算機造成危害,只能接收經過選取的連線。

external(外部)特別是為路由器啟用了偽裝功能的外部網。您不能信任來自網路的其他計算,不能相信它們不會對您的計算機造成危害,只能接收經過選擇的連線。

dmz(非軍事區)用於您的非軍事區內的電腦,此區域內可公開訪問,可以有限地進入您的內部網路,僅僅接收經過選擇的連線。

work(工作)用於工作區。您可以基本相信網路內的其他電腦不會危害您的電腦。僅僅接收經過選擇的連線。

home(家庭)用於家庭網路。您可以基本信任網路內的其他計算機不會危害您的計算機。僅僅接收經過選擇的連線。

internal(內部) 用於內部網路。您可以基本上信任網路內的其他計算機不會威脅您的計算機。僅僅接受經過選擇的連線。

trusted(信任)可接受所有的網路連線。

指定其中一個區域為預設區域是可行的。當介面連線加入了 NetworkManager,它們就被分配為預設區域。安裝時,firewalld 裡的預設區域被設定為公共區>域。

 

2.2 centos7 firewalld的zone相關命令

 

設定預設的zone  firewalld-cmd --set-default-zone=work

檢視指定網路卡所在的zone

firewall-cmd --get-zone-of-interface=eno16777736

給指定的網路卡設定zone  firewall-cmd --zone=public --add-interface=lo

針對網路卡更改zone  firewall-cmd --zone=dmz --change-interface=lo

也可以針對網路卡刪除zone

firewall-cmd --zone=dmz  --remove-interface=lo

檢視所有網路卡所在的zone  firewall-cmd --get-active-zones

 

 

2.3 centos7 firewalld service操作

 

在 /usr/lib/firewalld/services/ 目錄中,還儲存了另外一類配置檔案,每個檔案對應一項具體的網路服務,如 ssh 服務等

與之對應的配置檔案中記錄了各項服務所使用的 tcp/udp 埠,在最新版本的 firewalld 中預設已經定義了 70+ 種服務供我們使用

zone就是呼叫了不同的service而實現了不同的效果

列出所有的service: firewall-cmd --get-services

列出當前zone下載入的service:  firewall-cmd --list-services

檢視某個zone下面的service:firewall-cmd --zone=public --list-services

給一個zone下面新增一個service:

firewall-cmd --zone=public --add-service=http

這個改動不會儲存到配置檔案裡,要想儲存到配置檔案中,需要加上--permanent

firewall-cmd --zone=public --add-service=http  –-permanent

既然可以增加,同樣也可以刪除

firewall-cmd --zone=public --remove-service=http --permanent

 

2.4 centos7 firewalld 增加規則

 

假設自定義的 ssh 埠號為 12222,使用下面的命令來新增新埠的防火牆規則

firewall-cmd --add-port=12222/tcp --permanent

如果需要使規則儲存到 zone 配置檔案,則需要加引數 --permanent

防火牆配置檔案也可以手動修改,修改後記得過載,重新載入的命令是

firewall-cmd --reload  這種情況下重新載入防火牆並不會中斷使用者連線,也可以徹底載入,這時候會中斷使用者連線,也會丟棄狀態資訊

firewall-cmd --complete-reload

還可以新增一個埠範圍

firewall-cmd --add-port=2000-4000/tcp

針對某個zone新增埠

firewall-cmd --permanent --zone=home --add-port=443/tcp

啟用埠轉發,例如把22埠轉發到127.0.0.2

firewall-cmd --permanent --zone=home --add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2

 

 

 

2.5 centos7 firewalld 更改配置檔案

 

兩個路徑/etc/firewalld/和/usr/lib/firewalld

系統使用的是/etc/firewalld下面的配置檔案

在/etc/firewalld/zones下面只有一個public.xml,如果給另外一個zone做一些改動,並永久儲存,那麼會自動生成對應的配置檔案

比如,給work zone增加一個埠

firewall-cmd --permanent --zone=work --add-port=1000/tcp

此時就會生成一個work.xml配置檔案

需求: 修改ftp的埠,預設ftp埠是21,需要改為1121

cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services/

vi /etc/firewalld/services/ftp.xml   //把21改為1121

vi /etc/firewalld/zones/work.xml  //work為預設zone,所以要編輯這個,增加一行 <service name="ftp"/>

firewall-cmd --reload  //重新載入


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-2214440/,如需轉載,請註明出處,否則將追究法律責任。

相關文章