0

0

Linux安全提升–SSH仅允许指定IP访问的三种方法

霞舞

霞舞

发布时间:2025-01-06 13:35:49

|

693人浏览过

|

来源于良许Linux教程网

转载

linux安全提升–ssh仅允许指定ip访问的三种方法

为了加强集团服务器的安全性,近期启用了堡垒机,同时就需要对所有业务服务器的ssh进行访问限制,仅允许指定IP访问(堡垒机),其他IP来源则不允许放行。

修改配置文件,实现允许指定用户/用户组或者IP登录

允许指定用户进行登录(白名单)

在/etc/ssh/sshd_config 配置文件中设置AllowUsers选项,

在配置文件末尾添加行格式如下(例如允许用户jituan01通过192.168.1.11登录)。

AllowUsers jituan01@192.168.1.11

配置了指定用户或者用户组允许登录后,默认拒绝其他所有用户或者用户组。

禁止指定用户登录(黑名单)

在 /etc/ssh/sshd_config 配置文件中设置DenyUsers选项,

在配置文件末尾添加行格式如下(例如禁止用户jituan01登录)。

DenyUsers jituan01

上述修改需要重启sshd服务。

CentOS 6系列执行以下命令进行重启:

# service sshd restart

Centos 7/EulerOS系列执行以下命令进行重启:

# systemctl restart sshd

使用DenyHosts允许或者禁止指定IP通过SSH登录

linux 服务器通过设置 /etc/hosts.allow 和 /etc/hosts.deny 这个两个文件,

可以限制或者允许某个或者某段IP地址远程SSH登录服务器.方法比较简单,具体如下:

允许192.168.1.10 这个IP地址ssh登录,打开/etc/hosts.allow,添加如下行:

sshd: 192.168.1.10

禁止所有ip通过ssh登录,打开/etc/hosts.deny,添加如下行:

sshd:ALL

hosts.allow 和hosts.deny 两个文件同时设置规则的时候,hosts.allow 文件中的规则优先级高,假设按照上述方法设置后服务器只允许192.168.1.10这个IP地址的SSH登录,其它的 IP 都会拒绝。

开启iptable防火墙,禁止指定IP访问

配置允许访问的端口

例如默认SSH端口为22,我们可以通过命名:

[root@iZuf63tu3fn1swasqa62h8Z ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT

开放22端口。我们通过-L -n 就可看到新增加的规则了:

[root@iZuf63tu3fn1swasqa62h8Z ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

如果,你想删除该端口配置。那么可以通过:iptables -D INPUT 2 进行删除。

ps:每一条规则是按照顺序从1开始进行排序的。我们如果想删除哪条。就选择删除哪个就可以了。

如果想删除OUTPUT或FORWARD,可以设置为:

iptables -D OUTPUT 1 或 iptables -D FORWARD1

我们如果SSH端口 不是22,可以改为指定的端口。

还可以配置允许 443端口(https请求),80端口(http请求)

MCP官网
MCP官网

Model Context Protocol(模型上下文协议)

下载
[root@iZuf63tu3fn1swasqa62h8Z ~]#iptables -A INPUT -p tcp --dport 80 -j ACCEPT[root@iZuf63tu3fn1swasqa62h8Z ~]#iptables -A INPUT

-p tcp --dport 443 -j ACCEPT

允许已建立的或相关连的通行

[root@iZuf63tu3fn1swasqa62h8Z ~]#iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

上面这个也是必须的,它是允许所有对外请求的返回包。例如在服务器上执行下载或者安装命令,那么服务器就需要访问外网数据,那得到的返回数据包对于我们本地服务器来说,就是一个INPUT事件了。

添加成功后在规则中的展示效果如下:

[root@iZuf63tu3fn1swasqa62h8Z ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination        
ACCEPT    all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT    tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:443
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state ESTABLISHED

过滤其他规则

当我们配置完毕允许开放的规则之后,添加过滤规则。有两种添加方式:

过滤所有非以上规则的请求:iptables -P INPUT DROP。

其他访问规则禁止访问:iptables -A INPUT -j REJECT。

上面两个命令,执行其中一个都可以了。执行第一个命名后的效果:

[root@iZuf63tu3fn1swasqa62h8Z ~]# iptables -L -n
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0  
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
ACCEPT    tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:443
ACCEPT    all  --  0.0.0.0/0            0.0.0.0/0            state ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80

我们会看到Chain INPUT (policy ACCEPT) 变成了Chain INPUT (policy DROP)

而如果执行的第二条命名就会:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination        
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0  
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:443
ACCEPT    all  --  0.0.0.0/0            0.0.0.0/0            state ESTABLISHED
ACCEPT    tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80     
 REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

到这里,我们的端口开放就配置完毕了。也就是说只有这三个端口才能访问服务器,如果是其他端口。就会直接被拒绝。

PS:我们可以通过开放和关闭80端口,来验证一下防火墙是否正常拦截。

注意:你如果是使用的阿里云服务器,在阿里云后台中的安全组中也要开放相关的端口。否则仍然无法访问。

屏蔽IP

我们上面指定了固定开放的端口。其他端口全部禁止访问。如果有攻击的ip地址,例如通过lastb 命令查询到的大量工具访问的ip。我们如何添加到防火墙配置中呢?很简单,直接指定IP禁止访问即可:

[root@iZuf63tu3fn1swasqa62h8Z ~]# iptables -I INPUT -s 85.31.46.0/24 -j DROP[root@iZuf63tu3fn1swasqa62h8Z ~]# iptables -I INPUT 

-s 170.64.130.0/24 -j DROP

0/24 代表屏蔽了:

170.64.130.0~170.64.130.255 之间的全部ip。

保存iptables 配置

当我们配置完毕后,需要执行保存操作。否则重启系统后。规则会丢失。因为当前操作只是存储在了内存中。

关键命令为:service iptables save。具体示例如下所示:

[root@iZuf63tu3fn1swasqa62h8Z ~]# service iptables save

iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

就代表保存成功了。我们还可以将iptables添加到自启动chkconfig中,示例如下:

[root@iZuf63tu3fn1swasqa62h8Z ~]# chkconfig iptables on

Note: Forwarding request to 'systemctl enable iptables.service'. Created symlink /etc/systemd/system/multi-

user.target.wants/iptables.service → /usr/lib/systemd/system/iptables.service. [root@iZuf63tu3fn1swasqa62h8Z ~]#

好了,今天的小知识你学会了吗?

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
点击input框没有光标怎么办
点击input框没有光标怎么办

点击input框没有光标的解决办法:1、确认输入框焦点;2、清除浏览器缓存;3、更新浏览器;4、使用JavaScript;5、检查硬件设备;6、检查输入框属性;7、调试JavaScript代码;8、检查页面其他元素;9、考虑浏览器兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

185

2023.11.24

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

407

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

418

2023.11.14

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

2188

2024.03.12

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2065

2024.08.16

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2065

2024.08.16

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1373

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

705

2023.06.29

拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

97

2026.01.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.8万人学习

Git 教程
Git 教程

共21课时 | 3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号