Cockpit是一個開源的Linux服務器的web管理工具。
官方項目地址為:https://cockpit-project.org/
安裝
yum install cockpit
簡單配置和訪問
啟用cockpit.socket服務,用於運行web服務器,並設置為開機啟動
systemctl start cockpit.socket
systemctl enable cockpit.socket
此時,可以在瀏覽器輸入地址https://ip:9090訪問web管理頁面了
輸入操作系統的賬號和密碼進行登錄。
- 此時會在系統的/etc/cockpit/ws-certs.d/ 目錄默認生成一個自簽名的證書文件,例如0-self-signed.cert,因為是自簽名的證書,所以在瀏覽器訪問的時候,會報安全警告,需要設置安全例外才能訪問,為了避免此情況,可以購買或申請CA證書,替換該目錄的cert或crt文件,如果目錄內存在多個cert文件,則系統會按照字母的先后順序選擇最后一個cert文件作為https協議通信的SSL證書文件。
- 如果勾選了【重用我的密碼以執行特權任務】,則如果您正在登錄的用戶帳戶具有sudo特權,這使得您可以在web控制台中執行特權任務,例如安裝軟件或配置SELinux
服務的啟動和退出
Cockpit的cockpit-ws組件是用於客戶端瀏覽器進行連接,它通常是依托於systemd的socket活動而按需啟動。當瀏覽器訪問cockpit.socket服務時,cockpit.service和cockpit-ws進程將會按需啟動;一旦用戶通過web端登錄進Cockpit的控制台頁面成功,則會啟動cockpit-bridge相關進程,而當用戶注銷后,則cockpit-bridge相關進程自動結束;補充說明一點,當用戶超過10分鍾不活動時,cockpit-ws進程也會自動結束。
綜上,對於Cockpit只需要操作cockpit.socket服務即可:
#啟動服務
systemctl start cockpit.socket
#開機啟動
systemctl enable cockpit.socket
#停止服務
systemctl stop cockpit.socket
# 取消開機啟動
systemctl disable cockpit.socket
設置服務器監聽地址和端口
Cockpit的cockpit-ws進程,默認監聽的是所有有效IP地址,端口是9090,而該進程可以通過cockpit.socket服務進行啟動
配置/etc/systemd/system/cockpit.socket.d/listen.conf 文件(如果目錄或文件不存在)
[Socket] # 取消默認9090端口的監聽 ListenStream= # 設置監聽端口為443,不限制IP地址,即所有有效的IP:443都可以訪問 ListenStream=443 # 綁定特定的IP和端口,僅192.168.1.1地址可以訪問7777端口 ListenStream=192.168.1.1:7777 # 控制套接字是可以綁定到非本地IP地址的 FreeBind=yes
執行如下命令,使配置生效
systemctl daemon-reload
systemctl restart cockpit.socket
如果啟用了selinux,並且對應的端口被限制,則selinux設置類似如下:
semanage port -a -t websm_port_t -p tcp 7777 semanage port -m -t websm_port_t -p tcp 443
同時需要確保防火牆也是對相關端口放行的
firewall-cmd --permanent --add-port=443/tcp
配置文件
默認Cockpit不會自動創建配置文件,需要手動創建/etc/cockpit/cockpit.conf
具體的配置方式參考官方文檔:https://cockpit-project.org/guide/latest/cockpit.conf.5.html
配置格式類似如下:
[WebService] ProtocolHeader = X-Forwarded-Proto [Session] IdleTimeout=15