linux系统安全优化和加固


   在系统优化之前先简单的说一下优化的原则,要做到最小化:                    

    1、根据需求安装系统最小化;                                                                                

    2、开启程序最小化;                                                                                               

    3、操作最小化;

    4、登录最小化;

    5、权限最小化,就是使用普通用户登录。

    6、配置参数合理化,不要最大化。

    #修改配置文件的时候注意备份。

    系统安装之前包的选择如下图(centos为例):

    

wKiom1TutiDwZ0OtAAGi0NT6M5k191.jpg

wKioL1TutyygMOyGAAAYwDNRRKs074.jpg

wKiom1TutiHSVw10AAFMOIVQdx4191.jpg

    yum grouplist:
    Installed Groups:
       Base
       Compatibility libraries
       Debugging Tools
       Development tools
       Dial-up Networking Support
       Hardware monitoring utilities
       Performance Tools
    如果忘记选包,安装后可以按如下方式选包:
        yum groupinstall "Compatibility libraries" "Base" "Development tools"
        yum groupinstall "Performance Tools" "debugging Tools" "Dial-up Networking Support"
        yum groupinstall "Base" "Development tools"

    可以通过yum groupinfo 包组查看具体安装的组件。



简单优化项如下:

    ⑴:禁止root远程登陆,创建账户monitor,修改端口2252113   

      #如果防火墙设置规则 ,勿忘记关闭,且修改防火墙配置。

配置文件修改操作步骤:

useradd  monitor

passwd monitor  nihao123!

mv   /etc/ssh/sshd_config  /etc/ssh/sshd_config.back

cat /etc/ssh/sshd_config.back |egrep -v "^#|^$"  >/etc/ssh/sshd_config

添加配置:

Port 52113                 #→ssh连接默认的端口修改
PermitRootLogin no         #→root禁止远程登陆。
PermitEmptyPasswords no    #→禁止空密码登陆
UseDNS no                  #→不使用DNS
重启: /etc/init.d/sshd  restart

  

   ⑵:防火墙设置;

     #端口扫描命令: nmap 127.0.0.1  -p 1-65535,防火墙一般为关闭状态


1、清空iptables 设置:     iptables -F       iptables -X          iptables -Z

2、配置允许(自己)52113登录端口进入

   iptables -t filter -A INPUT -p tcp --dport 52113 -s 10.XX.XX.XX  -j ACCEPT

   或开启信任的iP网段

   iptables -A INPUT -s xx.xx.xx.xx  -p all -j ACCEPT

3、允许业务服务端口对外访问(运行http服务无条件通过)

   iptables -A INPUT -p tcp --dport   (待定)  -j   ACCEPT

4、设置默认的防火墙禁止和允许规则。

    iptable -P INPUT DROP
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD  DROP

    

  ⑶:关闭selinux   

修改配置位置: cat -n  /etc/selinux/config 

修改配置项:7 SELINUX=disabled    

命令修改: sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

查看:setenforce 1 ― SELinux以强制(enforcing)模式运行

      setenforce 0 ― SELinux以警告(permissive)模式运行

      getenforce查看selinux

备注:如果要彻底禁用SELinux 需要在/etc/sysconfig/selinux中设置参数selinux=0

 

  ⑷:关闭不需要的服务;

        #开机精简启动,一般常用的服务sshd远程连接;syelog 记录系统日志;network 网卡服务;crond 定时任务;。

查看运行级别: runlevel  N 3

查看启动的服务:  chkconfig --list | grep 3:启用 | awk '{print $1}'

需要开启:crond  network     yum-updatesd  sshd syslog

关闭:   for kong in `chkconfig --list|grep "3:on"|awk '{print $1}'|grep -vE "crond|network|sshd|rsyslog"`;do chkconfig $kong off;done

开启单个服务: chkconfig [--level<等级代号>][系统服务] on/off

        范例: chkconfig  --level 3 syslog on

结果: chkconfig --list|grep "3:启用"

crond           0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

network         0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

sshd            0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

syslog          0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭


  ⑸:时间同步:

echo '*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1' >>/var/spool/cron/root 

检查:crontab  -l


 ⑹:设置文件打开最大数:

      #数值适当调整以增加文件打开数量。可以加快服务性能:

文件路径:/etc/security/limits.conf

查看:ulimit -a

设置:ulimit -n 65535


  ⑺:修改yum源,根据自己喜好,自由选择:      

文件路径: 163:http://mirrors.163.com/.help/CentOS6-Base-163.repo
                  阿里云:http://mirrors.aliyun.com/repo/Centos-6.repo
     路径:/etc/yum.repos.d
                 wget /etc/yum.repos.d/CentOS-Base.repo  http://mirrors.aliyun.com/repo/Centos-6.repo

    

  ⑻:锁定密码相关文件

  chattr +i   系统不允许对这个文件进行任何的修

  chattr +i /etc/passwd /etc/group /etc/shadow /etc/gshadow /etc/inittab
  查看:lsattr + 文件名

    

 ⑼:修改习惯的中文语言:

 sed -i 's#LANG="en_US.UTF-8"#LANG="zh_CN.gb2312"#g' /etc/sysconfig/i18n

