分享
 
 
 

Linux 网络安全问题及其对策

王朝system·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

文章摘要:

Linux作为开放式操作系统具有很多优点,但也存在一些安全隐患。关于如何解决这些隐患,为应用提供一个安全的操作平台,本文会告诉你一些最基本、最常用,同时也是最有效的招数。

正文:

Linux 网络安全问题及其对策

背景

Linux不论在功能上、价格上或性能上都有很多优点,然而,作为开放式操作系统,它不可避免地存在一些安全隐患。关于如何解决这些隐患,为应用提供一个安全的操作平台,本文会告诉你一些最基本、最常用,同时也是最有效的招数。

Linux是一种类Unix的操作系统。从理论上讲,Unix本身的设计并没有什么重大的安全缺陷。多年来,绝大多数在Unix操作系统上发现的安全问题主要存在于个别程序中,所以大部分Unix厂商都声称有能力解决这些问题,提供安全的Unix操作系统。但Linux有些不同,因为它不属于某一家厂商,没有厂商宣称对它提供安全保证,因此用户只有自己解决安全问题。

Linux是一个开放式系统,可以在网络上找到许多现成的程序和工具,这既方便了用户,也方便了黑客,因为他们也能很容易地找到程序和工具来潜入Linux系统,或者盗取Linux系统上的重要信息。不过,只要我们仔细地设定Linux的各种系统功能,并且加上必要的安全措施,就能让黑客们无机可乘。

一般来说,对Linux系统的安全设定包括取消不必要的服务、限制远程存取、隐藏重要资料、修补安全漏洞、采用安全工具以及经常性的安全检查等。本文以红旗Linux为例,讲述一些提高Linux系统安全性的方法,相信对于提高用户 Linux 系统的安全性大有裨益。

一、取消不必要的服务

早期的Unix版本中,每一个不同的网络服务都有一个服务程序在后台运行,后来的版本用统一的/etc/inetd服务器程序担此重任。Inetd是Internetdaemon的缩写,它同时监视多个网络端口,一旦接收到外界传来的连接信息,就执行相应的TCP或UDP网络服务。

由于受inetd的统一指挥,因此Linux中的大部分TCP或UDP服务都是在/etc/inetd.conf文件中设定。所以取消不必要服务的第一步就是检查/etc/inetd.conf文件,在不要的服务前加上"#"号。

一般来说,除了http、smtp、telnet和ftp之外,其他服务都应该取消,诸如简单文件传输协议tftp、网络邮件存储及接收所用的imap/ipop传输协议、寻找和搜索资料用的gopher以及用于时间同步的daytime和time等。

还有一些报告系统状态的服务,如finger、efinger、systat和netstat等,虽然对系统查错和寻找用户非常有用,但也给黑客提供了方便之门。例如,黑客可以利用finger服务查找用户的电话、使用目录以及其他重要信息。因此,很多Linux系统将这些服务全部取消或部分取消,以增强系统的安全性。

Inetd除了利用/etc/inetd.conf设置系统服务项之外,还利用/etc/services文件查找各项服务所使用的端口。因此,用户必须仔细检查该文件中各端口的设定,以免有安全上的漏洞。

在Linux中有两种不同的服务类型:一种是仅在有需要时才执行的服务,如finger服务;另一种是一直在执行的永不停顿的服务。这类服务在系统启动时就开始执行,因此不能靠修改inetd来停止其服务,而只能从修改/etc/rc.d/rc[n].d/文件或用Runleveleditor去修改它。提供文件服务的NFS服务器和提供NNTP新闻服务的news都属于这类服务,如果没有必要,最好取消这些服务。

二、口令安全

在进入Linux系统之前,所有用户都需要登录,也就是说,用户需要输入用户账号和密码,只有它们通过系统验证之后,用户才能进入系统。

与其他Unix操作系统一样,Linux一般将密码加密之后,存放在/etc/passwd文件中。Linux系统上的所有用户都可以读到/etc/passwd文件,虽然文件中保存的密码已经经过加密,但仍然不太安全。因为一般的用户可以利用现成的密码破译工具,以穷举法猜测出密码。比较安全的方法是设定影子文件/etc/shadow,只允许有特殊权限的用户阅读该文件。

在 RedFlag Linux 中提供为影子口令有很好的支持,提供了丰富的工具:

1、把正常口令转换成shadow口令, 并转回(pwconv,pwunconv)。

2、较验口令、组和相应的shadow文件(pwck,grpck)。

3、增加、 删除和修改用户帐号的工业标准方式(useradd, usermod,,和userdel)。

4、增加,删除和修改用户组的工业标准方式(groupadd,,groupmod, 和groupdel)。

5、管理/etc/group文件的工业标准方式(gpasswd)。

