如何阻止我的AWS实例发起对外SSH连接以阻断攻击
阻止EC2实例发起对外SSH连接的解决方案
方法1:在实例内部配置本地防火墙
直接在EC2实例操作系统层面拦截出站SSH流量,这是最直接的实现方式:
使用iptables(适用于多数Linux发行版):
执行以下命令添加出站拒绝规则:iptables -A OUTPUT -p tcp --dport 22 -j DROP保存规则确保重启后生效:
- Debian/Ubuntu系统:
iptables-save > /etc/iptables/rules.v4 - RHEL/CentOS系统:
service iptables save
- Debian/Ubuntu系统:
使用ufw(Ubuntu/Debian默认防火墙):
执行命令拒绝出站SSH:ufw deny out 22/tcp ufw enable
方法2:配置AWS网络ACL(Network ACL)
AWS安全组仅支持允许规则,无法直接设置拒绝,但网络ACL支持拒绝规则,可通过以下步骤配置:
- 找到实例所属子网对应的网络ACL
- 添加出站规则:
- 规则编号:设置为比现有允许规则更小的数值(比如100,数值越小优先级越高)
- 类型:TCP
- 端口范围:22
- 目标:0.0.0.0/0
- 操作:拒绝
重要提醒:排查实例入侵情况
你的实例已被用于发起攻击,说明大概率存在入侵行为,需立即执行以下操作:
- 检查系统登录日志(
/var/log/auth.log或/var/log/secure),查看可疑登录记录 - 排查可疑进程:执行
top或ps aux,找出未知或异常进程并终止 - 检查
~/.ssh/authorized_keys文件,确认是否有未知的SSH密钥 - 必要时创建新的干净EC2实例,迁移重要数据后销毁被入侵的实例,避免持续被利用
内容的提问来源于stack exchange,提问作者Akshay Seth
相关产品推荐
相关产品推荐

