服务器只允许堡垒机登录(服务器只允许特定ip访问)

偷天换日,特殊方法登录只允许通过堡垒机登录的服务器

过年期间,本想利用假期休整一下身心,给身体和精神放松放松。但是领导的电话还是如期而至,几台重要服务器的出口链路中断导致服务器无法远程登录,领导要求远程更换服务器的IP地址,切换到其它出口。服务器不能跑服务,意味着领导赚不了钱,领导没有钱,我的奖金就会流浪到太阳系之外,立即拿出笔电开始思考问题解决方法。

因几台服务器所在出口链路中断,导致业务停摆,同时无法远程登录。

针对第一个问题,万幸的是在中断服务器的交换机下还有我们走其它出口的服务器,即通过内网环境,可以直接先登录到同一交换机下的正常服务器,再从这台服务器跳转到中断服务器。

因为网关均设置在三层交换机上,三层交换机上有中断服务器的路由表,所以正常服务器是可以直接访问中断服务器的。然而,正常服务器并不能远程登录中断服务器,这是因为中断服务器均限制了登入IP,只有我们之前设定的堡垒机允许登入。

我们先联系了机房管理员,但当班的管理员说出没用过Linux后,这条路已被堵死。难道为了改几个IP要搭飞机去?老板会把我kill -9掉。 看来只有另辟蹊径了,既然中断服务器只认堡垒机,我们何不利用正常的服务器伪装成堡垒机的IP地址和中断服务器进行通信。说干就干,我们来一回偷天换日。

我们先模拟推演实现的方式,假设正常服务器的IP为 192.168.100.1 ,中断服务器的IP是 192.168.200.1 ,堡垒机的IP是 192.168.300.1 。

首先,我们要让192.168.100.1伪装成192.168.300.1和192.168.200.1通信。第二步是在三层交换机上手动添加到192.168.300.1的回程路由,强行将目的地址为192.168.300.1的报文仍给192.168.100.1服务器上。第三步是在192.168.100.1上接收访问192.168.300.1的报文。这样整个伪装过程就完成了,网络连接已经建立起来,理论上可以通过192.168.100.1远程登录192.168.200.1服务器了。

接下来我们开始逐步实现推演过程

首先是地址伪装,我们要用到iptables,利用iptables来伪装源地址。

做到这一步,我们已经可以以堡垒机的身份192.168.300.1向中断服务器192.168.200.1发送网络请求了,但工作还没有完成,此时虽然可以发送报文到中断服务器,但回来的报文我们的正常服务器收不到。

接下来需要在三层交换机上增加一条路由信息

最后一步,在正常服务器上增加一个堡垒机的IP

正常情况下,服务器已经拥有2个IP地址了,配置这个的目的是为了接收目的地址是192.168.300.1的报文,TCP有个机制,如果目的地址不是服务器自己的IP地址并且也不是广播地址,会自动丢弃该报文。

经过以上三步,我们已经完成了偷天换日的全部工作,敲下输悉的ssh 192.168.200.1命令,熟悉的登录提示出现了,立即登录将中断服务器,修改IP地址切换到正常的出口链路,服务恢复正常,我也可以继续休假了。

Linux服务器集群只允许堡垒机SSH登录

    在局域网中的Linux服务器集群,为了保障运维安全,只能从堡垒机登录到各个Linux服务器。那么需要对Linux服务器集群进行安全加固,限制访问权限。在堡垒机上可以部署脚本来记录用户操作的审计日志(详情参考笔者的文章),那么整个局域网的Linux服务器集群的安全性就可以大大提高。

    堡垒机作用明显,其提供运维统一入口和安全审计功能,切断直接访问和事后审计定责,解决“运维混乱”变得“运维有序” 。

   下面是三种方法总结。分别从服务端,系统端、防火墙端来完成只允许堡垒机SSH登录的功能。

1、/etc/ssh/sshd_config

    修改添加AllowUsers到ssh配置文件/etc/ssh/sshd_config  :

    AllowUsers myuser@20.132.4.*

    然后重启 sshd服务:systemctl restart sshd

2、hosts.allow与hosts.deny

    修改/etc/hosts.deny中添加设置 sshd : ALL ,拒绝所有的访问;

    修改/etc/hosts.allow,添加设置sshd : 20.132.4.* ,单独开启某个IP地址 。

    这两个文件优先级为先检查hosts.deny,再检查hosts.allow。

    更加详细信息参考笔者的文章-Linux中hosts.allow与hosts.deny  。

3、iptables防火墙

    tcp协议中,禁止所有的ip访问本机的22端口。

    iptables -I INPUT -p tcp--dport 22 -j DROP

    只允许20.132.4.* 访问本机的22端口

    iptables  -I  INPUT  -s  20.132.4.*   -ptcp  --dport  22  -j   ACCEPT

    另外/etc/pam.d/sshd也可以提供访问控制功能,调用的pam_access.so模块是根据主机名、IP地址和用户实现全面的访问控制,pam_access.so模块的具体工作行为根据配置文件/etc/security/access.conf来决定。但是囿于资料过少,待以后遇到再解决把。

为什么单堡垒主机容易被绕行?

现在的大多数行业往往都拥有大量服务器,如何安全并高效的管理这些服务器便成为每个系统运维或安全运维人员的必要工作。而比较常见的方案就是搭建堡垒机环境作为线上服务器的入口,所有服务器只能先通过堡垒机进行登陆再访问。

运维人员在维护的过程中,首先要统一登录到这台服务器上,然后从这台服务器再登录到目标设备进行维护。

堡垒机来防止绕过的方式是所有的服务器都只允许堡垒机这台主机的IP进行网络连接。那么我们就必须连接到这台堡垒机上,才能进行下一步连接服务器的操作。想要连接这台堡垒机,堡垒机就需要对外开放端口,对外开放端口了就一定会有风险。

未经允许不得转载:便宜VPS网 » 服务器只允许堡垒机登录(服务器只允许特定ip访问)