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

安全之道部署Linux五个步骤

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

    道,意味着途径或方法,是一个对实现想要的结果而设置的指南或规则,与其它道类似,安全需要一个结构化的、系统化的方法,同时,它也应该是整体的、涵盖系统生命周期(从计划到退休)的每一个部分。在本文中的道由五个步骤组成,每个Linux系统要建立一个基线都应该通过这些步骤。这些步骤不是开始也不是最终的安全方案。

  我详细讨论每个步骤时,我将部署两个样例系统(一个Fedora桌面系统和一个Debian服务器系统)来展示安全是如何实施的,我选择 Fedora是因为它是现在最流行的发行版,它可以为任何目标工作得很好,它有许多桌面增强特色,并且是用户推荐的无命令行的最容易使用的Linux发行版,我选择Debian作为我们的服务器平台是因为它是轻量级的、有非常悠久的历史而且很稳定、有一个强大的支持社区和大量的文档。这两个都是非常优秀的平台并且都有它们自己的内置安全标准。如果你喜欢其它的发行版,这里指出的步骤可以应用到任何的系统。

  第一步:计划

  第一步也是最重要的一步,因为你在这里做出的决策将影响到全盘的安全,第一步定义系统将部署成什么样的目标,它将是一个小的邮件服务器吗?或者是一个桌面系统吗?又或是一个入侵检测系统?一旦你有一个目标后,你就可以用它来指导整个过程,然后将精力集中在如何尽可能地提供更安全的环境上,安全永远都不应该妨碍功能的完整,毕竟部署一个无人能用的系统有什么用呢?!

  接着,你需要为你的系统决定一个安全目标,主要目标应建立在最小访问或最小权限原则之上,这就意味着仅仅为用户和程序提供系统操作必要的最小权限,你应该还有其他安全目标,如用杀毒软件扫描每个文件或用LDAP对每个用户进行认证,但是最小权限应是不变的原则。

  实现这些目标,在你动手前,你应该思考如何实现它们,回答一些简单的问题将有助于你在步骤2和4里作出正确的决策。系统将作为一个服务器还是一个桌面系统?这个问题决定了你新系统上的大部分配置;用户将在本地访问还是远程访问这个系统?这是另外一个重要的与安全有关的配置问题;系统需要一个桌面环境吗?

  如果你对命令行非常熟悉,将系统部署成无头的或者说无GUI接口的,将X window系统从你的安装中删除,你将很意外地减少系统的攻击面(你暴露在外的区域),另一方面,如果你或你的同事需要一个GUI,只安装一个GUI并弄清楚如何将系统正确地锁定,安装服务器时不安装X,安装桌面系统时才安装X是一个值得竖大拇指的方法。

  最后,计划应用程序将会在系统上做什么,判断它依赖什么库以及比不可少的操作,常见的有:系统运行一个远程命令后不必须的库也被使用了,掩饰住了入侵者的姿态或探测网络,如果你不需要某个包请不要安装它。

  当你弄清楚了这些问题和答案后,写到你的安装日志或笔记簿并保持更新。

  步骤二:安装

  写下这些计划后,进入建造步骤,从你在计划步骤中设定的安全目标的应用程序开始,由于空间限制,下面的章节不会给样例安装列出一个详细的检查列表,我仅将与安全有关的选项做了记号,在第一步中,在安装日志中写下你在安装过程中的选项,在重新安装系统时就可以派上用场了。

  Fedora Core 7

  从一个Fedora 7 ISO文件(可以在发行镜像站点找到)启动到一个干净的系统,在确定你的键盘和语言设置好后,来到磁盘分区部分,对于大多数桌面发行版,安装程序直接就把分区配置好了,但是,如果这个系统是供某些工作敏感的人准备的,请将/home文件夹放在一个独立的分区上。

  分区完成后进入启动管理器选项,选择GRUB并为其设置一个密码,给启动管理器设置一个密码是最佳实践,它可以帮助你在磁盘或系统被盗的情况保护你的数据不会丢失。一个好的密码应该比较复杂,避免使用字典中的单词、纯数字、纯字母和非字母数字混合的符号。

  下一个屏幕,选择DHCP,因为客户端机器通常不需要静态的ip地址,如果你需要使用静态ip地址,在你网络的某个地方务必使用网络地址转换(NAT),接下来,设置一个主机名和域,并为root用户设置一个复杂的密码,在软件包选择屏幕,如果选择自定义安装,请仔细检查你选择的软件包,在自定义选择屏幕,只选择一个桌面环境[译者注:GNOME/KDE等],多安装一个桌面环境就多一分危险,保留默认的选择GNOME,检查其他每一个选项,你会发现有许多软件包将被安装(图1),在我的安装中有843个软件包,你的数字可能不同,排除你不需要的软件包,每个包前面都一个可选框,当你选择完软件包后,系统将重新启动。

  

                              图1 在Fedora 7下选择要安装的软件包

[1] [2] [3] [4] [5] 下一页


推荐阅读
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Linux环境下配置Subclipse访问SVN+SSH仓库的方法
    本文详细介绍如何在Linux操作系统中配置Subclipse,以便通过SSH协议安全访问SVN仓库。不同于常见的Windows配置指南,本文提供了针对Linux用户的详细步骤。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 本文介绍了如何在Ubuntu 16.04系统上配置Nginx服务器,以便能够通过网络访问存储在服务器上的图片资源。这解决了在网页开发中需要使用自定义在线图标的需求。 ... [详细]
  • 本文探讨了Unix和Linux操作系统的起源和发展历程。从20世纪60年代计算机技术的初期阶段,到Unix的诞生及后续Linux的崛起,文章详细介绍了这些操作系统如何逐步成为现代计算不可或缺的一部分。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • 本文提供了在 Kali Linux 2020.01 x64 版本上安装 Docker 的详细步骤,包括环境准备、使用清华大学镜像源、配置 APT 仓库以及安装过程中的常见问题处理。 ... [详细]
  • 当我在命令行登录MySQL后,无法访问任何依赖数据库连接的PHP应用。此问题每次都会出现。以下是复现问题的具体步骤及解决方案。 ... [详细]
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社区 版权所有