安全基线之Linux

账号管理与授权

检查是否存在空密码账户

配置描述 检查是否存在空密码账户,非法用户可通过该账户直接登陆系统
检查方法 awk -F: '($2==""){print $1}' /etc/shadow
操作步骤 cp -p /etc/passwd /etc/passwd_bak cp -p /etc/shadow /etcshadow_bak passwd username(为用户设置密码)
回退操作 cp /etc/passwd_bak /etc/passwd cp /etc/shadow_bak /etc/shadow
操作风险 低风险
是否可选 必选

删除和锁定无关账户

配置描述 删除和锁定无关帐户,定期清理无用账户,避免为攻击者提供访问通路,确保系统访问权限的最小化
检查方法 more /etc/passwd /etc/shadow 查看是否存在一下可能无用的账户: listen、gdm、webservd、nobody、nobody4、noaccess、lp、uucp 确认以上账户可以锁定
操作步骤 cp -p /etc/passwd /etc/passwd_bak cp -p /etc/shadow /etcshadow_bak vim /etc/shadow 在需要锁定的用户后加入LK,如: UserLK:$1$shdwsdsasfdsfawer:14172:0:99999:7::: 将/etc/passwd文件中的shell设置为/sbin/nologin
回退操作 cp /etc/passwd_bak /etc/passwd cp /etc/shadow_bak /etc/shadow
操作风险 被锁定账户无法登陆系统
是否可选 必选

不重复使用近期口令

配置描述 配置设备,使用户不能重复使用最近5次(含5次)内已使用的密码
检查方法 cat /etc/pam.d/system-auth 检查password required pam_unix.so所在行是否存在remember=5 ls /etc/security/opasswd 检查是否存在/etc/security/opasswd文件
操作步骤 cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth_bak touch /etc/security/opasswd chown root:root /etc/security/opasswd chmod 600 /etc/security/opasswd vim /etc/pam.d/system-auth 在password required pam_unix.so所在行增加remember=5
回退操作 cp /etc/pam.d/system-auth_bak /etc/pam.d/system-auth
操作风险 /etc/pam.d/system-auth文件设置不当将导致系统登陆认证不成功。配置生效需重启服务器
是否可选 必须选

按用户角色分配不同权限的账号

配置描述 按照用户角色分配不同权限,确保用户权限最小化,避免越权操作
检查方法 more /etc/passwd /etc/shadow 查看系统中存在的用户,确认每个账户的home路径及启动shell 与管理员确认需要锁定的账户
操作步骤 cp -p /etc/passwd /etc/passwd_bak cp -p /etc/shadow /etcshadow_bak 修改home路径和shell
回退操作 cp /etc/passwd_bak /etc/passwd cp /etc/shadow_bak /etc/shadow
操作风险 更改用户权限可能导致某些应用无法正常运行
是否可选 必选

设置口令策略满足复杂度要求和口令有效期

配置描述 设置口令策略满足复杂度要求和口令生存周期,确保口令具有足够的复杂性,可抵抗穷举攻击
检查方法 more /etc/login.defs 检查PASS_MAX_DAYS、PASS_MIN_LEN、PASS_MIN_DAYS PASS_WARN_AGE参数
操作步骤 cp -p /etc/login.defs /etc/login.defs_bak vim /etc/login.defs PASS_MIN_LEN = 8 PASS_MAX_DAYS = 90
回退操作 cp /etc/login.defs_bak /etc/login.defs
操作风险 可能导致非root用户修改密码时多次不成功
是否可选 必选

禁用UID为0的用户

配置描述 检查是否存在除root之外UID为0的用户
检查方法 awk -F: '($3==""){print $1}' /etc/passwd 返回值应只有root
操作步骤 cp -p /etc/passwd /etc/passwd_bak cp -p /etc/shadow /etcshadow_bak cp -p /etc/group /etc/group_bak userdel username(除root以外uid为0的用户)
回退操作 cp /etc/passwd_bak /etc/passwd cp /etc/shadow_bak /etc/shadow cp /etc/group_bak /etc/group
操作风险 可能造成某些应用运行异常,需要确认找到UID为0的非root用户用途
是否可选 必选

禁止超级管理员远程登录

