APP下载

快速架设安全的Linux服务器组

2020-06-20河南刘京义

网络安全和信息化 2020年6期
关键词:内网网络服务网卡

■ 河南 刘京义

服务器独立运作的优点

提到服务器架构,我们必须注意的问题是,服务器一定要做到“独立自主”。也就是说,不要将各种服务组件一股脑地安装到一台服务器上,而一定要将不同的服务组件安装到不同的主机上,即提供Web服务的服务组件安装到一台服务器上,提供FTP服务的组件安装到另外一台服务器上等。

这样,每台服务器只提供一种服务,不仅可以有效节省服务器资源,而且一旦某个服务组件(例如提供Web服务的Apache)出现了漏洞,黑客也只能攻击该Web服务器,而无法直接攻击其它服务器(例如提供数据服务的MySQL数据库服务器等)。

所以,让服务器独立自主的优点就体现出来了,当遇到黑客攻击时,可以将危害和损失降低到最小。

服务器组的构架原理

当然,仅仅将服务器分开架设还是不够的,因为每台服务器除了运行各自的服务组件外,Linux系统自身还默认开放了必要的服务,对应的也就开启了与之关联的网络端口。

为了能让Linux正常运行,我们不能简单的将这些服务和端口全部关闭。因此,想让服务器更加安全地运行,就必须留用有用的端口,而将其它无关的端口彻底屏蔽掉。

这就需要设计一个过滤器,将没用的端口全部屏蔽。例如,对一个典型的网络来说可以在网关主机上设置两块网卡,其中的eth0网卡用于连接Internet,eth1网卡用来连接内网各服务器。在网络拓扑图中可以看到,提供各种网络服务的服务器全部使用内网地址,其目的是不将其暴露在Internet上,而将需要的服务所对应的端口通过NAT映射出去,这样就可以把所需的网络服务提供给外网用户使用,如图1所示。

接下来就简单讲解一下这种安全性较高的服务器架设方法,为了简单起见,在这里就以Web服务器为例进行说明。

图1 架设服务器组的示例网络拓扑图

因为不同的网络服务器虽然使用的端口各异,但是映射的方法却大体相同。您可以根据不同的网络服务,修改对应到的端口就行了。

在网关服务器上创建运行环境

这里使用的系统为Red Hat Enterprise Linux 4,虚拟机为Vmware。

在Linux中安装虚拟机的操作比较简单,一般来说,Linux版的Vmware提供了两个安装文件,一个Tar压缩包格式,一个为RPM包格式。可以根据需要选择,如果想快速安装,可以打开终端,执行“su-”命令切换到Root账户环境。注意这里使用了“su-”命令而不是“su”命令,其本质是“su”命令只是切换了root身份,但Shell环境仍然是普通用户身份,而“su -”连用户和Shell环境一起切换成root身份。

