热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

怎样让您的Linux操作系统更加安全牢固

文章标题:怎样让您的Linux操作系统更加安全牢固。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类
  众所周知,就安全性而言,Linux相对于Windows具有更多的优势。但是,不管选择哪一种Linux发行版本,在安装完成以后都应该进行一些必要的配置,来增强它的安全性。下面就通过几个步骤来安装一个安全的Linux操作系统。
 
  安装和配置一个防火墙一个配置适当的防火墙不仅是系统有效应对外部攻击的第一道防线,也是最重要的一道防线。在新系统第一次连接上Internet之前,防火墙就应该被安装并且配置好。
 
  把防火墙配 置成拒绝接收所有数据包,然后再打开允许接收的数据包,将有利于系统的安全。防火墙的具体设置方法请参见iptables使用方法。
 
  升级所有已经安装的软件包一个标准的Linux发行版通常会带有超过1000个以上的软件包。时刻保持所安装的所有软件处于最新状态是非常重要的。很显然,这是一个耗费时间的工作,幸运的是现在已经有很多工具可以自动完成这一工作。其中两个最常用的工具是APT(Advanced Package Tool)和Yum(Yellowdog Updater,Modified)。
 
  有些发行版可能会提供自己的升级工具,可以充分利用它们来实现软件的更新。比如,缺省情况下Red Hat和Fedora使用的是up2date;Debian使用的则是APT.如果想安装一个自己的软件升级工具,那么笔者推荐使用APT.在任何一个搜索引擎中输入所使用发行版的名字和APT,都可以快速找到APT的RPM安装包和所需要的软件仓库位置。
 
  一旦安装好APT,并且设置好软件仓库以后(一般在/etc/apt/sources.list或与之类似的文件中设置),就可以使用以下两个命令来进行软件的更新。以root用户运行:#apt-get update #apt-get upgrade第一个命令将从指定的软件仓库下载最新的软件包信息,第二个命令将使用这些信息下载和安装系统中已经存在的软件的更新版本(如果有可用更新的话)。管理员应该定期执行命令以确保系统总是处于最新状态。
 
  此外,从Internet下载单个文件或软件包的时候,总是使用MD5SUM来进行检查。MD5SUM可以对从网上下载的软件进行检查,以确保下载的不是被植入木马的版本。
 
  最后,使用者还应该订阅发行版的安全邮件列表。这些邮件列表可以在出现更新软件包,或者对某些软件漏洞进行修正时及时通知使用者。
 
  禁止所有不需要的服务一个新安装的Linux系统在默认配置情况下,启动时会同时启动很多服务和后台程序。比如有的发行版会启动HTTP(Web服务器)、POP3/IMAP(电子邮件)监控 程序、数据库服务器等。而对于大多数用户来说,这些服务实际上是不需要的,并且这些服务会成为攻击者潜在的攻击目标。所以,为了安全起见,应该查看这些服务列表,然后禁止所有不需要的服务。
 
  在Red Hat系统中,用于配置服务器的命令行工具名为chkconfig.要列出所有已经安装的服务,可以执行以下命令:#chkconfig -list这时将会显示类似以下形式的内容:iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off…… …… …… …… …… …… …… ……
 
  squid 0:off 1:off 2:off 3:off 4:off 5:off 6:off xinetd based services:rsync: off…… ……
 
  sgi_fam: on在上面的列表中,0至6的数字表示系统的运行级别。
 
  例如,为了让squid服务可以在2、3、4、5运行级别下运行,应该执行以下命令:#chkconfig ——level 2345 squid on如果要在3和5运行级别上关闭sshd服务,则应该执行以下命令:#chkconfig ——level 35 sshd off使用chkconfig命令设置的服务会在下次启动时生效,而不会对当前运行的服务有任何影响。如果要对当前的服务进行设置,在Red Hat中可以使用以下命令:# service service_name sta rt # service service_name stop # service service_name restart # service service_name status上述命令中的service_name和chkconfig ——list命令中所列的名字一致。
 
  在禁止了所有不需要的服务后,可以运行netstat ——l来查看是否已经达到效果。对于仍然需要运行的服务而言,一定要确保有正确配置的防火墙。
 
  更改不需要的SUID/SGID SUID(Set User ID)或SGID(Set Group ID)程序可以 让普通用户以超过自己权限的形式执行它。一个常见的例子是passwd,它的访问权限如下:-r-s——x——x 1 root root 18992 Jun 6 2003 /usr/bin/passwd可以看到,这里的owner执行权限被设置成“s”而不是“x”,这就是一个SUID程序。比如,当一个普通用户执行passwd时,它就会以文件所有者(本例中是root用户)的权限来运行程序。
 
  很多SUID/SGID可执行程序是必须的,比如上面提到的passwd.但是,很多是不需要的。SUID/SGID程序会被一些恶意的本地用户利用,获取本不应有的权限。运行以下命令可以找到所有具有这一属性的程序:#find / ( -perm -4000 -o -perm -2000 )
 
  使用者必须查看这一列表,尽量减少那些所有者是root或是在root组中却拥有SUID/SGID属性的文件,删除或对其属性进行更改。
 
  要删除具有SUID/SGID属性的文件要先运行:#rpm -q ——whatprovides /usr/sbin/kppp
 
  然后可以使用以下命令来删除它:
 
  #rpm -e package-name SUID/SGID属性位则可以使用chmod命令来删除,比如,chmod -s /usr/sbin/kppp.
 
  关注日志
 
  虽然使用者会尽最大努力保证自己系统的安全,但是,现实情况是不管如何努力,都无法使系统处于绝对安全的状态。下面是其它一些需要注意的事情,它可以让使用者知道是否或什么时候系统被攻破。
 
  一个非常常用、且很容易被低估的入侵检测程序是Tri pwire(http://www.tripwire.org)。该程序会定期地检测系统文件,来确定它们是否被更改。
 
  如果有任何不应该发生的更改出现,Tripwire就会为用户生成一个报表。要让Tripwire正常工作,需要花费一定的时间来对其进行配置,但它的确值得花时间。
 
  了解系统情况的一个非常重要的途径是查看日志文件。Linux中的系统日志由syslogd监控程序处理,其配置文件是/etc/syslog.conf.在配置文件中,可以指明什么工具或程序需要记 录信息(比如cron、daemon或电子邮件等),什么级别的信息需要写入日志(比如debug、info或警告等),以及如何处理这些信息(添加到日志文件或发送到打印机等)。
 
  系统日志也可以远程进行,也就是说把日志文件放置在网络的另外一个系统上。这样做的好处是如果系统被攻破,那么入侵者将无法删除在其它系统上留下的痕迹,从而可以比较容易地对其进行跟踪。
 
  但是,对于普通用户而言,每天处理大量的来自各日志文件的信息绝非易事,所以转而使用Logwatch(http://www.logwatch.org)工具。该工具可以定期对系统的日志文件进行分析,然后根据分析结果创建一个分析报告,通过电子邮件发给root用户。
 
  因为这些报告一般都比较短,所以适合用户每天阅读。根据配置,它会对一些信息加亮显示(比如非法登录尝试或端口扫描等)。其配置文件一般位于/etc/log.d/conf/logwatch.conf,配置文件中的注释可以让用户方便地对其进行设置。
 
  除Logwatch以外,还有很多入侵检测系统可供选择,比如Snort(http://www.snort.org),可以在搜索引擎中很方便地找到这些工具。
 
  安全仍需努力系统安全并不是一劳永逸的事情,事实上在做每一件事情的时候都要考虑到系统的安全性。管理员需要保证系统时刻处于最新状态、确保使用了合适的密码、设置了合适的访问级别、每天阅读日志、检查Tripwire报告、阅读所使用发行版的邮件列表等。
 
  本文介绍了一些每个用户都要做的、基本的、重要的步骤。当然,除了本文所述之外,用户还有很多事情可做。下面给出几个忠告。
 
  1.永远不要使用Telnet、FTP或任何其它纯文本的远程会话来传送用户名和密码,只能使用SSH、SFTP或与之类似的程序来传送这些内容。
 
  2.确保使用严格的防火墙策略,缺省情况下关闭所有连接,只打开需要的连接,并且要有严格的限制。比如,需要从工作的地方SSH到系统中,那么只允许其基于IP通过。
 
推荐阅读
  • 如何安装和使用 WinSCP 与 PuTTY:连接 Linux 系统的专业工具指南
    本指南详细介绍了如何在Windows环境中安装和使用WinSCP与PuTTY,以实现与Linux系统的安全连接。WinSCP是一款开源的图形化SFTP客户端,支持SSH和SCP协议,主要用于在本地和远程计算机之间安全地传输文件。用户可以通过官方下载页面获取最新版本的WinSCP和PuTTY,按照简单的步骤完成安装,并利用这些工具进行高效的文件管理和远程操作。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 高端存储技术演进与趋势
    本文探讨了高端存储技术的发展趋势,包括松耦合架构、虚拟化、高性能、高安全性和智能化等方面。同时,分析了全闪存阵列和中端存储集群对高端存储市场的冲击,以及高端存储在不同应用场景中的发展趋势。 ... [详细]
  • Ping 命令的高级用法与技巧
    本文详细介绍了 Ping 命令的各种高级用法和技巧,帮助读者更好地理解和利用这一强大的网络诊断工具。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 如何在任意浏览器中轻松安装并使用VSCode——Codeserver简易指南
    code-server 是一款强大的工具,允许用户在任何服务器上部署 VSCode,并通过浏览器进行访问和使用。这一解决方案不仅简化了开发环境的搭建过程,还提供了高度灵活的工作方式。用户只需访问 GitHub 上的官方仓库(GitHub-coder/code-server),即可获取详细的安装和配置指南,快速启动并运行 code-server。无论是个人开发者还是团队协作,code-server 都能提供高效、便捷的代码编辑体验。 ... [详细]
  • 如何在Ubuntu系统中直接使用Snap安装软件
    Canonical与Opera Software近日宣布,基于Chromium的Opera浏览器现已作为Snap包提供给Ubuntu用户,显著提升了在Linux操作系统上的安装便捷性和兼容性。通过Snap,用户可以在Ubuntu系统中轻松安装和更新Opera浏览器,享受更流畅的浏览体验。此外,Snap的容器化特性还确保了应用的安全性和稳定性,为用户提供更加可靠的软件环境。 ... [详细]
  • 本文介绍了如何查看PHP网站及其源码的方法,包括环境搭建、本地测试、源码查看和在线查找等步骤。 ... [详细]
  • 华为捐赠欧拉操作系统,承诺不推商用版
    华为近日宣布将欧拉开源操作系统捐赠给开放原子开源基金会,并承诺不会推出欧拉的商用发行版。此举旨在推动欧拉和鸿蒙操作系统的全场景融合与生态发展。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
author-avatar
苏小丫123_877
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有