请选择Debian服务器版操作系统
这里分别从成本、系统集成、虚拟化、云计算、安全性、系统管理上来阐述,为什么要选择Debian服务器版操作系统。如果您还不十分确定为什么您应该试试 Debian ,请考虑下列原因:Debian 是由它的用户维护的
如果有什么地方需要修正或改良的,我们就会去做。
无与伦比的支持
发送到邮件列表的邮件通常会在十五分钟(或更短)之内得到开发人员的免费解答。相较于典型的电话支持服务: 付费,耗时以小时计,常常只能联络到对您 的系统所知有限,甚至不了解您问题所在的人。
选择 Debian 您将不会感到孤单
有相当广泛的机构与个人都在使用 Debian。请看谁在使用 Debian? 这篇介绍中某些采用 Debian 的著名网站的描述,以及它们对于如何及为何使用 Debian 的现身说法。
世界上最佳的安装系统
正为某些三个版次旧的软件里的旧文件弄乱系统的情形感到厌烦?或者在安装一个软件时发现因为软件间的冲突导致系统当机?dpkg -- Debian 行之已久的包管理系统,已经照顾到您的这些问题。
简单方便的安装过程
如果您听说过 Debian 的安装很困难,那是您没有试过新版的 Debian。我们一直在坚持不懈的优化安装过程,可以通过光盘、DOS、软盘,甚至是网络来安装。
惊人的软件数量
Debian 拥有超过 43000 种不同的软件。每一个都是自由的。如果您拥有在 GNU/Linux 或 GNU/kFreeBSD 下 运行的非自由软件,您仍然可以使用它 -- 实际上,也许在 Debian 中,甚至会有一个能自动安装它,并为您设置好一切的安装程序 。
软件包的高度集成
Debian 优于其他发行版本之处在于其软件包良好的集成度。由于所有软件的集成都出自一个精炼的团队,不仅可以在单一的站点找到所有的软件,还可以确信我们已经解决了所有复杂的相依性问题。我们觉得 deb 格式具有某些超越 rpm 格式的优点,正是这种套件之间的集成性让 Debian 成为更稳定更强健的系统。
源代码
如果您是一个软件开发人员,您将能欣赏到在 Debian 中,附带的数百种开发工具和语言,以及附加于基本系统中的数百万行源代码。所有主发行版中所包含的软件都符合 Debian 自由软件指导方针(DFSG)的标准。这意味着您可以直接利用这些代码来学习或研究,或把它们合并到新的自由软件项目中。当然也有丰富的工具和代码适用与非自由软件项目。
简单方便的升级程序
由于我们包管理系统的存在,升级到新的 Debian 版本成了举手之劳。只需要运行 apt-get update ; apt-get dist-upgrade (在较新的发行版中还可以运行 aptitude update; aptitude dist-upgrade) 然后您就可以在几分钟内从光盘进行升级。或者将 apt 指向超过超过三百个 Debian 镜像站点中的一个,接着从网络进行升级。
多种架构与核心
目前 Debian 支持的 CPU 架构数量可观:alpha、amd64、armel、hppa、i386、ia64、mips、mipsel、powerpc、s390 以及 sparc。Debian 也可以在 GNU Hurd 上与 FreeBSD 核心之外执行 Linux,借由 debootstrap 实用程序你很难找到不能执行 Debian 的设备。
缺陷跟踪系统
Debian 的缺陷跟踪系统采取公开的运行模式。如果软件无法如用户所愿正常工作,我们不会试图隐瞒这个事实。用户们可以提交 bug 报告并得到有关该 bug 何时和为何被关闭了的通知。这个系统让 Debian 快速且诚实的处理问题。
如果您还不是一个 Debian 用户,也许会喜欢下列的益处:
稳定性
这里有许多运行多年的机器没有重启的案例。即便有的机器重启,也是由于电源故障或硬件升级。和其它那些一天要崩溃多次的系统比较一下。
更快更容易的内存管理
其它操作系统也许在一两个领域内速度够快,但是基于 GNU/Linux 或 GNU/kFreeBSD 的 Debian 对硬件要求很低且很平均。在 GNU/Linux 下通过模拟器运行的 Windows 软件比在其原生环境中运行的速度更快。大多数的硬件驱动程序是 GNU/Linux 或 GNU/kFreeBSD 用户们所写的,而非厂商。这可能意味着,对某些硬件的支持从无到有的过程之间会存在一些延迟。不过在厂商停止生产或倒闭以后却仍可以对硬件长时间的支持。经验显示,开放源码的驱动程序通常比封闭式的好太多了。
良好的系统安全
Debian 以及自由软件社区非常注意在软件发布中快速的修复安全问题。通常没几天就会有修复过的软件被上传。因为开放源代码,所以Debian的安全性会在开放的情况下被评估。而且其它自由软件项目也有相同级别的考核系统,用于防止潜在的安全问题被引入到基本系统的重要位置。
安全软件
许多人并不知道,任何机器都可以看到您在网络上发送 的任何信息。Debian 有著名的 GPG (和 PGP)软件,允许邮件在用户之间秘密地被发送。另外SSH允许您和其它安装了 ssh 的机器创建安全的连接。
总结起来可做如下总结:
1. 减少成本
(1)减少数据中心成本
Debian服务器版是真正能为企业减少IT基础设施成本的机会,精简的结构让最少的能耗和最省资源提供更多的服务。这种为特定功能定制的缩减版Debian服务器也意味着更小的出错率。
(2)服务器维护简单
Debian服务器只有部分组件需要维护,对于技术娴熟的系统管理员来说,维护Debian服务器是一项清闲的工作。一般的服务只需要15-30分钟就可以配置完成。
(3)自动更新
经过一些初始配置工作后,剩下的系统可以自动进行安全配置。这样就不需要管理员再进行配置,服务器就可以提供一些重要服务。Debian有两个版本更新周期,长短周期的无缝配合,让系统在N年内实现新技术的更新换代,版本更新过程中用户不需要担心系统安全和稳定问题。
(4)应用包
应用程序在Debian中通常被称为包,因为在Debian系统中,应用程序和其所依赖的库都必须打包在一起。这点与其他Linux系统不太一样。这就意味着系统管理员可以使用启动、停止、关机等简单的命令来控制Debian系统中应用程序。这样简单的操作方式更加容易扩展服务器的功能,使用包方式不仅可以节省系统管理员的时间,还可以最大限度的提高数据中心的正常运行时间。
(5)减少能量消耗
通过Power Capping技术和PowerNap技术可以减少Debian服务器系统的能耗。当数据中心的能耗减少了,系统可提供的服务也更好。Debian具有最佳的服务环境,其低耗稳定的特性,可以最大限度的提高上网本和笔记本电池的寿命,同时让Debian内核发挥最高效率。
(6)免费许可证
Debian服务器提供免费的许可证和订阅。Debian技术团队免费提供重要的维护和安全升级。所有订阅和许可证费用是通过提供有重要价值的服务获得,比如给企业搭建环境、商业咨询和技术支持等。
2. 系统集成
(1)集成现有的系统
Debian服务器版本用常用的身份认证方式和服务入口工具简单地集成企业现有的客户/服务器结构。我们都知道系统集成技术的重要性,这也是Debian团队花费大量时间研究如何实现服务器与基础设施简单融合的原因。
(2)简单的验证方式
验证功能对于网络信息识别与分享是非常重要的。所有Debian服务器版都用Open LDAP来确保在必要时建立一个共享服务目录。通过简单的配置后,新版Debian服务器就可以成为LDAP上网本中集成的一部分。
(3)结合微软活跃目录
所有融合微软活动目录(Active Directory)的Debian服务器版本都有一个Likewise-Open工具。Likewise-Open可以帮助Debian机器在不同机器中通过活跃目录实现资源的辨别、分享认证和访问。所以Debian服务器可以通过简单的指令在无安全风险下为客户机提供资源服务。
(4)共享打印服务
共享打印服务是通过SAMBA协议(一种开源的SMB/CIFS的实现)或者CUPS协议(苹果常用的Unix打印系统,也用于苹果Mac OSX系统中)实现的。所有基于CUPS协议下的大部分平台都支持自动发现打印资源功能,在苹果电脑上可瞬间配置成功。在Windows机上安装打印机需要增加一些额外配置工作,但是在Debian服务器版本上就可以提供石头般稳定的服务。
(5)使用SAMBA协议共享文件
文件共享和打印共享一样使用SANBA协议,可以合并微软的活动目录(Active Directory)。兼容Debian客户端复杂的运行环境。通过NFS、Kerberos、SHH等协议实现UNIX和Linux系统的集成。
3. 虚拟技术
(1)更容易实现虚拟化
Debian服务器版是非常流行的虚拟化数据中心平台。其为主机和客户机提供KVM虚拟化技术,同时还结合了大量的开源和专有技术。
(2)开源虚拟化
每一款发行版Debian服务器都提供了很多方式来创建和管理虚拟化环境。开源技术是虚拟化环境搭建技术的前端,而且Debian免费许可证的运行模式,非常适合动态的扩大和减少虚拟化环境中实际和虚拟的机器。
(3)低空间占用的操作系统
Debian服务器可以通过虚拟机配置出空间占用低的理想环境。Debian有一个虚拟机生成器,允许多个欲安装的机器通过简单的程序复制实现立刻安装。通过常用的环境配置工具,用户可以在简单的环境中管理虚拟机。而且虚拟机和物理机的管理方式没有不同,这两种机器用相同的界面和方式进行管理。
(4)Debian服务器:已经准备好虚拟化
用Debian系统内置的KVM,libvirt,和虚拟主机简表可以在X86中建立虚拟环境。为了简化硬件维修和维持效率平衡,在用户和服务器之间的迁移时要求它们共用一个存储系统。当相同服务器上的所有主机都使用相同的操作系统和应用程序时,内存集成可以最大程度的增加虚拟机的数量。
(5)通过VirtlO设备增加性能
VirtlO设备提供虚拟机访问硬件设备的直接通道,加快了运行速度和简化维护。你可以给虚拟机扩展特定硬件实现更高的吞吐量。Libvirt接口将要成为一项开源标准,通过第三方通用接口成为Linux内核的一部分。
(6)最好的客户端操作系统
通过现在主流的虚拟技术,比如亚马逊EC2,VMware,Xen,Parallels,LXC,VirtualBox,以及KVM ,Debian服务器可当做客户端来用。你可以基于虚拟机上在Debian服务器上勾选你需要的功能,配置一个空间占用率最低的精小系统。我们还提供一个安装工具,只要几分钟就可以在你的系统上安装、卸载虚拟机。
4. 云计算
Debian服务器版可以为你提供一切资源,将你的基础设施建立在公共云前端(亚马逊 CE2)或者是你私有云的建设。可以用相同的镜像和工具来控制这两种云。Debian企业云可以通过防火墙的安全检查提供实时灵活的云计算,并且实现私有云与共有云之间简单迁移。
(1)公共云:基于亚马逊 EC2
亚马逊灵活的EC2(Elastic Compute Cloud)允许你在最少的硬件条件下创建所需的虚拟系统。亚马逊EC2与Debian服务器版本中的模块性、虚拟技术、一系列的应用软件和高效的执行度完美的配合。两者结合起来可以让企业在几分钟内建立灵活、符合企业需求的虚拟系统。
5. 安全性
(1)建立安全性
Debian服务器版本内核很安全,因为它是基于安全性很好的Debian操作系统。Debian安全设计团队、Debian和一些Linux同行一起合作,来确保设计的系统能够及时发现并修复漏洞。Debian免费公平的使用方式也意味着补丁包对于用户都是公开的,而不仅仅只是企业客户和订阅者。
(2)防火墙不复杂
Debian服务器也引入简单易用的安全功能,这是一项极有用的安全技术,因为它可以减少安全管理中的用户错误因素。比如防火墙会提示你为网络的数据通道指定你想要的(SMTP,HTTP,etc)协议。Debian服务器没有默认的网络协议,所以即使首次安装管理员不熟悉的服务,也不会有安全隐患。
(3)通过AppArmor实现访问控制
AppArmor迅速的成为开源服务默认的强制访问控制工具。AppArmor允许系统管理员为每一个程序加入一个安全描述,限制非安全程序的访问和控制权力。AppArmor在传统的UNIX的任意访问控制的基础上额外增加了一些规则来控制程序的访问权限。这完全是学习传统的设立规则方式,使其成为一种强制的标准而被广泛应用。另一项功能是帮助你在服务器主目录下建立一个加密的私有目录,存储那些重要的秘密数据,用户名和登录信息。这是系统管理员为系统管理员设计的,那些有数据访问控制需求的管理员可以考虑花点时间来创建它。这种方式使用起来很方便。
6. 管理员
(1)方便的管理方式
Debian服务器让系统管理员工作起来更简单高效。而Debian是一款由系统管理员专门为系统管理员设计的Linux发行版,以高的安全性和易管理性闻名。所以有很多耗时的管理任务都被设计成简单、自动的。
(2)自动化部署更省时间
自动化部署是Debian结构中的一项关键技术。原来为服务器增加一些相同或者简单的任务时,共同的一点就是配置过程需要消耗好几个小时。但是现在通过Debian服务器,你可以建立可复制且独立于硬件的部署方案,加入你需要的应用程序中。只需几分钟就可以部署完成。Debian服务器支持为主机提供部署方案。
(3)轻松获取应用包
Debian用户通过Debian的包体系可以节省时间。每次的版本更新,Debian服务器都会自动加入更多的服务部署标准,从原来的LAMP(Linux,Apache,MySQL,PHP/Python)栈到后来的java到现在的云计算。增加应用包可以从开源体系仓库中获得,随着不断扩展的Debian体系,可以从Launchpad(PPA)中获得个人增加的应用包,或者一个公司也可以用自己打包应用程序来部署。
(4)通过启动板轻松管理
管理、监管、维护你的IT环境,启动板简洁的管理让用户管理多台机器就像管理一台般轻松。用户可以通过一个简单的Web终端来管理网络上的虚拟机和物理机,比如订阅服务或者是防火墙部署。
CentOS 停止维护后就应该转向 Debian Linux
作为Red Hat Enterprise Linux(RHEL)的复刻版本,CentOS凭借其开源、免费、稳定的特性深受市场喜爱。2020 年 12 月,红帽宣布将对 CentOS 社区的投资重点从 CentOS Linux 转移到 CentOS Stream,CentOS正式落幕。
背景及影响
基于CentOS Linux 8提前结束生命周期,CentOS官方提供的建议为:对于开发或测试环境,可以将环境迁移至CentOS Stream版本;对于生产环境或部署关键业务的系统,建议使用稳定的Red Hat Enterprise Linux。针对该建议,您需要关注以下影响:CentOS Stream是一个滚动升级的版本,而不是Red Hat Enterprise Linux的复刻版本。因此无法保障系统稳定性与兼容性,当CentOS Stream被运用于生产环境时,可能存在的风险仍未知。Red Hat Enterprise Linux是付费镜像,需要购买订阅服务。因此您需要关注业务成本的变化。
应对策略
替换CentOS Linux操作系统的方式分为两类,更换操作系统和迁移操作系统,可选方案有很多,本节旨在说明更换使用Debian系统的替代方案,并比较两者的主要区别。
就稳定性而言,Debian无疑是桌面或服务器的首选。其是当今许多Linux发行版的基础。它提供稳定的包和一个非常长的支持窗口,“长期支持(LTS)”,直到其版本的生命周期结束。它在升级Linux内核版本和包方面也非常保守。这只会让您的服务器更加稳定,不会有任何意外。Debian还在结束支持周期之前提供了“测试”分支。这为服务器管理员提供了充足的部署和测试时间,以保证兼容性。通过下表的比较可以看出常用命令的区别,apt可以直接替代yum使用。

