zoukankan      html  css  js  c++  java
  • linux系统安全设置策略

    1.检查是否设置口令长度至少8位,并包括数字,小写字符、大写字符和特殊符号4类中至少2类。 |

    在文件/etc/login.defs中设置 PASS_MIN_LEN 不小于标准值                                                                                      
    修改/etc/pam.d/system-auth文件, 在ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 选3种,追加到password requisite pam_cracklib.so后面,添加到配置文件中。 
    例如:password requisite pam_cracklib.so ucredit=-1 lcredit=-1 dcredit=-1                                                         
    注:ucredit:大写字母个数;lcredit:小写字母个数;dcredit:数字个数;ocredit:特殊字符个数   
    

    2.检查是否设置账户口令的生存期不长于90天。

    修改/etc/login.def
    PASS_MAX_DAYS 90 --99999
    PASS_MIN_DAYS 10  --0
    PASS_MIN_LEN 8    --5
    PASS_WARN_AGE 5   --7  
    

    3.检查是否设置用户不能重复使用最近5次(含5次)内已使用的口令

    修改文件 # vi /etc/pam.d/system-auth
    在 password sufficient pam_unix.so use_authtok md5 shadow remember=10
    

    4.检查是否设置当用户连续认证失败次数超过5次,锁定该用户使用的账户。

    # vim /etc/pam.d/login
    auth  required  pam_tally2.so  deny=5  unlock_time=300 even_deny_root root_unlock_time=10
    

    5.检查默认账号,是否删除或锁定与设备运行、维护等工作无关的账号。查看多余账号# cat /etc/passwd

    [root@localhost ~]# userdel username
    [root@localhost ~]# groupdel groupname
    删除的用户,如adm,lp,sync,shutdown,halt,news,uucp,operator,
    games,gopher等。
    删除的组,如adm,lp,news,uucp,games,dip,pppusers,popusers,
    slipusers等。
    

    6.检查远程登录限制,是否限制具备超级管理员权限的用户远程登录

    限制具备超级管理员权限的用户远程登录。远程执行管理员权限操作,应先以普通权限用户远程登录后,再切换到超级管理员权限账号后执行相应操作。
    Root从远程使用Telnet登录;
    普通用户从远程使用Telnet登录;
    Root从远程使用ssh登录;
    普通用户从远程使用ssh登录;
    

    7.检查用户缺省访问权限,是否配置用户缺省访问权限,屏蔽掉新建文件和目录不该有的访问允许权限。

    查看新建的文件或目录的权限,操作举例如下:
    #ls -l dir; #查看目录dir的权限
    #cat /etc/default/login  /etc/default/login不存在
    (查看是否有umask027内容)
    

    8.检查服务开启,是否最小化,关闭不必要的服务。

    /etc/rc.d/init.d或# rpm -qi $(rpm -qf /etc/rc.d/init.d/sshd)
    chkconfig –level 2345 服务名称 off
    

    9.检查补丁安全,是否在确保业务不受影响的情况下及时更新操作系统补丁。
    查看补丁安装情况:

    # rpm –qa | grep patch
    /etc/sysconfig/yum-cron
    CHECK_ONLY=yes
    更新的补丁在:  http://itrc.hp.com/service/patch/releaseIndexPage.do
    

    10.检查日志审计功能设置,是否配置日志审计功能

    查看日志服务是否开启#service -–status-all | grep syslog
    在root权限下,使用命令more、cat或vi查看
    /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
    /var/log/secure 与安全相关的日志信息
    /var/log/maillog 与邮件相关的日志信息
    /var/log/cron 与定时任务相关的日志信息
    /var/log/spooler 与UUCP和news设备相关的日志信息
    /var/log/boot.log 守护进程启动和停止相关的日志消息
    

    11.检查远程管理加密协议,是否配置使用SSH等加密协议进行远程管理,禁止使用Telnet等明文传输协议。

    查看SSH服务状态:#ps –elf|grep ssh
    查看Telnet服务状态:#ps –elf|grep telnet
    (是否有SSH进程存在:#ps –elf|grep ssh)
    

    12.检查登录超时时间设置,是否设置登录账号的登录超时为30分钟

    cat /etc/profile|grep TMOUT -n
    查看超时时间参数TMOUT
    在/etc/profile 后面添加
    export TMOUT=1800
    readonly TMOUT
    

    13.ssh安全设置策略(/etc/ssh/sshd_config)

    Port 22 #ssh服务端口号,我们可以改成高端口,一般端口扫描工具不会扫描高端口的。
    AddressFamily any #ssh服务的协议族,可以用ipv4 ipv6或者直接使用any。
    Protocol 2 #ssh服务协议版本,默认为1,建议使用2,1有漏洞。
    KeyRegenerationInterval 3600 # 在SSH-1协议下,短命的服务器密钥将以此指令设置的时间为周期(秒),不断重新生成。这个机制可以尽量减小密钥丢失或者黑客攻击造成的损失。
    ServerKeyBits 2048 #  指定临时服务器密钥的长度。1024存在认证漏洞,安全最低2048位。
    LogLevel ERROR #日志级别,可以使用 QUIET, FATAL, ERROR, INFO(默认), VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3。
    LoginGraceTime 30 #限制用户必须在指定的时限内认证成功,建议设置低,增加暴力破解难度,单位为秒。
    MaxAuthTries 3 #最多登录尝试次数,建议设置低一些,加大暴力破解难度。
    RSAAuthentication yes #使用纯 RSA公钥认证。
    PubkeyAuthentication yes #使用公钥认证,推荐使用安全高效!
    AuthorizedKeysFile      .ssh/authorized_keys #用户公钥文件保存路径,默认为用户的home目录下.ssh隐藏文件夹中的authorized_keys,建议更换到其他目录,防止丢失或者被恶意登陆者在默认的这个路径中找到篡改。
    PermitEmptyPasswords no #不允许空密码登录,这个太危险啦。
    GSSAPIAuthentication no #不基于 GSSAPI 的用户认证,关闭,优化性能。
    UsePAM no #使用PAM认证,如果不用LDAP之类的登陆,建议关闭,优化性能。
    X11Forwarding no #如果没有使用x11转发最好关闭掉,优化性能。
    PrintMotd no #登录打印公告信息,可以修改或者关闭,修改/etc/motd来震慑恶意登陆者,默认会显示一些系统信息,关闭掉,减少恶意登陆者获取的信息量,防止被恶意利用。
    PrintLastLog no #不打印最后登陆信息,减少恶意登陆者获取的信息量,防止被恶意利用。
    TCPKeepAlive yes #保持长连接,加快连接速度,优化性能。
    PidFile /var/run/sshd.pid #ssh服务的pid文件。
    Banner none #不显示系统banner信息,如果开启会在每次登陆时显示系统信息,减少恶意登陆者获取的信息量,防止被恶意利用。
    PermitRootLogin no #禁止root用户登陆,降低远程登陆的用户权限。
    PasswordAuthentication no #允许用户名密码登陆,no,禁止使用用户名和密码登陆,使用公钥登陆,防止针对用户名和密码的暴力破解。   
    

  • 相关阅读:
    计算机网络学习笔记(绪论第二部分)
    关于JAVA核心技术(卷一)读后的思考(回调,clone的讨论)
    关于JAVA核心技术(卷一)读后的思考(接口的基本知识的讨论)
    关于JAVA核心技术(卷一)读后的思考(泛型数组列表的讨论)
    关于JAVA核心技术(卷一)读后的思考(hashCode、toString方法的讨论)
    关于JAVA核心技术(卷一)读后的思考(equals方法的讨论)
    使用PHP-redis操作Redis
    PHP RSA2加密和解密以及接口签名和验签
    laravel maatwebsite/excel 使用教程 (导入篇)
    laravel maatwebsite/Excel 3.1 使用教程 (导出篇)
  • 原文地址:https://www.cnblogs.com/lvshuizhicheng/p/14415566.html
Copyright © 2011-2022 走看看