centos7加固优化

Posted wzy懒人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos7加固优化相关的知识,希望对你有一定的参考价值。

ssh优化(port 视情况进行修改):

vim  /etc/ssh/sshd_config

GSSAPIAuthentication    no            关闭基于GSSAPI 的用户认证

UseDNS   no                                      不解析

PermitRootLogin no                            root不能直接登录

#默认都是开启的,优化关闭。

#sed  -e    识别多个sed命令

sed -i -es#.*GSSAPIAuthentication.*#GSSAPIAuthentication no#g -e s#.*UseDNS.*#UseDNS no#g /etc/ssh/sshd_config

#修改后重启sshd服务

systemctl  restart  sshd

centos7加固优化_linux

#不允许root用户直接登录(视情况做不做)  

sed-i  s#.*PermitRootLogin.*yes#PermitRootLogin no#g /etc/ssh/sshd_config


关闭防火墙和SELinux

查看防火墙服务状态: systemctl  status  firewalld.service

临时开启关闭防火墙:systemctl  start/stop firewalld.service

永久关闭/开启防火墙服务: systemctl  disable/enable   firewalld.service

#临时关闭SELinux

setenforce   0

#永久关闭SELinux

sed  -i.bak  s#SELINUX=enforcing#SELINUX=disabled#g  /etc/selinux

centos7加固优化_sed_02


yum源优化:

#如下是阿里yum基础源优化

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup &&\\

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo ​

#eqel源优化(需要提前下载wget命令: yum  -y   install  wget)

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

#下图是base源的部分截图

centos7加固优化_centos_03


密码长度和有效期:

密码长度和有效期在/etc/login.defs文件中修改,部分参数解释:

PASS_MAX_DAYS 密码有效期

PASS_MIN_DAYS 修改密码的最短期限

PASS_MIN_LEN 密码最短长度

PASS_WARN_AGE 密码过期提醒

#备份文件,并修改里面的内容

cp /etc/login.defs{,.bak}

sed -i s/^PASS_MAX_DAYS.*/PASS_MAX_DAYS    90/g /etc/login.defs

sed -i s/^PASS_MIN_DAYS.*/PASS_MIN_DAYS          1/g /etc/login.defs

sed -i s/^PASS_MIN_LEN.*/PASS_MIN_LEN      9/g /etc/login.defs

sed -i s/^PASS_WARN_AGE.*/PASS_WARN_AGE    7/g /etc/login.defs

#下图为修改后的配置

centos7加固优化_linux_04


密码复杂度:

#在/etc/pam.d/system-auth文件中进行修改,部分参数解释:

try_first_pass:当pam_unix验证模块与password验证类型一起使用时,该选项主要用来防止用户新设定的密码与以前的旧密码相同。

minlen=8   :最小长度8位

difok=5      :  新、旧密码最少5个字符不同

dcredit=-1 :最少1个数字

lcredit=-1  : 最少1个小写字符,(ucredit=-1:最少1个大写字符)

ocredit=-1 :最少1个特殊字符

retry=1      :  1次错误后返回错误信息

type=        :此选项用来修改缺省的密码提示文本

#具体命令如下(实际上不改也可以,使用默认的),sed  -i.bak表示修改的同时将原文件进行备份

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

 

错误次数锁定:

#表示错误6次,该账号将锁定1800

sed -i 3a auth        required      pam_tally2.so  file=/var/log/tallylog deny=6 even_deny_root unlock_time=1800 /etc/pam.d/system-auth

sed -i 4a account        required      pam_tally2.so /etc/pam.d/system-auth /etc/pam.d/system-auth

centos7加固优化_centos_05


会话超时设置:

#备份文件,并向里面追加内容

cp  /etc/profile{,.bak}

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

source  /etc/profile

centos7加固优化_centos_06

#如下两条命令也可以配置上,表示历史记录中只有5条命令,防别人看你操作了什么命令

echo  "export  HISTSIZE=5"    >>/etc/profile

echo   "export   HISTFILESEZE=5"     >>/etc/profile


审计 :

#创建审计用户

useradd auditor ; echo  1qaz@WSX |passwd  --stdin  auditor

#添加审计规则

cp /etc/audit/rules.d/audit.rules{,$bak}

