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
#不允许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
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源的部分截图
密码长度和有效期:
密码长度和有效期在/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
#下图为修改后的配置
密码复杂度:
#在/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
会话超时设置:
#备份文件,并向里面追加内容
cp /etc/profile{,.bak}
echo "export TMOUT=600" >> /etc/profile
source /etc/profile
#如下两条命令也可以配置上,表示历史记录中只有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
关闭无用服务:
#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脚本分享