RHEL7/CENTOS7新特性:
1、身份管理
kerberos的跨平臺(tái)信任機(jī)制:kerberos將完全兼容微軟活動(dòng)目錄,實(shí)現(xiàn)完全使用活動(dòng)目錄進(jìn)行認(rèn)證。
REALMD:該功能簡(jiǎn)化了RHEL 加入微軟活動(dòng)目錄的配置,支持自動(dòng)發(fā)現(xiàn)域信息。
RHEL 7增加了兩個(gè)關(guān)鍵性的新特征改善了RHEL對(duì)AD的處理方式?,F(xiàn)在,RHEL7和AD之間建立了跨域信任(Cross-realm trusts),因此AD用戶可以在Linux端無(wú)需登錄就能訪問(wèn)資源。RHEL 7增加的另外一個(gè)AD相關(guān)的功能是realmd,實(shí)現(xiàn)自動(dòng)化查詢與添加AD(或其他紅帽認(rèn)證服務(wù))DNS信息。
2、性能管理
性能輔助工具:RHEL7 提供了一個(gè)新的框架和一個(gè)新的通用圖形界面來(lái)提供性能輔助管理??梢允占⒎治鱿到y(tǒng)瓶頸。
調(diào)優(yōu)和調(diào)優(yōu)配置:RHEL7 提供了動(dòng)態(tài)調(diào)優(yōu)方案,來(lái)解決系統(tǒng)性能瓶頸問(wèn)題。系統(tǒng)管理員也可以手動(dòng)修改系統(tǒng)預(yù)置的方案來(lái)達(dá)到調(diào)優(yōu)的效果
3、虛擬化
增強(qiáng)RHEL7虛擬機(jī):完全兼容vmwarevshpere架構(gòu),RHEL7 自帶 open vmtool 、3D圖形驅(qū)動(dòng)和OpenGLX11 的支持。使得RHEL7 部署在vmware平臺(tái)更加方便。RHEL 7 同時(shí)支持vmware esxi 之間快速通信。
虛擬I/O:為每臺(tái)虛擬機(jī)提供了調(diào)用底層PCI 設(shè)備的接口,實(shí)現(xiàn)內(nèi)核級(jí)別的隔離。提高了機(jī)器的安全性和兼容性
虛擬機(jī)USB3.0接口支持
QCOW2格式文件型快照支持
嵌套虛擬化支持,可以在KVM中安裝配置OpenStack
加強(qiáng)了對(duì)VMWARE的技術(shù)支持,自帶open-vm-tools替換vm-tools
支持最熱的技術(shù)Docker
Docker是基于目前流行的應(yīng)用虛擬化技術(shù)。應(yīng)用被打包在Docker中,與系統(tǒng)和其他應(yīng)用完全隔離,因此可以在系統(tǒng)之間遷移并正常運(yùn)行。
4、文件系統(tǒng)
RHEL7 選擇XFS作為其默認(rèn)的文件系統(tǒng),。
RHEL7.0在安裝的時(shí)候就默認(rèn)使用了XFS,并不是說(shuō)原有的EXT文件系統(tǒng)不再使用,RHEL7仍然是支持ext4的.而是面對(duì)未來(lái)爆炸式增長(zhǎng)的數(shù)據(jù)量,ext文件系統(tǒng)已經(jīng)顯得原來(lái)越力不從心。XFS文件系統(tǒng)完全為大數(shù)據(jù)而生,單個(gè)文件系統(tǒng)最大可以支持到8EB大小,單個(gè)文件的大小最大可達(dá)到16T,并且提供了豐富的日志系統(tǒng),是應(yīng)對(duì)大數(shù)據(jù)存儲(chǔ)的強(qiáng)大的文件系統(tǒng)。
XFS是擴(kuò)展性高、高性能的文件系統(tǒng)。也是rhel7/centos7的默認(rèn)文件系統(tǒng)。
可通過(guò)工具xfsdump和xfsrestore來(lái)備份和恢復(fù)xfs文件系統(tǒng),
6、網(wǎng)絡(luò)管理
新增網(wǎng)絡(luò)管理接口NMCLI
7、服務(wù)管理
使用systemctl 調(diào)用服務(wù)腳本
RHEL7中使用systemd取代了原有的sysV,由systemd來(lái)管理系統(tǒng)中的服務(wù)。Systemd定義了與原來(lái)sysV 的init進(jìn)程完全不同的方式對(duì)服務(wù)和系統(tǒng)進(jìn)程進(jìn)行管理。使得系統(tǒng)中的服務(wù)可以自動(dòng)解決服務(wù)之間的依賴關(guān)系,并且可以支持服務(wù)的并行啟動(dòng)!也就是說(shuō),RHEL7.0比原有的sysV操作系統(tǒng)啟動(dòng)速度更快,更穩(wěn)定,同時(shí)也可以完美的支持Docker!
8、RHEL7桌面
使用最新的Gnome 3為默認(rèn)桌面環(huán)境,使用最新的KDE 4.10為備選桌面環(huán)境。
一、RHEL7安裝體驗(yàn):
生產(chǎn)服務(wù)器如果是大內(nèi)存(4G以上內(nèi)存),建議安裝64位版本rhel-server-7.0-x86_64-dvd.iso
啟動(dòng)加載后如下圖:
界面說(shuō)明:
InstallRed Hat Enterprise Linux 7.0 安裝RHEL7系統(tǒng)
Testthis media & install Red Hat Enterprise Linux 7.0 測(cè)試安裝介質(zhì)及安裝RHEL7系統(tǒng) (相對(duì)于RHEL6來(lái),將檢測(cè)媒介提前到初始安裝頁(yè)面中)
Troubleshooting 故障排除
選擇Troubleshooting,可以從下面界面看到:
安裝基本的圖形模式
安裝救援系統(tǒng)
從本地驅(qū)動(dòng)器啟動(dòng)
內(nèi)存測(cè)試
返回菜單
返回菜單,選擇第一項(xiàng)Install Red HatEnterprise Linux 7.0 按回車,系統(tǒng)開(kāi)始安裝見(jiàn)下圖:
安裝過(guò)程語(yǔ)言的選擇,正式生產(chǎn)服務(wù)器建議安裝英文版本,這里保持默認(rèn)英文點(diǎn)擊下一步
單擊continue
進(jìn)入到了安裝匯總頁(yè)面,從此頁(yè)面顯示三大塊分別為:
LOCALIZATION 本地化:可以看在此下面配置時(shí)間時(shí)區(qū),鍵盤設(shè)置以及語(yǔ)言
SOFTWARE 軟件:在SOFTWARE下面可以到安裝來(lái)源和自定義軟件安裝,默認(rèn)系統(tǒng)選擇最小化的安裝
SYSTEM 系統(tǒng):安裝目標(biāo)設(shè)備和網(wǎng)絡(luò)配置
附:
可以在system系統(tǒng)中的installation destination進(jìn)行磁盤分區(qū)管理:自動(dòng)分區(qū)和手動(dòng)分區(qū)
這里我創(chuàng)建如下分區(qū):
/boot 分區(qū) 500MB
swap分區(qū) 4096MB(一般設(shè)置為內(nèi)存的2倍)
/分區(qū)剩余全部空間
備注:生產(chǎn)服務(wù)器建議單獨(dú)再劃分一個(gè)/data分區(qū)存放數(shù)據(jù)
點(diǎn)擊左上角的done,進(jìn)入下面的界面
點(diǎn)擊accept changes,回到安裝匯總頁(yè)面,點(diǎn)擊begin installation,進(jìn)入下面界面:
選擇user settings的root password,設(shè)置root賬戶的口令。
安裝完成之后,點(diǎn)擊reboot重啟
在用U盤裝完CentOS后,重新開(kāi)機(jī)啟動(dòng)后顯示:
Initialsetup of CentOS Linux 7 (core)
1) [x]Creat user 2) [!] License information
(no userwill be created) (license not accepted)
Pleasemake your choice from above [‘q’ to quit | ‘c’to continue | ‘r’ to refresh]:
解決方法:
輸入“1”,按Enter鍵
輸入“2”,按Enter鍵
輸入“q”,按Enter鍵
輸入“yes”,按Enter鍵
重啟后進(jìn)入到初始安裝界面,配置license 及注冊(cè)設(shè)置。
系統(tǒng)首次初始化后,就進(jìn)入了啟動(dòng)界面
第一項(xiàng)是正常啟動(dòng)系統(tǒng),第二項(xiàng)是以恢復(fù)啟動(dòng)系統(tǒng)。
注1:系統(tǒng)默認(rèn)編碼設(shè)置文件,由/etc/sysconfig/i18n 更改為 /etc/locale.conf該文件主定義你當(dāng)前系統(tǒng)的語(yǔ)言環(huán)境變量設(shè)置,這里是LANG=”en_US.UTF-8”、系統(tǒng)預(yù)置了那些
語(yǔ)言支持,
注2:常用命令安裝:查看anaconda-ks.cfg,確定是否裝base軟件組
顯示部份信息如下:
若沒(méi)安裝base軟件組,則一些常規(guī)命令如ifconfig等就無(wú)法使用??梢允褂?/span>yumgroupinstall base安裝base軟件組。
二、rhel7默認(rèn)運(yùn)行級(jí)別和終端分辨率修改
修改默認(rèn)運(yùn)行級(jí)別:
rhel7.0 做了很多大的改變,打開(kāi)inittab看下
# inittab is no longer used whenusing systemd.
/etc/inittab 這個(gè)文件已經(jīng)不再使用,systemd對(duì)linux來(lái)說(shuō)就是一個(gè)init程序,可以作為sysVinit和Upstat的替代。
systemd使用比sysvinit的運(yùn)行級(jí)別更為自由的target概念作為替代
第三運(yùn)行級(jí):multi-user.target
第五運(yùn)行級(jí):graphical.target
#前者是符號(hào)鏈接指向了后面的target
runlevel3.target-> multi-user.target
runlevel5.target-> graphical.target
如下圖所示:
修改開(kāi)機(jī)默認(rèn)運(yùn)行級(jí)別:
方法1:
默認(rèn)級(jí)別轉(zhuǎn)換為3(文本模式)
ln -sf /lib/systemd/system/multi-user.target/etc/systemd/system/default.target
或者默認(rèn)級(jí)別轉(zhuǎn)換為5(圖形模式)
ln -sf /lib/systemd/system/graphical.target/etc/systemd/system/default.target
重啟:reboot
方法2:
systemctl set-default multi-user.target
用這個(gè)systemctl命令來(lái)查看默認(rèn)目標(biāo)。
systemctl get-default
切換運(yùn)行級(jí)別:
方法1:
切換到:運(yùn)行級(jí)3
這兩種都可以
systemctlisolate multi-user.target systemctlisolate runlevel3.target
切換到:運(yùn)行級(jí)5
這兩種都可以
systemctlisolate graphical.target systemctlisolate runleve5.target
方法2:
init [0123456]
#查看當(dāng)前運(yùn)行的級(jí)別
runlevel //仍然可用
修改安字符終端分辨率:
由于是在VM里面安裝的,完了之后終端界面的分辨率非常高,很難操作
因?yàn)镽HEL7用了grub2,而不再是grub了,在grub2中要修改的文件是/boot/grub2/grub.cfg;
這里有一張分辨率的對(duì)照表(在grub.cfg中添加vga=ask,系統(tǒng)重啟后就會(huì)詢問(wèn)要設(shè)置的分辨率。)
修改前:
修改后,在后面添加vga=0x???(問(wèn)號(hào)代表分辨率代碼),
附:如何實(shí)現(xiàn)rhel7圖形界面自動(dòng)登陸:
首先找到/etc/gdm/custom.conf文件
然后在custom.conf文件里在daemon下加入下面的內(nèi)容:
AutomaticLoginEnable=true AutomaticLogin=root
三、設(shè)置主機(jī)名
rhel7不再使用/etc/sysconfig/network設(shè)置主機(jī)名,而是使用/etc/hostname文件,下面就介紹有關(guān)rhel7設(shè)置主機(jī)名的幾種方法。
方法:1
修改/etc/hostname文件設(shè)置主機(jī)名。
方法:2
執(zhí)行hostnamectl命令
使用hostnamectl命令, hostnamectl set-hostname name,再通過(guò)hostname或者h(yuǎn)ostnamectl status 命令查看更改是否生效。
方法:3
執(zhí)行nmtui命令
使用nmtui命令會(huì)彈出一工具界面
選擇第三項(xiàng)"set system hostname"修改主機(jī)名
修改后選擇"ok"退出nmtui工具。
執(zhí)行systemctl restart systemd-hostnamed 執(zhí)行hostname或hostnamectl查看。
方法:4
執(zhí)行nmcli命令
nmcli general hostname查看主機(jī)名 nmcli general hostnamemy-server 設(shè)置主機(jī)名 執(zhí)行systemctl restartsystemd-hostnamed使修改生效
四、設(shè)置IP地址、網(wǎng)關(guān)和DNS
RHEL7里面的網(wǎng)卡命名方式從eth0,1,2的方式變成了enoXXXXX的格式。 en 代表的是enthernet (以太網(wǎng)),o 代表的是onboard (內(nèi)置),那一串?dāng)?shù)字是主板的某種索引編號(hào)自動(dòng)生成,以便保證其唯一性。和原先的命名方式對(duì)比,這種新的方式比較長(zhǎng),難以記憶,不過(guò)優(yōu)點(diǎn)在于編號(hào)唯一,做系統(tǒng)遷移的時(shí)候不容易出錯(cuò)。
說(shuō)明:RHEL 7.0默認(rèn)安裝好之后是沒(méi)有自動(dòng)開(kāi)啟網(wǎng)絡(luò)連接的!
方法1、進(jìn)入網(wǎng)絡(luò)置配文件目錄,修改網(wǎng)卡配置文件,如下圖所示:
TYPE="Ethernet|Bridge"網(wǎng)絡(luò)接口類型 BOOTPROTO="static|none" #啟用靜態(tài)IP地址(BOOTPROTO=dhcp啟用動(dòng)態(tài)獲取IP) DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes|no" 是否支持IPV6 USERCTL="yes|no" 是否允許普通用戶控制此接口 PEERDNS="yes|no" 是不是接受DHCP服務(wù)器指派的DNS服務(wù)器地址 IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" NAME="eno16777736" UUID="8071cc7b-d407-4dea-a41e-16f7d2e75ee9" 設(shè)備標(biāo)識(shí)號(hào) ONBOOT="yes" #開(kāi)啟自動(dòng)啟用網(wǎng)絡(luò)連接(默認(rèn)值為no) IPADDR0="192.168.21.128" #設(shè)置IP地址 只有在BOOTPROTO={none|static}設(shè)置才有效 PREFIX0="24" #設(shè)置子網(wǎng)掩碼 此設(shè)置也可用 PREFIX=n (n為掩碼位數(shù)) GATEWAY0="192.168.21.2" #設(shè)置網(wǎng)關(guān) 要與IP地址屬于同一網(wǎng)段 DNS1="8.8.8.8" #設(shè)置主DNS DNS2="8.8.4.4" #設(shè)置備DNS HWADDR="00:0C:29:EB:F2:B3" IPV6_PEERDNS="yes" IPV6_PEERROUTES="yes" service networkrestart #重啟網(wǎng)絡(luò)
查看ip信息:
Ifconfig命令或 ip addr show 或 ip addr show dev 網(wǎng)絡(luò)設(shè)備名或 ip addr查看所有網(wǎng)卡信息。
#ip addr show dev eno16777736
1.接口狀態(tài)
2.硬件
3.IPv4地址與子網(wǎng)
4.廣播地址,范圍,設(shè)備名稱
5.IPv6信息
ip 命令現(xiàn)實(shí)關(guān)于網(wǎng)絡(luò)性能的統(tǒng)計(jì)信息,接收(RX)發(fā)送(TX)數(shù)據(jù)包。
用nmcli connection show網(wǎng)卡信息
測(cè)試網(wǎng)絡(luò)是否正常:
ping www.baidu.com #測(cè)試網(wǎng)絡(luò)是否正常
traceroute 和 mtr 顯示出我們到達(dá)一個(gè)網(wǎng)絡(luò)所經(jīng)過(guò)的路由信息
yum -y install traceroute
yum -y install mtr
traceroutewww.baidu.com
mtr是Red Hat自帶的工具,結(jié)合了"traceroute"和"ping"功能于一身診斷工具
第一列:顯示的是IP地址和本機(jī)域名,這點(diǎn)和tracert很像
第二列:是顯示的每個(gè)對(duì)應(yīng)IP的丟包率
第三列:snt設(shè)置每秒發(fā)送數(shù)據(jù)包的數(shù)量,默認(rèn)值是10 可以通過(guò)參數(shù) -c來(lái)指定
第四列:顯示的最近一次的返回時(shí)延
第五列:是平均值這個(gè)應(yīng)該是發(fā)送ping包的平均時(shí)延
第六列:是最好或者說(shuō)時(shí)延最短的
第七列:是最差或者說(shuō)時(shí)延最常的
第八列:是標(biāo)準(zhǔn)偏差
ethtool:查看網(wǎng)路接口設(shè)備本身的屬性
ethtool 網(wǎng)卡接口名稱
方法2:執(zhí)行nmtui命令
使用nmtui命令會(huì)彈出一工具界面
重啟network服務(wù)。
方法3:通過(guò)nm-connection-editor來(lái)配置連接(注:必須在圖形界面下運(yùn)行)
配置好了,重啟網(wǎng)絡(luò)服務(wù),執(zhí)行ifconfig或ip addr發(fā)現(xiàn)已經(jīng)獲取了新的地址。
一旦該連接建立成功,在/etc/sysconfig/networks-scripts下面就會(huì)自動(dòng)創(chuàng)建同名的配置文件
方法4:nmcli命令
nmcli是個(gè)很強(qiáng)大的命令,后面一大堆選項(xiàng)和對(duì)象可以配置??纯磶椭臋n,對(duì)象可以是綜合信息,網(wǎng)絡(luò),信號(hào)和連接。這里我們主要是學(xué)習(xí)連接的配置使用
如何配置連接,還是先看看幫助,他后面可以跟show,up, down, add, modify, edit, delete, reload,
看看device有哪些參數(shù)
查看具體的設(shè)備信息可以通過(guò) nmcli connection show 設(shè)備名來(lái)查看
添加一個(gè)新連接,先先看看幫助
修改現(xiàn)有連接,可以先先看看幫助
nmcliconnection modify --help
附:修改RHEL7的網(wǎng)卡名稱
RHEL7安裝完成之后,默認(rèn)的網(wǎng)卡名稱是eno16777736
輸入如下命令,進(jìn)入對(duì)應(yīng)目錄,編輯文件:
vim /etc/sysconfig/grub
然后,往這個(gè)文件中添加“net.ifnames=0biosdevname=0”內(nèi)容,作用是禁用該可預(yù)測(cè)命名規(guī)則,如下圖所示:
接著執(zhí)行下面的命令,效果如下:
然后,重啟系統(tǒng)后查看網(wǎng)卡名稱
五、服務(wù)控制
Systemd對(duì)linux來(lái)說(shuō),就是一個(gè)init程序,可以作為sysVinit和Upstat的替代
RHEL7監(jiān)視和控制systemd的主要命令是systemctl,該命令可以用于查看系統(tǒng)狀態(tài)和管理系統(tǒng)及服務(wù)。
RHEL7的服務(wù)systemctl腳本存放在:/usr/lib/systemd/,有系統(tǒng)(system)和用戶(user)之分,像需要開(kāi)機(jī)不登陸就能運(yùn)行的程序,存在系統(tǒng)服務(wù)里,即:/usr/lib/systemd/system目錄下。每一個(gè)服務(wù)以.service結(jié)尾,一般會(huì)分為3部分:[Unit]、[Service]和[Install]
[Unit]部分主要是對(duì)這個(gè)服務(wù)的說(shuō)明,內(nèi)容包括Description和After,Description用于描述服務(wù),After用于描述服務(wù)類別
[Service]部分是服務(wù)的關(guān)鍵,是服務(wù)的一些具體運(yùn)行參數(shù)的設(shè)置,這里Type=forking是后臺(tái)運(yùn)行的形式,PIDFile為存放PID的文件路徑,ExecStart為服務(wù)的具體運(yùn)行命令,ExecReload為重載命令,ExecStop為停止命令,注意:[Service]部分的啟動(dòng)、重啟、停止命令全部要求使用絕對(duì)路徑,使用相對(duì)路徑則會(huì)報(bào)錯(cuò)!
[Install]部分是服務(wù)安裝的相關(guān)設(shè)置,可設(shè)置為多用戶的.
注意: 如果服務(wù)沒(méi)有Install段落,一般意味著應(yīng)該通過(guò)其它服務(wù)自動(dòng)調(diào)用它們
使用systemd時(shí),可通過(guò)正確編寫單元配置文件來(lái)解決其依賴關(guān)系。典型的情況是,服務(wù)A要求服務(wù)B在A啟動(dòng)之前運(yùn)行。在此情況下,向服務(wù)A配置文件中的 [Unit] 段添加Requires=B 和 After=B 即可
我們對(duì)service和chkconfig兩個(gè)命令都不陌生,RHEL7系統(tǒng)中systemctl 是管制服務(wù)的主要工具,它整合了chkconfig 與 service功能于一體。
systemctl命令的基本操作格式是:
systemctl 動(dòng)作服務(wù)名.service
查看一下--help的信息
systemd提供更優(yōu)秀的框架以表示系統(tǒng)服務(wù)間的依賴關(guān)系實(shí)現(xiàn)系統(tǒng)初始化時(shí)服務(wù)的并行啟動(dòng),同時(shí)達(dá)到降低Shell的系統(tǒng)開(kāi)銷的效果,systemd的目標(biāo)是盡可能啟動(dòng)更少進(jìn)程;盡可能將更多進(jìn)程并行啟動(dòng)。
分析系統(tǒng)狀態(tài):
systemctl 或systemctl list-units #輸出激活的單元 systemctl list-units--type=service #列出active狀態(tài)的服務(wù) systemctl list-unit-files列出所有已安裝服務(wù) systemctl --failed #顯示啟動(dòng)失敗的服務(wù) systemd-cgls以樹形列出正在運(yùn)行的進(jìn)程
所有可用的單元文件存放在 /usr/lib/systemd/system/ 和 /etc/systemd/system/ 目錄(后者優(yōu)先級(jí)更高)
使用單元:
一個(gè)單元可以是系統(tǒng)服務(wù)(.service)、掛載點(diǎn)(.mount)、sockets(.sockets)。
使用 systemctl 控制單元時(shí),通常需要使用單元文件的全名,包括擴(kuò)展名(例如sshd.service)。但是有些單元可以在systemctl中使用簡(jiǎn)寫方式。如果無(wú)擴(kuò)展名,systemctl 默認(rèn)把擴(kuò)展名當(dāng)作 .service。例如sshd和sshd.service 是等價(jià)的。
掛載點(diǎn)會(huì)自動(dòng)轉(zhuǎn)化為相應(yīng)的 .mount 單元。例如 /home 等價(jià)于 home.mount。
設(shè)備會(huì)自動(dòng)轉(zhuǎn)化為相應(yīng)的 .device 單元,所以 /dev/sda2 等價(jià)于 dev-sda2.device。
systemctl start <單元> #立即啟動(dòng)單元 systemctl stop <單元> #立即停止單元 systemctl restart <單元> #重啟單元 systemctl reload <單元> #重新讀取單元配置 systemctl status <單元> #輸出單元運(yùn)行狀態(tài) systemctl is-enabled <單元> #檢查單元是否配置為自動(dòng)啟動(dòng) systemctl enable <單元> #開(kāi)機(jī)自動(dòng)啟動(dòng)單元 systemctl disable <單元> #取消開(kāi)機(jī)自動(dòng)激活單元 systemctl is-active<單元> #查看單元是不是正在運(yùn)行 systemctl daemon-reload #重新載入 systemd,掃描新的或有變動(dòng)的單元
電源管理:
systemctl reboot #重啟 systemctl poweroff #退出系統(tǒng)并停止電源
例如:
systemctl is-enablediptables.servicesystemctl is-enabled servicename.service #查詢服務(wù)是否開(kāi)機(jī)啟動(dòng)systemctl enable *.service #開(kāi)機(jī)運(yùn)行服務(wù)systemctl disable *.service #取消開(kāi)機(jī)運(yùn)行systemctl start *.service #啟動(dòng)服務(wù)systemctl stop *.service #停止服務(wù)systemctl restart *.service #重啟服務(wù)systemctl reload *.service #重新加載服務(wù)配置文件systemctl status *.service #查詢服務(wù)運(yùn)行狀態(tài)systemctl mask *.service #禁用指定服務(wù)systemctl unmask *.service #激活指用服務(wù)
注:*代表某個(gè)服務(wù)的名字,如http的服務(wù)名為httpd
案例:
查看服務(wù)的狀況
停止 sshd服務(wù),查看狀態(tài)
狀態(tài)表示為dead服務(wù)已經(jīng)停止。
disable 服務(wù),禁止開(kāi)機(jī)自動(dòng)運(yùn)行
開(kāi)機(jī)自動(dòng)加載,并啟動(dòng)該服務(wù)
通過(guò)mask來(lái)禁用該服務(wù),這樣一旦服務(wù)終止,則無(wú)法再啟動(dòng),必須通過(guò)unmask解除禁用才能使用systemctl start sshd 來(lái)運(yùn)行服務(wù)
除了上面提到的基本功能,systemctl還可以查詢當(dāng)前加載的模塊單元,注意后綴為service的才是我們需要管理的服務(wù)
可以通過(guò) type來(lái)過(guò)濾掉其他類型的單元
systemctl list-unit-files –typeservice
六:防火墻
Redhat Enterprise Linux7已經(jīng)默認(rèn)使用firewalld作為防火墻,其使用方式已經(jīng)變化。
基于iptables的防火墻被默認(rèn)不啟動(dòng),但仍然可以繼續(xù)使用。
RHEL7中有幾種防火墻共存:firewalld、iptables、ebtables等,默認(rèn)使用firewalld作為防火墻,管理工具是firewall-cmd。RHEL7的內(nèi)核版本是3.10,在此版本的內(nèi)核里防火墻的包過(guò)濾機(jī)制是firewalld,使用firewalld來(lái)管理netfilter,不過(guò)底層調(diào)用的命令仍然是iptables等。因?yàn)檫@幾種daemon是沖突的,所以建議禁用其他幾種服務(wù)
例如若要禁用iptables、ip6tables、ebtables防火墻,方法如下圖
或
查看這幾種服務(wù)是否正在運(yùn)行
或
RHEL7雖然有iptables但是不建議使用了,使用新的firewalld服務(wù)。
查看firewalld軟件包是否安裝
Firewalld提供了支持網(wǎng)絡(luò)/防火墻區(qū)域(zone)定義網(wǎng)絡(luò)鏈接以及接口安全等級(jí)的防火墻管理工具。擁有運(yùn)行時(shí)配置和永久配置選項(xiàng)。它也支持允許服務(wù)或者應(yīng)用程序直接添加防火墻規(guī)則的接口。以前的 system-config-firewall防火墻模型是靜態(tài)的,每次修改都要求防火墻完全重啟。這個(gè)過(guò)程包括內(nèi)核 netfilter 防火墻模塊的卸載和新配置所需模塊的裝載等。相反,firewall daemon 動(dòng)態(tài)管理防火墻,不需要重啟整個(gè)防火墻便可應(yīng)用更改。因而也就沒(méi)有必要重載所有內(nèi)核防火墻模塊了。
什么是區(qū)域:網(wǎng)絡(luò)區(qū)域定義了網(wǎng)絡(luò)連接的可信等級(jí)。
數(shù)據(jù)包要進(jìn)入到內(nèi)核必須要通過(guò)這些zone中的一個(gè),而不同的zone里定義的規(guī)則不一樣(即信任度不一樣,過(guò)濾的強(qiáng)度也不一樣)。可以根據(jù)網(wǎng)卡所連接的網(wǎng)絡(luò)的安全性來(lái)判斷,這張網(wǎng)卡的流量到底使用哪個(gè)zone,比如上圖來(lái)自eth0的流量全部使用zone1的過(guò)濾規(guī)則,eth1的流量使用zone2。一張網(wǎng)卡同時(shí)只能綁定到一個(gè)zone
預(yù)定義的服務(wù):服務(wù)是端口和/或協(xié)議入口的組合。
端口和協(xié)議:定義了 tcp 或 udp 端口,端口可以是一個(gè)端口或者端口范圍。
ICMP 阻塞:可以選擇 Internet控制報(bào)文協(xié)議的報(bào)文。這些報(bào)文可以是信息請(qǐng)求亦可是對(duì)信息請(qǐng)求或錯(cuò)誤條件創(chuàng)建的響應(yīng)。
偽裝:私有網(wǎng)絡(luò)地址可以被映射到公開(kāi)的IP地址。這是一次正規(guī)的地址轉(zhuǎn)換。
端口轉(zhuǎn)發(fā):端口可以映射到另一個(gè)端口以及/或者其他主機(jī)。
在進(jìn)行firewalld配置之前,我想來(lái)討論一下區(qū)域(zones)這個(gè)概念。默認(rèn)情況就有一些有效的區(qū)域。由firewalld 提供的區(qū)域按照從不信任到信任的順序排序。
丟棄區(qū)域(Drop Zone):如果使用丟棄區(qū)域,任何進(jìn)入的數(shù)據(jù)包將被丟棄。這個(gè)類似與我們之前使用iptables -j drop。使用丟棄規(guī)則意味著將不存在響應(yīng)。 阻塞區(qū)域(Block Zone):阻塞區(qū)域會(huì)拒絕進(jìn)入的網(wǎng)絡(luò)連接,返回icmp-host-prohibited,只有服務(wù)器已經(jīng)建立的連接會(huì)被通過(guò)即只允許由該系統(tǒng)初始化的網(wǎng)絡(luò)連接。 公共區(qū)域(Public Zone):只接受那些被選中的連接,默認(rèn)只允許 ssh 和 dhcpv6-client。這個(gè) zone 是缺省 zone 外部區(qū)域(External Zone):這個(gè)區(qū)域相當(dāng)于路由器的啟用偽裝(masquerading)選項(xiàng)。只有指定的連接會(huì)被接受,即ssh,而其它的連接將被丟棄或者不被接受。 隔離區(qū)域(DMZ Zone):如果想要只允許給部分服務(wù)能被外部訪問(wèn),可以在DMZ區(qū)域中定義。它也擁有只通過(guò)被選中連接的特性,即ssh。 工作區(qū)域(Work Zone):在這個(gè)區(qū)域,我們只能定義內(nèi)部網(wǎng)絡(luò)。比如私有網(wǎng)絡(luò)通信才被允許,只允許ssh,ipp-client和 dhcpv6-client。 家庭區(qū)域(Home Zone):這個(gè)區(qū)域?qū)iT用于家庭環(huán)境。它同樣只允許被選中的連接,即ssh,ipp-client,mdns,samba-client和 dhcpv6-client。 內(nèi)部區(qū)域(Internal Zone):這個(gè)區(qū)域和工作區(qū)域(Work Zone)類似,只有通過(guò)被選中的連接,和home區(qū)域一樣。 信任區(qū)域(Trusted Zone):信任區(qū)域允許所有網(wǎng)絡(luò)通信通過(guò)。記?。阂?yàn)閠rusted是最被信任的,即使沒(méi)有設(shè)置任何的服務(wù),那么也是被允許的,因?yàn)閠rusted是允許所有連接的
以上是系統(tǒng)定義的所有的 zone,但是這些 zone 并不是都在使用。只有活躍的 zone 才有實(shí)際操作意義。
Firewalld的原則:
如果一個(gè)客戶端訪問(wèn)服務(wù)器,服務(wù)器根據(jù)以下原則決定使用哪個(gè) zone 的策略去匹配 1.如果一個(gè)客戶端數(shù)據(jù)包的源 IP 地址匹配 zone 的 sources,那么該 zone 的規(guī)則就適 用這個(gè)客戶端;一個(gè)源只能屬于一個(gè)zone,不能同時(shí)屬于多個(gè)zone。 2.如果一個(gè)客戶端數(shù)據(jù)包進(jìn)入服務(wù)器的某一個(gè)接口(如eth0)區(qū)配zone的interfaces, 則么該 zone 的規(guī)則就適用這個(gè)客戶端;一個(gè)接口只能屬于一個(gè)zone,不能同時(shí)屬于多個(gè)zone。 3.如果上述兩個(gè)原則都不滿足,那么缺省的zone 將被應(yīng)用
你可以使用任何一種 firewalld 配置工具來(lái)配置或者增加區(qū)域,以及修改配置。工具有例如firewall-config 這樣的圖形界面工具, firewall-cmd 這樣的命令行工具,或者你也可以在配置文件目錄中創(chuàng)建或者拷貝區(qū)域文件,/usr/lib/firewalld/zones 被用于默認(rèn)和備用配置,/etc/firewalld/zones被用于用戶創(chuàng)建和自定義配置文件。
命令行工具firewall-cmd支持全部防火墻特性,基本應(yīng)用如下:
一般應(yīng)用:
1、 獲取firewalld狀態(tài)
2、在不改變狀態(tài)的條件下重新加載防火墻:
如果你使用--complete-reload,狀態(tài)信息將會(huì)丟失。
3、獲取支持的區(qū)域列表
這條命令輸出用空格分隔的列表
4、獲取所有支持的服務(wù)
這條命令輸出用空格分隔的列表。
服務(wù)是firewalld所使用的有關(guān)端口和選項(xiàng)的規(guī)則集合。被啟動(dòng)的服務(wù)會(huì)在firewalld服務(wù)開(kāi)啟或者運(yùn)行時(shí)自動(dòng)加載。默認(rèn)情況下,很多服務(wù)是有效的。使用下面命令可列出有效的服務(wù)。
想要列出默認(rèn)有效的服務(wù),也可以進(jìn)入下面的目錄也能夠取得。
# cd /usr/lib/firewalld/services/
想要?jiǎng)?chuàng)建自己的服務(wù),需要在下面的目錄下定義它。比如,現(xiàn)在我想添加一個(gè)rhmp服務(wù),端口號(hào)1935。首先,任選一個(gè)服務(wù)復(fù)制過(guò)來(lái)。
接下來(lái)把復(fù)制過(guò)來(lái)的文件重命名為“rtmp.xml”,
接下來(lái)打開(kāi)并編輯文件的頭部、描述、協(xié)議和端口號(hào),以供RTMP服務(wù)使用,如下圖所示。
重啟firewalld服務(wù)或者重新加載設(shè)置,以激活這些設(shè)置。
# firewall-cmd --reload
為確認(rèn)服務(wù)是否已經(jīng)啟動(dòng),運(yùn)行下面的命令獲取有效的服務(wù)列表。
# firewall-cmd --get-services
5、獲取所有支持的ICMP類型
這條命令輸出用空格分隔的列表。
6、列出全部啟用的區(qū)域的特性(即查詢當(dāng)前防火墻策略)
解釋:特性可以是定義的防火墻策略,如:服務(wù)、端口和協(xié)議的組合、端口/數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)、偽裝、ICMP 攔截或自定義規(guī)則等
上面的命令將會(huì)列出每種區(qū)域如block、dmz、drop、external、home、internal、public、trusted以及work。如果區(qū)域還有其它詳細(xì)規(guī)則(rich-rules)、啟用的服務(wù)或者端口,這些區(qū)域信息也會(huì)分別被羅列出來(lái)
7、輸出區(qū)域全部啟用的特性。如果省略區(qū)域,將顯示默認(rèn)區(qū)域的信息。
firewall-cmd [--zone=] --list-all
輸出指定區(qū)域啟動(dòng)的特性
8、查看默認(rèn)區(qū)域
public區(qū)域是默認(rèn)區(qū)域。
在文件/etc/firewalld/firewalld.conf中定義成DefaultZone=public。
9、設(shè)置默認(rèn)區(qū)域
firewall-cmd --set-default-zone=區(qū)域名
流入默認(rèn)區(qū)域中配置的接口的新訪問(wèn)請(qǐng)求將被置入新的默認(rèn)區(qū)域。當(dāng)前活動(dòng)的連接將不受影響。
10、獲取活動(dòng)的區(qū)域
這條命令將用以下格式輸出每個(gè)區(qū)域所含接口:
區(qū)域名
interfaces : 接口名
11、根據(jù)接口獲取區(qū)域即需要查看哪個(gè)區(qū)域和這個(gè)接口綁定即查看某個(gè)接口是屬于哪個(gè)zone的:
firewall-cmd --get-zone-of-interface=接口名
這條命令將輸出接口所屬的區(qū)域名稱。
12、將接口(網(wǎng)卡)增加到區(qū)域
firewall-cmd [--zone=] --add-interface=接口名
如果接口不屬于區(qū)域,接口將被增加到區(qū)域。如果區(qū)域被省略了,將使用默認(rèn)區(qū)域。接口在重新加載后將重新應(yīng)用。
13、修改接口所屬區(qū)域
firewall-cmd [--zone=] --change-interface=接口名
這個(gè)選項(xiàng)與--add-interface 選項(xiàng)相似,但是當(dāng)接口已經(jīng)存在于另一個(gè)區(qū)域的時(shí)候,該接口將被添加到新的區(qū)域。
14、從區(qū)域中刪除一個(gè)接口
firewall-cmd [--zone=] --remove-interface=接口名
注:如果某個(gè)接口不屬于任何Zone,那么這個(gè)接口的所有數(shù)據(jù)包使用默認(rèn)的Zone的規(guī)則
15、查詢區(qū)域中是否包含某接口
firewall-cmd [--zone=] --query-interface=接口名
如果區(qū)域被省略了,將使用默認(rèn)區(qū)域
16、列舉區(qū)域中啟用的服務(wù)
firewall-cmd [ --zone= ] --list-services
如果區(qū)域被省略了,將使用默認(rèn)區(qū)域
17、啟用應(yīng)急模式阻斷所有網(wǎng)絡(luò)連接,以防出現(xiàn)緊急狀況
18、禁用應(yīng)急模式
firewall-cmd --panic-off
19、查詢應(yīng)急模式
firewall-cmd --query-panic
其他相關(guān)的配置項(xiàng)可以查看firewall-cmd的手冊(cè)頁(yè):#man firewall-cmd
處理運(yùn)行時(shí)區(qū)域:
運(yùn)行時(shí)模式下對(duì)區(qū)域進(jìn)行的修改不是永久有效的。重新加載或者重啟后修改將失效。
1、啟用區(qū)域中的一種服務(wù)即給某個(gè)區(qū)域開(kāi)啟某個(gè)服務(wù)
firewall-cmd [--zone=區(qū)域] --add-service=服務(wù) [--timeout=秒數(shù)]
此操作啟用區(qū)域中的一種服務(wù)。如果未指定區(qū)域,將使用默認(rèn)區(qū)域。如果設(shè)定了超時(shí)時(shí)間,服務(wù)將只啟用特定秒數(shù)。
使區(qū)域中的ipp-client 服務(wù)生效60秒:
啟用默認(rèn)區(qū)域中的http服務(wù):firewall-cmd--add-service=http
2、禁用區(qū)域中的某種服務(wù)即關(guān)閉某個(gè)服務(wù)
firewall-cmd [--zone=區(qū)域] --remove-service=服務(wù)
此舉禁用區(qū)域中的某種服務(wù)。如果未指定區(qū)域,將使用默認(rèn)區(qū)域。
例:禁止默認(rèn)區(qū)域中的 http 服務(wù):
3、查詢區(qū)域中是否啟用了特定服務(wù)
firewall-cmd [--zone=區(qū)域] --query-service=服務(wù) Yes 表示服務(wù)啟用, no 表示服務(wù)關(guān)掉了。
4、啟用區(qū)域端口和協(xié)議組合
firewall-cmd [--zone=區(qū)域] --add-port=portid[-portid]/protocol[--timeout=seconds]
此操作將啟用端口和協(xié)議的組合。端口可以是一個(gè)單獨(dú)的端口或者是一個(gè)端口范圍 - 。協(xié)議可以是tcp或udp。
5、禁用端口和協(xié)議組合
firewall-cmd [--zone=區(qū)域] --remove-port=portid[-portid]/protocol
6、查詢區(qū)域中是否啟用了端口組合
7、啟用區(qū)域中的 IP 偽裝功能
firewall-cmd [--zone=區(qū)域]--add-masquerade
此操作啟用區(qū)域的偽裝功能。私有網(wǎng)絡(luò)的地址將被隱藏并映射到一個(gè)公有IP。這是地址轉(zhuǎn)換的一種形式,常用于路由。由于內(nèi)核的限制,偽裝功能僅可用于IPv4。
8、禁用區(qū)域中的 IP 偽裝
firewall-cmd [--zone=區(qū)域]--remove-masquerade
9、查詢區(qū)域的偽裝狀態(tài)
firewall-cmd [--zone=區(qū)域]--query-masquerade
注意:?jiǎn)⒂脗窝b功能的主機(jī)同時(shí)也需要開(kāi)啟轉(zhuǎn)發(fā)服務(wù):
#echo 1 > /proc/sys/net/ipv4/ip_forward 或 #vi /etc/sysctl.conf 添加如下內(nèi)容 net.ipv4.ip_forward = 1 保存退出并執(zhí)行#sysctl -p使修改生效
10、啟用區(qū)域的 ICMP 阻塞功能
firewall-cmd [--zone=區(qū)域] --add-icmp-block=icmp類型
此操作將啟用選中的 Internet 控制報(bào)文協(xié)議(ICMP)報(bào)文進(jìn)行阻塞。 ICMP 報(bào)文可以是請(qǐng)求信息或者創(chuàng)建的應(yīng)答報(bào)文,以及錯(cuò)誤應(yīng)答。
11、禁止區(qū)域的 ICMP 阻塞功能
firewall-cmd [--zone=區(qū)域] --remove-icmp-block=icmp類型
12、查詢區(qū)域的 ICMP 阻塞功能
firewall-cmd [--zone=區(qū)域] --query-icmp-block=icmp類型
13、在區(qū)域中啟用端口轉(zhuǎn)發(fā)或映射
firewall-cmd [--zone=區(qū)域] --add-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][ :toaddr=address [/mask]]
端口可以映射到另一臺(tái)主機(jī)的同一端口,也可以是同一主機(jī)或另一主機(jī)的不同端口。端口號(hào)可以是一個(gè)單獨(dú)的端口或者是端口范圍 - 。協(xié)議可以為tcp或udp。目標(biāo)端口可以是端口號(hào)或者是端口范圍 - 。目標(biāo)地址可以是 IPv4地址。受內(nèi)核限制,端口轉(zhuǎn)發(fā)功能僅可用于IPv4。
意思是凡是來(lái)從external進(jìn)來(lái)的22端口的數(shù)據(jù)包全部轉(zhuǎn)發(fā)到211.106.65.50
firewall-cmd --zone=external--add-forward-port=port=22:proto=tcp:toaddr=211.106.65.50
14、禁止區(qū)域的端口轉(zhuǎn)發(fā)或者端口映射
firewall-cmd [--zone=]--remove-forward-port=port=portid[-portid]:proto=protocol[ :toport=portid[-portid]][:toaddr=address [/mask]]
15、查詢區(qū)域的端口轉(zhuǎn)發(fā)或者端口映射
firewall-cmd [--zone=]--query-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][ :toaddr=address [/mask]]
處理永久區(qū)域:
永久選項(xiàng)不直接影響運(yùn)行時(shí)的狀態(tài)。這些選項(xiàng)僅在重載或者重啟服務(wù)時(shí)可用。為了使用運(yùn)行時(shí)和永久設(shè)置,需要分別設(shè)置兩者。選項(xiàng)--permanent需要是永久設(shè)置的第一個(gè)參數(shù)。
1、獲取永久選項(xiàng)所支持的服務(wù)
firewall-cmd --permanent --get-services
2、獲取永久選項(xiàng)所支持的ICMP類型列表
firewall-cmd --permanent --get-icmptypes
3、獲取支持的永久區(qū)域
firewall-cmd --permanent --get-zones
4、配置防火墻在public區(qū)域打開(kāi)http協(xié)議,并保存,以致重啟有效
firewall-cmd --permanent --zone=public --add-service=http
查看永久模式下public區(qū)域是否打開(kāi)http服務(wù)。
firewall-cmd --permanent --zone=public --query-service=http
5、防火墻開(kāi)放8080端口在public區(qū)域
firewall-cmd --permanent--zone=public --add-port=8080/tcp
6、命令行配置富規(guī)則:
查看富規(guī)則:
# firewall-cmd --list-rich-rules
創(chuàng)建富規(guī)則:
firewall-cmd --add-rich-rule 'rule family=ipv4 sourceaddress=10.35.89.0/24 service name=ftp log prefix="ftp" level=info accept' --permanent firewall-cmd --add-rich-rule 'rule family=ipv4 sourceaddress=10.35.89.0/24 port port=80 protocol=tcp log prefix="80" level=info accept'--permanent firewall-cmd --add-rich-rule rule family="ipv4" sourceaddress="192.168.10.30" forward-port port="808"protocol="tcp" to-port="80" to-addr="10.10.10.2"
富規(guī)則中使用偽裝功能可以更精確詳細(xì)的限制:
firewall-cmd--add-rich-rule 'rule family=ipv4 source address=10.10.10.2/24 masquerade'
僅允許部分IP訪問(wèn)本機(jī)服務(wù)配置
firewall-cmd --permanent--zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.0/24"service name="http" accept"
禁止遠(yuǎn)程IP訪問(wèn)ssh
firewall-cmd --permanent--zone=public --add-rich-rule=’rule family=ipv4 source address=192.168.0.0/24service name=ssh reject’
7、刪除rich規(guī)則
firewall-cmd --permanent--zone=public --remove-rich-rule=’rule family=ipv4 source address=192.168.0.0/24service name=ssh reject’
8、僅允許部分IP訪問(wèn)本機(jī)端口配置
firewall-cmd --permanent--zone=public --add-rich-rule="rule family="ipv4" sourceaddress="192.168.0.0/24"port protocol="tcp"port="8080" accept"
9、創(chuàng)建rich規(guī)則,可以指定日志的前綴和輸出級(jí)別
firewall-cmd --permanent--zone=public --add-rich-rule="rule family="ipv4" sourceaddress="192.168.0.4/24"port port=8080 protocol="tcp" logprefix=proxy level=warning accept" 可以通過(guò)查看/var/log/messages日志文件
10、也可通過(guò)配置以下XML文件,進(jìn)行對(duì)防火墻的配置修改
#cat/etc/firewalld/zones/public.xml <?xmlversion="1.0" encoding="utf-8"?> <zone> <short>Public</short> <description>Foruse in public areas. You do not trust the other computers on networks to notharm your computer. Only selected incoming connections areaccepted.</description> <servicename="dhcpv6-client"/> <servicename="ssh"/> <rulefamily="ipv4"> <sourceaddress="192.168.0.4/24"/> <servicename="http"/> <accept/> </rule> </zone>
總結(jié)
netfilter 防火墻總是容易受到規(guī)則順序的影響,因?yàn)橐粭l規(guī)則在鏈中沒(méi)有固定的位置。在一條規(guī)則之前添加或者刪除規(guī)則都會(huì)改變此規(guī)則的位置。在靜態(tài)防火墻模型中,改變防火墻就是重建一個(gè)干凈和完善的防火墻設(shè)置,默認(rèn)鏈通常也沒(méi)有安全的方式添加或刪除規(guī)則而不影響其他規(guī)則。
動(dòng)態(tài)防火墻有附加的防火墻功能鏈。這些特殊的鏈按照已定義的順序進(jìn)行調(diào)用,因而向鏈中添加規(guī)則將不會(huì)干擾先前調(diào)用的拒絕和丟棄規(guī)則。從而利于創(chuàng)建更為合理完善的防火墻配置。
下面是一些由守護(hù)進(jìn)程創(chuàng)建的規(guī)則,過(guò)濾列表中啟用了在公共區(qū)域?qū)?/span> ssh , mdns 和 ipp-client 的支持:
總結(jié):
圖形化配置工具
firewall daemon 主要的配置工具是firewall-config。它支持防火墻的所有特性。管理員也可以用它來(lái)改變系統(tǒng)或用戶策略。
命令行客戶端
firewall-cmd是命令行下提供大部分圖形工具配置特性的工具。
附錄:要想了解更多firewall防火墻更多知識(shí)可以查看firewall的相關(guān)手冊(cè)頁(yè),下圖所顯示的就是firewall防火墻的相關(guān)手冊(cè)頁(yè):
若要查看rich-rule手冊(cè)頁(yè)
例如:允許icmp協(xié)議的數(shù)據(jù)包通信
本文出自 “一盞燭光” 博客,謝絕轉(zhuǎn)載!
更多建議: