学习啦>学习电脑>操作系统>Linux教程>

如何搭建一个安全的Linux服务器

春健分享

  开发网站的时候,常常需要自己配置Linux服务器。如何搭建一个安全的Linux服务器?下面跟着学习啦小编一起来了解一下吧。

  如何搭建一个安全的Linux服务器

  在Linux系统中,TCP/IP网络是通过若干个文本文件进行配置的,也许你需要编辑这些文件来完成联网工作,但是这些配置文件大都可以通过配置命令linuxconf(其中网络部分的配置可以通过netconf命令来实现)。下面介绍基本的TCP/IP网络配置文件。

  */etc/conf.modules文件

  该配置文件定义了各种需要在激活时加载的模块的参数信息。这里主要着重讨论关于网卡的配置。在使用Linux做网关的情况下,Linux服务器至少需要配置两块网卡。为了减少激活时可能出现的问题,Linux内核不会自动检测多个网卡。对于没有将网卡的驱动编译到内核而是作为模块动态加载的系统若需要安装多块网卡,应该在“conf.modules”文件中进行相应的配置。

  若设备驱动被编译为模块(内核的模块):对于PCI设备,模块将自动检测到所有已经安装到系统上的设备;对于ISA卡,则需要向模块提供IO地址,以使模块知道在何处寻找该卡,这些信息在“/etc/conf.modules”中提供。

  对于PCI卡,仅仅需要alias命令来使ethN和适当的驱动模块名关联,PCI卡的IO地址将会被自动的检测到。对于PCI卡,编辑“conf.modules”文件如下:aliaseth03c905aliaseth13c905若驱动已经被编译进了内核:系统激活时的PCI检测程序将会自动找到所有相关的网卡。ISA卡一般也能够被自动检测到,但是在某些情况下,ISA卡仍然需要做下面的配置工作:

  在“/etc/lilo.conf”中增加配置信息,其方法是通过LILO程序将激活参数信息传递给内核。对于ISA卡,编辑“lilo.conf”文件,增加如下内容:append="ether="0,0,eth0ether="0,0,eth1"注:先不要在“lilo.conf”中加入激活参数,测试一下你的ISA卡,若失败再使用激活参数。

  如果用传递激活参数的方法,eth0和eth1将按照激活时被发现的顺序来设置。

  */etc/HOSTNAME文件:

  该文件包含了系统的主机名称,包括完全的域名,如:deep.openarch.com

  */etc/sysconfig/network-scripts/ifcfg-ethN文件:

  在RedHat中,系统网络设备的配置文件保存在“/etc/sysconfig/network-scripts”目录下,ifcfg-eth0包含第一块网卡的配置信息,ifcfg-eth1包含第二块网卡的配置信息。

  */etc/resolv.conf文件:

  该文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件,示例如下:

  searchopenarch.comnameserver208.164.186.1nameserver208.164.186.2

  “searchdomainname.com”表示当提供了一个不包括完全域名的主机名时,在该主机名后添加domainname.com的后缀;“nameserver”表示解析域名时使用该地址指定的主机为域名服务器。其中域名服务器是按照文件中出现的顺序来查询的。

  */etc/host.conf文件:

  该文件指定如何解析主机名。Linux通过解析器库来获得主机名对应的IP地址。下面是一个“/etc/host.conf”的示例:

  orderbind,hosts

  multion

  ospoofon

  “orderbind,hosts”指定主机名查询顺序,这里规定先使用DNS来解析域名,然后再查询“/etc/hosts”文件(也可以相反)。

  “multion”指定是否“/etc/hosts”文件中指定的主机可以有多个地址,拥有多个IP地址的主机一般称为多穴主机。

  “nospoofon”指不允许对该服务器进行IP地址欺骗。IP欺骗是一种攻击系统安全的手段,通过把IP地址伪装成别的计算器,来取得其它计算器的信任。

  */etc/sysconfig/network文件

  该文件用来指定服务器上的网络配置信息。

  */etc/hosts文件

  当机器激活时,在可以查询DNS以前,机器需要查询一些主机名到IP地址的匹配。这些匹配信息存放在/etc/hosts文件中。在没有域名服务器情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址。

  */etc/inetd.conf文件

  众所周知,作为服务器来说,服务端口开放越多,系统安全稳定性越难以保证。所以提供特定服务的服务器应该尽可能开放提供服务必不可少的端口,而将与服务器服务无关的服务关闭,比如:一台作为www和Ftp服务器的机器,应该只开放80和25端口,而将其它无关的服务如:fingerauth等服务关掉,以减少系统漏洞。

  而inetd,也叫作“超级服务器”,就是监视一些网络请求的守护进程,其根据网络请求来调用相应的服务进程来处理连接请求。inetd.conf则是inetd的配置文件。inetd.conf文件告诉inetd监听哪些网络端口,为每个端口激活哪个服务。在任何的网络环境中使用Linux系统,第一件要做的事就是了解一下服务器到底要提供哪些服务。不需要的那些服务应该被禁止掉,最好卸载掉,这样黑客就少了一些攻击系统的机会。查看“/etc/inetd.conf”文件,了解一下inetd提供哪些服务。用加上注释的方法(在一行的开头加上#号),禁止任何不需要的服务,再给inetd进程发一个SIGHUP信号。

  第一步:把文件的权限限改成600。

  [root@deep]#chmod600/etc/inetd.conf

  第二步:确信文件的所有者是root。

  [root@deep]#stat/etc/inetd.conf

  第三步:编辑“inetd.conf”文件(vi/etc/inetd.conf),禁止所有不需要的服务,如:ftp、telnet、shell、login、exec、talk、ntalk、imap、pop-2、pop-3、finger、auth,等等。如果你觉得某些服务有用,可以不禁止这些服务。但是,把这些服务禁止掉,系统受攻击的可能性就会小很多。改变后的“inetd.conf”文件的内容如下面所示:

  #Tore-readthisfileafterchanges,justdoa'killall-HUPinetd'##echostreamtcpnowaitrootinternal#echodgramudpwaitrootinternal#discardstreamtcpnowaitrootinternal#discarddgramudpwaitrootinternal#daytimestreamtcpnowaitrootinternal#daytimedgramudpwaitrootinternal#chargenstreamtcpnowaitrootinternal#chargendgramudpwaitrootinternal#timestreamtcpnowaitrootinternal#timedgramudpwaitrootinternal##Thesearestandardservices.##ftpstreamtcpnowaitroot/usr/sbin/tcpdin.ftpd-l-a#telnetstreamtcpnowaitroot/usr/sbin/tcpdin.telnetd##Shell,login,exec,comsatandtalkareBSDprotocols.

  看过“ 如何搭建一个安全的Linux服务器 ”的人还看了:

1.如何安全设置Apache Web服务器

2.Ubuntu 用VSFTP搭建FTP服务器设置方法的步骤

3.怎么在Ubuntu上安装LAMP服务器系统?

4.电脑高手必读 服务器基础知识大全(图文)

5.关于如何在linux删除用户组和inux添加用户组的方法

    648875