linux如何防止SSH后门

发布时间:2022-03-15 11:57:57 作者:小新
来源:亿速云 阅读:181
# Linux如何防止SSH后门

## 引言

SSH(Secure Shell)是Linux系统中远程管理的重要工具,但同时也是攻击者的主要目标。通过植入SSH后门,攻击者可以长期控制服务器。本文将深入探讨SSH后门的常见形式及防御策略。

## 一、SSH后门的常见形式

### 1. 恶意公钥注入
攻击者将自身公钥添加到以下文件实现免密登录:
- `~/.ssh/authorized_keys`
- `/etc/ssh/sshd_config`中的`AuthorizedKeysFile`

### 2. 隐藏后门账户
- 在`/etc/passwd`中创建UID=0的隐藏用户
- 使用`useradd -o -u 0`创建特权账户

### 3. SSH配置文件篡改
- 修改`/etc/ssh/sshd_config`:
  ```config
  PermitRootLogin yes
  PasswordAuthentication yes
  AllowUsers attacker

4. 恶意PAM模块

通过篡改/etc/pam.d/sshd实现认证绕过

二、主动防御措施

1. 强化SSH配置

# /etc/ssh/sshd_config
Port 2222                     # 修改默认端口
PermitRootLogin no            # 禁止root登录
PasswordAuthentication no     # 禁用密码认证
MaxAuthTries 3                # 限制尝试次数
AllowUsers admin1 admin2      # 白名单控制

2. 文件完整性监控

使用工具监控关键文件:

# 监控SSH配置文件
sudo auditctl -w /etc/ssh/sshd_config -p wa -k sshd_config
sudo auditctl -w /etc/passwd -p wa -k passwd_changes

3. 双因素认证

通过Google Authenticator实现:

sudo apt install libpam-google-authenticator
google-authenticator

/etc/pam.d/sshd添加:

auth required pam_google_authenticator.so

三、入侵检测方法

1. 检查异常登录

# 查看成功登录记录
lastlog
# 检查最近登录
last -i
# 分析auth日志
grep 'sshd' /var/log/auth.log | grep -i accepted

2. 排查可疑账户

# 检查UID=0的账户
awk -F: '($3 == 0) {print}' /etc/passwd
# 检查空密码账户
awk -F: '($2 == "") {print}' /etc/shadow

3. SSH密钥审计

# 检查authorized_keys
find / -name authorized_keys -exec ls -la {} \;
# 检查最近修改的.ssh文件
find /home -name .ssh -type d -exec ls -lt {} \;

四、应急响应流程

1. 立即隔离系统

# 断开网络连接
sudo ifconfig eth0 down
# 或通过防火墙阻断
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

2. 备份关键证据

# 备份日志文件
tar czvf ssh_logs.tar.gz /var/log/auth.log* /var/log/secure*
# 备份配置文件
cp -a /etc/ssh /etc/ssh_backup

3. 后门清除步骤

  1. 删除恶意账户:
    
    userdel -r malicious_user
    
  2. 清理authorized_keys:
    
    > ~/.ssh/authorized_keys
    
  3. 重装openssh-server:
    
    sudo apt purge openssh-server && sudo apt install openssh-server
    

五、高级防护方案

1. Fail2Ban部署

sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

配置示例:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1h

2. 证书吊销列表(CRL)

# 生成吊销列表
openssl ca -gencrl -out ssh_ca.crl
# 在sshd_config中添加
RevokedKeys /etc/ssh/ssh_ca.crl

3. 网络层防护

# 使用iptables限制连接
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 3 -j DROP

结语

通过配置强化、实时监控和应急响应三位一体的防护体系,可有效防范SSH后门。建议管理员定期进行安全审计,保持系统更新,并遵循最小权限原则。

最佳实践建议
- 每月检查一次SSH登录日志
- 使用SSH证书代替密码认证
- 对管理终端实施IP白名单控制
- 定期更新SSH到最新版本 “`

注:本文实际约1100字,可根据需要补充具体案例或扩展某些技术细节达到1200字要求。

推荐阅读:
  1. Linux下rootkit后门检测工具chkrootkit
  2. iptables防止ssh 暴力破解

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux ssh

上一篇:linux如何找回根密码

下一篇:c++怎么实现值机系统

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》