linux系统安全-2

4、常规安全配置

4.1 重要目录和文件权限

  • 操作目的
    • 合理配置重要目录和文件的权限,增强安全性
  • 检查方法
    • 使用命令“ls -l” 查看目录和文件的权限设置情况
  • 加固方法
    • 对于重要目录,建议执行如下类似操作:
    • #chmod -R 750 /etc/rc.d/init.d/*
    • 这样只有root可读、写和执行这个目录下的脚本。

4.2 umask值

  • 操作目的
    • 设置默认的umask值,增强安全性
  • 检查方法
    • 使用命令“umask”查看默认的umask值是否为027
  • 加固方法
    • 使用命令“vi /etc/profile”修改配置文件,添加行“umask 027”,即新创建的文件赋一个统一的默认的权限,即创建文件的属主有读、写、执行权限,同组的用户只有有读和执行权限,其他用户无任何权限,使用命令“umask 027”应用设置

 4.3 Bash历史命令

  • 操作目的
    • 设置Bash保留历史命令的条数
  • 检查方法
    • 使用命令“cat /etc/profile|grep HISTSIZE=”和“cat /etc/profile|grep HISTFILESIZE=”查看保留历史命令的条数
  • 加固方法
    • 使用命令“vi /etc/profile”修改配置文件,修改HISTSIZE=5和HISTFILESIZE=5即保留最新执行的5条命令

4.4 登录超时

  • 操作目的
    • 设置系统登录后,连接超时时间,增强安全性
  • 检查方法
    • 使用命令“cat /etc/profile|grep TMOUT”查看TMOUT是否被设置
  • 加固方法
    • 使用命令“vi /etc/profiel”修改配置文件,添加“TMOUT=”行开头的注释,设置为“TMOUT=180”,即超时时间为3分钟

4.5 root路径

  • 危害
    • 如果在path设置中包含当前目录“.”的话,会有一定的安全隐患。比如说我们在某个目录下查看当前目录下的文件时会使用ls命令,如果恶意用户在当前目录创建一个名为ls的bash脚本,当path设置中包含当前目录“.”时,我们执行ls命令时会执行当前目录下的ls脚本,这样可能会有意想不到的效果,如果脚本带有恶意行为的话,会导致一定的安全问题。因此root用户环境变量path中不应该包含当前目录“.”。
  • 操作目的
    • 检查系统root用户环境变量path设置中是否包含“.”
  • 检查方法
    • root用户环境变量path中不应该包含当前目录“.”
    • 以root用户身份执行如下命令:
    • #echo $PATH
    • /usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:.
  • 加固方法
    • 使用命令“vi /erc/profile”,修改echo $PATH后面的路径

5、账户安全

5.1 禁用无用账号

  • 操作目的
    • 减少系统无用账号,降低风险
  • 检查方法
    • 使用命令“cat /etc/passwd”查看口令文件,与系统管理员确认不必要的账号
    • FTP等服务的账号,如果不需要登录系统,shell应该/sbin/nologin
  • 加固方法
    • 使用命令“passwd -l <用户名>”锁定不必要的账号

5.2 账号策略

  • 操作目的
    • 防止口令暴力破解,降低风险
  • 检查方法
    • 使用命令“cat /etc/pam.d/system-auth”查看配置文件
  • 加固方法
    • 设置连续输错10次密码,账号锁定5分钟
    • 使用命令“vi /etc/pam.d/system-auth”修改配置文件,添加auth required pam_tally.so onerr=fail deny=10 unlock_time=300

5.3 检查特殊账号

  • 操作目的
    • 查看空口令和root权限的账号
  • 检查方法
    • 使用命令“awk -F:'($2=="")' /etc/shadow”查看空口令账号
    • 使用命令“awk -F:'($3==0)' /etc/passwd”查看UID为0的账号
  • 加固方法
    • 使用命令“passwd <用户名>”为空口令账号设定密码
    • UID为0的账号应该只有root,设置UID方法:
    • usermod -u UID <用户名>