配置描述 禁止超级管理员账户远程登录,远程登录会增加信息泄露风险,攻击者可利用远程登录客户端的漏洞获取超级管理员权限,威胁系统安全,如采用telnet协议登录,则安全威胁更为严重
检查方法 telnet: more /etc/pam.d/login 检查是否有下列行: 默认情况root是不能telnet连接主机的,检查下列行未被注释: auth required pam_securetty.so 或者 more /etc/securetty 检查是否有下列行且且未被注释: console SSH: more /etc/ssh/sshd_config 检查下列行设置是否为no且未被注释 PermitRootLogin no 检查图形界面登录 more /etc/X11/gdm/gdm.conf 检查下列行是否设置为false AllowRoot=false AllowRemoteRoot=false
操作步骤 cp -p /etc/pam.d/login /etc/pam.d/login_bak cp -p /etc/securetty /etc/securetty_bak cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak cp -p /etc/X11/gdm/gdm.conf /etc/X11/gdm/gdm.conf_bak 新建一个普通用户并设置高强度密码 useradd username passwd username 禁止root远程telnet登录 vim /etc/pam.d/login 去掉auth required pam_securetty so前面的注释 或 vim /etc/securetty 添加一行console 禁止root用户远程ssh登录系统 vim /etc/ssh/sshd_confi 修改PermitRootLogin设置为no同时保证该行不被注释并重启ssh服务 禁止root图形界面登录 vim /etc/X11/gdm/gdm.conf AllowRoot=false AllowRemoteRoot=false
回退操作 cp /etc/pam.d/login_bak /etc/pam.d/login cp /etc/securetty_bak /etc/securetty cp /etc/ssh/sshd_config_bak /etc/ssh/sshd_config cp /etc/X11/gdm/gdm.conf_bak /etc/X11/gdm/gdm.conf
操作风险 改变运维人员操作习惯,必须新建一个能够执行交互式登录的普通用户并能够通过su提生权限,需要重启服务,可能带来新威胁 另外禁止root远程登录通常不会提示root被禁止远程登录,而是口令错误。因此这种设置会出发达到最大登录次数后锁定root账户的风险,建议如果有阻止root远程登录,同时将root的loginretries设为0或较大值,防止root账户被锁
是否可选 必选

将用户账户分配到相应的账户组

配置描述 建立多账户组,将用户账号分配到相应的账户组,不同的账户组拥有不同的系统访问权限和管理权限
检查方法 more /etc/group 查看每个组中的用户或者每个用户属于哪个组 确认需要修改用户组的用户
操作步骤 cp -p /etc/group /etc/group_bak usermod -g group username
回退操作 cp /etc/group_bak /etc/group
操作风险 可能导致某些应用运行异常
是否可选 必选

设定连续认证失败次数

配置描述 配置用户连续认证失败次数超过6次(不含6次),锁定该账号
检查方法 cat /etc/pam.d/system-auth 检查是否存在 auth required /lib/security/$ISA/pam_tally.so onerr=fail no_magic_root account required /lib/security/$ISA/pam_tally.so deny=6 no_magic_root reset
操作步骤 cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth_bak 修改策略设置 vim /etc/pam.d/system-auth 增加 auth required /lib/security/$ISA/pam_tally.so onerr=fail no_magic_root auth required /lib/security/$ISA/pam_tally.so deny=6 no_magic_root reset
回退操作 cp /etc/pam.d/system-auth_bak /etc/pam.d/system-auth
操作风险 使配置生效需要重启服务器。root账户不在锁定范围内。账户被锁定后,可使用faillog -u -r 或pam_tally –user --rest解锁
是否可选 必选

系统账户登陆限制

配置描述 对系统账号进行登录限制,确保系统账号仅被守护进程和服务使用,不应直接由该账号登录系统。如果系统没有应用这些守护进程或服务,应删除这些账号
检查方法 查看/etc/shadow文件中一下账号是否列为NP: 禁止交互登录的账号: daemon、bin、sys、adm、lp、uucp、nuucp、smmsp等
操作步骤 cp -p /etc/shadow /etc/shadow_bak 修改/etc/shadow文件 在要禁止交互登录的系统账号后面添加NP,如: nobody:NP:6655::::::
回退操作 cp /etc/shadow_bak /etc/shadow
操作风险
是否可选 必选

文件权限设置