echo  "

-w/etc/group -p wa -k identity

-w/etc/passwd -p wa -k identity

-w/etc/gshadow -p wa -k identity

-w/etc/shadow -p wa -k identity

-w/etc/security/opasswd -p wa -k identity

" >> /etc/audit/rules.d/audit.rules

serviceauditd stop ; service auditd start

centos7加固优化_centos_07


关闭无用服务:

#vnc,蓝牙,邮件等无用服务可以关闭掉

systemctl stop  sendmail

systemctl disable  sendmail

systemctl stop  buletooth

systemctl disable  buletooth

systemctl stop  vncserver@:1

systemctl disable  vncserver@:1​


加大文件描述:

#一个服务程序运行起来,会打开相应的文件数量,尽量调到最大

echo   "*  -  nofile   65535"  >> /etc/security/limits.conf

#查看该文件的最后一行

tail -1 /etc/security/limits.conf


内核优化:

#修改/etc/sysctl.conf文件,添加参数,sysctl  -p表示永久生效

​#关闭ipv6

net.ipv6.conf.all.disable_ipv6= 1

net.ipv6.conf.default.disable_ipv6= 1

# 避免放大攻击

net.ipv4.icmp_echo_ignore_broadcasts= 1

# 开启恶意icmp错误消息保护

net.ipv4.icmp_ignore_bogus_error_responses= 1

# 关闭路由转发

net.ipv4.ip_forward= 0

net.ipv4.conf.all.send_redirects= 0

net.ipv4.conf.default.send_redirects= 0

#开启反向路径过滤

net.ipv4.conf.all.rp_filter= 1

net.ipv4.conf.default.rp_filter= 1

#关闭sysrq功能

kernel.sysrq = 0

#core文件名中添加pid作为扩展名

kernel.core_uses_pid= 1 ​

net.ipv4.tcp_syncookies= 1 ​

#修改消息队列长度

kernel.msgmnb =65536

kernel.msgmax =65536

#设置最大内存共享段大小bytes

kernel.shmmax =68719476736

kernel.shmall =4294967296

#timewait的数量,默认180000

net.ipv4.tcp_max_tw_buckets= 6000

net.ipv4.tcp_sack= 1

net.ipv4.tcp_window_scaling= 1

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

net.core.netdev_max_backlog= 262144

#限制仅仅是为了防止简单的DoS 攻击

net.ipv4.tcp_max_orphans= 3276800

#未收到客户端确认信息的连接请求的最大值

net.ipv4.tcp_max_syn_backlog= 262144

net.ipv4.tcp_timestamps= 0

#内核放弃建立连接之前发送SYNACK 包的数量

net.ipv4.tcp_synack_retries= 1

#内核放弃建立连接之前发送SYN 包的数量

net.ipv4.tcp_syn_retries= 1

#启用timewait 快速回收

net.ipv4.tcp_tw_recycle= 1

#开启重用。允许将TIME-WAIT sockets 重新用于新的TCP连接

net.ipv4.tcp_tw_reuse= 1

net.ipv4.tcp_mem= 94500000 915000000 927000000

net.ipv4.tcp_fin_timeout= 1

#keepalive 起用的时候,TCP 发送keepalive 消息的频度。缺省是2 小时

net.ipv4.tcp_keepalive_time= 30

#允许系统打开的端口范围

net.ipv4.ip_local_port_range= 1024     65000

#修改防火墙表大小,默认65536

net.netfilter.nf_conntrack_max=655350

net.netfilter.nf_conntrack_tcp_timeout_established=1200

# 确保无人能修改路由表

net.ipv4.conf.all.accept_redirects= 0

net.ipv4.conf.default.accept_redirects= 0

net.ipv4.conf.all.secure_redirects= 0

net.ipv4.conf.default.secure_redirects= 0

以上是关于centos7加固优化的主要内容,如果未能解决你的问题,请参考以下文章

CentOS7 系统服务器初始化配置安全加固内核升级优化常用软件安装的Shell脚本分享

【OS】CentOS7 系统服务器初始化配置、安全加固、内核升级优化

Centos7ssh使用证书登录加固

安全加固-Centos7-Apache

Centos7 安全加固

centos7 系统安全加固方案