随着网络 技术的不断发展 ,网络 安全已经成为人们日益关注的一个话题,特别是在电子商务,网上 银行 这些涉及人们切身利益方面显的更为重要; Linux是多用户,多任务,分时操作系统,在这样的环境中,需要对文件的控制权限,系统应用程序,守护进" name="description" />
MILY: 宋体">随着网络技术的不断发展,网络安全已经成为人们日益关注的一个话题,特别是在电子商务,网上银行这些涉及人们切身利益方面显的更为重要;
Linux是多用户,多任务,分时操作系统,在这样的环境中,需要对文件的控制权限,系统应用程序,守护进程,服务以及其它的一些任务管理,比如用户管理,磁盘配额,以及内核的更新升级。正确的配置这些文件,可以防止大部分的外来攻击。本文主要内容是向你介绍如何防止外来的访客非法的进入你的系统从面达到安全的目的,由于篇幅的限制,不可能面面具到,请大家原谅.
我的配置环境是Red Hat Linux 8.0,由于水平有限,出错的地方还请多多指教。
TCPD是系统的一个守护进程,你可能不知道它的存在,但它的作用是不容忽视的,它的作用是限制非法访客进入你的系统,从而防止这些外部的非法攻击;
TCPD的工作过程先比较/etc/hosts.allow和/etc/hosts.deny两个文件然后在决定某人是否有权限进入系统
下面详细说是一下它的工作原理:
1. 某客户想进入系统,它首先要向服务器发出请求;
2. 系统的TCPD进程被激活并且在系统日志中添加一条记录,记下这个连接;
3. TCPD查找host.allow的文件;
若其中有相应的记录后则允许该访客进入同时自己也进入休眠状态,
4. TCPD检查文件hosts.deny
若其中有与其相匹配的记录,TCPD将终止该访客的访问。
5. 还有一种情况就是这两个文件中都没有与之相匹的记录,或者这两个文件是空的,那么TCPD将允许该访客进入系统访问之后它也转入睡眠状态等待新的连接请求;
如果我们在当初安装linux系统时并没有设置hosts.allow和hosts.deny 这个文件,那么TCPD默认的是任何人都可以进入你的系统,还有一种情况就是当TCPD检查完hosts.allow后并找到相匹配的记录后它就进会转入休眠的状态,富有攻击性的访客进入以后可以修改hosts.deny从而使系统拒绝为任何其它用户服务。
让我们在终端里面看一下帮助文档man 5 hosts_aclearcase/" target="_blank" >ccess,
daemon_list : client_list [ : shell_command ]
daemon_list is a list of one or more daemon process names (argv[0] val?/span>
ues) or wildcards (see below).
client_list is a list of one or more host names, host addresses, pat?/span>
terns or wildcards (see below) that will be matched against the client host name or address.
The more complex forms daemon@host and user@host are explained in the sections on server endpoint patterns and on client username lookups,respectively.
List elements should be separated by blanks and/or commas.由于篇幅原因不能写出所有的文档,
以上的帮助文档就是用来说明hosts.[allow|deny]的设置格式,以用来确定一个服务进程列表和一个客户端列表,用“:”隔开。
通过查看/etc/.netd.conf找来到你系统所提供服务的列表;
下面我们来说一下/etc/hosts.allows设置规则:
1. 如果你想让任何域内的主机都能够进入系统,只须在域名前加一个“。”即可;
比如:.bar.com 会包括“foo.bar.com”,”sailors.bar.com”等
2. 如果你想让任何域内的IP都被许可进入系统,只须在IP后加上一个“。”
比如:192.168.3.会包括192.168.3.1和192.168.3.2等;
并且你也可以使用一些通配符
※ ALL 匹配全部。其在域名列表里则代表任何域名;在客户机列表里则代表任何客户机;
※ LOCAL匹配不包含小圆点的主机名,它是允许所有包含在/etc/resolv.conf中的记录进入。
※ Except 并不是一个真正的通配符,但是它确实是有用的它的用法如下:
ALL:ALL except .leetin-haxor.org 是向所有除了“*.leetin-haxor.org”以外的域名提供服务;
好了,下面我们来看一下例子,假设我们是一个家庭局域网,linux服务器为每个成员服务
linux.home.net 192.168.3.1
dad.home.net 192.168.3.2
mom.home.net 192.168.3.3
sis.home.net 192.168.3.4
bro.home.net 192.168.3.5
在这里我们设置linux主机使其信任每个家庭成员,非家庭成员的则无法访问主机;
修改/etc/hosts.allow中:
#/etc/hosts.allow for linux.home.net
ALL:.home.net
修改/etc/hosts.deny中:
#/etc/hosts.deny for linux.home.net
ALL:ALL
假设我们要拒绝mom.home.net进入服务器,我们可以这样设置
#/etc/hosts.allow for linux.home.net
ALL:.home.net except mom.home.net
如查有一位来自friend.com的朋友想访问我们的FTP资源,我们可以这样来设置:
#/etc/hosts.allow for linux.home.net
ALL:.home.net except mom.home.net
Wu.ftpd: .friend.com
这样还是不够完善,因为域名mom.home.net被禁止了,但是直接通过IP地址还是可以达到访问的目的,因此我们须要多增加一条限制IP的记录
#/etc/hosts.allow for linux.home.net
ALL:.home.net except mom.home.net
ALL:192.168.3. except 192.168.3.3
Wu.ftpd: .friend.com
很简单吧!
同样,如果你想使大部分人都能进入你的服务器并且只拒绝少数人进入,你可以设置hosts.deny这个文件,在这里就不在多啰嗦了。
通过上面的方法,正确的设置好你的/etc/hosts.allow 和/etc/hosts.deny两个文件后,基本上可以防止非信任域的大部分攻击,当然了,危险大部分还是存在于内部,对于这方面的设置在网上有很多这方面的文章,而且的讲的也超详细,我就不在多说了.
我也是个菜鸟,接触网络安全没有多久,只能算是业余的爱好,希望这个业余人员能为CU作点贡献吧!呵呵