zoukankan      html  css  js  c++  java
  • 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命令可以显示每个进程的pidcpu内存等

    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级别下开机是否启动
  • 相关阅读:
    报错:Message is larger than modules
    报错:常量字符串过长
    C#监控WinCE手机用户操作的程序,并通过usb连接发送到pc监听服务
    .Net Compact Framework coredll.dll API列表
    Oracle任意日期得到该周第一天的日期
    ORACLE查看锁表进程及杀死进程的语句
    客户端js与服务端通过BASE64进行交互
    为什么在powerdesigner成功将表生成到oracle,用sql操作提示表或视图不存在
    gprof的简单实用
    学习笔记fputs与printf
  • 原文地址:https://www.cnblogs.com/zhengna/p/13154168.html
Copyright © 2011-2022 走看看