来源:赛迪网 作者:kid
* /etc/hosts.allow 文档
但是对于telnet、ftp等服务,假如将其一同关闭,那么对于管理员需要远程管理时,将很不方便。Linux提供另外一种更为灵活和有效的方法来实现对服务请求用户的限制,从而能够在确保安全性的基础上,使可信任用户使用各种服务。Linux提供了一个叫TCP wrapper的程式。在大多数发布版本中该程式往往是缺省地被安装。利用TCP wrapper您能够限制访问前面提到的某些服务。而且TCP wrapper的记录文档记录了任何的企图访问您的系统的行为。通过last命令查看该程式的log,管理员能够获知谁曾或企图连接您的系统。
在/etc目录下,有两个文档:hosts.deny hosts.allow 通过配置这两个文档,您能够指定哪些机器能够使用这些服务,哪些不能够使用这些服务。
当服务请求到达服务器时,TCP wrapper就按照下列顺序查询这两个文档,直到碰到一个匹配为止:
1.当在/etc/hosts.allow里面有一项和请求服务的主机地址项匹配,那么就允许该主机获取该服务
2.否则,假如在/etc/hosts.deny里面有一项和请求服务的主机地址项匹配,就禁止该主机使用该项服务。
3.假如相应的配置文档不存在,访问控制软件就认为是个空文档,所以能够通过删除或移走配置文档实现对清除任何配置。在文档中,空白行或以#开头的行被忽略,您能够通过在行前加 # 实现注释功能。
配置这两个文档是通过一种简单的访问控制语言来实现的,访问控制语句的基本格式为:
程式名列表:主机名/IP地址列表。
程式名列表指定一个或多个提供相应服务的程式的名字,名字之间用逗号或空格分割,能够在inetd.conf文档里查看提供相应服务的程式名:如上面的文档示例中,telent所在行的最后一项就是所需的程式名:in.telnetd。
主机名/IP地址列表指定允许或禁止使用该服务的一个或多个主机的标识,主机名之间用逗号或空格分隔。程式名和主机地址都能够使用通配符,实现方便的指定多项服务和多个主机。
Linux提供了下面灵活的方式指定进程或主机列表:
1.一个以"."起始的域名串,如 .amms.ac.cn 那么www.amms.ac.cn就和这一项匹配
2.以"."结尾的IP串如 202.37.152. 那么IP地址包括202.37.152. 的主机都和这一项匹配。
3.格式为n.n.n.n/m.m.m.m表示网络/掩码,假如请求服务的主机的IP地址和掩码的位和的结果等于n.n.n.n 那么该主机和该项匹配。
4.ALL表示匹配任何可能性
5.EXPECT表示除去后面所定义的主机。如:list_1 EXCEPT list_2 表示list_1主机列表中除去List_2所列出的主机
6.LOCAL表示匹配任何主机名中不包含"."的主机
上面的几种方式只是Linux提供的方式中的几种,但是对于我们的一般应用来说是足够了。我们通过举几个例子来说明这个问题:
例一:我们只希望允许同一个局域网的机器使用服务器的ftp功能,而禁止广域网上面的ftp服务请求,本地局域网由 202.39.154.、202.39.153.和202.39.152. 三个网段组成。
在hosts.deny文档中,我们定义禁止任何机器请求任何服务:
ALL:ALL
在hosts.allow文档中,我们定义只允许局域网访问ftp功能:
in.ftpd -l –a: 202.39.154 202.39.153. 202.39.152.
这样,当非局域网的机器请求ftp服务时,就会被拒绝。而局域网的机器能够使用ftp服务。此外,应该定期检查/var/log目录下的纪录文档,发现对系统安全有威胁的登录事件。last命令能够有效的查看系统登录事件,发现问题所在。
最后tcpdchk是检查TCP_WAPPERS配置的程式。他检查TCP_WAPPERS的配置,并报告他能够发现的问题或潜在的问题。在任何的配置都完成了之后,请运行tcpdchk程式:
[root@deep]# tcpdchk
* /etc/services 文档
端口号和标准服务之间的对应关系在RFC 1700 “Assigned Numbers”中有周详的定义。“/etc/services”文档使得服务器和客户端的程式能够把服务的名字转成端口号,这张表在每一台主机上都存在,其文档名是“/etc/services”。只有“root”用户才有权限修改这个文档,而且在通常情况下这个文档是没有必要修改的,因为这个文档中已包含了常用的服务所对应的端口号。为了提高安全性,我们能够给这个文档加上保护以避免没有经过授权的删除和改变。为了保护这个文档能够用下面的命令:
[root@deep]# chattr i /etc/services
* /etc/securetty 文档
“/etc/securetty”文档允许您规定“root”用户能够从那个TTY设备登录。登录程式(通常是“/bin/login”)需要读取“/etc/securetty”文档。他的格式是:列出来的tty设备都是允许登录的,注释掉或是在这个文档中不存在的都是不允许root登录的。
注释掉(在这一行的开头加上#号)任何您想不让root登录的tty设备。
编辑securetty文档(vi /etc/securetty)象下面相同,注释掉一些行:
tty1
#tty2
#tty3
#tty4
#tty5
#tty6
#tty7
#tty8
* 使Control-Alt-Delete关机键无效
把“/etc/inittab”文档中的一行注释掉能够禁止用Control-Alt-Delete关闭电脑。假如服务器不是放在一个安全的地方,这很重要。
编辑inittab文档(vi /etc/inittab)把这一行:
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
改为:
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
用下面的命令使改变生效:
[root@deep]# /sbin/init q
* 改变“/etc/rc.d/init.d/”目录下的脚本文档的访问许可
/etc/rc.d/init.d/下的脚本主要包含了启动服务的脚本程式。一般用户没有什么必要知道脚本文档的内容。所以应该改变这些脚本文档的权限。
[root@deep]# chmod -R 700 /etc/rc.d/init.d/*
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




