热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

帮您搭建安全的Linux平台

文章标题:帮您搭建安全的Linux平台。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  作者:杨蔚宇
  
  到目前为止,您安装了Linux的计算机如果还没有任何安全措施的话,那我觉得您应该了解一些有关Linux的安全知识了,并且在此基础上运用本文介绍的方法让您的Linux平台更安全。当然,我只是根据自己的需求来让加固Linux平台的,所以不一定能够完全满足您的要求,但是我想也应该会有一些帮助。
  
  
  安全需求
  
  
  在家里,我使用的是Red Hat Linux。一般来说,我很少关机,也经常使用这台机器通过宽带连在互联网上。也就是说,我的机器一般情况下都处于在线状态。对于这台计算机的安全性,我有两点考虑:
  
  1. 我要把那些不想让别人看见的数据和文档隐藏起来;
  
  2.不让不速之客用我的计算机资源。
  
  在我的电脑上,有很多重要的数据。我想大部分人电脑上都有自己认为很重要的文档和数据。我不想让除了我之外的任何人读写这些文件。此外,我不想让入侵者使用我的机器来攻击另外一个目标。如果我发现有人使用我的机器来攻击别人,我会感到很气愤。相信大家也会与我有同感。更令人忐忑不安的问题是,有时虽然我们被“黑”,充当了攻击别人系统的角色,而自己却蒙在鼓里。
  
  
  做好安全计划
  
  
  在开始安装Linux系统时,我就要在内核中配置Iptables。Iptabels被认为是Linux中实现包过滤功能的第四代应用程序。第一代是Linux内核1.1版本所使用的,Alan Cox从BSD Unix中移植过来的ipfw。在Linux 2.0版的内核中,Jos Vos和其它一些程序员对ipfw进行了扩展,并且添加了ipfwadm用户工具。在Linux2.2版内核中,Russell和Michael Neuling做了一些非常重要的改进。也就是在该内核中,Russell添加了帮助用户控制过滤规则的ipchains工具。现在,Russell又完成了其名为NetFilter的内核框架。
  
  NetFilter的目的是为用户提供一个专门用于包过滤的底层结构。并且,用户和开发人员还可以将其内建在Linux内核中。Iptables是一个内建在NetFilter框架中的模块。它可以让用户访问内核过滤规划和命令。如果您了解ipchains,就会发现事实上Iptables和ipchains是非常相似的。
  
  通过对Iptables的配置,我可以阻止任何一个数据包进入或者离开我的机器。这非常重要,因为我的机器24小时在线。有了这个新的保护功能,就使得我的机器时刻都能阻击来自网络上的各种攻击。Iptables的使用和配置并不困难。在此限于篇幅,我就不再讨论(读者可以很容易就在网上找到相关资料)。
  
  接下来要讨论的是LIDS(Linux入侵检测系统)。LIDS以内核补丁的方式存在。LIDS的目的是通过限制对计算机文件和进程的访问,来提高计算机的安全性。在有人试图破坏这些限制时,它就会向你报警。LIDS另外一个优点就是它甚至可以限制root账号的权限。这种限制root账号权限的方法,在入侵者得到root权限时,可以最大限度地降低损失。我使用LIDS来保护二进制系统文件、/var/log目录下的日志文件、/etc目录下的配置文件。我将其标志为Readonly的二进制文件没有任何用户,包括root在内,可以对其进行删改操作。对于日志文件,我将其标识为Append。这样对于该目录里的文件,可以进行写操作,但是不能修改或者删除现存的数据。
  
  下一步我要做的就是要尽量减少在机器上运行的服务。在机器上运行的服务越少,别人入侵我的机器的可能性就越小。在缺省情况下,很多Linux发行版都会运行很多常驻程序。就我个人看来,这样做并不是十分合理的。所以我关闭了我的Telnet、FTP以及所有以“R”字母开头的常驻程序。这样,我就可以避免有时候来不及升级或者安装一些补丁程序而给系统带来威胁。对于那些我一定要使用的服务,我就会尽可能及时地安装安全补丁。并且,如果该服务发现了漏洞,而又没有相关的补丁出现时,我就会暂时关闭该服务,直到有修正补丁出现为止。
  
  一旦尽量减少了计算机上运行的服务数量之后,我就使用“netstat l”命令来进行监听。这样做的目的是为了确保我没有遗漏任何我不需要的服务。事实上,不做任何监听工作是我们经常容易犯的错误。如果监听到任何我不需要的服务,这时候就可以修正了。
  
  
  用好安全门
  
  
  在电脑世界里,没有绝对的安全,也就是说你不可能完全杜绝黑客的攻击。虽然我的计算机还没有被攻破过,但是我从来不认为它就是100%安全的。在我刚开始使用Linux的头几个月里,几乎没有考虑过其安全性。我做的工作基本上都是如何让这个新的操作系统工作起来、工作得更好等。那时,我把更多的精力投入到了学习一些Linux方面的基本命令以及如何使用系统等,而没有精力来关注其它事情。在那段时间里,我受到过很多攻击。虽然当时并没有造成致命的伤害,但现在想起来仍心有余悸。
  
  好了,既然你的机器注定将永远受到攻击,那么还是让我们来看一看如何看好它吧。首先来看一下TCT(The Coroner’s Toolkit,http://www.porcupine.org/forensics/tct.html),这是一个不错的工具。它可以运行于Linux、FreeBSD、OpenBSD、Solaris、Unix等平台之上。它能够针对文件的最后修改、访问或者改变的时间来进行分析,并且根据数据节点的值提取出文件列表,以进行恢复。你可以在你怀疑有危险的机器上运行它,来进行检查。运行这个工具后,它会在你的硬盘上收集数据并进行检查。不过,我感觉这个工具对于新手来说,使用起来过于困难。因此,如果您以前从来没有使用过TCT,那么在使用前必须要读非常多的文档。还好,在该工具的主页上,有很多HOWTO文档的链接,所以如果想试一试的朋友可以先看一看这些文档。如果觉得英文文档看起来比较费力,可以在Google中查找TCT关键字的中文网页,就可以找到很多相关的中文资料。
  
  
  安全的信息传送
  
  
  缺省的信息传送是不安全的。这种情况下,你在Internet上传输的内容可以被别的人看到。你可以使用traceroute验证一下看看。
  
  在命令行方式下输入“traceroute www.google.com”后,你就可以知道在你向Google提交搜索数据包时,到底有多少台机器可以看到你的数据包了。
  
  平时,在我登录某一站点时,我要确保自己使用的是安全页——HTTPS。HTTPS使用SSL对传输的数据进行加密。如果不这样做,我所传输的数据就很容易被别有用心的机器所窃听。比如,在使用它们的各种Web服务时,Yahoo就提供了一个安全的登录和提交的方式。我有一个Yahoo电子邮件账号。使用该账号,我可以在任何时候登录来检查我的邮件,而不用担心我的信息会被别人偷窥。
  
  对于远程管理,我使用ssh和scp两个程序来代替Telnet和FTP。它们安装起来非常容易,并且功能也完全可以满足我的需要。一旦安装好以后,我可以在Iptables配置中打开相应的机器端口,这样我就可以从外部连接到机器上了。
  
  这里尽量简单地介绍了我是如何使自己的机器变得安全起来的。希望这些经验能对大家如何安全地用好Linux有所帮助。
  
  
推荐阅读
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文介绍了一种处理AJAX操作授权过期的全局方式,以解决Asp.net MVC中Session过期异常的问题。同时还介绍了基于WebImage的图片上传工具类。详细内容请参考链接:https://www.cnblogs.com/starluck/p/8284949.html ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
author-avatar
几杯茶轶事
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有