systemctl對於Linux來講,就是一個init程序,能夠做爲sysVinit和Upstat的替代。centos
centos7的服務腳本存放在:/usr/lib/systemd/,有系統(system)命令和用戶(users)命令之分,像須要開機不登陸的就能運行的服務存在系統的服務裏,即:/usr/lib/systemd/system目錄下,每個服務以.server結尾。通常會分爲三個部分:[unit][service][install]安全
[unit]:部分主要是對這個服務的說明,內容包括描述和after,其中after因爲描述服務類型服務器
[service]:部分是服務的主要部分,是服務的一些具體運行的參數的設置,這裏type-forKing是後臺運行的形式,pidfiel爲存放PID的文件路徑,execstart爲服務的具體運行命令,網絡
[install]:部分是服務安裝的相關設置,可設置爲對用戶的。ssh
systemctl命令做爲service和chkconfig命令的結合。socket
systemctl命令的基本操做格式:tcp
systemctl 動做 .service(服務名稱)ide
systemctl 或systemctl list-units //輸出激活的單元工具
systemctl list-units --type=service //列出active狀態的服務centos7
systemctl list-unit-files //列出全部已安裝的服務
systemctl --failed //顯示啓動失敗的服務
全部的可用的單元文件存放在/usr/lib/systemd/system 和/etc/systemd/syetem/目錄(或者的優先級高)
使用單元:
一個單元能夠是:(.service)(.mount )(.sockets)
systemctl start //當即啓動單元
systemctl stop //中止單元
systemctl restart //重啓單元
systemctl reload //從新加載單元配置
systemctl status // 輸出單元運行狀態
systemctl is-enabled //檢查單元是否設置爲自動啓動
systemctl enable //開機自動啓動單元
systemctl disable //取消開機自動啓動單元
systemctl is-active //查看單元是否是正在運行
systemctl daemon-reload //從新載入systemd 掃描新的或有變更的單元。
電源管理:
systemctl reboot // 重啓
systemctl poweroff //關機
能夠經過type來過濾掉其餘的類型的單元
systemctl list-unit-files -type service
centos7已經默認使用firewalld做爲防火牆了,其實用的方法已經變化,基於iptables的防火牆被默認不啓動,但任然能夠繼續使用。
centos7中有firewalld ,IPtables ,ebtables 等防火牆共存,默認使用firewalld做爲防火牆,管理工具是firewalld-config和firewalld-cmd來管理。
1)systemctl status {firewalld,iptables,ebtables} //查看各種防火牆的運行狀態
2)禁用防火牆iptables,:systemctl mask iptables 或
for service in iptables ebtables;do
systemctl mask $(service).service
done //利用for循環語句來禁用
3)取消禁用防火牆iptables:systemctl unmask iptables
4)查看幾種服務是否正在運行
systemctl status 服務名 或 systemctl is-active 服務名
firewalld 提供了支持網絡/防火牆區域定義網絡連接以及接口安全等級的防火牆管理工具,擁有運行時配置和永久配置選項。它也支持容許服務或者應用程序直接添加防火牆規則的接口,之前的iptables使靜態的,每次修改完以後須要從新加載,相反,firewalld的防火牆不須要重啓整個防火牆即可。
firewalld區域的概念:
數據包經過到內核必需要經過這些zone中的一個,而不一樣的zone裏定義的規則不同,能夠根據網卡所鏈接的網絡的安全性來判斷,這張網卡的流量究竟是使用哪一個zone,好比eth0的流量所有使用zone1的過濾規則,Eth1使用的流量爲zone2
預約義的服務:就是端口和協議號入口的集合
端口和協議:定義了tcp和udp端口,端口能夠是一個或者端口範圍
ICMP阻塞:能夠選擇internet控制報文協議的報文,這些報文能夠是信息請求也能夠是對信息請求或錯誤條件建立的響應。
假裝:私有網絡地址能夠被映射到公網的ip地址,這是一次正規的地址轉換。
端口轉發:端口能夠映射到另外一個端口以及其餘主機
1)丟棄區域(drop zone)若是使用丟棄區域,任何進入該區域的數據包將被丟棄,這裏相似於咱們以前學過的iptables -j DROP 使用丟棄區域將再也不有任何的響應
2)阻塞區域(block zone)阻塞區域會拒絕進入的網絡鏈接,返回icmp-host-prohibited ,只有服務器已經創建鏈接會被經過即只容許該系統初始化的網絡鏈接。
3)外部區域(external zone)這個區域至關於路由的啓用假裝選項,只有指定的鏈接會被接受,即ssh 其餘的鏈接將被丟棄或者不被接受。
4)公共區域(public zone) 只接受那些被選中的鏈接,默認只容許ssh和dhcp6-client.這個zone是缺省區域。
5)隔離區域(DMZ zone) 若是想要只容許給部分的服務可以被外部訪問,能夠在此區域中定義,它也擁有隻經過被選中的鏈接的特性,即ssh。
6)工做區域(work zone) 在這個區域,咱們只能定義內部網絡,好比私有網絡通訊才能被容許。
7)家庭區域(home zone) 這個區域專門用於家庭網絡,它一樣只容許被選中的鏈接才能經過和home區域同樣。
8)內部區域(internal zone) 這個區域和工做區域相似,只有經過被選中的鏈接才能經過。
9)信任區域(trust zone) 信任區域容許全部的網絡經過,由於trusted是最被信任的,即便沒有任何服務,那麼也是被容許的,由於trusted是容許全部鏈接的。
firewall-cmd --state //獲取firewalld的狀態
firewall-cmd --reload //在不改變狀態的狀況下從新加載防火牆
firewall-cmd --get-zone //獲取支持的區域列表
firewall-cmd --get-services //獲取全部支持的服務
想要列出默認的有效服務,也能夠進入下面的目錄也能夠獲取
cd /usr/lib/firewalld/services/*.xml
想要本身定義某個服務,就能夠修改這裏的配置文件就能夠了
firewall-cmd --get-icmptypes //獲取全部支持的icmp類型
firewall-cmd --list-all-zones //列出所有啓用的區域的特性
firewall-cmd --zone=public --list-all //列出制定區域的所有特性
firewall-cmd --get-default-zone //查看默認的區域
在文件/etc/firewalld/firewalld.conf能夠定義成defaultzone=public
firewall-cmd --set-default-zone=區域名稱 //設置默認區域
firewall-cmd --get-active-zones //獲取活動的區域
firewall-cmd --get-zone-of-interface=網卡名稱 //查看某個接口屬於哪一個zone
firewall-cmd --add-interface =網卡名稱 --zone=區域名稱 //將指定接口加入到某個區域
firewall-cmd --change-interface=網卡名稱 --zone=區域名稱 //將某個接口轉移到另外一個zone
firewall-cmd --remove-interface=網卡名稱 --zone=區域名稱 //將某個接口從指定的區域刪除
firewall-cmd --query-interface=網卡名稱 --zone=區域名稱 //查看某個區域是否包含所查詢的接口
firewall-cmd --list-services --zone=區域名稱 // 列出區域中的所啓用的服務
firewall-cmd --panic-on //啓用應急模式阻斷全部的鏈接,以防出現緊急情況
firewall-cmd --panic-off //禁用緊急模式
firewall-cmd --query-panic //查詢緊急模式