对于互联网IT从业者来说,越来越多的工作会逐渐转移到Linux系统上。这一点,无论是开发、运维,还是测试,都应该深有体会。有技术调查网站W3Techs在2018年11月发布了一份调查报告,报告显示Linux在网站服务器系统中的使用率高达37.2%。这个数据也说明Linux系统被广泛使用。事实上,除了在网站服务器中的应用,Linux系统还用于DNS域名解析服务器、邮件服务器以及一些开源软件的应用(大数据应用:据Linux基金会研究),86%的企业已经使用Linux在操作系统上进行云计算、大数据平台建设)服务器等,大多数用户都默认Linux是安全的,有时这种说法确实是一个有争议的话题。默认情况下,Linux确实有一个内置的安全模型。您需要打开它并对其进行自定义以获得更安全的系统。Linux更难管理,但也相应地更灵活,有更多的配置选项。对于系统管理员来说,让产品的系统更安全,免受黑客和黑客的攻击,一直是一个挑战。而且,近年来Linux被攻击的案例屡见不鲜,如何构建一个安全、强大、坚固的Linux系统一直是一个探索的课题。今天,我将从系统的各个层面与大家分享我在日常工作中是如何构建或加强Linux系统的安全性的。1.物理安全这应该说是服务器安全的第一步。硬件服务器,首先需要专业人员进行专业维护。二是从CD/DVD等这些方面关闭软启动方式。同时还可以设置BIOS密码,还要有策略限制访问和各种流程控制。你也可以为了安全起见禁用USB设备:vim/etc/modprobe.d/stopusbinstallusb-storage/bin/true或者使用下面的命令删除USB驱动[root@rs-server~]#mv/lib/modules/3.10.0-693.el7.x86_64/内核/驱动程序/usb/storage/usb-storage.ko.xz2。保持系统最新。这意味着确保系统中没有其他漏洞。比如,存在的漏洞要及时修复。确保系统包含最新版本的补丁、安全修复程序和可用内核。yumupdatesyumcheck-update3。最小化处理原则无论是安装系统还是常用软件,都必须遵守这个原则:最小化安装也减少了出现漏洞的可能性。对于系统中一些不需要的服务和端口,建议关闭。[root@rs-server~]#chkconfig--list|grep"3:on"network0:off1:off2:on3:on4:on5:on6:off然后使用以下命令关闭:chkconfigservice-nameoff4。登录和连接对于Linux服务器,一般使用远程登录(SSH)连接进行登录操作。因此:第一步:除非必要情况外,不要使用root用户登录,可以使用sudo进行提权操作,然后使用系统命令锁定/etc/sudoers文件(非用户)root用户无权修改)。第二步:建议修改SSH配置文件,比如默认端口号22,禁止root密码登录(部分自有机房也可以直接禁止root用户通过SSH协议登录)等。[root@rs-server~]#vim/etc/ssh/sshd_config#Port22可以修改成其他端口号,民工经常使用IP+22混用#PermitRootLoginyes把yes改为No#PermitEmptyPasswordsno打开注释为#AllowUsersusername指定具体5.用户管理Linux是一个可以由多个用户并行操作的系统。因此,系统也对用户进行了划分:超级用户和普通用户。两者的权限不同,所以能做的事情也不同,所以对于用户管理来说也是非常重要的一步。设置用户密码:可以通过系统命令passwd设置。一般建议使用强度相对复杂的密码,每个系统中同一个用户使用不同的密码(可以用manager日常管理)。[root@rs-server~]#passwdmingonggeChangingpasswordforusermingongge.Newpassword:Retypenewpassword:passwd:allauthenticationtokensupdatedsuccessfully.临时用户管理:这种临时用户管理,用完可以删掉,或者锁定一段时间后再登录,下次需要登录时重新开启权限。删除用户很简单,可以使用系统命令userdel-r用户名来删除。锁定用户其实就是修改用户的属性:[root@rs-server~]#usermod-Lmingongge我们打开终端尝试登录:这时发现无法正常登录和连接,说明刚才的配置是正确的。下次需要登录时,可以使用以下命令解锁:[root@rs-server~]#usermod-Umingongge#-Llock#-Uunlock6。文件管理这里的文件管理是指存放用户信息的重要文件:有/etc/passwd和/etc/shadow两个文件。[root@rs-server~]#stat/etc/passwdFile:'/etc/passwd'Size:945Blocks:8IOBlock:4096regularfileDevice:fd00h/64768dInode:17135889Links:1Access:(0644/-rw-r--r--)Uid:(0/root)Gid:(0/root)访问:2019-08-0601:14:37.439994172+0800修改:2019-08-0601:14:37.440994172+0800修改:2019-08-0601:14:37.442994172+0800Birth:-[root@rs-server~]#stat/etc/shadowFile:'/etc/shadow'Size:741Blocks:8IOBlock:4096regularfileDevice:fd00h/64768dInode:17135890Links:1Access:(0000/-----------)Uid:(0/root)Gid:(0/root)访问:2019-08-0601:14:37.445994172+0800修改:2019-08-0601:14:37.445994172+0800修改:2019-08-0601:14:37.447994172+0800Birth:-一般从上面的一些文件属性可以看出这些文件被篡改过。所以一般建议锁定这两个文件,root用户以外的用户没有权限修改和访问。7.启用防火墙使用系统防火墙过滤入站和出站流量。这是防止攻击的好策略,而且系统防火墙的规则可以一一设置,非常强大。建议启用它。8、软件包管理对于系统中安装的软件,我们使用RPM包管理器进行管理。对于使用yum或apt-get命令列出的软件,在删除或卸载时,必须使用以下命令。:yum-yremovesoftware-package-namesudoapt-getremovesoftware-package-name9.禁用Crtl+Alt+Del以重新启动大多数服务器。按下Crtl+Alt+Del组合键后,服务器将重新启动。必须禁止不友好的安全因素,否则误操作会造成很大的影响。#CentOS6禁用Ctrl+Alt+Del重启功能#方法一:vi/etc/init/control-alt-delete.conf#startoncontrol-alt-delete#注释掉这一行#方法二:mv/etc/init/control-alt-delete.conf/etc/init/control-alt-delete.conf.bak#注意:这两种方法都可以在不重启系统的情况下生效对于CentOS7,方法不同:[root@rs-server~]#cat/etc/inittab#inittabisnolongerusedwhenusingsystemd.##ADDINGCONFIGURATIONHEREWILLHAVENOEFFECTONYOURSYSTEM.##Ctrl-Alt-Deleteishandledby/usr/lib/systemd/system/ctrl-alt-del.target#ultther#systemduses'targets'insteadofrunlevels.默认情况下,是两个-user.target:模拟运行级别3#graphical.target:analogoustounlevel5##查看currentdefaulttarget,run:#systemctlget-default##Tosetdefaulttarget,run:#systemctlset-defaultTARGET.target#相关介绍在这个文件里已经解释过了。经测试,如果上面文件中的配置被注释掉,重启命令不会生效:[root@rs-server~]#ll/usr/lib/systemd/system/ctrl-alt-del.targetlrwxrwxrwx.1rootroot13Mar1417:27/usr/lib/systemd/system/ctrl-alt-del.target->reboot.target这个ctrl-alt-del.target这个是reboot.target的软链接。因此,最终正确的做法是:将此文件移动到其他目录,然后重新加载配置文件即可生效。如果您再次需要此功能,只需重新添加此软件链接即可。10.监控用户行为如果你的系统中有很多用户,那么收集每个用户的行为和他们的进程消耗的信息是非常重要的。用户分析可以等到处理了一些性能优化和安全问题的时候再做。但是如何监控和收集用户行为信息呢?有两个有用的工具“psacct”和“acct”可用于监视系统中的用户行为和进程。[root@rs-server~]#yuminstallpsacct-y用法如下:ac统计用户连接时间ac#显示所有用户的总连接时间ac-p#显示每个用户的连接时间ac-d#显示总计所有用户每天连接时间acsilence#显示指定用户连接时间ac-dsilence#显示指定用户每天连接时间sa输出用户活动信息sa#显示所有用户执行命令状态sa-u#显示执行状态commandsbyusersa-m#显示进程执行命令的状态sa-p#根据使用率显示命令的执行状态lastcomm输出最新的执行命令信息lastcomm#显示所有执行命令lastcommsilence#显示指定的用户执行命令lastcommls#显示指定命令执行状态otherlast#查看最近用户登录成功列表last-x#显示系统关机、重启等信息last-a#显示I最后一栏Plast-d#对IP做域名解析last-R#不显示IP栏last-n3#显示最后3条lastb#查看最近用户登录失败列表使用示例:[root@rs-server~]#ac-proot71.88total71.88[root@rs-server~]#sa-uroot0.00cpu1043kmem0ioacctonroot0.00cpu3842kmem0iosystemd-tty-askroot0.03cpu72576kmem0iopkttyagentroot0.00cpu32112kmem0iosystemctlroot0.00cpu2674kmem0iosystemd-cgroupsroot0.07cpu37760kmem0iopsroot0.00cpu28160kmem0iogreproot0.00cpu1080kmem0ioacroot0.14cpu0kmem0iokworker/u256:0*root0.10cpu0kmem0iokworker/0:0*root0.02cpu0kmem0iokworker/0:2*[root@rs-server~]#lastcommsasarootpts/00.002.00secs-1@rootAug6s/00.00secs-1@rootAugs1.14TueAug600:48仍在登录ottty1TueAug600:48stillloggedin[root@rs-server~]#lastbmingongssh:notty192.168.1.14TueAug601:11-01:11(00:00)mingongssh:notty192.168.1.14TueAug601:11-01:11(00:00)btmp6beginsTue11:27201911。定期检查日志。将系统及其重要日志保存在服务器外的专业日志服务器上,防止黑客通过分析日志侵入系统和应用程序。以下是常见的日志文件:12.数据备份这个不用说了,知道很重要,尤其是重要的生产数据,一定要备份保存在本地,异地,不同的介质上。同时,需要定期检查数据的完整性和可用性。13.安全工具对于系统来说,常用的安全扫描工具是必不可少的,比如:scanopenportsnmap。对于系统中的WEB应用,可以使用一些开源的工具:IBMAppScan、SQLMap等,这类商业产品也有很多,这里就不介绍了(而且不给我广告费).有针对文件的文件加密工具,也有一些针对系统的入侵检测和漏洞扫描工具。无论是开源还是商业,您都可以根据实际需求和企业成本来决定使用哪种工具。14、管理方法安全管理还需要有良好的流程和管理制度。否则,以上13点基本效果为0。有方法,但没有系统去实现方法!!因此,无论对于小型企业还是大型企业,流程和管理制度始终先于所有的处理方式。人才是世界上最不可控的因素!!
