---------- 2018-07-31 ---------- 使用 hosts.allow 和 hosts.deny 限制ip: #在/etc/hosts.deny: sshd:ip:deny sshd:All:deny #在/etc/hosts.allow: sshd:ip:allow sshd:192.168.0.0/255.255.255.0:allow sshd:All:allow 例如: 除了指定的ip以外, 都不能登入: #在/etc/hosts.deny: sshd:All:deny #在/etc/hosts.allow: # 2018-07-31 sshd:192.168.0.0/255.255.255.0:allow # luckstar ap sshd:60.250.98.232:allow # gpt ap sshd:61.216.25.228:allow # gpt ap 113 for web sshd:61.216.25.223:allow 設定完記得重啟 ssh [LINUX] # service sshd restart [FREEBSD] # /etc/rc.d/sshd reload [CENTOS7] # systemctl restart sshd.service [CENTOS7] # systemctl enable sshd.service ---------- /etc/ssh/sshd_config 可限制 "用戶@ip", 例如: allowusers *@192.168.2.111 allowusers git@* allowusers test@192.168.2.111 denyusers *@192.168.1.101 denyusers banuser@* 例如: denyusers *@192.168.1.101 ---------- /etc/ssh/sshd_config 不允許root登入, 禁止 root 使用 ssh 登入 PermitRootLogin no 只允許指定user從任何地方登入, 未在列表中的用戶無法登入. 若未設定, 則皆可登入. AllowUsers user1 usftp1 允許root從192.168.1.32登入: AllowUsers root@192.168.1.32 這項設定必需允許 PermitRootLogin yes 允許整個網段登入 AllowUsers root@10.200.* 可以在同一行指定多個帳戶登入用,注意IPv6 的寫法 AllowUsers axer@163.* axer@120.109.* axer@2001:288:5400:* 使用群組限制,只有允許群組 user 登入 AllowGroups user 設定完記得重啟 ssh [LINUX] # service sshd restart [FREEBSD] # /etc/rc.d/sshd reload [CENTOS7] # systemctl restart sshd.service [CENTOS7] # systemctl enable sshd.service ---------- 2018-04-20 更改 SSH 預設埠號後,在終端機連接到 SSH 要加上 -p 參數指定埠號,例如: ssh -p 2202 root@192.168.1.10 ---------- 2018-04-20 更改 SSH 預設埠號 ref: https://www.phpini.com/linux/centos-7-change-ssh-port-selinux-enable 以資安的角度,一般上建議將 SSH 預設的 22 埠號變更為其他埠號,而選擇埠號時則盡量使用 1024 以上的埠號,以及不要與其他系統服務的埠號相撞。 RHEL 及 CentOS 的 SSH Server 設定檔是 /etc/ssh/sshd_config, 以下會設定 SSH 的埠號為 2202, 先開啟 SSH 設定檔: # vi /etc/ssh/sshd_config 找到以下一行: # Port 22 改為 Port 2202 儲存檔案後離開編輯器。 現在設定 SELinux,SELinux 預設只允許 SSH 使用埠號 22, 執行以下指令開啟埠號 2202: (如果你設定的埠號不是 2202, 要將指令修改) # semanage port -a -t ssh_port_t -p tcp 2202 設定後可以執行 semanage 檢查是否開啟 2202 埠號: # semanage port -l | grep ssh ssh_port_t tcp 2202, 22 除了開啟 SELinux 外,還要設定 firewalld 開啟埠號 2202: 1 # firewall-cmd --permanent --zone=public --add-port=2202/tcp 重新載入 firewalld # firewall-cmd –reload CentOS要多執行這段: semanage port -a -t ssh_port_t -p tcp [any 1024-65535] 沒有問題後可以重新啟動 SSH Server: # systemctl restart sshd.service 更改 SSH 預設埠號後,在終端機連接到 SSH 要加上 -p 參數指定埠號,例如: ssh -p 2202 root@192.168.1.10