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”中提供

例如我们有两块ISA总线3c509卡个IO地址是0x300个是0x320编辑“conf.modules”文件如下:

alias eth0 3c509 alias eth1 3c509 options 3c509 io=0x300,0x320





这是介绍说明3c509驱动应当分别以eth0或eth1名称被加载(alias eth0eth1)并且它们应该以参数io=0x3000x320被装载来通知驱动到哪里去寻找网卡其中0x是不可缺少

对于PCI卡仅仅需要alias命令来使ethN和适当驱动模块名关联PCI卡IO地址将会被自动检测到对于PCI卡编辑“conf.modules”文件如下:

alias eth0 3c905 alias eth1 3c905





若驱动已经被编译进了内核:系统启动时PCI检测将会自动找到所有相关网卡ISA卡般也能够被自动检测到但是在某些情况下ISA卡仍然需要做下面配置工作:

在“/etc/lilo.conf”中增加配置信息其思路方法是通过LILO将启动参数信息传递给内核对于ISA卡编辑“lilo.conf”文件增加如下内容:

append=" ether="0,0,eth0 ether="0,0,eth1"





注:先不要在“lilo.conf”中加入启动参数测试下你ISA卡若失败再使用启动参数

如果用传递启动参数思路方法eth0和eth1将按照启动时被发现顺序来设置

* /etc/HOSTNAME 文件

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

*/etc/sysconfig/network-scripts/cfg-ethN 文件

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

下面是“/etc/sysconfig/network-scripts/cfg-eth0”文件举例:

DEVICE=eth0 IPADDR=208.164.186.1 NETMASK=255.255.255.0 NETWORK=208.164.186.0 BROADCAST=208.164.186.255 ONBOOT=yes BOOTPROTO=none USERCTL=no



若希望手工修改网络地址或在新接口上增加新网络界面可以通过修改对应文件(cfg-ethN)或创建新文件来实现

DEVICE=name    

name表示物理设备名字

IPADDR=addr    

addr表示赋给该卡IP地址

NETMASK=mask    
mask表示网络掩码

NETWORK=addr    

addr表示网络地址

BROADCAST=addr  

addr表示广播地址

ONBOOT=yes/no  

启动时是否激活该卡

none:

无须启动协议

bootp:

使用bootp协议

dhcp:

使用dhcp协议

USERCTL=yes/no      

是否允许非root用户控制该设备

*/etc/resolv.conf 文件

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

search openarch.com nameserver 208.164.186.1 nameserver 208.164.186.2 “search doname.com”





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

*/etc/host.conf 文件

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

order bind,hosts   multi _disibledevent=>
RORWARD_IPV4=yes

HOSTNAME=deep.openarch.com

GAREWAY=0.0.0.0

GATEWAYDEV=

NETWORK=yes/no    

网络是否被配置;

FORWARD_IPV4=yes/no    

是否开启IP转发功能

HOSTNAME=hostname hostname

表示服务器主机名

GAREWAY=gw-ip    

gw-ip表示网络网关IP地址

GAREWAYDEV=gw-dev  

gw-dw表示网关设备名如:etho等

注意:为了和老软件Software相兼容“/etc/HOSTNAME”文件应该用和HOSTNAME=hostname相同主机名

*/etc/hosts 文件

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

下面是个“/etc/hosts”文件举例:



最左边列是主机IP信息中间列是主机名任何后面列都是该主机别名旦配置完机器网络配置文件应该重新启动网络以使修改生效使用下面命令来重新启动网络:

/etc/rc.d/init.d/network restart





* /etc/inetd.conf 文件

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

而inetd也叫作“超级服务器”就是监视些网络请求守护进程其根据网络请求来相应服务进程来处理连接请求inetd.conf则是inetd配置文件inetd.conf文件告诉inetd监听哪些网络端口为每个端口启动哪个服务

在任何网络环境中使用Linux系统件要做事就是了解下服务器到底要提供哪些服务不需要那些服务应该被禁止掉最好卸载掉这样黑客就少了些攻击系统机会

查看“/etc/inetd.conf”文件了解下inetd提供哪些服务用加上注释思路方法(在开头加上#号)禁止任何不需要服务再给inetd进程发个SIGHUP信号

步:把文件许可权限改成600

[root@deep]# chmod 600 /etc/inetd.conf





第 2步:确信文件所有者是root

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



第 3步:编辑“inetd.conf”文件(vi /etc/inetd.conf)禁止所有不需要服务如:ftp、 telnet、 shell、 login、 exec、talk、ntalk、 imap、 pop-2、pop-3、finger、auth等等

如果你觉得某些服务有用可以不禁止这些服务但是把这些服务禁止掉系统受攻击可能性就会小很多改变后“inetd.conf”文件内容如下面所示:

# To re-read this file after changes, just do a 'killall -HUP inetd' # #echo stream tcp nowait root ernal #echo dgram udp wait root ernal #discard stream tcp nowait root ernal #discard dgram udp wait root ernal #daytime stream tcp nowait root ernal #daytime dgram udp wait root ernal #chargen stream tcp nowait root ernal #chargen dgram udp wait root ernal #time stream tcp nowait root ernal #time dgram udp wait root ernal # # These are standard services. # #ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a #telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd # # Shell, login, exec, comsat and talk are BSD protocols. # #shell stream tcp nowait root /usr/sbin/tcpd in.rshd #login stream tcp nowait root /usr/sbin/tcpd in.rlogind #exec stream tcp nowait root /usr/sbin/tcpd in.rexecd #comsat dgram udp wait root /usr/sbin/tcpd in.comsat #talk dgram udp wait root /usr/sbin/tcpd in.talkd #ntalk dgram udp wait root /usr/sbin/tcpd in.ntalkd #dtalk stream tcp wait nobody /usr/sbin/tcpd in.dtalkd # # Pop and imap mail services et al # #pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d #pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d #imap stream tcp nowait root /usr/sbin/tcpd imapd # # The Internet UUCP service. # #uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/lib/uucp/uucico -l # # Tftp service is provided primarily for booting. Most sites # run this _disibledevent=> [root@deep /root]# killall -HUP inetd





第 4步:

为了保证“inetd.conf”文件安全可以用chattr命令把它设成不可改变把文件设成不可改变只要用下面命令:

[root@deep]# chattr +i /etc/inetd.conf





这样可以避免“inetd.conf”文件任何改变(意外或是别原因)个有“i”属性文件是不能被改动:不能删除或重命名不能创建这个文件链接不能往这个文件里写数据只有系统管理员才能设置和清除这个属性如果要改变inetd.conf文件你必须先清除这个不允许改变标志:

[root@deep]# chattr -i /etc/inetd.conf





但是对于诸如sendmailnamedwww等服务由于它们不象fingertelnet等服务在请求到来时由inet守护进程启动相应进程提供服务而是在系统启动时作为守护进程运行

而对于redhat linux提供了个linuxconfig命令可以通过它在图形界面下交互式地设置是否在启动时运行相关服务也可以通过命令来设置是否启动时启动某个服务如:[root@deep]# chkconfig –level 35 named off
Tags:  linux邮件服务器 linux服务器 服务器详解 linux服务器配置

延伸阅读

最新评论

发表评论