请注意: 关于这些工具, 还有一点有趣的地方::不管是否用了shadow, 这些工具都能正常工作。

在RedFlag Linux 中,系统缺省情况已经将密码放在 /etc/shadow 文件中,该文件只有超级用户(root)可以读。可以使用命令 /usr/sbin/pwconv 或 /usr/sbin/grpconv 来建立 /etc/shadow 或 /etc/gshadow 文件。

在Linux系统中,如果要采用影子文件,必须将所有的公用程序重新编译,才能支持影子文件。这种方法比较麻烦,比较简便的方法是采用插入式验证模块(PAM)。很多Linux系统都带有Linux的工具程序PAM,它是一种身份验证机制,可以用来动态地改变身份验证的方法和要求,而不要求重新编译其他公用程序。这是因为PAM采用封闭包的方式,将所有与身份验证有关的逻辑全部隐藏在模块内,因此它是采用影子档案的最佳帮手。

此外,PAM还有很多安全功能:它可以将传统的DES加密方法改写为其他功能更强的加密方法,以确保用户密码不会轻易地遭人破译;它可以设定每个用户使用电脑资源的上限;它甚至可以设定用户的上机时间和地点。

Linux系统管理人员只需花费几小时去安装和设定PAM,就能大大提高Linux系统的安全性,把很多攻击阻挡在系统之外。在后面我们将对 PAM 进行介绍。

三、保持最新的系统核心

由于Linux流通渠道很多,而且经常有更新的程序和系统补丁出现,因此,为了加强系统安全,一定要经常更新系统内核。

Kernel是Linux操作系统的核心,它常驻内存,用于加载操作系统的其他部分,并实现操作系统的基本功能。由于Kernel控制计算机和网络的各种功能,因此,它的安全性对整个系统安全至关重要。

早期的Kernel版本存在许多众所周知的安全漏洞,而且也不太稳定,只有2.0.x以上的版本才比较稳定和安全,新版本的运行效率也有很大改观。在设定Kernel的功能时,只选择必要的功能,千万不要所有功能照单全收,否则会使Kernel变得很大,既占用系统资源,也给黑客留下可乘之机。

在Internet上常常有最新的安全修补程序,Linux系统管理员应该消息灵通,经常光顾安全新闻组,查阅新的修补程序。

四、检查登录密码

设定登录密码是一项非常重要的安全措施,如果用户的密码设定不合适,就很容易被破译,尤其是拥有超级用户使用权限的用户,如果没有良好的密码,将给系统造成很大的安全漏洞。

在多用户系统中,如果强迫每个用户选择不易猜出的密码,将大大提高系统的安全性。但如果passwd程序无法强迫每个上机用户使用恰当的密码,要确保密码的安全度,就只能依靠密码破解程序了。

实际上,密码破解程序是黑客工具箱中的一种工具,它将常用的密码或者是英文字典中所有可能用来作密码的字都用程序加密成密码字,然后将其与Linux系统的/etc/passwd密码文件或/etc/shadow影子文件相比较,如果发现有吻合的密码,就可以求得明码了。

在网络上可以找到很多密码破解程序,比较有名的程序是crack。用户可以自己先执行密码破解程序,找出容易被黑客破解的密码,先行改正总比被黑客破解要有利。

五、设定用户账号的安全等级

除密码之外,用户账号也有安全等级,这是因为在Linux上每个账号可以被赋予不同的权限,因此在建立一个新用户ID时,系统管理员应该根据需要赋予该账号不同的权限,并且归并到不同的用户组中。

在Linux系统上的tcpd中,可以设定允许上机和不允许上机人员的名单。其中,允许上机人员名单在/etc/hosts.allow中设置,不允许上机人员名单在/etc/hosts.deny中设置。设置完成之后,需要重新启动inetd程序才会生效。此外,Linux将自动把允许进入或不允许进入的结果记录到/rar/log/secure文件中,系统管理员可以据此查出可疑的进入记录。

每个账号ID应该有专人负责。在企业中,如果负责某个ID的职员离职,管理员应立即从系统中删除该账号。很多入侵事件都是借用了那些很久不用的账号。

在用户账号之中,黑客最喜欢具有root权限的账号,这种超级用户有权修改或删除各种系统设置,可以在系统中畅行无阻。因此,在给任何账号赋予root权限之前,都必须仔细考虑。

Linux系统中的/etc/securetty文件包含了一组能够以root账号登录的终端机名称。最好不要修改该文件,如果一定要从远程登录为root权限,最好是先以普通账号登录,然后利用su命令升级为超级用户。

六、清除黑客犯罪的温床

