Linux 工程师的 6类好习惯 与 23个教训
发布时间:2021-11-23 03:48:25 所属栏目:系统 来源:互联网
导读:一、线上操作规范 1. 测试使用 当初学习 Linux 的使用,从基础到服务到集群,都是在虚拟机做的,虽然老师告诉我们跟真机没有什么差别,可是对真实环境的渴望日渐上升,不过虚拟机的各种快照却让我们养成了各种手贱的习惯,以致于拿到服务器操作权限时候,就
一、线上操作规范 1. 测试使用 当初学习 Linux 的使用,从基础到服务到集群,都是在虚拟机做的,虽然老师告诉我们跟真机没有什么差别,可是对真实环境的渴望日渐上升,不过虚拟机的各种快照却让我们养成了各种手贱的习惯,以致于拿到服务器操作权限时候,就迫不及待的想去试试。 记得上班第一天,老大把 root 密码交给我,由于只能使用 PuTTY,我就想使用 XShell,于是悄悄登录服务器尝试改为 XShell + 密钥登录,因为没有测试,也没有留一个 SSH 连接,所有重启 SSHD 服务器之后,自己就被挡在服务器之外了,幸好当时我备份了 sshd_config 文件,后来让机房人员 cp 过去就可以了,幸亏这是一家小公司,不然直接就被干了……庆幸当年运气比较好。 第二个例子是关于文件同步的,大家都知道 rsync 同步很快,可是删除文件的速度大大超过了 rm -rf,在 rsync 中有一个命令是以某目录为准同步某文件(如果第一个目录是空的,那么结果可想而知),源目录(有数据的)就会被删除,当初我就是因为误操作,以及缺乏测试,就目录写反了,关键是没有备份……生产环境数据被删了,没备份,大家自己想后果吧,其重要性不言而喻。 2. Enter 前再三确认 关于 rm -rf / var 这种错误,我相信手快的人,或者网速比较慢的时候,出现的几率相当大。 当你发现执行完之后,你的心至少是凉了半截。 大家可能会说,我按了这么多次都没出过错,不用怕,我只想说,当出现一次你就明白了,不要以为那些运维事故都是在别人身上,如果不注意,下一个就是你。 3. 切忌多人操作 我在的上一家公司,运维管理相当混乱,举一个最典型的例子吧,离职的好几任运维都有服务器 root 密码。 通常我们运维接到任务,都会进行简单查看。如果无法解决,就请求他人帮忙,可是当问题焦头烂额的时候,客服主管(懂点 Linux)、网管、你的上司一起调试一个服务器。 当你各种百度,各种对照完了发现,你的服务器配置文件,跟上次你修改不一样了,然后再改回来,然后再谷歌,兴冲冲发现问题,解决了,别人却告诉你,他也解决了,修改的是不同的参数……这样我就真不知道哪个是问题真正的原因了,当然这还是好的,问题解决了,皆大欢喜,可是你遇到过你刚修改的文件,测试无效,再去修改发现文件又被修改的时候呢?真的很恼火,切忌多人操作。 4. 先备份后操作 养成一个习惯,要修改数据时,先备份,比如 .conf 的配置文件。 另外,修改配置文件时,建议注释原选项,然后再复制,修改。 再者说,如果第一个例子中,有数据库备份,那 rsync 的误操作不久没事了吧。 所以说丢数据库非一朝一夕,随便备份一个就不用那么惨。 二、涉及数据 1. 慎用 rm -rf 网上的例子很多,各种 rm -rf /,各种删除主数据库,各种运维事故……一点小失误就会造成很大的损失。如果真需要删除,一定要谨慎。 2. 备份大于一切 本来上面都有各种关于备份的内容,但是我想把它划分在数据类再次强调,备份非常之重要哇~ 我记得我的老师说过一句话,涉及到数据何种谨慎都不为过。 我就职的公司有做第三方支付网站和网贷平台的。第三方支付是每两个小时完全备份一次,网贷平台是每 20 分钟备份一次。我不多说了,大家自己斟酌吧 3. 稳定大于一切 其实不止是数据,在整个服务器环境,都是稳定大于一切,不求最快,但求最稳定,求可用性。 所以未经测试,不要在服务器使用新的软件,比如 Nginx + PHP – FPM,生产环境中 PHP 各种挂,重启或者换 Apache 就好了。 4. 保密大于一切 现在各种艳照门漫天飞,各种路由器后门,所以说,涉及到数据,不保密是不行的。 三、涉及安全 1. SSH 更改默认端口(当然如果专业要黑你,扫描下就出来了) 禁止 root 登录 使用普通用户 + key 认证 + sudo 规则 + IP 地址 + 用户限制 使用 HostDeny 类似的防爆力破解软件(超过几次尝试直接拉黑) 筛选 /etc/passwd 中 login 的用户 2. 防火墙 防火墙生产环境一定要开,并且要遵循最小原则,drop 所有,然后放行需要的服务端口。 3. 精细权限和控制粒度 能使用普通用户启动的服务坚决不使用 root,把各种服务权限控制到最低,控制粒度要精细。 4. 入侵检测和日志监控 使用第三方软件,时刻检测系统关键文件以及各种服务配置文件的改动。比如 /etc/passwd,/etc/my.cnf,/etc/httpd/con/httpd.con 等。 使用集中化的日志监控体系,监控 /var/log/secure,/etc/log/message,FTP 上传下载文件等报警错误日志。 另外针对端口扫描,也可以使用一些第三方软件,发现被扫描就直接拉入 host.deny。这些信息对于系统被入侵后排错很有帮助。有人说过,一个公司在安全投入的成本跟他被安全攻击损失的成本成正比,安全是一个很大的话题。 也是一个很基础的工作,把基础做好了,就能相当的提高系统安全性,其他的就是安全高手做的了。 (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |