CentOS 7 環境配置
阿新 • • 發佈:2018-12-14
一、Centos7如何修改ssh預設埠22
1. 修改 sshd_config 埠
- 編輯sshd_config 配置檔案
$ vi /etc/ssh/sshd_config
- 取消 #Port 22 的註釋,在下一行新增你需要修改的新埠 Port
10022。(這裡不刪除 22 埠是為了防止修改後新埠無法訪問,造成無法用 ssh 連線伺服器。)
Port 22
Port 10022
-
修改儲存 sshd_config 檔案
按下esc 退出編輯模式,輸入 :wq,儲存修改並退出 -
重啟 sshd 服務
$ systemctl restart sshd
2. 配置防火牆 firewalld
- 啟用防火牆:
$ systemctl enable firewalld
$ systemctl start firewalld
- 檢視防火牆狀態
$ systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since 二 2016-12-20 02:12:59 CST; 1 day 13h ago Main PID: 10379 (firewalld) CGroup: /system.slice/firewalld.service └─10379 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid $ firewall-cmd --state running
- 檢視防火牆當前「預設」和「啟用」zone(區域):
$ firewall-cmd --get-default-zone
public
$ firewall-cmd --get-active-zones
public
interfaces: eth0 eth1
若沒有啟用區域的話,要執行下面的命令。
- 啟用 public 區域,增加網絡卡介面:
$ firewall-cmd --set-default-zone=public $ firewall-cmd --zone=public --add-interface=eth0 success $ firewall-cmd --zone=public --add-interface=eth1 success
*新增防火牆規則,開放 10022/TCP 埠:
# 以防新埠不生效,先把 22 埠暴露
$ firewall-cmd --permanent --zone=public --add-port=22/tcp
$ firewall-cmd --permanent --zone=public --add-port=10022/tcp
success
# 過載防火牆
$ firewall-cmd --reload
# 檢視暴露埠規則
$ firewall-cmd --permanent --list-port
443/tcp 80/tcp 22/tcp 10022/tcp
$ firewall-cmd --zone=public --list-all
public (default, active)
interfaces: eth0 eth1
sources:
services: dhcpv6-client ssh
ports: 443/tcp 80/tcp 22/tcp 10022/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
- 退出 ssh 會話後,再用新的埠連線:
$ ssh -p 10022 [email protected]
3. 開啟 SELinux 埠
SELinux 全稱 Security Enhanced Linux (安全強化 Linux),是 MAC (Mandatory Access Control,強制訪問控制系統)的一個實現,目的在於明確的指明某個程序可以訪問哪些資源(檔案、網路埠等)。
對於 ssh,SELinux 預設只允許 22 埠,我們可以用 SELinux 管理配置工具 semanage,來修改 ssh 可訪問的埠。
安裝 semanage 工具
$ yum provides semanage
$ yum -y install policycoreutils-python
** 開啟ssh 10022 埠**
# 為 ssh 新增新的允許埠
$ semanage port -a -t ssh_port_t -p tcp 10022
# 檢視當前 SELinux 允許的埠
$ semanage port -l | grep ssh
ssh_port_t tcp 10022, 22
錯誤處理
當 SELINUX 配置為禁用狀態時,使用 semanage 會報錯提示無法讀取 policy 檔案:
修改 /etc/selinux/config 配置,啟用 SELinux:
$ vi /etc/selinux/config
SELINUX=permissive
# 重啟伺服器
$ init 6
# 重啟後檢視 SELinux 狀態
$ sestatus
# if it shows disable, you can run
$ load_policy -qi
檢查SELINUX配置
$ semanage port -a -t ssh_port_t -p tcp 10022
$ semanage port -l | grep ssh
ssh_port_t tcp 10022, 22
# 重啟 ssh 服務
systemctl restart sshd
######*注:semange 不能禁用 ssh 的 22 埠:
$ semanage port -d -t ssh_port_t -p tcp 22
ValueError: 在策略中定義了埠 tcp/22,無法刪除。
二、新建組和使用者
【組的操作】
- 新建組 example
- 使用groupadd 命令新增組
用法:groupadd [選項] 組
選項:
-f, --force 如果組已經存在則成功退出
並且如果 GID 已經存在則取消 -g
-g, --gid GID 為新組使用 GID
-h, --help 顯示此幫助資訊並推出
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的預設值
-o, --non-unique 允許建立有重複 GID 的組
-p, --password PASSWORD 為新組使用此加密過的密碼
-r, --system 建立一個系統賬戶
-R, --root CHROOT_DIR chroot 到的目錄
example:
# groupadd -g [組的ID] [組名]
$ groupadd -g 10005 example
- 刪除組 example
- 使用 groupdel 命令刪除組
用法:groupdel [選項] 組
選項:
-h, --help 顯示此幫助資訊並推出
-R, --root CHROOT_DIR chroot 到的目錄
example:
# groupdel [組名]
$ groupdel example
- 刪除組 example
- 使用 groupdel 命令刪除組
用法:groupdel [選項] 組
選項:
-h, --help 顯示此幫助資訊並推出
-R, --root CHROOT_DIR chroot 到的目錄
example:
# groupdel [組名]
$ groupdel example
- 修改組資訊 example ,將組example 的id 更改為 10006 ,名稱更改為 exampleGroup
- 使用 groupmod 來修改組資訊
用法:groupmod [選項] 組
選項:
-g, --gid GID 將組 ID 改為 GID
-h, --help 顯示此幫助資訊並推出
-n, --new-name NEW_GROUP 改名為 NEW_GROUP
-o, --non-unique 允許使用重複的 GID
-p, --password PASSWORD 將密碼更改為(加密過的) PASSWORD
-R, --root CHROOT_DIR chroot 到的目錄
example:
# groupmod -g [組ID] [組名]
$ groupmod -g 10006 example
# groupmod -n [新組名] [組名]
groupmod -n exampleGroup example
####【使用者的操作】
- 新建使用者 example
- 使用adduser 命令來新建使用者
用法:adduser [選項] 登入
adduser -D
adduser -D [選項]
選項:
-b, --base-dir BASE_DIR 新賬戶的主目錄的基目錄
-c, --comment COMMENT 新賬戶的 GECOS 欄位
-d, --home-dir HOME_DIR 新賬戶的主目錄
-D, --defaults 顯示或更改預設的 useradd 配置
-e, --expiredate EXPIRE_DATE 新賬戶的過期日期
-f, --inactive INACTIVE 新賬戶的密碼不活動期
-g, --gid GROUP 新賬戶主組的名稱或 ID
-G, --groups GROUPS 新賬戶的附加組列表
-h, --help 顯示此幫助資訊並推出
-k, --skel SKEL_DIR 使用此目錄作為骨架目錄
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的預設值
-l, --no-log-init 不要將此使用者新增到最近登入和登入失敗資料庫
-m, --create-home 建立使用者的主目錄
-M, --no-create-home 不建立使用者的主目錄
-N, --no-user-group 不建立同名的組
-o, --non-unique 允許使用重複的 UID 建立使用者
-p, --password PASSWORD 加密後的新賬戶密碼
-r, --system 建立一個系統賬戶
-R, --root CHROOT_DIR chroot 到的目錄
-s, --shell SHELL 新賬戶的登入 shell
-u, --uid UID 新賬戶的使用者 ID
-U, --user-group 建立與使用者同名的組
-Z, --selinux-user SEUSER 為 SELinux 使用者對映使用指定 SEUSER
example: 新建使用者 example ,指定使用者id 為10010
# adduser -u [使用者ID] [使用者名稱]
$ adduser -u 10010 example
# 檢視新建立的使用者
$ id example
uid=10010(example) gid=10010(example) 組=10010(example)
- 為新建的使用者設定密碼 passwd [新建使用者名稱]
- 使用passwd [新建使用者名稱] 命令來設定新使用者密碼
直接輸入passwd,回車,修改的是當前使用者的密碼
example:
$ passwd example
更改使用者 example 的密碼 。
新的 密碼:
無效的密碼: 密碼包含使用者名稱在某些地方
重新輸入新的 密碼:
passwd:所有的身份驗證令牌已經成功更新。
在設定密碼的時候,會進行驗證密碼是否包含使用者名稱,是否含有特殊字元,大小寫字母和數字,會有相應的提示,但是繼續輸入,也是可以設定成功的。
- 刪除使用者 example
- 使用 userdel 命令來刪除使用者
用法:userdel [選項] 登入
選項:
-f, --force force some actions that would fail otherwise
e.g. removal of user still logged in
or files, even if not owned by the user
-h, --help 顯示此幫助資訊並推出
-r, --remove 刪除主目錄和郵件池
-R, --root CHROOT_DIR chroot 到的目錄
-Z, --selinux-user 為使用者刪除所有的 SELinux 使用者對映
example: 刪除使用者 example
# userdel [使用者名稱]
$ userdel example
# 檢視使用者example
$ id example
id: example: no such user
- 修改使用者 example 為 exampleUser
- 使用 usermod 命令來修改使用者資訊
用法:usermod [選項] 登入
選項:
-c, --comment 註釋 GECOS 欄位的新值
-d, --home HOME_DIR 使用者的新主目錄
-e, --expiredate EXPIRE_DATE 設定帳戶過期的日期為 EXPIRE_DATE
-f, --inactive INACTIVE 過期 INACTIVE 天數後,設定密碼為失效狀態
-g, --gid GROUP 強制使用 GROUP 為新主組
-G, --groups GROUPS 新的附加組列表 GROUPS
-a, --append GROUP 將使用者追加至上邊 -G 中提到的附加組中,
並不從其它組中刪除此使用者
-h, --help 顯示此幫助資訊並推出
-l, --login LOGIN 新的登入名稱
-L, --lock 鎖定使用者帳號
-m, --move-home 將家目錄內容移至新位置 (僅於 -d 一起使用)
-o, --non-unique 允許使用重複的(非唯一的) UID
-p, --password PASSWORD 將加密過的密碼 (PASSWORD) 設為新密碼
-R, --root CHROOT_DIR chroot 到的目錄
-s, --shell SHELL 該使用者帳號的新登入 shell
-u, --uid UID 使用者帳號的新 UID
-U, --unlock 解鎖使用者帳號
-Z, --selinux-user SEUSER 使用者賬戶的新 SELinux 使用者對映
example: 修改使用者 example 為 exampleUser ,更改組為 exampleGroup
# usermod -u [使用者ID] [使用者名稱]
$ usermod -u 10006 example
# 檢視使用者example
$ id example
uid=10006(example) gid=10010(example) 組=10010(example)
# usermod -g [組ID] [使用者名稱]
$ usermod -u 10006 example
# 檢視使用者example
$ id example
uid=10006(example) gid=10006(exampleGroup) 組=10006(exampleGroup)
# usermod -l [新使用者名稱] [使用者名稱]
$ usermod -l exampleUser example
# 檢視使用者exampleUser
$ id exampleUser
uid=10006(exampleUser) gid=10006(exampleGroup) 組=10006(exampleGroup)