在Linux 系统中,有一系列r字头的公用程序,可以使用户在不需要提供密码的情况下执行远程操作。因此,在提供方便的同时,也带来了潜在的安全问题,它们常被黑客用做入侵的武器,非常危险。

在 Linux 系统中,系统是通过查看 /etc/hosts.equiv 及$HOME/.rhosts文件来控制可以使用"r"命令的节点和用户。所以,这两个文件的正确设置是安全使用"r"命令的基本保障。

黑客在侵入某个Linux 系统后,通常做的一件事就是修改在主目录下的".rhosts"文件,以便为自己日后再次进入系统留下后路。因此建议用户在会议自己的系统被闯入时,马上查看".rhosts"文件,检查其最后一次修改日期及内容,特别注意文件中绝对不能出现"+ +",否则你的帐户就可以被网络上任何一个用户不需要知道你的密码而任意进入。

另外,还要特别注意".rhosts"文件中不能涉及一些特殊帐户(例如 news,bbs 等等),一些黑客就是通过这条途径进入用户帐户而有不留下自己的来龙去脉。

可以看出,".rhosts"为外部侵入留下了潜在的危险,用户在自己设置时要格外小心。如果不是特别需要,建议在".rhosts"文件中不要设外部入口。

同样的,对于系统管理员,如果不是特别需要,建议在 /etc/hosts.equiv 中不设入口。如果在 /etc/hosts.equiv 中有入口,而用户个人为了安全起见,可以在".rhost"文件中加入"- -",从而关闭所有的入口。

此外,建议在这两个文件中不要加注释行(以"#"开头),因为有些有特权的黑客可以将其节点名设成"#"而获得进入你系统的权利。

目前很多系统都使用 ssh 来代替早期的这些"r"命令。我们在下面会介绍 ssh。

由于r字头指令是黑客们的温床,因此很多安全工具都是针对这一安全漏洞而设计的。例如,PAM工具就可以用来将r字头公用程序的功能废掉,它在/etc/pam.d/rlogin文件中加上登录必须先核准的指令,使整个系统的用户都不能使用自己home目录下的.rhosts文件。

七、控制网络地址用户对系统的访问

1、通过 IP 地址限制。

这是通过安装TCP_Wrappers 软件来实现的。该软件可对系统进行 telnet、ftp、rlogin、rsh、finger和talk 等服务访问的IP 地址进行控制。比如你可以只允许公司内部的一些机器对服务器进行这些操作。RedFlag Linux 系统缺省情况下已经安装了TCP_Wrappers。

2、限制超级用户口令。

超级用户口令只允许系统管理员知道,并要求定期修改。另外,不允许用户远程登录来访问root,这是在系统文件 /etc/securetty 中缺省设置好的。还可以通过"sudo"命令,将原来只有root 能执行的一些操作分授给其他用户。关于 "sudo"工具,我们将在下面讲述。

八、root 帐号

一些系统管理命令只能由超级用户 root 运行。超级用户拥有其他用户所没有的特权。超级用户不管文件存取权限如何,都可以读、写任何文件,运行任何程序。系统管理员通常使用命令 su 或以root 进入系统从而成为超级用户。 su 命令可以不注销帐号,而以另一用户身份登录系统。它将启动一个新的shell 并将有效和实际的 UID 和 GID 设置给另一用户,因此必须将 root 口令保密。

此外,在使用root 帐号时,还必须注意以下几点:

1、在执行复杂任务之前,必须明白自己的目的,尤其在执行 rm 这样的可能破坏系统的命令时。例如,如果要执行"rm *.c"时,应该首先执行"ls -l *.c",列出所有要删除的文件,当确信每个文件都可以删除时才能继续进行操作。

2、root 用户的命令路径是很重要的。命令路径也就是PATH 环境变量的值,定义了shell 搜索命令的位置。在PATH 语句中,要尽量限制root 用户的命令路径,允许"."出现在变量中。另外,不要在路径中出现可写的目录,防止黑客在目录中修改或放置新的可执行文件,为自己留下"后门"。

3、不要由 root 执行 r 命令,如 rsh、rlogin等。这些命令将会导致各种类型的攻击。不要为 root创建 .hosts 文件。

4、不要使用 root 远程登录系统。如果需要登录,那么可以先以普通用户身份登录。然后使用 su 命令切换到 root。

5、以 root 身份登录后,一切操作都要"三思而后行"。因为每一个操作都可能会给系统带来很大的影响,所以在输入命令之前必须考虑清楚。

如果必须允许其他人拥有 root 权限,那么可以使用一些工具来达到这一目的。Sudo 就是其中之一。它允许用户用自己的口令以root 身份访问有限的命令。例如,允许用户在操作系统上安装或卸载可移动介质,但是没有其他root 用户的特权。sudo 可以自动记录日志。在日志里,记录了每一条执行的命令和执行命令的用户。所以,即使有很多用户使用sudo 命令,也不会影响系统的运行。

