SSH(Secure Shell)是一种加密的网络传输协议,用于在不安全的网络中安全地进行远程登录和其他网络服务。优化SSH配置文件可以提高安全性、性能和用户体验。以下是一些常见的SSH配置优化建议:
将SSH的默认端口从22改为其他端口可以减少自动化攻击的风险。
Port 2222
禁止root用户直接通过SSH登录,可以提高系统的安全性。
PermitRootLogin no
使用公钥认证而不是密码认证可以大大提高安全性,并且更方便。
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
可以通过AllowUsers或DenyUsers指令来限制哪些用户可以登录。
AllowUsers user1 user2
# 或者
DenyUsers user3 user4
选择更安全的密钥交换算法,如curve25519-sha256@libssh.org。
KexAlgorithms curve25519-sha256@libssh.org
确保每次连接时都检查主机密钥,以防止中间人攻击。
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
Fail2Ban可以防止暴力破解攻击,通过封禁恶意IP地址。
# 安装Fail2Ban
sudo apt-get install fail2ban
# 配置Fail2Ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
增加日志记录的详细程度,以便更好地监控和排查问题。
LogLevel VERBOSE
启用TCP Keepalive可以检测并关闭不活跃的连接,节省资源。
ClientAliveInterval 60
ClientAliveCountMax 3
限制每个用户的并发连接数,防止资源耗尽。
MaxSessions 5
配置防火墙以限制对SSH端口的访问。
# 使用iptables
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
定期更新SSH服务器软件,以确保安全漏洞得到修复。
sudo apt-get update
sudo apt-get upgrade openssh-server
以下是一个示例的sshd_config文件:
# /etc/ssh/sshd_config
# 修改默认端口
Port 2222
# 禁用Root登录
PermitRootLogin no
# 使用公钥认证
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# 限制用户登录
AllowUsers user1 user2
# 启用SSH密钥交换算法
KexAlgorithms curve25519-sha256@libssh.org
# 启用主机密钥检查
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
# 启用Fail2Ban
# 配置文件路径:/etc/fail2ban/jail.local
# 优化日志记录
LogLevel VERBOSE
# 启用TCP Keepalive
ClientAliveInterval 60
ClientAliveCountMax 3
# 限制连接数
MaxSessions 5
# 使用防火墙
# iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j DROP
通过以上优化措施,可以显著提高SSH服务器的安全性和性能。记得在修改配置文件后重启SSH服务以使更改生效:
sudo systemctl restart sshd
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。