配置描述 为passwd、shadow、group文件设置权限,上述文件涉及系统权限管理的关键,防止其非法用户的恶意修改
检查方法 ls -l /etc/passwd /etc/shadow /etc/group /etc/passwd:-rw-r--r-- 所有用户可读,root用户可写 /etc/shadow:-r-------- root用户可读 /etc/group:-rw-r--r-- 所有用户可读,root用户可写
操作步骤 cp -p /etc/shadow /etc/shadow_bak cp -p /etc/passwd /etc/passwd_bak cp -p /etc/group /etc/group_bak chmod 644 /etc/passwd chmod 400 /etc/shadow chmod 644 /etc/group
回退操作 cp /etc/shadow_bak /etc/shadow cp /etc/passwd_bak /etc/passwd cp /etc/group_bak /etc/group
操作风险
是否可选 必选

系统UMASK设置

配置描述 系统umask设置,规范用户对目录和文件的操作
检查方法 more /etc/profile more /etc/csh.login more /etc/csh.cshrc more /etc/bashrc more /root/.bashrc more /root/.cshrc 检查系统umask值
操作步骤 cp -p /etc/profile /etc/profile_bak cp -p /etc/csh.login /etc/csh.login_bak cp -p /etc/csh.cshrc /etc/csh.cshrc_bak cp -p /etc/bashrc /etc/bashrc_bak cp -p /root/.bashrc /root/.bashrc_bak cp -p /root/.cshrc /root/.cshrc_bak 修改umask值 将上述文件的umask值改为027
回退操作 cp /etc/profile_bak /etc/profile cp /etc/csh.login_bak /etc/csh.login cp /etc/csh.cshrc_bak /etc/csh.cshrc cp /etc/bashrc_bak /etc/bashrc cp /root/.bashrc_bak /root/.bashrc cp /root/.cshrc_bak /root/.cshrc
操作风险 umask设置不当可能导致某些应用无法自动创建目录huo文件,从而导致运行异常
是否可选 必选

是否存在.NETRC/.RHOSTS文件

配置描述 检查账户目录中是否存在.netrc/.rhosts文件,该文件通常会被系统或进程自动加载并执行,对系统带来安全隐患
检查方法 cut -d":" -f6 /etc/passwd | ls -a | grep .netrc cut -d":" -f6 /etc/passwd | ls -a | grep .rhosts 返回值为空
操作步骤 备份.netrc/.rhosts文件 删除.netrc/.rhosts文件 rm -f .netrc .rhosts
回退操作 还原删除的文件
操作风险 确定被删除文件的用途,可能导致某些需要.netrc/.rhosts文件的应用运行异常
是否可选 必选

检查ROOT目录权限是否为700

配置描述 检查root目录权限是否为700,保证仅有系统管理员对其拥有访问控制权
检查方法 ls -lad /root
操作步骤 chown root:root /root chmod 700 /root
回退操作
操作风险 低风险
是否可选 必选

日志配置要求

配置系统日志文件权限

配置描述 按账户分配日志文件读取、修改和删除权限
检查方法 1. 查看/etc/syslog.conf中设置的日志存放文件,如/dev/sysmsg、/var/log/messages 2. 查看日志文件的权限 ls -la /var/log/messages ls -la /var/log
操作步骤 备份需要修改的文件 设置文件权限 chmod 644 filename
回退操作 还原备份文件
操作风险 低风险
是否可选 必选

记录用户登录情况

配置描述 检查Linux用户的登录情况,记录用户登录情况
检查方法 /var/log下用户登录情况
操作步骤 less /var/log/secure
回退操作 cp /etc/group_bak /etc/group
操作风险 低风险
是否可选 必选

设置日志服务器

配置描述 配置远程日志功能,将重要日志传输到日志服务器
检查方法 more /retc/syslog.conf 查看是否有. @192.168.1.1(日志服务器IP)
操作步骤 cp -p /etc/rsyslog.conf /etc/rsyslog.conf_bak vim /etc/rsyslog.conf 加入. @192.168.1.1 可以将.替换为实际需要的日志信息。如:kern.、mali.等 重启日志服务: /etc/init.d/rsyslog restart(Centos6) 或 systemctl restart rsyslog(Centos7)
回退操作 cp /etc/rsyslog.conf_bak /etc/rsyslog.conf 重启rsyslog服务
操作风险 敏感日志有泄露风险
是否可选 必选

配置syslog

