SSH安全配置

服务器配置文件位于 /etc/ssh/sshd_config

sudo vim /etc/ssh/sshd_config

修改项目

#修改登录端口
Port ****(1024~65535)

#禁止root远程登录
PermitRootLogin no

#允许用户登录(白名单模式)
AllowUsers user1 user2@192.168.1.1
#允许user1 user2通过ip 192.168.1.1登录SSH,其中@ip为可选项目

#禁止用户登录(黑名单模式)
DenyUsers user3 user4
#禁止user3 user4通过SSH登录,注意所有系统账户都应该禁止登录

#禁止密码登录
PasswordAuthentication no
#确认密钥登录测试OK后再关闭

#允许密钥登录
PubkeyAuthentication yes
#配合禁止密码登录

需要防火墙开放相应端口

sudo iptables -I INPUT -p tcp --dport **** -j ACCEPT
sudo service iptables save
sudo service iptables restart

生成ssh密钥及配置

ssh-keygen
将.pub传输至服务器~/.ssh文件
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
chmod 700 ~/.ssh
注意文件权限问题

可以配置/etc/hosts.allow为允许登录

#允许特定ip登录
sshd:192.168.1.1:allow
#允许IP 192.168.1.1 SSH登录

#允许网段登录
sshd:192.168.1.:allow
#允许网段192.168.1.1/24登录,多个网段可以用逗号隔开

可以配置/etc/hosts.deny为禁止


#禁止特定ip登录
sshd:192.168.1.1:deny
#禁止IP 192.168.1.1 SSH登录

#禁止特定网段登录
sshd:192.168.1.:deny
#禁止IP 192.168.1.1/24 SSH登录

#禁止所有登录
sshd:all:deny
#注意allow优先,可以配合该指令生成白名单

注意,linux会先检查allow进行放行,然后再检查deny进行禁止,所以单独设置allow无意义