CentOS7.8-系统优化

一、CentOS系统优化

1.1最大文件打开数/文件句柄优化

 ## 备份配置文件
 cp -a /etc/security/limits.conf{,.bak}
 ## 添加以下两行配置到该文件最后
 * soft nofile 65536
 * hard nofile 65536

1.2用户最大进程数

 ## 1.备份配置文件
 cp -a /etc/security/limits.d/20-nproc.conf{,.bak}
 ## 2.修改配置文件
 vim /etc/security/limits.d/20-nproc.conf
 *     soft  nproc   65536
 *     hard  nproc   65536
 root    soft  nproc   unlimited

1.3关闭防火墙

 ##依据实际生产情况管理
 /usr/bin/systemctl stop firewalld.service &> /dev/null
 /usr/bin/systemctl disable firewalld.service &> /dev/null
 /usr/bin/systemctl mask firewalld.service &> /dev/null

1.4关闭安全机制SElinux

 cp /etc/selinux/config{,.bak}
 sed -r -i '/^SELINUX=/s/.*/SELINUX=disabled/' /etc/selinux/config
 setenforce 0

1.5操作系统时间同步

 ## 解锁配置文件
 chattr -i ``/var/spool/cron/root
 ## 添加定时任务,定时从时间服务器同步时间
 echo "*/5 * * * * /usr/sbin/ntpdate 10.137.9.9 >> /home/timedate.log > /dev/null 2>&1" >> /var/spool/cron/root
 ## 编辑后锁定配置文件
 chattr +i /var/spool/cron/root

1.6系统参数优化(依据实际生成环境)

 ## 备份配置文件
 cp -a /etc/sysctl.conf /etc/sysctl.conf.default
 ## 添加以下调优参数到该文件中
 #kernel
     kernel.sysrq = 0
     kernel.core_uses_pid = 1
     kernel.msgmnb = 65536
     kernel.msgmax = 65536
     kernel.shmmax = 68719476736
     kernel.shmall = 4294967296
 #socket
     net.ipv4.ip_local_port_range = 1024 65000
     net.ipv4.ip_forward = 0
     net.ipv4.tcp_timestamps = 0
     net.ipv4.tcp_sack = 1
     net.ipv4.tcp_window_scaling = 1
     net.ipv4.conf.default.rp_filter = 1
     net.ipv4.conf.default.accept_source_route = 0
 #socket mem
     net.ipv4.tcp_mem = 94500000 915000000 927000000
     net.ipv4.tcp_rmem = 4096 87380 4194304
     net.ipv4.tcp_wmem = 4096 16384 4194304   
     net.core.wmem_default = 8388608
     net.core.rmem_default = 8388608
     net.core.rmem_max = 16777216
     net.core.wmem_max = 16777216
 #conn
     net.core.netdev_max_backlog = 262144
     net.core.somaxconn = 262144
     net.ipv4.tcp_max_orphans = 3276800
 #Timewait
     net.ipv4.tcp_max_tw_buckets = 6000
     net.ipv4.tcp_tw_recycle = 1
     net.ipv4.tcp_tw_reuse = 1
 #sync
     net.ipv4.tcp_syn_retries = 1
     net.ipv4.tcp_synack_retries = 1
     net.ipv4.tcp_max_syn_backlog = 262144
     net.ipv4.tcp_syncookies = 1
 #fin
     net.ipv4.tcp_fin_timeout = 1
 #keepalive
     net.ipv4.tcp_keepalive_time = 30
 ## 配置生效
 /sbin/sysctl -p

二、CentOS系统安全加固

2.1操作系统密码策略(密码长度有效期)

 ## 备份配置文件:
 cp -a /etc/login.defs /etc/login.defs.default
 ## 编辑配置文件
 vim /etc/login.defs
 # 将相关参数值改成如下:
 PASS_MAX_DAYS    90    # 密码最长使用天数
 PASS_MIN_DAYS    0     # 密码最短使用天数
 PASS_MIN_LEN     8     # 密码最短长度
 PASS_WARN_AGE    7     # 密码到期前多少天提醒
  
 ## 修改系统中当前已存在用户的密码策略
 chage -m 0 -M 90 -I 5 -W 7 <用户名>
 ## 表示将此用户的密码最长使用天数设为90,最短使用天数设为0,密码过期后5天之后账户失效,过期前7天提醒用户。

2.2密码复杂度策略

 ## 备份配置文件:
 cp -a /etc/pam.d/system-auth /etc/pam.d/system-auth.default## 编辑配置文件
 vi /etc/pam.d/system-auth
 # 将password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= 修改为:
 password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1

2.3密码重复使用次数限制

 #设置密码重复前3次使用过的
 ## 修改配置文件
 /etc/pam.d/system-auth
 在password sufficient pam_unix.so xxxxx 一行后添加 remember=3,例如:
 password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=3

2.4锁定不必要的系统默认账号

 ## 锁定无用帐号,降低安全风险
 usermod -L gdm
 usermod -L nobody
 ## 如有其他的不必要的系统用户,可以用此方法锁定

