文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

15招教你提升Linux系统安全性

敲键小勇士

敲键小勇士

2024-04-18 00:38

关注

  虽然说Linux不像Windows那样容易感染病毒和受到入侵,但如果不做好安全防护工作也是很容易感染病毒和受到入侵的。那么我们如何做好linux系统的安全防护呢?Linux系统不论在功能上、价格上或性能上都有很多优点,然而,作为开放式操作系统,它不可避免地存在一些安全隐患。关于如何解决这些隐患,为应用提供一个安全的操作平台呢?为此在本文中编程学习网笔者就为大家介绍几则提高Linux系统安装系数的技巧给大家参考参考。

15招教你提升Linux系统安全性_考试认证_Linux认证_Linux_编程学习网
  第1招:取消不必要的服务
  早期的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都属于这类服务,如果没有必要,最好取消这些服务。
  第2招:限制系统的出入
  在进入Linux系统之前,所有用户都需要登录,也就是说,用户需要输入用户账号和密码,只有它们通过系统验证之后,用户才能进入系统。与其他 Unix操作系统一样,Linux一般将密码加密之后,存放在/etc/passwd文件中。Linux系统上的所有用户都可以读到/etc /passwd文件,虽然文件中保存的密码已经经过加密,但仍然不太安全。因为一般的用户可以利用现成的密码破译工具,以穷举法猜测出密码。比较安全的方法是设定影子文件/etc/shadow,只允许有特殊权限的用户阅读该文件。

在进入Linux系统之前,所有用户都需要登录,也就是说,用户需要输入用户账号和密码,只有它们通过系统验证之后,用户才能进入系统。与其他 Unix操作系统一样,Linux一般将密码加密之后,存放在/etc/passwd文件中。Linux系统上的所有用户都可以读到/etc /passwd文件,虽然文件中保存的密码已经经过加密,但仍然不太安全。因为一般的用户可以利用现成的密码破译工具,以穷举法猜测出密码。比较安全的方法是设定影子文件/etc/shadow,只允许有特殊权限的用户阅读该文件。
  在Linux系统中,如果要采用影子文件,必须将所有的公用程序重新编译,才能支持影子文件。这种方法比较麻烦,比较简便的方法是采用插入式验证模块(PAM)。很多Linux系统都带有Linux的工具程序PAM,它是一种身份验证机制,可以用来动态地改变身份验证的方法和要求,而不要求重新编译其他公用程序。这是因为PAM采用封闭包的方式,将所有与身份验证有关的逻辑全部隐藏在模块内,因此它是采用影子档案的最佳帮手。
  此外,PAM还有很多安全功能:它可以将传统的DES加密方法改写为其他功能更强的加密方法,以确保用户密码不会轻易地遭人破译;它可以设定每个用户使用电脑资源的上限;它甚至可以设定用户的上机时间和地点。Linux系统管理人员只需花费几小时去安装和设定PAM,就能大大提高Linux系统的安全性,把很多攻击阻挡在系统之外。
  第3招:禁止不必要的SUID程序
  由于SUID可以使普通用户以root权限执行某个程序,所以我们应严格控制系统中的此类程序,具体的设置方法如下:
  找出root所属的带s位的程序:
  # find / -type f ( -perm -04000 -o -perm -02000 ) -print |less
  接下来禁止其中不必要的程序,具体的设置命令如下:
  # chmod a-s program_name
  第4招:保持最新的系统核心
  由于Linux流通渠道很多,而且经常有更新的程序和系统补丁出现,因此,为了加强系统安全,一定要经常更新系统内核。Kernel是linux操作系统的核心,它常驻内存,用于加载操作系统的其他部分,并实现操作系统的基本功能。由于Kernel控制计算机和网络的各种功能,因此,它的安全性对整个系统安全至关重要。
  早期的Kernel版本存在许多众所周知的安全漏洞,而且也不太稳定,只有2.0.x以上的版本才比较稳定和安全,新版本的运行效率也有很大改观。在设定Kernel的功能时,只选择必要的功能,千万不要所有功能照单全收,否则会使Kernel变得很大,既占用系统资源,也给黑客留下可乘之机。在Internet上常常有最新的安全修补程序,Linux系统管理员应该消息灵通,经常光顾安全新闻组,查阅新的修补程序。
  第5招:设定用户账号的安全等级
  除密码之外,用户账号也有安全等级,这是因为在Linux上每个账号可以被赋予不同的权限,因此在建立一个新用户ID时,系统管理员应该根据需要赋予该账号不同的权限,并且归并到不同的用户组中。
  在Linux系统上的tcpd中,可以设定允许上机和不允许上机人员的名单。其中,允许上机人员名单在/etc/hosts.allow中设置,不允许上机人员名单在/etc/hosts.deny中设置。设置完成之后,需要重新启动inetd程序才会生效。此外,Linux将自动把允许进入或不允许进入的结果记录到/rar/log/secure文件中,系统管理员可以据此查出可疑的进入记录。每个账号ID应该有专人负责。在企业中,如果负责某个ID的职员离职,管理员应立即从系统中删除该账号。很多入侵事件都是借用了那些很久不用的账号。
  在用户账号之中,黑客最喜欢具有root权限的账号,这种超级用户有权修改或删除各种系统设置,可以在系统中畅行无阻。因此,在给任何账号赋予root权限之前,都必须仔细考虑。
  Linux系统中的/etc/securetty文件包含了一组能够以root账号登录的终端机名称。例如,在RedHatLinux系统中,该文件的初始值仅允许本地虚拟控制台(rtys)以root权限登录,而不允许远程用户以root权限登录。最好不要修改该文件,如果一定要从远程登录为 root权限,最好是先以普通账号登录,然后利用su命令升级为超级用户。
  第6招:消除黑客犯罪的温床
  在Unix系统中,有一系列r字头的公用程序,它们是黑客用以入侵的武器,非常危险,因此绝对不要将root账号开放给这些公用程序。由于这些公用程序都是用。rhosts文件或者hosts.equiv文件核准进入的,因此一定要确保root账号不包括在这些文件之内。
  由于r字头指令是黑客们的温床,因此很多安全工具都是针对这一安全漏洞而设计的。例如,PAM工具就可以用来将r字头公用程序的功力废掉,它在 /etc/pam.d/rlogin文件中加上登录必须先核准的指令,使整个系统的用户都不能使用自己home目录下的。rhosts文件。

