• Linux -- 等级保护 (简单操作)


    // 密码复杂度: 字母/数字/特殊符号,不小于8位; 用户密码 5 次不能重复;
    vim /etc/pam.d/system-auth
    auth        required      pam_tally2.so onerr=fail deny=3  unlock_time=1200 even_deny_root root_unlock_time=1200
    auth        sufficient    pam_unix.so nullok try_first_pass remember=5
    password    requisite     pam_cracklib.so retry=3 difork=3 minlen=8 lcredit=-1 dcredit=-1 ocredit=-1
    
    // 设置定期修改密码时间
    vim /etc/login.defs
    PASS_MAX_DAYS   90
    PASS_MIN_DAYS   0
    PASS_MIN_LEN   8
    PASS_WARN_AGE   7
    
    // 设置错误密码登录不超过3次, 超过锁定20分钟
    find /lib* -iname "pam_tally2.so"
        /lib64/security/pam_tally2.so
    vim /etc/pam.d/sshd
    auth       required     pam_tally2.so deny=3 unlock_time=12000
    
    // 启用auditd审计功能, 审计覆盖到服务器及用户
    /etc/init.d/auditd start
        // 记录用户的登录与操作(操作日志记录 /tmp/dbasky/root/192.168.10.108)
        vim /etc/profile
        USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
        if [ "$USER_IP" = "" ]
        then
        USER_IP=`hostname`
        fi
        if [ ! -d /tmp/dbasky ]
        then
        mkdir /tmp/dbasky
        chmod  755 /tmp/dbasky
        fi
        if [ ! -d /tmp/dbasky/${LOGNAME} ]
        then
        mkdir /tmp/dbasky/${LOGNAME}
        chmod 300 /tmp/dbasky/${LOGNAME}
        fi
        export HISTSIZE=4096
        DT=`date "+%Y-%m-%d_%H-%M-%S"`
        export HISTFILE="/tmp/dbasky/${LOGNAME}/${USER_IP}-dbasky.$DT"
    export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"

    chmod 600 /tmp/dbasky/${LOGNAME}/*dbasky* 2>/dev/null // 审计重要文件 auditctl -w /etc/passwd -p war ausearch -f /etc/passwd -x rm/vim.... // 查询 vim /etc/audit/audit.rules ... ... // 添加(-w 路径; -p 权限; -k 关键字 ;r 读; w 写; x 执行; a 修改文件属性;) -a exit,always -F arch=b64 -S umask -S chown -S chmod -a exit,always -F arch=b64 -S unlink -S rmdir -a exit,always -F arch=b64 -S setrlimit -a exit,always -F arch=b64 -S setuid -S setreuid -a exit,always -F arch=b64 -S setgid -S setregid -a exit,always -F arch=b64 -S sethostname -S setdomainname -a exit,always -F arch=b64 -S adjtimex -S settimeofday -a exit,always -F arch=b64 -S mount -S _sysctl -w /etc/group -p wa -w /etc/passwd -p wa -w /etc/shadow -p wa -w /etc/sudoers -p wa -w /etc/ssh/sshd_config -w /etc/bashrc -p wa -w /etc/profile -p wa -w /etc/profile.d/ -w /etc/aliases -p wa -w /etc/sysctl.conf -p wa -w /var/log/lastlog // 审计工具 aureport // 生成审计活动概述; * -au // 查看授权失败的详细信息; * -m // 所有账户修改的相关事件; // 创建审计用户audit useradd audit passwd audit 12tianrong. mkdir /tmp/dbasky chown -R audit.audit /var/log/audit/ chmod 750 /var/log/audit/ chmod 600 /var/log/audit/audit.log chown -R audit.audit /tmp/dbasky/ vim /etc/sudoers audit node2.hkrt.cn.com=/bin/ls,/bin/cat,/usr/bin/tail,/usr/bin/sz Defaults logfile=/var/log/sudo %wheel node2.hkrt.cn.com=/sbin/*,/usr/bin/*,/usr/sbin/*,!/sbin/reboot,!/sbin/init,!/sbin/poweroff,!/sbin/shutdown // 保护审计进程,避免受到未预期的中断 [root@localhost script]# vim audit_up.sh #!/bin/sh while true do ps -ef | grep " auditd" | grep -v "grep" if [ "$?" -eq 1 ] then /etc/init.d/auditd start echo "process has been restarted!" else echo "process already started!" fi sleep 10 done chmod +x audit_up.sh sh audit_up.sh >/dev/null & // 审计记录保留半年以上 // 定时任务每周将日志内容切割分离 crontab -e 00 00 * * 1 /bin/mv /var/log/audit/audit.log /data/auditback/audit.log.$(date -d '1 days ago' +%d) mkdir -p /data/auditback // 文件完整性 tar xf tripwire-2.4.2.2-src.tar.bz2 -C /usr/src/ cd /usr/src/tripwire-2.4.1.2-src/ ./configure --prefix=/usr/local/tripwire make && make install vim /usr/local/tripwire/etc/twcfg 9 LOOSEDIRECTORYCHECKING =true // 不监测所属目录的完整性 12 REPORTLEVEL =4 // 改变监测结果报告等级 // 建立加密格式 cd /usr/local/tripwire/etc/ /usr/local/tripwire/sbin/twadmin --create-cfgfile -S site.key twcfg.txt /usr/local/tripwire/sbin/tripwire --init // 初始化数据库 /usr/local/tripwire/sbin/tripwire --init /usr/local/tripwire/sbin/tripwire --check --interactive find / -type f -name *.twr // 生成的检测文件 /usr/local/tripwire//sbin/twprint --print-report --twrfile /usr/local/tripwire/lib/tripwire/report/node2.hkrt.cn.com-20180318-002054.twr # 查看检查记录; // 防恶意代码软件 tar xf maldetect-current.tar.gz -C /usr/src/ cd /usr/src/maldetect-1.6.2/ ./install.sh maldet --scan-all / // 检测 // 存储路径 /usr/local/maldetect/sess/session.180316-0921.16896 /usr/local/maldetect/sess/session.hits.180316-0921.16896 // 单个用户系统资源(CPU、内存、硬盘)的使用限度进行限制 // 以后每个一分钟就会检查一次,调整占用50%以上CPU或25%内存的进程的nice值,从而使这样的进程优先级变低,被调度的机会减少,同时会向root发邮件提示该进程被调整过。 cd /script vim cpu.sh #!/bin/sh PIDS=`top -bn 1 | grep "^ *[1-9]" | awk '{ if($9 > 50 || $10 > 25 && id -u $2 > 500) print $1}'` for PID in $PIDS do renice +10 $PID echo "renice +10 $PID" done chmod +x /script/cpu.sh crontab -e * * * * * /scripts/cpu.sh >/dev/null // 系统的最大并发会话连接数进行限制(注意新建Xshell,尝试是否能连接) ulimit -n 8192 /etc/sysctl.conf中加入ip_conntrack_max=8192 /usr/include/bits/types.h 文件,改变__FD_SETSIZE 的值: #define _ _FD_SETSIZE 8192 echo 8192 > /proc/sys/fs/file-max ulimit -Hn 8192 执行sysctl -p 生效.. /bin/bash: Too many open files in system 报错 修改 /proc/sys/fs/file-max 执行上述命令生效
  • 相关阅读:
    JavaScript 倒计时脚本
    SQL Server 中的事务和锁
    Asp.net MVC 3 开发企业网站系统仿照博客园部分功能总体设计
    Windows RT 应用程序开发介绍培训的讲义
    Wcf异步调用简单示例
    asp.net搜索引擎(网络爬虫)设计及研发
    Twitter Storm RealLife App 排错记
    写个软件来防止服务器网站CPU百分百
    ALinq Dynamic
    .NET的跨平台调用一例(PreserveSig)
  • 原文地址:https://www.cnblogs.com/haorong/p/10682184.html
Copyright © 2020-2023  润新知