九、 X管理

X 的使用使计算机网络锦上添花。它除了提供友好的图形用户截面,还可以使用户通过网络在本机上调用远程节点的 X 程序。同时,也由于 X 的广泛应用,物美价廉的X终端才得以倍受欢迎。

X 产生的宗旨原本就是通过client/server 模型,使用户的本地界面可以显示网络上任何其它系统的 X 客户程序;反过来,本机 X 客户程序也可以在网络上任何其它系统上显示。 X 的设计本身就是针对并构件与计算机网络之上的。然而在它给广大用户带来方便的同时,也正由于它的网络属性带来了不可避免的网络安全问题。

下面将推荐几项措施,以保障你的 X 系统的基本安全:

1、设置 X 访问控制。

X 提供了基于节点的访问控制的基本手段。

(1)/etc/X0.hosts 文件的正确设置。

该文件列出了可以访问本X服务器的一系列节点名。即名单上的系统的 X 客户程序可以随时访问本地 X 服务器。这个文件应有系统管理员根据实际情况合理设定。从安全角度出发,建议此文件中尽可能地少设入口。

例如,PCWS2上/ETC/X0.hosts文件内容为:

PCWS0.RedFlag linux.com.cn

PCWS1.RedFlag linux.com.cn

PCXT1.RedFlag linux.com.cn

PCXT2.RedFlag linux.com.cn

即PCWS0 上的 X 客户程序(如 XV,ghostview)被授权可以访问PCWS2的X服务器,即PCWS0可以向 PCWS2 上送显示内容。

(2) xhost 客户程序。

Xhost 客户程序可以交互地设置节点访问控制。例如,允许PCXT1上的 X 客户访问PCWS0 的Xserver,则应该在PCWS0 上输入"xhost+PCXT1",那么就会产生下列信息:

PCXT1 added to access control list

"xhost+"则会解除访问控制,允许任何节点的Xclient 访问本地X服务器,从安全的角度讲,这无疑是大开城门,存在着许多潜在的危险。因此,强烈建议用户不要使用这样的命令。

2、麻省理工魔术蛋糕(MIT-MAGIC-COOKIE1)

上面的措施只限制到节点,即使所有其它节点均处于访问控制之下,也仍存在着一个很大的漏洞,即任何连接到本机节点上的用户都有权访问本机 X 服务器。

为了解决这一点,有些xhost 支持基于用户的访问控制,即 xhost+username@domain,而普遍采取的方法是MIT-MAGIC-COOKIE-1。

(1) HOME/.Xauthority 文件。

如果你的系统提供MIT-MAGIC-COOKIE-1 服务,你就会在你的主目录下发现一个.Xauthority 文件。这个文件装有机器可识别代码(代码被称为魔术蛋糕),相当于进入 X 服务器的密码。一个 X 客户机程序在被允许与 X 连接前,必须首先能够从.Xauthority文件中获得密码,被 X 服务器核实后,才能获得其访问权。因此,为了确保你自己可以访问你的X 显示,你必须将.Xauthority文件保管好,只允许你本人可读或修改此文件。即".Xauthority"的文件保护应设置为"-rw------"。

(2) xauth 命令。

用户通常希望自己在网络上无论哪个节点帐户的 X 客户程序均可以访问魔术蛋糕,这样,不仅可以很方便地使用 X 的网络功能,又保证了安全性。当然,如果你的".Xauthority"是由你的几个节点帐户共享的(如用 NFS 系统),那么你这几个节点的 X 客户程序可以方便地访问各 X 服务器。但如果是两个互不关联的系统,这时 xauth 命令可以解决这个问题。

xauth 命令用于将一个节点上的魔术蛋糕传送给另一个节点,例如将节点 PCWS2 魔术蛋糕传送给 PCXT1,可以使用下面的命令:

$xauth extract - PCWS2:0|rsh PCXT1 xauth merge -

这样,只要是用户本人使用这两个节点的 X 资源,就不需要在做任何 X 访问控制的设置。

3、保护 Xterm。

xterm 是 X 模拟字符终端提供的用户窗口,用户可以在命令提示符下键入各种命令。为了防止他人偷窥你在 xterm 输入的内容,xterm 专门提供了 xterm 保护功能,即在 xterm 的主菜单下(同时按ctrl 和第一个鼠标键)选"Securekeyboard"一项,这时xterm 的底色应该变黑。如果没有变色,则很有可能某个人正在监视你的xterm。一般建议用户在输入敏感信息时,将其 xterm 设保护。

十、安全检查

保护系统安全的一个主要任务就是监视系统的安全。这包括检查系统程序、系统

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有