2.5特殊账号检查

 awk -F: '($2"")' /etc/shadow    ## 查看空口令账号,找到之后,使用passwd命令为其设置密码。
 awk -F: '($30)' /etc/passwd     ## 查看UID为零的账号,保证系统中UID为0的帐号只有root。

2.6设置会话超时时间

 ## 备份配置文件:
 cp -a /etc/profile /etc/profile.default
 ## 编辑配置文件:
 vi /etc/profile
 # 在文件的末尾添加参数
 export TMOUT=300

2.7设置历史命令时间戳

 echo "HISTFILESIZE=2000" >> /etc/bashrc
 echo "HISTFILESIZE=2000" >> /etc/bashrc
 echo "HISTSIZE=2000" >> /etc/bashrc
 echo "HISTTIMEFORMAT='<%F %T> : '" >> /etc/bashrc

2.8SSH服务安全配置

 ## 备份配置文件
 cp /etc/ssh/sshd_config{,.bak}
 ## 编辑配置文件
 vi /etc/ssh/sshd_config
 # 禁止空密码登录,将#PermitEmptyPasswords no参数的注释符号去掉,改成
 PermitEmptyPasswords no
 # 关闭ssh的tcp转发,将#AllowTcpForwarding yes参数改成
 AllowTcpForwarding no
 # 关闭S/KEY(质疑-应答)认证方式,将#ChallengeResponseAuthentication yes参数,改成
 ChallengeResponseAuthentication no
 # 关闭基于GSSAPI 的用户认证,将GSSAPIAuthentication yes参数,改成
 GSSAPIAuthentication no
 # 关闭ssh连接DNS查找
 UseDNS no
 # 修改sshd服务默认端口,推荐改成10000以上的端口,如
 Port 12379
 ## 重启ssh服务
 ​
 # 重启sshd服务
 systemctl restart sshd

2.9禁止root用户远程登录

 ## 备份配置文件
 cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.default
 ## 编辑配置文件
 vi /etc/ssh/sshd_config
 # 将配置参数#PermitRootLogin yes改成
 PermitRootLogin no
 ## 重启ssh服务

2.10登录失败锁定

 ## 配置文件备份
 cp /etc/pam.d/sshd{,.bak}
 cp /etc/pam.d/login{,.bak}
 ## 修改配置文件
 vim /etc/pam.d/sshd
 ## 编辑配置文件,在#%PAM-1.0的下面,即第二行,添加内容
 auth required pam_tally2.so deny=3 unlock_time=600 even_deny_root root_unlock_time=10
  
 vim /etc/pam.d/login
 ## 编辑配置文件,在#%PAM-1.0的下面,即第二行,添加内容
 auth required pam_tally2.so deny=3 lock_time=600 even_deny_root root_unlock_time=10

2.11设置sshd加密算法

 ## 备份配置文件
 cp /etc/ssh/sshd_config{,.bak}
 ## 修改配置文件,在配置文件末尾加上如下配置
 Ciphers aes128-ctr,aes192-ctr,aes256-ctr

2.12设置系统umask值

 vim /etc/profile
 ## 在文档末尾加上
 umask 027

2.13禁止"Control-Alt-Delete"重启系统快捷键

 #.rhosts,.netrc,hosts.equiv等文件都具有潜在的危险,如果没有应用,应该删除。
 mv /usr/lib/systemd/system/ctrl-alt-del.target /tmp
 init q

2.14隐藏系统版本信息

 mv /etc/issue /etc/issue.bak
 mv /etc/issue.net /etc/issue.net.bak

2.15关闭不必要的系统服务

 #关闭不必要的服务(如普通服务和xinetd服务),降低风险。
 ## 停止服务
 systemctl stop <服务名>
 ## 设置服务在开机时不自动启动。
 systemctl disable <服务名>
 ## CentOS7最小化安装,推荐停止的系统服务有:postfix,...

2.16删除潜在的危险文件

 #.rhosts,.netrc,hosts.equiv等文件都具有潜在的危险,如果没有应用,应该删除。
 ## 操作步骤
 find / -name .rhosts 
 find / -name .netrc
 find / -name hosts.equiv
 ## 若存在相关文件,加上.bak后缀
 mv .rhost .rhost.bak 
 mv .netr .netr.bak 
 mv hosts.equiv hosts.equiv.bak

2.17记录所有用户的登录和操作日志

 vim /etc/profile      # 打开配置文件,在配置文件末尾加入如下脚本
 history
 USER=`whoami`
 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 /var/log/history ]; then
     mkdir /var/log/history
     chmod 733 /var/log/history
 fi
 if [ ! -d /var/log/history/${LOGNAME} ]; then
     mkdir /var/log/history/${LOGNAME}
     chmod 300 /var/log/history/${LOGNAME}
 fi
 export HISTSIZE=4096
 DT=`date +"%Y%m%d_%H:%M:%S"`
 export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"
 chmod 600 /var/log/history/${LOGNAME}/* 2>/dev/null
 ## 执行下面命令使配置生效,如果已经接入了堡垒机,该步骤可省略(堡垒机已经有日志审计功能了)
 source /etc/profile

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值