5.4 口令周期策略

  • 操作目的
    • 加强口令的复杂度等,降低被猜解的可能性
  • 检查方法
    • 使用命令“cat /etc/login.defs|grep PASS”和“cat /etc/pam.d/system-auth”查看密码策略设置
  • 加固方法
    • 使用命令“vi /etc/login.defs”修改配置文件
      • PASS_MAX_DAYS 90 #新建用户的密码最长使用天数
      • PASS_MIN_DAYS 0 #新建用户的密码最短使用天数
      • PASS_WARN_AGE 7 #新建用户的密码到期提前提醒天数
    • 使用chage命令修改用户设置,例如
      • chage -m 0 -M 30 -E 2000-01-01 -W 7 <用户名>
      • 表示:将此用户的密码最长使用天数设置为30,最短使用天数设为0,账号2000年1月1日过期,过期前7天里警告用户

5.5 口令复杂度策略

  • 操作目的
    • 加强口令的复杂度等,降低被猜解的可能性
  • 检查方法
    • 使用命令“cat /etc/pam.d/system-auth |grep pam_cracklib.so”查看密码复杂度策略设置
  • 加固方法
    • 建议在/etc/pam.d/system-auth 文件中配置:
    • password requisite pam_cracklib.so difok=3 minlen=8 ucredit=-1|credit=-1 dcredit=-1
    • 至少8位,包含一位大写字母,一位小写字母和一位数字

5.6 限制root远程登录

  • 操作目的
    • 限制root远程telnet登录
  • 检查方法
    • 使用命令“cat /etc/securetty |grep CONSOLE”查看是否禁止root远程登录
  • 加固方法
    • vi编辑/etc/securetty文件,配置:CONSOLE=/dev/tty01

5.7 限制用户su

  • 操作目的
    • 检查是否使用PAM认证模块禁止wheel组之外的用户su为root
  • 检查方法
    • 使用命令“cat /etc/pam.d/su|grep pam_wheel.so”查看配置文件,确认是否有相关限制
  • 加固方法
    • 编辑su文件(vi /etc/pam.d/su),在文件的开头添加相应配置

5.8 检查Grub/Lilo密码

  • 操作目的
    • 查看系统引导管理器是否设置密码
  • 检查方法
    • 使用命令“cat /etc/grub.conf|grep password”查看grub是否设置密码
    • 使用命令“cat /etc/lilo.conf|grep password”查看lilo是否设置密码
  • 加固方法
    • vi编辑/etc/grub.conf
    • splashimage这个参数下一行添加:password 密码
    • 如果需要md5加密,可以添加一行:password --md5 密码
    • vi编辑/etc/lilo.conf
    • password=密码

5.9 SNMP团体字

  • 操作目的
    • 如果打开了SNMP协议,snmp团体字设置不能使用默认的团体字
  • 检查方法
    • 查看配置文件cat /etc/snmp/snmpd.conf
  • 加固方法
    • vi编辑/etc/snmp/snmpd.conf文件
    • 应禁止使用public、private默认团体字,使用用户自定义的团体字,例如将以下设置中的public替换为用户自定义的团体字:
    • com2sec notConfigUser default public
    • 另外,如果不需SNMP服务的话,建议禁用

5.10 弱口令审计

  • 操作目的
    • 检查系统弱口令
  • 检查方法
    • 使用第三方工具来检查当前系统中存在的弱口令账号,这里我们使用John工具。
    • 方法1 使用用户名的各种变体来尝试爆破弱口令
      • #john /etc/shadow --single
    • 方法2 指定密码字典使用内部常见弱口令进行有针对性的审计
      • #john /etc/shadow --wordlist=pass.dic
  • 加固方法
    • 使用“passwd 用户名”命令为用户设置复制密码 

6、服务进程

