当前位置: 首页 > news >正文

限制 SSH 访问仅允许特定 IP 连接

要限制 SSH 访问仅允许特定 IP 连接,可以通过以下 4 种方法实现(推荐按优先级选择):


方法 1:使用 /etc/hosts.allow/etc/hosts.deny(最简单)

# 编辑允许规则(需 root 权限)
sudo vim /etc/hosts.allow

添加内容(支持 IP 或网段):

sshd: 192.168.1.100, 203.0.113.45/32
# 编辑拒绝规则
sudo vim /etc/hosts.deny

添加内容:

sshd: ALL

生效
无需重启服务,规则即时生效。


方法 2:配置 SSH 的 AllowUsersAllowGroups(精准控制)

sudo vim /etc/ssh/sshd_config

添加或修改以下行(支持通配符):

AllowUsers *@192.168.1.100 *@203.0.113.45
# 或限制用户组
AllowGroups admin@192.168.1.0/24

生效
重启 SSH 服务:

sudo systemctl restart sshd

方法 3:使用防火墙(iptables/nftables)

iptables 规则示例
# 清空现有规则(谨慎操作)
sudo iptables -F# 允许指定 IP 访问 22 端口
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP# 保存规则(根据系统选择)
sudo iptables-save > /etc/iptables/rules.v4  # Debian/Ubuntu
sudo service iptables save                   # CentOS/RHEL
nftables 规则示例
sudo nft add table ip ssh_filter
sudo nft add chain ip ssh_filter input { type filter hook input priority 0 \; }
sudo nft add rule ip ssh_filter input tcp dport 22 ip saddr 192.168.1.100 accept
sudo nft add rule ip ssh_filter input tcp dport 22 drop

方法 4:TCP Wrappers(传统方法,部分系统已弃用)

# 编辑 /etc/hosts.allow(同方法1)
sudo vim /etc/hosts.allow
sshd: 192.168.1.100

验证配置

  1. 测试连接
    ssh user@服务器IP -v  # 从非允许IP尝试会显示被拒绝
    
  2. 查看日志
    sudo tail -f /var/log/auth.log  # Debian/Ubuntu
    sudo tail -f /var/log/secure   # CentOS/RHEL
    

注意事项

  1. 备份配置:修改前备份相关文件(如 sshd_config)。
  2. 保留应急通道:确保至少有一个 IP 能被允许,避免锁死服务器。
  3. 动态 IP 用户:若需支持动态 IP,可结合 DDNS 或 VPN 方案。

选择最适合你环境的方法,通常 方法1+方法2 组合使用既简单又安全。

相关文章:

  • 【Python-Day 18】玩转函数参数:*args 与 **kwargs 终极指南
  • 华为OD机试真题——考勤信息(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • 树莓派4B 在系统环境安装snap7 西门子plc通讯包(佟掌柜专用)
  • 高电流测量新突破:借助铜进行温度补偿
  • 2025端午北海游玩攻略
  • ROS2基础知识
  • Linux系统:动静态库的制作与安装
  • 【向量数据库选型实战】FAISS vs Chroma vs Milvus vs Qdrant 全面对比
  • MPI实现大数据Ring Broadcast逻辑
  • 如何做好一份技术文档:从精准导航到持续迭代的实践指南
  • MySQL的基础操作
  • 【C/C++】如何在一个事件驱动的生产者-消费者模型中使用观察者进行通知与解耦
  • 无人机降落伞设计要点难点及原理!
  • 双臂机器人运动空间与干涉分析仿真技术报告
  • 仅录系统声音,不录外部噪音,详细图文教程
  • FacePoke创意交互实战:Cpolar技术赋能远程人像编辑的趣味实现
  • 鸿蒙OSUniApp 实现的一键清除输入框内容功能#三方框架 #Uniapp
  • PyTorch实现MLP信用评分模型全流程
  • 如何调试CATIA CAA程序导致的CATIA异常崩溃问题
  • 基于私有化 DeepSeek 大模型的工业罐区跑冒滴漏检测技术研究与应用
  • 做网站的分页查询/网络营销人员招聘
  • 外贸网站经典营销案例/宁波关键词排名优化
  • 网站建设目标 优帮云/建网站找哪个公司
  • 网站测试域名301怎么做/网站优化seo培训
  • 计算机应用技术专业网站开发方向/新闻头条最新消息今日头条
  • 北京市建委网站打不开/百度手机app