以下是一些具体的对比:
架构
可用的支持架构可能是决定一个发行版是否是一个可行的选择的因素。Debian和CentOS都是非常流行的x86_64/AMD64,但各自支持哪些其他的架构呢?两者都支持AArch64/ARM64, armhf/armhfp , i386 , ppc64el/ppc64le(注意:只有 CentOS 7 支持 armhf/armhfp 和 i386)。
CentOS 7 还支持 POWER9,而 Debian 和 CentOS 8 不支持。CentOS 7 专注于 x86_64/AMD64 架构,其他架构通过 AltArch SIG(Alternate Architecture Special Interest Group)发布,CentOS 8 同样支持 x86_64/AMD64,AArch64 和 ppc64le。Debian支持 MIPSel, MIPS64el 和 s390x,而 CentOS 不支持。与 CentOS 8 相似,Debian 并不偏向于某一个架构,所有支持的架构都得到同等的支持。
软件包管理
现在大多数Linux发行版都有某种形式的软件包管理器,其中一些比其他的更复杂,功能更丰富。
CentOS 使用 RPM 包格式和 YUM/DNF 作为软件包管理器。Debian使用DEB包格式和dpkg/APT作为软件包管理器。
两者都提供全功能的软件包管理,包括基于网络的资源库支持、依赖性检查和解决等。如果你熟悉其中一个,但不熟悉另一个,你可能会有一点麻烦,但它们并没有压倒性的不同。它们都有类似的功能,只是通过不同的界面提供。
文件系统
默认的文件系统对你来说是一个考虑因素吗?如果是的话,XFS爱好者可以为它是CentOS的默认系统而高兴。那些更倾向于EXT4的人可能更喜欢Debian。XFS和EXT4对于CentOS和Debian来说都是流行的和支持的选项,所以默认文件系统可能不是一个决定性的因素。此外这两个发行版都支持许多其他文件系统,如ext2/3、NFSv3/4、btrfs、SMB、GFS2等等(注意:Btrfs只被CentOS 7支持)。
CentOS 并不正式支持 Debian 提供的一些文件系统。最明显的是 ZFS。debian通过 DKMS 贡献提供 ZFS 支持,但 CentOS 完全不支持 ZFS(尽管 ZFS 支持可以通过第三方获得)。
内核
所在的环境中需要最新/最棒的Linux内核来支持最新的硬件或内核功能?在这种情况下,你可能会发现 Debian 的 4.19 内核很有吸引力。CentOS确实有kernel-lt-5.4和kernel-ml-5.10软件包,但CentOS的内核是3.10(CentOS 7)或4.18(CentOS 8)。不过Debian和Red Hat都将新内核的安全补丁回传到他们目前的内核中,所以在安全方面的落后通常不是一个问题。
升级
Debian的一个优势是主要版本的升级。CentOS支持次要版本的升级,例如从CentOS 7.8升级到CentOS 7.9,但不支持(或只支持少量的)主要版本的升级,例如从CentOS 6升级到CentOS 7或CentOS 8。CentOS的主要版本通常有10年的寿命,但原地升级可能会使系统在一个主要版本和另一个主要版本之间徘徊,所以我们通常不建议这样做。(注意:我们建议在CentOS主要版本之间进行离线/平行构建升级。)
Debian可以从一个稳定版升级到另一个稳定版,例如从 Debian v9 Stretch(稳定版)升级到 Debian v10 Buster(稳定版),可以帮助系统在多年后保持更新。debian通常以2年为一个发布周期发布新的主要版本,3年的全面支持和另外2年的LTS(长期支持),寿命为5年,所以能够升级到下一个稳定的主要版本是很方便的。
主要版本的升级对于那些以更短暂的方式部署系统的人来说用处不大,因为将基本映像更新到一个较新的版本通常相对容易,但对于那些预计有多年寿命的系统的部署者来说,主要版本的升级会构成一个重要的努力水平。
支持
CentOS在很大程度上是由社区支持的,但Red Hat也接受终端用户提交的关于CentOS和上游RHEL版本的错误报告。CentOS的商业支持不是由CentOS项目(或Red Hat)直接提供的,而是通过第三方提供的,如OpenLogic。
Debian主要是社区支持,包括提供一个错误跟踪器。debian确实提供了一个可以被雇佣来帮助解决问题的顾问名单,但这些顾问是独立运作的。一些基于Debian的下游发行版有商业支持选项,其中Ubuntu可能是最多的。
至少有七个理由表明 Debian 仍是优秀的 Linux 发行版:
7、软件包管理
Debian 中的软件包由 dpkg 和 apt-get 来管理。如今它们管理依赖项的能力不再很独特;几个同类工具(比如 dnf 和 urpmi)有一两个选项是 dpkg 和 apt-get 所没有的。然而它们两个仍是一大批用来查看和处理软件包的实用工具的核心。没有同类工具提供那么多的选项来解决安装冲突。这么多年后,dpkg 和 apt-get 仍然独具一格。
6、风险的选择
Debian 的三个主要软件库是 Stable(稳定)、Testing(测试)和 Unstable(不稳定)。这些名称体现了每一个软件库中的软件包在测试这条道路上走得有多远,让用户可以根据自己的情况来兼顾最新软件包和稳定性程度。
如果主要关注的是稳定性,那可以坚持使用 Stable。相比之下,如果想要最新的软件,可以使用 Unstable,不过面临着风险:有更多的软件错误,不相兼容等。Testing 通常介于这两个极端之间。当然风险程度是相对的。许多基于 Debian 的发行版(包括 Ubuntu)使用 Testing 或者 Unstable 软件包,不过在发布之前进行了自己的一番测试。除非准备进行技术方面的重大变化,比如上一个版本改用 systemd,否则 Unstable 通常来说足够安全,如果你想用的软件包仅限于非核心元素(比如桌面环境),更是如此。
5、自由程度的选择
Debian 软件库分为三个部分:Main(主要)、Contrib(普通) 和 Non-Free(非自由)。Main 只包括自由许可证的软件,Contrib 包括本身采用自由许可证的软件,但是依赖其他的非自由软件,而 Non-Free 包括采用专有许可证发布的软件。
Debian 安装时只启用了 Main,所以该项目的偏好显而易见。不过,添加另外两个部分只需要花五分钟的时间来编辑 /etc/apt/sources.list。我满足于坚持使用默认设置,不过我很欣赏这一点:Debian 提供了一种选择,然后放心让用户做出正确的选择。
4、丰富多样的文档
Debian 的文档散布于无数个网站,并不经常被讨论。然而多年来发现如果将 “Debian” 添加到我的互联网搜索,选择近些年来的结果,几乎总是会找到一个网页给出详细的逐步说明,帮助解决问题。
3、迅速修复错误
没听说过另外哪个发行版像 Debian 这么迅速地应对安全或者技术问题。无论 Debian 维护人员是单枪匹马还是团队合作,他们的响应时间表明了勤勤恳恳的工作态度,值得用户依赖。如果说 Debian 有时似乎比其他发行版更频繁地更新,那不是由于它有更多的错误,而是由于其开发人员在小步改进。
2、控制安装环节
Debian 很早以前就取得了长足发展,戳穿了它很难安装这个流言。目前的安装程序是市面上最灵活的安装程序之一。如果接受默认设置、安装它建议的一群软件包,它就会进行安装,安装时间与 Fedora 的 Anaconda 大致一样。然而如果自行选择,安装和选择一个个软件包所花的时间要长得多。这就是为什么率先推出快速安装程序的 Ubuntu 在排错时建议使用 Debian 的安装程序版本。
1、Debian社区
除了技术方面外,Debian 还拥有免费软件领域最庞大、最创新的社区之一。该项目的邮件列表上热烈地讨论政策和技术选择;重大问题在 Debian 维护人员当中进行投票表决,包括谁是下一任项目负责人。所有投票取决于 Condorcet 方法,这是最公正的表决方法之一。在过去,该社区常常不欢迎女性,但这种情况在改善;总体上来讲,Debian 在力求包容方面所做的工作与其技术素养一样出名。
主流发行版
一些人可能反对 Debian,因为发布速度很慢,连最新的软件包也常常不太先进。然而在安装一台服务器,关注的方面主要是稳定性,这种劣势反而是一种优势。除非坚持始终拥有最新的版本,否则大多数主要的自由软件已经足够成熟,必不可少的新功能特性现在已很少见。常常可以等上几个月,如果在虚拟机中运行其他发行版以满足好奇心,更是如此。
还是让数字为它说话吧!如今三分之二的活跃 Linux 发行版基于 Debian;这几年来,Distrowatch 网站上页面浏览量四大发行版中三个是 Debian 及其最受欢迎的衍生版:Linux Mint 和 Ubuntu。从许多方面来看,Debian 已成为其他上游来源的上游来源。Debian 也许是历史最悠久的发行版之一,但很显然,它仍可以教其他发行版好几招。要是没有 Debian,Linux 领域的境况会大不一样,会黯然失色好多。
小结
最后,选择最适合你的发行版要看技术要求,内部资源,支持选项和商业决策。无论是Redhat Linux、Ubuntu、Oracle linux、OpenSUSE、AlmaLinux等。如果因应用的原因必须运行在一个与RHEL兼容的发行版上,那么CentOS是赢家。如果工程团队的经验是使用DEB包的发行版,Debian将是一个明智的选择。如果可以完全通过内部人才库来支持系统,那么两者都可以作为选择。但是,如果想加强你的选择并获得商业支持,也许商业的CentOS支持选项会让你动心。
德国与法国两国政府对开源软件的使用是非常重视的,Debamax就是来自法国的Debian服务提供商。
修改系统默认配置让Debian用着顺手
Debian默认的设置很多地方不合你的使用习惯,每次开机grub等待时间太长、useradd创建的用户家目录权限默认是755不安全、apt默认缓存占太多空间,找了半天设置才知道都在/etc/default目录下面,改完之后系统好用了不止一倍。在此分享的几个/etc/default目录下的配置,是在Debian v13上实测过的,改完之后系统更安全、更符合用户使用习惯。优先改前4个:grub启动配置、useradd新建用户配置、locale编码配置、apt配置,这四个日常影响最大。改配置之前先备份原文件,改坏了可以快速恢复。
1、/etc/default目录下的配置修改
1. /etc/default/grub:修改grub启动参数
常用修改项:
修改grub等待时间:GRUB_TIMEOUT=3 把默认的5秒改成3秒,开机更快
禁用图形化grub界面,改成纯文本:GRUB_TERMINAL=console 启动速度更快,还能避免显卡兼容问题
给内核加参数:GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0" 把网卡名称改成传统的eth0格式,不用再记奇怪的ensxxx名称
改完之后执行update-grub生效,下次开机就会用新的配置。
Debian v13专属:v13的grub默认支持btrfs的根分区,加参数的时候不用额外加rootflags,老版本Debian需要。
2. /etc/default/useradd:修改新建用户的默认配置
常用修改项:
修改新建用户的默认家目录权限:HOME_MODE 0700 把默认的755改成700,其他用户看不到该用户家目录里的内容,更安全
修改用户默认shell:SHELL=/bin/bash 默认新建用户的shell是sh,改成bash用着更顺手
默认创建用户的时候自动创建家目录:CREATE_HOME yes 不用每次加-m参数,改完之后新建的用户就会用新的配置,已经创建的用户不受影响。
3. /etc/default/locale:修改系统默认语言和编码
常用修改项:
LANG="zh_CN.UTF-8"
LC_ALL="zh_CN.UTF-8"
改完之后执行locale-gen生成编码,系统的默认语言就改成中文了,不会再出现乱码问题,不想用中文改成en_US.UTF-8也行。v13专属:默认已经支持UTF-8编码,不用额外装语言包,老版本Debian需要手动装locales包。
4. /etc/default/apt:修改apt的默认配置
常用修改项:
限制apt缓存的最大大小:APT::Archives::MaxSize "1000"; 限制apt缓存最多占1G空间,不会因为装的包太多导致/var目录占满;
自动删除旧的包:APT::Archives::MaxAge "30"; 缓存超过30天的包自动删除;
安装包的时候默认推荐的包不装:APT::Install-Recommends "false"; 装包的时候不会装一堆没用的推荐包,节省空间,系统更干净;
改完之后apt就会按照新的规则处理缓存和安装包。
5. /etc/default/keyboard:修改键盘布局
常用修改项:
XKBLAYOUT="cn"
如果默认是英文键盘布局,改成cn之后就是中文键盘布局,不会出现符号错位的问题,服务器用的话默认us也行,桌面版推荐改成cn。
改完之后执行udevadm trigger --subsystem-match=input --action=change立即生效且不用重启。
6. /etc/default/cron:修改定时任务的默认配置
常用修改项:
定时任务的日志级别:EXTRA_OPTS="-L 2" 只记录错误和警告,不会产生太多日志;
定时任务的默认PATH:PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin" 避免定时任务执行的时候找不到命令;
定时任务执行失败给root发邮件:MAILTO="root" 执行失败会自动发邮件通知,方便排查问题。
7. /etc/default/ufw:修改防火墙默认配置
常用修改项:
默认拒绝入站,允许出站:DEFAULT_INPUT_POLICY="DROP" DEFAULT_OUTPUT_POLICY="ACCEPT" 更安全;
防火墙日志级别:LOGLEVEL="low" 只记录重要的日志,不会产生太多垃圾日志;
允许ping:ALLOWED_PING="yes" 可以根据需要关闭,防止被扫端口的时候探测到服务器在线。
8. /etc/default/tmpfs:修改tmpfs临时文件系统的大小
常用修改项:
TMPFS_SIZE=20% 把tmpfs默认的大小改成内存的20%,默认是50%,如果内存小的话可以改小一点,避免tmpfs占太多内存导致OOM。
比如内存是4G的话,默认tmpfs是2G,改成20%也就800M,节省内存给其他服务用。
2、常见问题
Q1:修改这些配置会不会导致系统崩溃?
A:不会,这些都是官方提供的可修改的默认配置,按照我给的参数改不会有问题,改之前可以先备份原文件,改坏了恢复就行。
Q2:已经创建的用户能不能应用/etc/default/useradd的新配置?
A:不能,/etc/default/useradd只对新建的用户生效,已经创建的用户需要手动修改usermod修改权限和shell。
Q3:修改grub配置之后忘了执行update-grub怎么办?
A:不会生效,下次开机还是用原来的配置,执行update-grub之后才会把配置写入grub的启动文件,生效。
Q4:apt的缓存目录在哪?我想手动清理怎么办?
A:缓存目录在/var/cache/apt/archives/,手动执行apt clean就能清空所有缓存,apt autoclean只会清理旧的包。
加固系统设置让Debian理安全
1、多步初始化全流程
1. 安装前准备
安装Debian v13的时候一定要选「最小化安装」,不要装桌面环境和不需要的软件,减少攻击面。
安装的时候一定要勾选「启用非自由固件」选项,不然网卡、RAID卡等硬件可能因为缺少驱动无法使用,如果安装的时候没选,后续可以手动加源补装。
2. 基础系统配置
# 设置主机名,换成你自己的业务标识
hostnamectl set-hostname prodserv01
# 设置时区为上海,避免日志时间不对
timedatectl set-timezone Asia/Shanghai
# 配置中文UTF-8编码,避免中文乱码
locale-gen zh_CN.UTF-8
echo"LANG=zh_CN.UTF-8" > /etc/default/locale
配置完执行date和locale验证,确保时间和编码正确。
3. 官方源优化
Debian 13默认使用deb822格式的源配置,存放在/etc/apt/sources.list.d/debian.sources,不要用老版本的sources.list配置方式。
# 换成阿里云国内镜像源,速度更快
sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources
sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources
# 启用非自由固件和非自由软件源,兼容更多硬件和软件
sed -i 's/Components: main/Components: main non-free non-free-firmware contrib/g' /etc/apt/sources.list.d/debian.sources
# 禁用cdrom源,避免更新的时候提示插入光盘
sed -i '/deb cdrom/d' /etc/apt/sources.list.d/debian.sources
配置完执行'apt update'验证源是否正常。
4. 系统更新&基础工具安装
# 更新系统到最新稳定版,修复所有已知漏洞
apt update && apt upgrade -y && apt autoremove -y
# 安装必备基础工具,最小化安装默认没有这些
apt install -y vim curl wget net-tools lsof rsync tcpdump nftables fail2ban prometheus-node-exporter
不要用apt dist-upgrade在生产环境做跨版本升级,可能会导致依赖冲突,业务中断。
5. 用户权限配置
# 创建运维专用普通用户,不要直接用root操作
useradd -m ops -s /bin/bash
# 设置用户密码,复杂度要符合要求:8位以上,包含大小写字母、数字、特殊字符
passwd ops
# 配置sudo免密权限,方便运维操作
echo"ops ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/ops
chmod 0440 /etc/sudoers.d/ops
配置完切换到ops用户执行sudo su -验证是否能正常切换到root。
6. SSH安全加固
编辑/etc/ssh/sshd_config,修改以下配置:
# 改SSH默认端口,避免被批量扫描,换成你自己的端口,不要用1000以下的常用端口
Port 22345
# 禁用root用户直接登录
PermitRootLogin no
# 禁用密码登录,后续用证书登录,安全性更高
PasswordAuthentication no
# 限制允许登录的用户,只给运维用户权限
AllowUsers ops
# 禁用空密码登录
PermitEmptyPasswords no
# 关闭DNS反向解析,提升SSH登录速度
UseDNS no
配置完执行systemctl restart sshd生效,重启SSH之后不要关闭当前终端,新开一个终端验证能不能正常登录,避免配置错了连不上服务器。
配合fail2ban自动封禁暴力破解IP:
# 复制默认配置文件
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# 编辑jail.local,开启SSH防护
sed -i '/\[sshd\]/a enabled = true\nmaxretry = 5\nbantime = 86400' /etc/fail2ban/jail.local
# 启动fail2ban并设置开机自启
systemctl enable --now fail2ban
配置完错误输入5次密码测试,IP会被封禁24小时,暴力破解成功率降到0。
7. 防火墙配置
v13默认使用nftables作为防火墙,不要直接用iptables命令,配置默认拒绝所有入站,只放行需要的端口:
# 清空原有规则
nft flush ruleset
# 添加默认策略:允许所有出站,拒绝所有入站,允许本地回环
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; }
nft add chain inet filter forward { type filter hook forward priority 0 \; policy drop \; }
nft add chain inet filter output { type filter hook output priority 0 \; policy accept \; }
nft add rule inet filter input iif lo accept
nft add rule inet filter input ct state related,established accept
# 放行需要的端口,根据你的业务需求添加
nft add rule inet filter input tcp dport 22345 accept # SSH端口
nft add rule inet filter input tcp dport 80 accept # HTTP
nft add rule inet filter input tcp dport 443 accept # HTTPS
nft add rule inet filter input icmp typeecho-request accept # 允许ping,不需要可以关闭
# 保存规则到配置文件,开机自动加载
nft list ruleset > /etc/nftables.conf
systemctl enable --now nftables
配置完执行nft list ruleset验证规则是否正确,测试端口是否能正常访问。
8. AppArmor安全配置
v13默认启用AppArmor强制访问控制,不要禁用,能极大提升系统安全性,降低被入侵后的影响范围:
# 启用AppArmor并设置开机自启
systemctl enable --now apparmor
# 查看AppArmor运行状态,确保所有系统服务都处于enforce模式
aa-status
安全提示:不要把AppArmor改成permissive或者disabled模式,会降低系统安全等级。
9. 内核参数优化
编辑/etc/sysctl.conf,添加以下优化参数,适配Debian 13的6.x内核,提升系统性能和安全性:
# 文件句柄优化,解决 too many open files 问题
fs.file-max = 655350
fs.nr_open = 655350
# 网络优化
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 102465535
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 40968738016777216
net.ipv4.tcp_wmem = 40966553616777216
# 内核安全优化
kernel.sysrq = 0
kernel.dmesg_restrict = 1
kernel.kptr_restrict = 2
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.rp_filter = 1
配置完执行sysctl -p生效,验证参数是否正确加载:sysctl fs.file-max应该返回655350。
10. 服务裁剪,减少攻击面
# 查看所有启用的服务
systemctl list-unit-files --type=service --state=enabled
# 禁用不需要的服务,根据实际情况调整
systemctl disable --now bluetooth cups rpcbind rpcbind.socket avahi-daemon
不要禁用systemd、sshd、nftables、apparmor、syslog等系统核心服务,不然会导致系统无法正常运行。
11. 监控&日志采集配置
# 启用node_exporter监控客户端,开机自启
systemctl enable --now prometheus-node-exporter
# 配置rsyslog把关键日志发送到统一日志中心,方便后续排查问题
echo"*.* @192.168.1.100:514" >> /etc/rsyslog.conf
systemctl restart rsyslog
配置完在监控服务器验证是否能正常采集到指标。
12. 核心文件自动备份配置
# 创建备份目录
mkdir -p /backup/etc
# 配置每天凌晨1点自动备份/etc和/root目录到备份目录,保留最近7天的备份
echo"0 1 * * * root tar zcf /backup/etc/etc-backup-\$(date +\%Y\%m\%d).tar.gz /etc /root && find /backup/etc -mtime +7 -delete" > /etc/cron.d/backup4sys
# 启用cron服务
systemctl enable --now cron
配置完手动执行一次备份命令,验证备份文件是否正常生成。
2、Debian v13 注意提示
v13默认的源格式是deb822格式,存放在/etc/apt/sources.list.d/debian.sources,不是老版本的/etc/apt/sources.list,不要用老版本的换源命令,不然会报错。其默认把非自由固件移到了单独的组件,安装的时候一定要勾选启用,不然网卡、RAID卡等硬件可能无法正常工作,安装完补装驱动会很麻烦。默认的防火墙是nftables,不是老版本的iptables,配置规则的时候要用nft命令,不要直接用iptables命令,不然规则不会生效。内核是6.x版本,老版本的tcp_tw_recycle参数已经废弃,不要加,否则会导致网络异常,这里给的优化参数都是适配6.x内核的,可以直接用。
3、常见问题
Q1:我用的是Debian v12,这套初始化流程能用吗?
A:90%的内容都能用,只有源配置、内核参数部分有细微差异,v12的源可以用原来的sources.list格式,内核参数适配5.x版本就行,其他步骤完全通用。
Q2:禁用root SSH登录之后,我怎么登录服务器?
A:用你创建的普通运维用户登录,然后用sudo su -切换到root就行,或者配置SSH证书登录,比密码登录更安全,完全不影响使用。
Q3:防火墙默认拒绝所有入站,万一我后面要开新的服务忘加端口规则怎么办?
A:可以先在测试环境测好需要的端口,再到生产环境加规则,也可以在上线前临时把默认策略改成接受,等所有服务都上线之后再改成拒绝,不过不建议生产环境这么做,还是提前规划好端口更安全。
Q4:AppArmor会不会影响我部署的服务运行?
A:默认的规则不会,如果你部署的服务有特殊的文件访问需求,可以加对应的AppArmor规则,不要直接禁用AppArmor,能极大提升系统的安全性,降低被入侵后的影响范围。