莫道桑榆晚,为霞尚满天。这篇文章主要讲述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个数字
【centos7加固优化】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表示永久生效
?#关闭ipv6net.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
推荐阅读
- C# WPF MVVM模式Prism框架从零搭建(经典)
- 香港CN2服务器怎么样?
- Ubuntu/LinuxMint系统安装QQ和迅雷等常用软件
- Ubuntu sudo:must be setuid root,失手改了usr目录的权限,在机房的血泪恢复全记录
- 如何使用find和locate 命令在Linux 中查找文件和目录()
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- #yyds干货盘点# docker vs docker-compose 解密
- 在WordPress上提交评论后,自定义”成功”消息
- 用户角色页面的自定义重定向