执行文件 ,且生效source /etc/sysonfig/i18n

#注意备份

 

  ⑽:关闭ctrl+alt+del重启

 sed -i 's/^ca::ctrlaltdel:*/#ca::ctrlaltdel:*/' /etc/inittab

init q

 

  ⑾:修改系统运行级别为:3(需要重启生效)

sed -i 's/^id:5:initdefault:/id:3:initdefault:/' /etc/inittab

  

  ⑿:设置SSH的TIMEOUT时间限制为10分钟:

echo "TMOUT=600" >> /etc/profile

 

  

  ⒀:修改密码有效期为:91天,老用户不生效,需用chage命令修改:

sed -i 's/^PASS_MAX_DAYS.*$/PASS_MAX_DAYS\t91/' /etc/login.defs

 


  ⒁:history记录条目为50条

echo "HISTSIZE=50" >> /etc/profile
echo "HISTFILESIZE=50" >> /etc/profile

#histfilesize历史记录文件大小,例如10M或者50M

 
 ⒂:自动检测.netrc & .rhosts文件,存在即删除:

     FIND1=`find / -name .netrc`
     FIND2=`find / -name .rhosts`
     for NETRC in $FIND1
     do
       if [ -f $NETRC ] ; then
         rm -f $NETRC
       fi
     done
     for RHOSTS in $FIND2
     do
       if [ -f $RHOSTS ] ; then
         rm -f $RHOSTS
       fi
     done

  ⒃:各主目录权限应为750
        chmod 750 /home/*
        chmod 700 /home/lost+found

  ⒄:用户删除或锁定

  # passwd -l 锁定用户
  # userdel -r 删除用户
  # usermod -s /sbinlogin 禁止(ssh/telnet)登陆,但可以ftpchmod 755 /sbinlogin
usermod -s /sbinlogin daemon
usermod -s /sbinlogin bin
usermod -s /sbinlogin nobody
usermod -s /sbinlogin sshd
usermod -s /sbinlogin adm
usermod -s /sbinlogin bin
usermod -s /sbinlogin mail
usermod -s /sbinlogin operator
usermod -s /sbinlogin gopher
usermod -s /sbinlogin ftp
usermod -s /sbinlogin nobody
usermod -s /sbinlogin rpm
usermod -s /sbinlogin dbus
usermod -s /sbinlogin avahi
usermod -s /sbinlogin nscd
usermod -s /sbinlogin mailnull
usermod -s /sbinlogin smmsp
usermod -s /sbinlogin vcsa
usermod -s /sbinlogin haldaemon
usermod -s /sbinlogin rpc
usermod -s /sbinlogin rpcuser
usermod -s /sbinlogin nfsnobody
usermod -s /sbinlogin pcap
usermod -s /sbinlogin ntp
usermod -s /sbinlogin distcache
usermod -s /sbinlogin apache
usermod -s /sbinlogin webalizer
usermod -s /sbinlogin squid
usermod -s /sbinlogin named
usermod -s /sbinlogin xfs
usermod -s /sbinlogin gdm
usermod -s /sbinlogin sabayon
usermod -s /sbinlogin ais
usermod -s /sbinlogin pegasus
usermod -s /sbinlogin luci
usermod -s /sbinlogin piranha
usermod -s /sbinlogin ricc
usermod -s /sbinlogin uucp
usermod -s /sbinlogin games
usermod -s /sbinlogin lp


  ⒅:设置所有用户umask 为027

sed -i 's/^UMASK.*$/UMASK\t027/' /etc/login.defs


  ⒆:删除NIS

i=`rpm -qa yp-tools`
n=`rpm -qa ypbind`
rpm -e $i $n


  ⒇:密码策略:密码有效期90天,最短长度为8位,密码重试3次后提示密码错误,最多有3位与原密码相同,至少有一个大写字母、一个小写字母、一个数字、一个字符:


cp -ap /etc/login.defs  /etc/login.defs.back

sed -i 's/^PASS_MAX_DAYS.*$/PASS_MAX_DAYS\t90/' /etc/login.defs
sed -i 's/^PASS_MIN_LEN.*$/PASS_MIN_LEN\t8/' /etc/login.defs

cp -ap /etc/pam.d/system-auth /etc/pam.d/system-auth.back

sed -i 's/password.*pam_cracklib.so.*$/password    requisite     pam_cracklib.so try_first_pass retry=3 difok=3 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 minlen=8/g' /etc/pam.d/system-auth


  #防火墙设置:

vi /etc/sysctl.conf 

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180

net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120

net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60

net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120

#超时时间调小

解决办法:http://linuxboys.blog.51cto.com/9150052/1598234

报错解决办法:http://www.lvtao.net/server/centos-server-setup.html

注意系统版本号: 

cat /etc/redhat-release 

CentOS release 5.9 (Final)









        

      


        

本文出自 “思想大于技术” 博客,谢绝转载!

你可能感兴趣的:(linux,系统优化)