配置描述 日志功能设置,记录系统日志以及应用日志
检查方法 more /etc/rsyslog.conf 检查是否存在类似如下语句: .err;kern.debug;daemon.notice; /var/log/message cron. /var/log/cron
操作步骤 cp -p /etc/rsyslog.conf /etc/rsyslog.conf_bak vim /etc/rsyslog.conf 加入需要同步的日志,如: cron.* /var/log/cron 重启rsyslog
回退操作 cp /etc/rsyslog.conf_bak /etc/rsyslog.conf
操作风险 日志占用磁盘空间较大,需定期清理
是否可选 必选

IP协议安全

远程登录取消telnet改用ssh

配置描述 telnet登录为明文传输,ssh登录为加密传输。取消telnetd登录,全部改用ssh登录
检查方法 netstat -nptl | grep 22 netstat -nptl | grep 23
操作步骤 停止telnet服务,启动sshd Centos6: /etc/init.d/telnet stop && chkconfig telnet --del /etc/init.d/sshd start && chkconfig sshd --add Centos7: systemctl stop telnet && systemctl disable telnet systemctl start sshd && systemctl enable sshd
回退操作
操作风险
是否可选 必选

设定远程登录的IP范围

配置描述 对登录系统的IP进行限制,只允许符合IP范围的用户登录
检查方法 查看/etc/hosts.allow、/etc/hosts.deny
操作步骤 配置tcpwrap,对登录IP做限制 cp -p /etc/hosts.allow /etc/hosts.allow_bak cp -p /etc/hosts.deny /etc/hosts.deny_bak vim /etc/hosts.allow sshd:192.168.1.:allow #允许192.168.1的整个网段访问sshd vim /etc/hosts.deny sshd:all:deny 也可以用iptables进行限制 iptables -I INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
回退操作 cp /etc/hosts.allow_bak /etc/hosts.allow cp /etc/hosts.deny_bak /etc/hosts.deny
操作风险 只有指定范围的Ip可以登录系统
是否可选 必选

禁止ICMP重定向

配置描述 禁止ICMP重定向,防止ARP欺骗等网络攻击
检查方法 sysctl -n net.ipv4.conf.all.accept_redirects 返回结果应为0
操作步骤 cp -p /etc/sysctl.conf /etc/sysctl.conf_bak vim /etc/sysctl.conf net.ipv4.conf.all.accept_redirects=0 sysctl -p #使之生效
回退操作 cp /etc/sysctl.conf_bak /etc/sysctl.conf
操作风险 可能导致路由错误无法通信,如有服务需要请谨慎操作
是否可选 必选

禁止路由转发

配置描述 禁止路由转发,关闭Linux系统的路由功能
检查方法 systcl -n net.ipv4.conf.all.accept_source_route 返回结果应为0
操作步骤 cp -p /etc/sysctl.conf /etc/sysctl.conf_bak vim /etc/sysctl.conf net.ipv4.conf.all.accept_source_route=0 sysctl -p #使之生效
回退操作 cp /etc/sysctl.conf_bak /etc/sysctl.conf
操作风险 可能导致路由错误无法通信,如有服务需要请谨慎操作
是否可选 必选

服务配置要求

关闭不必要的服务

配置描述 列出所需服务的列表(包括所需的系统服务),对不在此列表的服务进行关闭,保证系统业务最小化
检查方法 Centos6: chkconfig --list Centos7: systemctl list-unit-files
操作步骤 Centos6: chkconfig service_name off Centos7: systemctl disable service_name
回退操作 Centos6: chkconfig service_name on Centos7: systemctl enable service_name
操作风险
是否可选 必选

字符交互界面账户超时自动退出

配置描述 对于具备字符交互界面的设备,应配置定时账号自动登出
检查方法 cat /etc/profile | grep TMOUT cat /etc/ssh/sshd_config | grep ClientAliveInterval
操作步骤 vim /etc/profile export TMOUT=600 #单位为秒 vim /etc/ssh/sshd_config ClientAliveInterval=60 #单位为秒 /etc/init.d/sshd restart 或 systemctl restart sshd
回退操作
操作风险 低风险
是否可选 必选

重要目录和文件的权限设置