6.1 linux系统的服务/进程

  • 系统守护进程(服务)
    • 服务就是运行在网络服务器上监听用户请求的进程
    • 服务是通过端口号来区分的
  • 常见的服务及其对应的端口
    • ftp:21
    • ssh:22
    • telnet:23
    • smtp:25
    • ssl:443
    • http(www):80
    • pop3:110

6.2 linux系统的服务/进程

  • 系统守护进程(服务)
    • 在UNIX/linux系统中,服务是一般通过inetd进程或启动脚本来启动。
    • 通过inetd来启动的服务可以通过在/etc/inetd.conf文件进行注释来禁用。
    • 通过启动脚本启动的服务可以通过改变脚本名称的方式禁用。
  • pstree命令以树状图的方式展示进程之间的关系
  • ps命令可以显示每个进程的pid\cpu\内存等

6.3 检查ssh服务

  • 操作目的
    • 对ssh服务进行安全检查
  • 检查方法
    • 使用命令“cat /etc/ssh/sshd_config”查看配置文件
  • 加固方法
    • 使用命令“vi /etc/ssh/sshd_config”编辑配置文件
      • (1)不允许root直接登录——设置“PermitRootLogin”的值为no
      • (2)修改ssh使用的协议版本——设置“Protocol”的版本为2
      • (3)修改允许密码错误次数(默认为6次)——设置“MaxAuthTries”的值为3

6.4 TCP Wrapper

  • 操作目的
    • 使用TCP Wrapper对libwrap库支持的程序做访问控制
  • 检查方法
    • 使用命令“cat /etc/hosts.allow”和“cat /etc/hosts.deny”查看配置
  • 加固方法
    • 使用命令“vi /etc/hosts.allow”和“vi /etc/hosts.deny”修改配置
    • vi /etc/hosts.allow
    • 按“i”进入编辑模式
    • 加入:sshd:IP地址
    • vi /etc/hosts.deny
    • 按“i”进入编辑模式
    • 加入:sshd:ALL
    •  (该配置为仅允许特定IP地址访问SSH)

6.5 NFS共享

  • 操作目的
    • 查看NFS共享
  • 检查方法
    • 使用“exportfs”查看NFS输出的共享目录
  • 加固方法
    • 使用命令“vi /etc/exports”编辑配置文件,删除不必要的共享

6.6 Syslogd认证相关记录

  • 操作目的
    • 查看所有日志记录
  • 检查方法
    • #cat /etc/rsyslog.conf | grep authpriv
    • 查看是否有authpriv.* /var/log/secure
  • 加固方法
    • 添加相关日志的记录:
    • 将authpriv设备的任何级别的信息记录到/var/log/secure文件中

6.7 Syslogd日志设置

  • 操作目的
    • 查看所有日志记录
  • 检查方法
    • 使用命令“cat /etc/rsyslog.conf”查看rsyslogd的配置
    • 系统日志(默认) /var/log/messages
    • cron日志(默认)  /var/log/cron
    • 安全日志(默认) /var/log/secure
  • 加固方法
    • 添加相关日志的记录

6.8 限制Ctrl+Alt+Del命令

  • 操作目的
    • 防止误使用Ctrl+Alt+Del重启系统 
  • 检查方法
    • 使用命令“cat /etc/inittab|grep ctrlaltdel”查看输入行是否被注释
  • 加固方法
    • 先使用命令“vi /etc/inittab”编辑配置文件,在行开头添加注释符号“#”
    • #ca::ctrlaltdel:/sbin/shutdown -t3 -r now,再使用命令“init q”应用设置

6.9 服务/进程安全

  • 关闭不必要的服务:
    • (1)使用命令“who -r”查看当前init级别
    • (2)使用命令“chkconfig -list <服务名>” 查看所有服务的状态
    • (3)使用命令“chkconfig -level <init级别>  <服务名> on|off|reset”设置服务在各init级别下开机是否启动

 

posted @ 2021-08-19 13:20  zhengna  阅读(571)  评论(0编辑  收藏  举报