RHEL7/CENTOS7 新特性(服務控制和防火墻)
1 簡介 RHEL7 監視和控制 systemd 的主要命令是 systemctl,該命令可以 用於查 看系統狀態和管理系統及服務。
RHEL7 的服務 systemctl 腳本存放在: /usr/lib/systemd/,有系統 ( system)
和用戶( user)之分,像需要開機不登陸就能運行的程序, 存在系統服務 裏,即:/usr/lib/systemd/system 目錄下。 每一個服務以.service 結尾 ,一般會分為 3部分:[Unit]、[Service]和 [Install]
(1)[Unit]部分主要是對這個服務的說明。
(2)[Service]部分是服務的關鍵,是服務的一些具體運行參數的設置。
(3)[Install]部分是服務安裝的相關設置,可設置為多用戶的。
2定義 RHEL7 系統中 systemctl 是管制服務主要工具,它整合了 chkconfig 與 service 功能於一體。
systemctl 命令的基本操作格式是:systemctl 動作服務名.service
(1)分析系統狀態:
① systemctl 或 systemctl list-units #輸出激活的單元
② systemctl list-units --type=service
③ systemctl list-unit-files 列出所有已安裝服務
④ systemctl --failed #顯示啟動失敗的服務
(2)使用 systemctl 控制單元
systemctl start <單元> #立即啟動單元
systemctl stop <單元> #立即停止單元
systemctl restart <單元> #重啟單元
systemctl mask <單元> #禁用單元
systemctl unmask <單元> #解禁單元
systemctl reload <
systemctl status <單元> #輸出單元運行狀態
systemctl is-enabled <單元> #檢查單元是否配置為自動啟動
systemctl enable <單元> #開機自動啟動單元
systemctl disable <單元> #取消開機自動激活單元
systemctl is-active<單元> #查看單元是不是正在運行
systemctl daemon-reload #重新載入 systemd,掃描新的或有變動的單元
二 防火墻
1 定義: RHEL7 中有幾種防火墻共存: firewalld、 iptables、 ebtables 等,默認使用 現在都使用firewalld 作為防火墻,管理工具是 :firewall-cmd。
2 管理工具: (1)system-config-firewall 防火墻模型是靜態的,每次修改都要求防火墻完全重啟。
(2) firewall-cmd 動態管理防火墻,不需要重啟整個防火墻便可更改。
3 others (1)區域 :網絡區域定義了網絡連接的可信等級,一張網卡同時只能綁定一個zone。
(2)預定義的服務: 服務是端口和/或協議入口的組合。
端口和協議: 定義了 tcp 或 udp 端口,端口可以是一個端口或者端口範圍。
4 一般應用
(1) 獲取 firewalld 狀態
(2)在不改變狀態的條件下重新加載防火墻
(3)獲取支持的區域列表
(4) 獲取所有支持的服務
(5) 獲取所有支持的 ICMP 類型 : firewall-cmd --get-icmptypes
(6) 查詢當前防火墻策略 : firewall-cmd --list-all-zones
(7) 查看默認區域 : firewall-cmd --get-default-zone [默認:public]
(8) 設置默認區域 : firewall-cmd --set-default-zone=區域名 [也可在/etc/firewalld/firewalld.conf中定 義 ]
(9) 獲取活動的區域 : firewall-cmd --get-active-zones
(10) 查看接口屬於區域 :firewall-cmd --get-zone-of-interface=[接口名]
(11) 將接口(網卡) 增加到區域 :firewall-cmd [--zone=] --add-interface=接口名 [一個接口只能對應一個zone]
(12) 修改接口所屬區域 : firewall-cmd [--zone=] --change-interface=接口名
(13) 從區域中刪除一個接口: firewall-cmd [--zone=] --remove-interface=接口名
(14) 查詢區域中是否包含某接口:firewall-cmd [--zone=] --query-interface=接口名
(15) 列舉區域中啟用的服務:firewall-cmd [ --zone= ] --list-services
(16) 啟用應急模式:firewall-cmd --panic-on
(17) 禁用應急模式:firewall-cmd --panic-off
5 處理運行時區域
(1)給某個區域開啟某個服務
firewall-cmd [--zone=區域] --add-service=服務 [--timeout=秒數]
(2)禁用區域中的某種服務即關閉某個服務
firewall-cmd [--zone=區域] --remove-service=服務
(3)查詢區域中是否啟用了特定服務
firewall-cmd [--zone=區域] --query-service=服務
(4)啟用區域端口和協議組合
firewall-cmd [--zone=區域] --add-port=portid/protocol [--timeout=seconds]
(5)禁用端口和協議組合
firewall-cmd [--zone=區域] --remove-port=portid]/protocol
(6)查詢區域中是否啟用了端口和協議組合
firewall-cmd [--zone=區域] --query-port=portid/protocol
(7)啟用區域中的 IP 偽裝功能
firewall-cmd [--zone=區域] --add-masquerade [禁用:remove 查詢:query]
(8)啟用區域的 ICMP 阻塞功能
firewall-cmd [--zone=區域] --add-icmp-block=[ icmp 類型 ] [禁用:remove 查 詢:query]
(9) 在區域中啟用端口轉發或映射 :
firewall-cmd [--zone=區域] --add-forward-port=port=[假 portid]:proto=[protocol]:toport=[原portid] :toaddress=[address /mask] 【禁用:remove 查詢:query】
6 處理永久區域: 需reload
(1)獲取永久選項所支持的服務
firewall-cmd --permanent --get-services
(2)獲取永久選項所支持的 ICMP 類型列表
firewall-cmd --permanent --get-icmptypes
(3)獲取支持的永久區域
firewall-cmd --permanent --get-zones
(4)配置防火墻在public區域永久開啟服務
http firewall-cmd --permanent --zone=public --add-service=http
(5)防火墻開放 8080 端口在 public 區域
firewall-cmd --permanent --zone=public --add-port=8080/tcp
7 命令行配置富規則
(1)查看富規則: firewall-cmd --list-rich-rules
(2)僅允許部分 IP 訪問本機服務配置
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.0/24" service name="http" accept"
(3)僅允許部分 IP 訪問本機端口配置
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.0/24"port protocol="tcp" port="8080" accept"
(4)禁止遠程 IP 訪問 ssh
firewall-cmd --permanent --zone=public --add-rich-rule=’rule family=ipv4 source address=192.168.0.0/24 service name=ssh reject’
(5)【禁用:remove 查詢:query】
8 圖形化配置工具 :firewall-config
RHEL7/CENTOS7 新特性(服務控制和防火墻)