Linux SSH 安全加固与访问控制

1次阅读

linux ssh服务安全加固需执行五项操作:一、禁用root直接登录;二、修改默认端口;三、启用密钥认证并禁用密码登录;四、限制允许登录的用户或用户组;五、配置fail2ban自动封禁异常ip。

Linux SSH 安全加固与访问控制

如果您在Linux系统中启用SSH服务,但未进行安全配置,则可能面临暴力破解、未授权访问等风险。以下是针对SSH服务实施安全加固与访问控制的具体操作步骤:

一、禁用root用户直接登录

禁止root账户通过SSH远程直接登录可显著降低系统被提权攻击的风险,强制使用普通用户登录后再切换身份,形成操作审计基础。

1、使用文本编辑器打开SSH主配置文件:sudo nano /etc/ssh/sshd_config

2、查找PermitRootLogin行,将其值修改为no

3、保存文件并退出编辑器

4、重启SSH服务以应用更改:sudo systemctl restart sshd

二、修改默认SSH端口

将SSH监听端口从默认的22更改为非标准端口,可减少自动化扫描工具的命中率,属于基础但有效的隐蔽性防护措施。

1、编辑SSH配置文件:sudo nano /etc/ssh/sshd_config

2、查找Port 22行,在其前添加新端口配置(例如Port 2222),并注释掉原Port 22行

3、确保防火墙放行新端口:sudo ufw allow 2222

4、重启SSH服务:sudo systemctl restart sshd

三、启用密钥认证并禁用密码登录

基于公私钥对的身份验证比密码认证更难被暴力破解,且可完全规避弱口令问题;禁用密码登录则彻底关闭该攻击面。

1、在客户端生成密钥对:ssh-keygen -t ed25519 -C “your_email@example.com”

2、将公钥复制到服务器:ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip -p 2222

3、编辑服务器SSH配置:sudo nano /etc/ssh/sshd_config

4、设置PubkeyAuthentication yes,并修改PasswordAuthentication no

5、重启SSH服务:sudo systemctl restart sshd

四、限制SSH登录用户范围

通过显式指定允许登录的用户或用户组,可防止新增账户意外获得远程访问权限,缩小潜在攻击入口。

1、编辑SSH配置文件:sudo nano /etc/ssh/sshd_config

2、在文件末尾添加允许用户列表:AllowUsers alice bob

3、或按用户组限制:AllowGroups sshusers(需先创建组并添加用户)

4、确保配置无语法错误:sudo sshd -t

5、重启SSH服务:sudo systemctl restart sshd

五、配置Fail2ban自动封禁异常连接

Fail2ban通过实时分析SSH日志,对多次失败登录尝试的IP地址实施临时网络封禁,有效抵御暴力破解行为。

1、安装Fail2ban:sudo apt install fail2bandebian/ubuntu)或sudo yum install epel-release fail2ban(RHEL/centos

2、复制默认配置为本地配置:sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

3、编辑本地配置:sudo nano /etc/fail2ban/jail.local

4、启用SSH监控段落,确认[sshd]enabled = true

5、启动并启用服务:sudo systemctl start fail2ban && sudo systemctl enable fail2ban

text=ZqhQzanResources