优化SSH(Secure Shell)配置可以提高服务器的安全性和性能。以下是一些常见的优化建议:
默认的SSH端口是22,这使其成为自动化攻击的目标。将SSH端口更改为非标准端口可以减少不必要的扫描。
# 编辑sshd_config文件
sudo nano /etc/ssh/sshd_config
# 找到并修改Port行
Port 2222
# 重启SSH服务
sudo systemctl restart sshd
直接使用root账户登录存在安全风险。建议使用普通用户登录,然后使用su或sudo切换到root用户。
# 编辑sshd_config文件
sudo nano /etc/ssh/sshd_config
# 找到并修改PermitRootLogin行
PermitRootLogin no
# 重启SSH服务
sudo systemctl restart sshd
使用公钥认证比密码认证更安全且更方便。
# 生成SSH密钥对
ssh-keygen -t rsa -b 4096
# 将公钥复制到远程服务器
ssh-copy-id user@remote_host
可以通过AllowUsers或DenyUsers指令限制特定用户登录。
# 编辑sshd_config文件
sudo nano /etc/ssh/sshd_config
# 添加AllowUsers指令
AllowUsers user1 user2
# 重启SSH服务
sudo systemctl restart sshd
确保防火墙配置允许SSH连接,并限制不必要的端口。
# 使用ufw配置防火墙
sudo ufw allow 2222/tcp
sudo ufw enable
Fail2Ban可以防止暴力破解攻击。
# 安装Fail2Ban
sudo apt-get install fail2ban
# 配置Fail2Ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
# 修改并启用SSH jail
[ssh]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
# 重启Fail2Ban服务
sudo systemctl restart fail2ban
Keepalive可以防止SSH连接因长时间闲置而被中断。
# 编辑sshd_config文件
sudo nano /etc/ssh/sshd_config
# 添加ClientAliveInterval和ClientAliveCountMax指令
ClientAliveInterval 60
ClientAliveCountMax 3
# 重启SSH服务
sudo systemctl restart sshd
确保只启用必要的SSH选项和服务。
# 编辑sshd_config文件
sudo nano /etc/ssh/sshd_config
# 禁用不必要的子系统
Subsystem sftp /usr/lib/openssh/sftp-server
# 重启SSH服务
sudo systemctl restart sshd
如果系统支持SELinux或AppArmor,可以进一步增强SSH的安全性。
# 启用SELinux
sudo setenforce 1
# 或者配置AppArmor
sudo aa-enforce /etc/apparmor.d/usr.sbin.sshd
确保SSH服务器软件是最新的,以修复已知的安全漏洞。
# 更新SSH服务器
sudo apt-get update
sudo apt-get install openssh-server
通过以上步骤,可以显著提高SSH服务器的安全性和性能。根据具体需求和环境,选择适合的优化措施。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。