配置描述 重要目录和文件的权限
检查方法 执行以下命令检查目录和文件的权限设置情况: Centos6: ls -la /etc/ ls -la /etc/init.d/ ls -la /tmp ls -la /etc/default/ ls -la /etc/rc.d/rc3.d ls -la /etc/rc.d/rc5.d ls -la /etc/cron* /var/spool/cron* 是否在所有可写文件 Centos7: ls -la /etc/ ls -la /usr/lib/systemd/system ls -la /tmp ls -la /etc/default/ ls -la /etc/rc.d/rc3.d ls -la /etc/rc.d/rc5.d ls -la /etc/cron* /var/spool/cron*
操作步骤 执行备份: 使用 cp 命令备份需要修改权限的文件或目录 权限修改: 使用 chmod o-w filename 命令修改文件或目录权限
回退操作 使用 cp 命令恢复被修改权限的文件或目录 或使用 chmod 命令恢复权限
操作风险 修改某些重要的配置文件的权限可能导致系统功能或应用异常
是否可选 必选

检查系统已安装的不必要软件包以及更新软件包

配置描述 在系统安装时建议只安装基本的 OS 部份,其余的软件包则以必要为原则,非必需的包就不装。及时更新软件包。
检查方法 rpm -qa 查看所有的安装包 查看版本及大补丁号: uname -a 查看各包的补丁号: rpm -qa
操作步骤 备份软件包 卸载不必要的软件包 及时更新软件包
回退操作 还原备份
操作风险 需确认软件包是否必要;未经测试安装软件包,可能导致应用异常
是否可选 必选

设置LILO/GRUB密码

配置描述 设置 LILO/GRUB 密码,在使用 LILO 和 GRUB 时需要进行身份认证
检查方法 cat /etc/lilo.conf |grep password 检查/etc/lilo.conf 文件中是否有以下两行,且未被注释: restricted password= cat /etc/grub.conf |grep password 检查/etc/grub.conf 文件中是否有以下行,且未被注释: password
操作步骤 备份文件 cp -p /etc/lilo.conf /etc/lilo.conf_bak cp -p /etc/grub.conf /etc/grub.conf_bak 对于 LILO 引导,编辑/etc/lilo.conf 文件, vim /etc/lilo.conf,在开头添加以下两行内容 restricted password= 并设置文件权限如下: chown root:root /etc/lilo.conf chmod 600 /etc/lilo.conf 对于 GRUB 引导,首先执行: /sbin/grub-md5-crypt,获取 md5 加密密码;然后编辑/etc/grub.conf vim /etc/grub.conf 在首行添加:password 使用上一步获取的 md5 密码替换 设置文件权限如下: chown root:root /etc/grub.conf chmod 600 /etc/grub.conf
回退操作 cp /etc/lilo.conf_bak /etc/lilo.conf cp /etc/grub.conf_bak /etc/grub.conf
操作风险 低风险
是否可选 必选

其他配置要求

查找可以的SUID/SGID文件

配置描述 查找可疑的 SUID/SGID 文件,SUID 或 SGID 文件在执行时,用户可获得该程序文件的属主权限,通过 SUID 和 SGID,非法用户可获得额外的系统控制权
检查方法 find / -xdev -type f ( -perm -4000 -o -perm -2000 ) -exec ls -l {} \; 咨询管理员找到的文件是否应用所需
操作步骤 执行备份: 使用 cp 命令备份需要取消 SUID/SGID 的文件 取消文件的 SUID/SGID: chmod ug-s filename
回退操作 使用 cp 命令恢复被取消 SUID/SGID 的文件
操作风险 执行检查会大量消耗系统资源,加固可能导致某些系统功能无法正常执行
是否可选 必选

禁止X Server

配置描述 禁止 X Server,关闭系统的图形远程控制功能
检查方法 检查下列文件中是否有-nolisten tcp cat /etc/X11/xdm/Xservers |grep -nolisten 或 cat /etc/X11/xinit/xserverrc |grep -nolisten 如果安装其他图形化界面同理
操作步骤 备份文件 cp -p /etc/X11/xdm/Xservers /etc/X11/xdm/Xservers_bak cp -p /etc/X11/xinit/xserverrc /etc/X11/xinit/xserverrc_bak 编辑/etc/X11/xdm/Xservers,在/usr/bin/X 后添加-nolisten tcp 或编辑/etc/X11/xinit/xserverrc,在:0 后添加-nolisten tcp
回退操作 cp /etc/X11/xdm/Xservers_bak /etc/X11/xdm/Xservers cp /etc/X11/xinit/xserverrc_bak /etc/X11/xinit/xserverrc
操作风险 将无法使用 X Server 远程连接
是否可选 可选
版权声明:知名"矿工" 发表于 2024-01-28 23:28:26。
转载请注明:安全基线之Linux | 知名"矿工"

暂无评论

暂无评论...