SSH安全设置

添加新用户,以及到 sudo 用户组

adduser new_username
usermod -aG sudo new_username

使用秘钥登录,配置修改

sudo sed -i's/#PubkeyAuthentication yes/PubkeyAuthentication yes/g' /etc/ssh/sshd_config && sudo service ssh restart

生成key;

ssh-keygen
# OR
ssh-keygen -t rsa

Dbeian 中的 ~/.ssh/authorized_keys 文件记录了公钥;
使用 ssh-copy-id 部署密钥到 Debian 系统

ssh-copy-id username@debian_server_ip

本地的公钥将被追加到远程 Debian 系统的 ~/.ssh/authorized_keys 文件中。

使用指定的公钥

# 生成
ssh-keygen -t rsa -f ~/.ssh/your_custom_key_name
# 传输
ssh-copy-id -i ~/.ssh/your_custom_key_name.pub username@remote_server_ip
# 登录
ssh -i ~/.ssh/your_custom_key_name username@remote_server_ip

修改 SSH 登录端口 并重启服务

sudo sed -i's/#Port 22/Port new23/g' /etc/ssh/sshd_config && sudo service ssh restart

指定端口登录

ssh -p 2222 username@remote_server_ip

限制 Root 登录

sudo sed -i's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config && sudo systemctl restart sshd

限制 Root 使用密码登录,只能用秘钥登录

sudo sed -i's/PermitRootLogin yes/PermitRootLogin without-password/g' /etc/ssh/sshd_config && sudo systemctl restart sshd

一键生成你的密钥

wget -O key.sh https://raw.githubusercontent.com/yuju520/Script/main/key.sh && chmod +x key.sh && clear && ./key.sh

ufw防火墙

sudo apt update && sudo apt install ufw -y

查看支持的应用

sudo ufw app list

开启ssh的保护

sudo ufw allow ssh

UFW基本使用

# 如果 ssh 监听的是其他端口,就打开那个端口,允许外部访问:
sudo ufw allow 端口

# 还可以指定访问的协议:
sudo ufw allow 端口/协议

# 启用防火墙(启用之前一定要保证,SSH 的端口已经开了,不然登出之后,就登不进来了!)
sudo ufw enable

#删除防火墙规则:
sudo ufw delete allow 端口/tcp
sudo ufw delete 防火墙规则编号

# 关闭防火墙(规则和配置会保留):
sudo ufw disable

# 重置防火墙设置并停止(配置会重置):
sudo ufw reset

Fai2ban防火墙

apt install fail2ban
nano /etc/fail2ban/jail.local

[DEFAULT]
#忽略的IP列表,不受设置限制(白名单)
ignoreip = 127.0.0.1

#允许ipv6
allowipv6 = auto

#日志修改检测机制(gamin、polling和auto这三种)
backend = systemd

#针对各服务的检查配置,如设置bantime、findtime、maxretry和全局冲突,服务优先级大于全局设置

[sshd]

#是否激活此项(true/false)
enabled = true

#过滤规则filter的名字,对应filter.d目录下的sshd.conf
filter = sshd

#ssh端口
port = ssh

#动作的相关参数
action = iptables[name=SSH, port=ssh, protocol=tcp]

#检测的系统的登陆日志文件
logpath = /var/log/secure

#屏蔽时间,单位:秒
bantime = 86400

#这个时间段内超过规定次数会被ban掉
findtime = 86400

#最大尝试次数
maxretry = 3
sudo systemctl enable fail2ban
sudo systemctl restart fail2ban

参考资料
https://www.guai.win/notes/0003-new-vps
https://linux.do/t/topic/160305

标签: Debian, Linux

添加新评论