之后执行 “rpm -ivh VMwareZTools-x.x.xxxxxx.i386.rpm”命令,就可以执行安装操作了(“x.x.x-xxxxx”代表具体的版本号)。当然,也可以在命令行中执行“tar -zxvf VMwareTools-x.x.x-xxxxx.tar.gz -c/tmp”命令,对其解压缩到“/tmp”路径中。接着执行“cd/tmp/vmwaretools-distrib”和“./vmware-install.pl”命令,执行VMware的安装脚本,这个脚本是用Perl编写的,安装完成后,需要对其进行配置,先进入“/usr/bin”目录,执行“ls/usr/bin/*.pl”命令查找“vmware-configtools.pl”文件,找到后执行“./vmware-config-tools.pl”运行该脚本,之后按照提示进行配置。

当然,如果在KDE桌面环境下安装和配置Vmware,那么操作起来就更加简单。

执行“service vmware start”和“service vmware stop”命令,可以启动或关闭Vmware服务。之后在Vmware配置环境中添加两块虚拟网卡,具体操作这里不再赘述。

注意,在添加虚拟网卡前,必须停止Wmware服务。

如前所述,我们在虚拟机中虚拟出两块网卡,分别是eth0和eth1。虚拟完成后重新启动系统。因为虚拟了两块网卡,分别连接两个不同的网段,需要对其分别进行配置,执行如图2所示的指令。

图2 配置虚拟机两块网卡的不同网段

可以看到,两个虚拟网卡配置文件分别为“ifcfgeth0”和“ifcfg-eth1”。我们先编辑“ifcfg-eth0”,使其地址为“192.168.62.2”,具体命令为:

之后再执行“[root@router~]# vi ifcfg-eth1”命令,对“ifcfg-eth1”文件进行编辑,将其地址设置为“192.168.0.1”,具体方法与上述完全一样。之后执行“[root@router~]# service network restart”命令,重启网络服务,使上述配置信息生效。

配置网关服务器

配置好虚拟网卡后,执行“ifconfig”命令,结果如下:

执行“route”命令查看路由表,内容如图4所示。

图3 查看路由表内容

因为我们要提供路由转发功能,所以需要在命令行中执行“# vi/etc/sysctl.conf”命令,使用VI编辑器将该文件中的“net.ipv4.ip_forward=0”修改为“net.ipv4.ip_forward=1”,这样在每次开机后即可自动转发。

完成关于网关的设置后,接下来配置Web服务器。

配置内网Web服务器

和上面谈到的设置网关IP一样,同样需要设置好内网Web服务器的IP,具体方法基本相同。在命令行中来查看其配置信息。

之后执行“# more/etc/resolv.conf”命令,将该文件中的“nameserver”的值设置为“192.168.0.1”,使其指向网关地址。之后执行“[root@router~]# cd/var/www/html/”命令,进入该路径中,在其下创建一个HTML文件,内容可以随意,主要用来测试Web服务是否可用。执行“#service httpd start”命令,开启Apache服务。在其它主机上打开浏览器,访问“http://192.168.62.2”,对该网页进行访问,但是却没有成功。原因在于还没有将内网Web服务器的80端口映射出去,接下来需要在网关主机上设置NAT映射。

在网关服务器上设置NAT映射

在Linux中,使用iptables语句,就可以设置所需的NAT映射,其功能是让外界用户可以访问我们的内网Web服务器。iptables的语法比较复杂,这里不能逐一解释。

因为iptables语句的特点是逐条以此执行,为了提高效率,在这里笔者设计了一个名为“webviste.sh”的脚本,来提高执行效率,执行“# vi webviste.sh”,其内容如下:

该脚本首先定义了“router”和“www”两个变量,分别表示网关地址和内网Web服务器地址。这其中最重要的是最后两条指令,其中第一条的作用是将内网Web服务器地址伪装成外网IP地址,让内网的Web服务器可以为外网用户提供服务。第二条的作用是允许任何外网的主机访问内网Web服务器的80端口。

这样,外网用户就可以自由的访问内网的Web服务器了。这里我们仅仅提供80端口接受外部连接请求,而内网Web服务器的其它端口是禁止外网用户访问的,因为其根本没有通过网关主机映射出去。

这样就可以有效提高内网Web服务器的安全性。

执行“# chmod +x webviste.sh”命令,将该脚本设置为可执行状态。执行“# ./test.sh”命令,来执行该脚本。

这样,针对内网Web主机的80端口映射操作就完成了,之后在其它主机上打开浏览器,访问网址“http://192.168.62.2”,就可以看到我们之前预设的测试网页了。

当然,如果内网其它主机还提供了FTP,邮件收发等服务,也可以按照同样的方法进行端口映射,来安全有效的提供各种网络服务。

猜你喜欢

内网网络服务网卡
《压缩机技术》网络服务
在DDS 中间件上实现双冗余网卡切换的方法
《压缩机技术》网络服务
网络服务合同的法律问题研究
Server 2016网卡组合模式
企业内网中的数据隔离与交换技术探索
地下车库柱网布置设计思路
QoS技术在企业内网实践探索
挑战Killer网卡Realtek网游专用Dragon网卡
云计算趋势下的蓝汛内容感知网络服务