zoukankan      html  css  js  c++  java
  • Linux 服务器安全优化

      最小的权限+最少的服务=最大的安全

      所以,无论是配置任何服务器,我们都必须把不用的服务关闭、把系统权限设置到最小,这样才能保证服务器最大的安全。下面是CentOS服务器安全设置,供大家参考。

    一、注释掉系统不需要的用户和用户组

      注意:不建议直接删除,当你需要某个用户时,自己重新添加会很麻烦。
        #  cp  /etc/passwd  /etc/passwd.bak   #修改之前先备份
        #  vi /etc/passwd  #编辑用户,在前面加上#注释掉此行 

    #adm:x:3:4:adm:/var/adm:/sbin/nologin
    #lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    #sync:x:5:0:sync:/sbin:/bin/sync
    #shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    #halt:x:7:0:halt:/sbin:/sbin/halt
    #uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    #operator:x:11:0:operator:/root:/sbin/nologin
    #games:x:12:100:games:/usr/games:/sbin/nologin
    #gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
    #ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin    #注释掉ftp匿名账号

      # cp /etc/group   /etc/group.bak   #修改之前先备份
      # vi /etc/group  #编辑用户组,在前面加上#注释掉此行

    #adm:x:4:root,adm,daemon
    #lp:x:7:daemon,lp
    #uucp:x:14:uucp
    #games:x:20:
    #dip:x:40:

    二、关闭系统不需要的服务

      下面这些服务一般情况下是不需要的,可以选择关闭: anacron、auditd、autofs、avahi-daemon、avahi-dnsconfd、bluetooth、cpuspeed、firstboot、gpm、haldaemon、hidd、ip6tables、ipsec、isdn、lpd、mcstrans、messagebus、netfs、nfs、nfslock、nscd、pcscd portmap、readahead_early、restorecond、rpcgssd、rpcidmapd、rstatd、sendmail、setroubleshoot、yppasswdd ypserv

    三、禁止非root用户执行/etc/rc.d/init.d/下的系统命令
      chmod -R 700 /etc/rc.d/init.d/*
      chmod -R 777 /etc/rc.d/init.d/*    #恢复默认设置

    四、给下面的文件加上不可更改属性,从而防止非授权用户获得权限
      chattr +i /etc/passwd
      chattr +i /etc/shadow
      chattr +i /etc/group
      chattr +i /etc/gshadow
      chattr +i /etc/services    #给系统服务端口列表文件加锁,防止未经许可的删除或添加服务
      lsattr  /etc/passwd   /etc/shadow  /etc/group  /etc/gshadow   /etc/services   #显示文件的属性
      注意:执行以上权限修改之后,就无法添加删除用户了。
      如果再要添加删除用户,需要先取消上面的设置,等用户添加删除完成之后,再执行上面的操作
           chattr -i /etc/passwd     #取消权限锁定设置
        chattr -i /etc/shadow
        chattr -i /etc/group
        chattr -i /etc/gshadow
        chattr -i /etc/services   #取消系统服务端口列表文件加锁
      现在可以进行添加删除用户了,操作完之后再锁定目录文件

    五、修改ssh远程登录端口和屏蔽root远程登录
     
      #备份SSH配置 cp /etc/ssh/sshd_config sshd_config.bak
      #修改SSH安全配置 vi /etc/ssh/sshd_config
      #SSH链接默认端口 port 53123 (默认#Port 22,在这一行上面添加即可)
      #禁止root账号登陆 PermitRootLogin no
      #禁止空密码 PermitEmptyPasswords no
      #不使用DNS UseDNS no
     
    六、禁止使用Ctrl+Alt+Del快捷键重启服务器

       配置文件:/etc/init/control-alt-delete.conf

         # vim /etc/init/control-alt-delete.conf  

      # start on control-alt-delete//注释掉此行即可  

      exec /sbin/shutdown -r now

    七、隐藏服务器系统信息
      在缺省情况下,当你登陆到linux系统,它会告诉你该linux发行版的名称、版本、内核版本、服务器的名称。
      为了不让这些默认的信息泄露出来,我们要进行下面的操作,让它只显示一个"login:"提示符。
      删除/etc/issue和/etc/issue.net这两个文件,或者把这2个文件改名,效果是一样的。
      mv  /etc/issue /etc/issuebak
      mv  /etc/issue.net   /etc/issue.netbak

    八、给命令历史记录添加时间戳

      这样就可以看到在什么时间执行了什么命令。
      echo export HISTTIMEFORMAT=\"%h %d %H:%M:%S \" >> /root/.bashrc
    九、关闭多余的虚拟控制台

      CentOS 6.0 开始 TTY 的配置由 /etc/inittab 更改为 /etc/init/start-ttys.conf,执行以下命令可将默认6个 TTY 改为2个:

      找到 tty [1-6] 改成 tty [1-2]

     
    十、设置一些全局变量
     
      #设置自动退出终端,防止非法关闭ssh客户端造成登录进程过多,可以设置大一些,单位为秒
      echo "TMOUT=3600">> /etc/profile
      #历史命令记录数量设置为100条
      sed -i "s/HISTSIZE=1000/HISTSIZE=100/" /etc/profile
      #立即生效
      source /etc/profile
     

    十一、使用yum update更新系统时不升级内核,只更新软件包

      由于系统与硬件的兼容性问题,有可能升级内核后导致服务器不能正常启动,这是非常可怕的,没有特别的需要,建议不要随意升级内核。
      cp /etc/yum.conf    /etc/yum.confbak
      1、修改yum的配置文件 vi /etc/yum.conf  在[main]的最后添加 exclude=kernel*
      2、直接在yum的命令后面加上如下的参数:
      yum --exclude=kernel* update
      查看系统版本  cat /etc/issue
      查看内核版本  uname -a

    十二、关闭Centos自动更新

      chkconfig --list yum-updatesd  #显示当前系统状态
      yum-updatesd    0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
      service yum-updatesd stop      #关闭  开启参数为start
      停止 yum-updatesd:                                        [确定]
      service yum-updatesd status   #查看是否关闭
      yum-updatesd 已停
      chkconfig --level 35 yum-updatesd off  #禁止开启启动(系统模式为3、5)
      chkconfig yum-updatesd off  #禁止开启启动(所有启动模式全部禁止)
      chkconfig --list yum-updatesd  #显示当前系统状态
      yum-updatesd    0:关闭  1:关闭  2:启用  3:关闭  4:启用  5:关闭  6:关闭
     
      重新载入SSH配置 /etc/init.d/sshd reload
      使用netstat -lnt 查看 53123 端口
      使用 lsof -i tcp:53123 反查进程(需要root才可以哦)
     
    十三、删除MySQL历史记录

      用户登陆数据库后执行的SQL命令也会被MySQL记录在用户目录的.mysql_history文件里。
      如果数据库用户用SQL语句修改了数据库密码,也会因.mysql_history文件而泄漏。
      所以我们在shell登陆及备份的时候不要在-p后直接加密码,而是在提示后再输入数据库密码。
      另外这两个文件我们也应该不让它记录我们的操作,以防万一。
      cd
      cp .bash_history  .bash_historybak  #备份
      cp .mysql_history .mysql_historybak
      rm .bash_history .mysql_history
      ln -s /dev/null .bash_history
      ln -s /dev/null .mysql_history
     

    十四、优化Linux内核参数


      cp /etc/sysctl.conf  /etc/sysctl.confbak
      vi /etc/sysctl.conf    #在文件末尾添加以下内容

      net.ipv4.ip_forward = 1 #修改为1

      net.core.somaxconn = 262144

      net.core.netdev_max_backlog = 262144

      net.core.wmem_default = 8388608

      net.core.rmem_default = 8388608

      net.core.rmem_max = 16777216

      net.core.wmem_max = 16777216

      net.ipv4.netfilter.ip_conntrack_max = 131072

      net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180

      net.ipv4.route.gc_timeout = 20

      net.ipv4.ip_conntrack_max = 819200

      net.ipv4.ip_local_port_range = 10024  65535

      net.ipv4.tcp_retries2 = 5

      net.ipv4.tcp_fin_timeout = 30

      net.ipv4.tcp_syn_retries = 1

      net.ipv4.tcp_synack_retries = 1

      net.ipv4.tcp_timestamps = 0

      net.ipv4.tcp_tw_recycle = 1

      net.ipv4.tcp_tw_len = 1

      net.ipv4.tcp_tw_reuse = 1

      net.ipv4.tcp_keepalive_time = 120

      net.ipv4.tcp_keepalive_probes = 3

      net.ipv4.tcp_keepalive_intvl = 15

      net.ipv4.tcp_max_tw_buckets = 36000

      net.ipv4.tcp_max_orphans = 3276800

      net.ipv4.tcp_max_syn_backlog = 262144

      net.ipv4.tcp_wmem = 8192 131072 16777216

      net.ipv4.tcp_rmem = 32768 131072 16777216

      net.ipv4.tcp_mem = 94500000 915000000 927000000

      /sbin/sysctl -p   #使配置立即生效

     

      十五、CentOS 系统优化


      cp  /etc/profile  /etc/profilebak2
      vi /etc/profile      #在文件末尾添加以下内容
      ulimit -c unlimited
      ulimit -s unlimited
      ulimit -SHn 65535
      ulimit -S -c 0
      export LC_ALL=C
      source  /etc/profile    #使配置立即生效
      ulimit -a    #显示当前的各种用户进程限制

     十六、服务器禁止ping
      cp  /etc/rc.d/rc.local  /etc/rc.d/rc.localbak
      vi  /etc/rc.d/rc.local        #在文件末尾增加下面这一行
      echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
      参数0表示允许   1表示禁止

    不积跬步,无以至千里!
  • 相关阅读:
    New version of VS2005 extensions for SharePoint 3.0
    QuickPart : 用户控件包装器 for SharePoint Server 2007
    随想
    发布 SharePoint Server 2007 Starter Page
    如何在SharePoint Server中整合其他应用系统?
    Office SharePoint Server 2007 中文180天评估版到货!
    RMS 1.0 SP2
    SharePoint Server 2007 Web内容管理中的几个关键概念
    如何为已存在的SharePoint站点启用SSL
    Some update information about Office 2007
  • 原文地址:https://www.cnblogs.com/f66666/p/9831659.html
Copyright © 2011-2022 走看看