由于r字头指令是黑客们的温床,因此很多安全工具都是针对这一安全漏洞而设计的。例如,PAM工具就可以用来将r字头公用程序的功力废掉,它在 /etc/pam.d/rlogin文件中加上登录必须先核准的指令,使整个系统的用户都不能使用自己home目录下的。rhosts文件。
  第7招:增强安全防护工具
  SSH是安全套接层的简称,它是可以安全地用来取代rlogin、rsh和rcp等公用程序的一套程序组。SSH采用公开密钥技术对网络上两台主机之间的通信信息加密,并且用其密钥充当身份验证的工具。
  由于SSH将网络上的信息加密,因此它可以用来安全地登录到远程主机上,并且在两台主机之间安全地传送信息。实际上,SSH不仅可以保障Linux主机之间的安全通信,Windows用户也可以通过SSH安全地连接到Linux服务器上。
  第8招:限制Shell命令记录大小
  在默认情况下bash shell会在文件$HOME/.bash_history中存放多达500条命令记录(根据具体的系统不同其默认记录条数也不同)。一般系统中每个用户的主目录下都有一个这样的文件。在此笔者建议大家限制该文件的大小,我们可以通过编辑/etc/profile文件来修改其中的选项,具体设置命令如下:
  HISTFILESIZE=30或HISTSIZE=30
  第9招:磁盘空间的维护
  和Windows一样,经常检查磁盘空间对维护Linux的文件系统也是非常必要的工作。Linux中对磁盘空间维护使用最多的命令就属df和du了。
  一般来说df命令主要检查文件系统的使用情况,它通常的用法是:
  #df -k
  Filesystem 1k-blocks Used Available Use% Mounted on
  /dev/hda3 1967156 1797786 67688 96% /
  而du命令通常用来检查文件、目录和子目录占用磁盘空间的情况。一般带-s选项使用只显示需检查目录占用磁盘空间的总计,而不会显示下面的子目录占用磁盘的情况。
  % du -s /usr/X11R6/*
  34490 /usr/X11R6/bin
  1 /usr/X11R6/doc
  3354 /usr/X11R6/include
  第10招:用户超时注销
  作为用户的我们如果离开时忘记注销账户则很有可能给系统安全带来隐患。为了打消这个隐患我们可以通过修改/etc/profile文件,保证账户在一段时间没有操作后自动从系统注销。具体的设置我们可以通过编辑文件/etc/profile,在“HISTFILESIZE=”行的下一行增加如下一行:
  TMOUT=600
  通过设置以上这一命令则所有用户将在10分钟无操作后自动注销,如此一来我们就不用担心离开时被别人使用的危险。
  第11招:设置口令最小长度和最短使用时间
  我们知道口令是系统中认证用户的主要手段,系统安装时默认的口令最小长度通常为5。为了保证口令不容易被猜测攻击,我们可以通过增加口令的最小长度来增加系统的安全系数,当然在设置口令长度时为了安全至少设置等于8。要想做到修改工作我们就需修改文件/etc/login.defs中参数PASS_MIN_LEN,同时应限制口令使用时间并保证定期更换口令,笔者在这里建议大家修改参数 PASS_MIN_DAYS。
  第12招:禁止不必要的SUID程序
  由于SUID可以使普通用户以root权限执行某个程序,所以我们应严格控制系统中的此类程序,具体的设置方法如下:
  找出root所属的带s位的程序:
  # find / -type f ( -perm -04000 -o -perm -02000 ) -print |less
  接下来禁止其中不必要的程序,具体的设置命令如下:
  # chmod a-s program_name
  第13招:限制超级用户的权力
  我们在前面提到,root是Linux保护的重点,由于它权力无限,因此最好不要轻易将超级用户授权出去。但是,有些程序的安装和维护工作必须要求有超级用户的权限,在这种情况下,可以利用其他工具让这类用户有部分超级用户的权限。Sudo就是这样的工具。
  第14招:检查开机时显示的信息
  我们知道在Linux系统启动时屏幕上会滚过一大串开机信息。如果我们在开机时发现有问题则我们需要在系统启动后进行检查的工作,我们可以通过输入下列命令来检查:
  #dmesg >bootmessage
  这条命令将把开机时显示的信息重定向输出到一个文件boot message中,如此一来我们便很轻松知道问题的所在了。
  第15招:检查登录密码
  设定登录密码是一项非常重要的安全措施,如果用户的密码设定不合适,就很容易被破译,尤其是拥有超级用户使用权限的用户,如果没有良好的密码,将给系统造成很大的安全漏洞。
  在多用户系统中,如果强迫每个用户选择不易猜出的密码,将大大提高系统的安全性。但如果passwd程序无法强迫每个上机用户使用恰当的密码,要确保密码的安全度,就只能依靠密码破解程序了。
  实际上,密码破解程序是黑客工具箱中的一种工具,它将常用的密码或者是英文字典中所有可能用来作密码的字都用程序加密成密码字,然后将其与 Linux系统的/etc/passwd密码文件或/etc/shadow影子文件相比较,如果发现有吻合的密码,就可以求得明码了。
  在网络上可以找到很多密码破解程序,比较有名的程序是crack.用户可以自己先执行密码破解程序,找出容易被黑客破解的密码,先行改正总比被黑客破解要有利。
  Sudo程序允许一般用户经过组态设定后,以用户自己的密码再登录一次,取得超级用户的权限,但只能执行有限的几个指令。例如,应用sudo后,可以让管理磁带备份的管理人员每天按时登录到系统中,取得超级用户权限去执行文档备份工作,但却没有特权去作其他只有超级用户才能作的工作。Sudo 不但限制了用户的权限,而且还将每,希望以上的提高Linux系统安全性的招数对大家有用。
  本次的几则提高Linux安全系数的技巧的讲解到此就暂告一段落,如果以后有什么相关的内容继续进行补充或者修改的话,笔者会在此继续进行相关的内容的补充或者修改的工作,同时也欢迎大家对本次的讲解提出自己的建议和补充。最后笔者希望本次的讲解对大家学习Linux和Linux认证能够起到一定的帮助作用!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-考试认证-考试信息-考试报考
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