本文旨在指导系统管理员或安全检查人员对Linux操作系统进行安全合规检查与加固。14个Linux系统安全小窍门,总有妙招!1.帐号和密码1.1禁用或删除无用帐号,减少系统无用帐号,降低安全风险。操作步骤使用命令userdel<用户名>删除不需要的帐号。使用命令passwd-l?username>锁定不需要的帐户。使用命令passwd-u解锁必要的帐户。1.2检查特殊账户检查是否存在密码为空且root权限为空的账户。操作步骤查看空密码和root权限账号,确认账号是否存在异常:使用命令awk-F:'($2=="")'/etc/shadow查看空密码账号。使用命令awk-F:'($3==0)'/etc/passwd查看UID为0的账户。空密码账户加固:使用命令passwd为空密码账户设置密码。确认UID为零的唯一帐户是根帐户。1.3增加密码策略,增强密码复杂度等,减少被猜到的可能性。操作步骤使用命令vi/etc/login.defs修改配置文件。PASS_MAX_DAYS90#新用户密码最长使用天数PASS_MIN_DAYS0#新用户密码最少使用天数PASS_WARN_AGE7#新用户密码过期提前天数使用chage命令修改用户设置。例如chage-m0-M30-E2000-01-01-W7<用户名>表示设置该用户密码最长使用天数为30天,最短使用天数为0,密码为1月1日,2000天到期,并在到期前7天警告用户。如果您连续3次输入错误的密码,您的账户将被锁定五分钟。使用命令vi/etc/pam.d/common-auth修改配置文件,在配置文件中添加authrequiredpam_tally.soonerr=faildeny=3unlock_time=300。1.4限制用户su限制可以su到root的用户。操作步骤使用命令vi/etc/pam.d/su修改配置文件,在配置文件中添加行。例如,只允许测试组中的用户su到root,添加authrequiredpam_wheel.sogroup=test。1.5禁止root用户直接登录限制root用户直接登录。操作步骤创建普通权限帐号并配置密码,防止远程登录;使用命令vi/etc/ssh/sshd_config修改配置文件,将PermitRootLogin的值改为no,保存,然后使用servicesshdrestart重启服务。2.服务2.1关闭不必要的服务关闭不必要的服务(如commonservices和xinetdservices)以降低风险。操作步骤使用命令systemctldisable设置开机时不自动启动该服务。注意:对于一些老版本的Linux操作系统(如CentOS6),可以使用命令chkconfig--leveloff来设置服务在指定的init级别开机时不自动启动.2.2SSH服务安全加强SSH服务的安全性,防止暴力破解成功。操作步骤使用命令vim/etc/ssh/sshd_config编辑配置文件。不允许root帐号直接登录系统。将PermitRootLogin的值设置为no。修改SSH使用的协议版本。将协议版本设置为2。修改允许的密码错误次数(默认6次)。将MaxAuthTries的值设置为3。修改配置文件后,重启sshd服务即可生效。3.文件系统3.1设置umask值设置默认的umask值以增强安全性。操作步骤使用命令vi/etc/profile修改配置文件,添加umask027行,即新建文件的属主有读、写和执行权限,同组用户有读和执行权限,其他用户没有权限。3.2设置登录超时设置系统登录后的连接超时时间,以增强安全性。操作步骤使用命令vi/etc/profile修改配置文件,将TMOUT=开头的行注释设置为TMOUT=180,即超时时间为三分钟。4、日志4.1syslogdlog开启日志功能,配置日志记录。操作步骤Linux系统默认启用以下几种日志:系统日志(默认)/var/log/messagescron日志(默认)/var/log/cron安全日志(默认)/var/log/secure注:部分系统可能使用syslog-ng日志,配置文件为:/etc/syslog-ng/syslog-ng.conf。您可以根据需要配置详细的日志。4.2记录所有用户的登录和操作日志脚本代码用于记录所有用户的登录操作日志,防止发生安全事件后找不到证据。操作步骤1、打开配置文件[root@xxx/]#vim/etc/profile2、在配置文件中输入以下内容:historyUSER=`whoami`USER_IP=`who-uami2>/dev/null|awk'{print$NF}'|sed-e's/[()]//g'`if["$USER_IP"=""];thenUSER_IP=`hostname`fiif[!-d/var/日志/历史];thenmkdir/var/log/historychmod777/var/log/historyfiif[!-d/var/log/history/${LOGNAME}];thenmkdir/var/log/history/${LOGNAME}chmod300/var/log/history/${LOGNAME}fiexportHISTSIZE=4096DT=`date+"%Y%m%d_%H:%M:%S"`exportHISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"chmod600/var/log/history/${LOGNAME}/*history*2>/dev/null运行加载的配置生效。[root@xxx/]#source/etc/profile注意:/var/log/history是日志的存放位置,可以自定义。通过以上步骤,就可以在/var/log/history目录下,以每个用户的名字新建一个文件夹。用户每次登出,都会生成一个日志文件,包含用户名、登录IP、时间,包括该用户当前的日志文件。所有操作(root用户除外)。作者:William92链接:https://www.jianshu.com/p/7f6...