centos7 系统安全加固方案
一.密码长度与有效期
默认配置:
[root@i-1y3we23j ~]# cat /etc/login.defs |grep PASS_ |grep -v '#'
PASS_MAX_DAYS
PASS_MIN_DAYS
PASS_MIN_LEN
PASS_WARN_AGE
加固方案:
1.备份配置文件:
# cp -a /etc/login.defs /etc/login.defs.default
2.编辑配置文件并将相关参数改成如下
# vi /etc/login.defs
PASS_MAX_DAYS
PASS_MIN_DAYS
PASS_MIN_LEN
PASS_WARN_AGE
备注:
/etc/login.defs文件的pass_min_len 参数并不具备强制性,测试仍然可以设置7位密码。最终需要cracklib来实现。
参数说明:
PASS_MAX_DAYS 密码有效期
PASS_MIN_DAYS 修改密码的最短期限
PASS_MIN_LEN 密码最短长度
PASS_WARN_AGE 密码过期提醒
二.密码复杂度
默认配置:
[root@i-1y3we23j ~]# cat /etc/pam.d/system-auth | grep "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= authtok_type=
加固方案:
.备份配置文件:
# 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=
注释并在其下面新增1行 password requisite pam_cracklib.so try_first_pass minlen= difok= dcredit=- lcredit=- ocredit=- retry= type=
.保存配置文件
备注:
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=xxx:此选项用来修改缺省的密码提示文本
三.新口令不能与4个最近使用的相同
默认配置:
[root@i-1y3we23j ~]# cat /etc/pam.d/system-auth |grep use_authtok
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
加固方案:
.备份配置文件
.编辑配置文件:
# vi /etc/pam.d/system-auth
在password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok 所在行的后面添加
remember=5
.保存配置文件
备注:
记住5个历史密码
四.设置会话超时(5分钟)
默认配置:
无
加固方案:
.备份配置文件:
# cp -a /etc/profile /etc/profile.default
.编辑配置文件:
vi /etc/profile
在文件的末尾添加参数
export TMOUT=
.保存配置文件
备注:
5分钟无操作中断登录会话
五.设置history命令时间戳
默认配置:
无
加固方案:
.备份配置文件:
略
.编辑配置文件:
vi /etc/profile
在文件的末尾添加参数
export HISTTIMEFORMAT="%F %T `whoami` "
.保存配置文件
六.设置登陆失败锁定(终端登录)
默认配置:
无
加固方案:
.备份配置文件
.编辑配置文件:
# vi /etc/pam.d/system-auth
在# User changes will be destroyed the next time authconfig is run.行的下面,添加
auth required pam_tally2.so deny= unlock_time= even_deny_root root_unlock_time=
.保存配置文件
备注:
通过终端登录,5次登录失败后锁定账号30分钟,锁定期间此账号无法再次登录。
七.禁止root通过ssh远程登录
默认配置:
# cat /etc/ssh/sshd_config |grep PermitRootLogin
#PermitRootLogin yes
加固方案:
.备份配置文件
# cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.default
.编辑配置文件
vi /etc/ssh/sshd_config
将配置参数#PermitRootLogin yes改成PermitRootLogin no
.保存配置文件
.重启ssh服务
# /etc/init.d/sshd restart
八.SSH 配置参数增强
.备份配置文件
.编辑配置文件
#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服务
九.设置SSH登录警告语
默认配置:
无
加固方案:
.备份配置文件
# 略
.编辑配置文件
#vi /etc/ssh/sshd_config
找到#Banner none参数,在其下一行,增加
Banner /etc/ssh/alert
.保存配置文件
4新增告警信息文件.
#vi /etc/ssh/alert
文件内容,设置成
*******************************************************
这里的内容自己定义,可以提示一下登录的用户引起运维人员重视
Warning!!!Any Access Without Permission Is Forbidden!!!
*******************************************************
.保存后重启ssh服
十.设置umask值
默认配置:
# umask
加固方案:
.备份配置文件
# cp -a /etc/bashrc /etc/bashrc.default
.编辑配置文件
# vi /etc/bashrc
在文件末尾增加参数
umask
.保存配置文件
. 备份配置文件
# cp -a /etc/profile /etc/pr ofile.default
.编辑配置文件
# vi /etc/profile
在文件末尾增加参数
umask
.保存配置文件
备注:
将umask值设置成0027,用于拿掉新增目录与文件的非所有者和所有者所属组的访问权限
默认:
新增目录权限755,即rxwr-xr-x
新增文件权限644,即
rw-r--r—
加固后:
新增目录权限750,即rxwr-x---
新增文件权限640,即
rw-r-----
十一.禁止Control-Alt-Delete 键盘重启系统命令
默认配置:
ls /usr/lib/systemd/system/ctrl-alt-del.target
加固方案:
.备份配置文件
cp -a /usr/lib/systemd/system/ctrl-alt-del.target /usr/lib/systemd/system/ctrl-alt-del.target.default
.移除该原源文件
rm -rf /usr/lib/systemd/system/ctrl-alt-del.target
十二. 隐藏系统版本信息
默认配置:
加固方案:
执行以下命令:
#mv /etc/issue /etc/issue.bak
#mv /etc/issue.net /etc/issue.net.bak
备注:登录界面显示系统版本信息
十三.设置grup密码
默认配置:无
加固方案:
.备份配置文件
cp -a /etc/grub.d/00_header /etc/grub.d/00_header.default
.使用grub2-mkpasswd-pbkdf2 加密密码(密码自己定义,但是一定得保存好否则最后连自己都登录不进去)
[root@localhost ~]# grub2-mkpasswd-pbkdf2
Enter password:
Reenter password:
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.B157F42E96462AB239C03000F113D32EB18FD48073F1FC7D8F87A8F3B3F89F662424ECCAB901F3A812A997E547FD520F3E99D0E080F4FE8B05E019757E34F75B.29C83F87B4B6C086FC9A81E046CC3623CC5CF2F82128EDC3A0364894E429D4993B28563F82D71BF346188108CBD4341FC4A71B90E543581646B4E7EAE920C54A .添加以下配置到该文件的最后面(特别需要注意 用户名root和密文之间是空格分隔,而不是换行)
cat <<EOF
set superusers='root'
password_pbkdf2 root grub.pbkdf2.sha512..B157F42E96462AB239C03000F113D32EB18FD48073F1FC7D8F87A8F3B3F89F662424ECCAB901F3A812A997E547FD520F3E99D0E080F4FE8B05E019757E34F75B.29C83F87B4B6C086FC9A81E046CC3623CC5CF2F82128EDC3A0364894E429D4993B28563F82D71BF346188108CBD4341FC4A71B90E543581646B4E7EAE920C54A
E0F
.执行命令grub2-mkconfig -o /boot/grub2/grub.cfg
重新编译生成grub.cfg文件
十四.最大文件打开数(文件句柄数)
默认配置:
[root@i-1y3we23j ~]# ulimit -n
加固方案:
.备份配置文件
cp -a /etc/security/limits.conf /etc/security/limits.conf.default
.添加以下两行配置到该文件最后
* soft nofile
* hard nofile
备注:修改所有用户的最大文件打开数为65535
十五.用户最大进程数
默认配置:
[root@i-1y3we23j ~]# cat /etc/security/limits.d/-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz # for reasoning. * soft nproc
root soft nproc unlimited
加固方案:
.备份配置文件
cp -a /etc/security/limits.d/-nproc.conf /etc/security/limits.d/-nproc.conf.default
.修改配置文件vim /etc/security/limits.d/-nproc.conf * soft nproc
* hard nproc
备注:修改所有用户的最大进程数为65535
十六.系统参数调优
默认配置:
无
加固方案:
.备份配置文件
cp -a /etc/sysctl.conf /etc/sysctl.conf.default
.添加以下调优参数到该文件中
net.ipv4.ip_forward =
net.ipv4.conf.default.rp_filter =
net.ipv4.conf.default.accept_source_route =
kernel.sysrq =
kernel.core_uses_pid =
kernel.msgmnb =
kernel.msgmax =
kernel.shmmax =
kernel.shmall =
net.core.wmem_default =
net.core.rmem_default =
net.core.rmem_max =
net.core.wmem_max =
net.ipv4.route.gc_timeout =
net.ipv4.tcp_retries2 =
net.ipv4.tcp_fin_timeout =
net.ipv4.tcp_wmem =
net.ipv4.tcp_rmem =
net.ipv4.tcp_mem =
net.core.somaxconn =
net.core.netdev_max_backlog =
net.core.wmem_default =
net.core.rmem_default =
net.core.rmem_max =
net.core.wmem_max =
net.ipv4.route.gc_timeout =
net.ipv4.ip_local_port_range =
net.ipv4.tcp_retries2 =
net.ipv4.tcp_syn_retries =
net.ipv4.tcp_synack_retries =
net.ipv4.tcp_timestamps =
net.ipv4.tcp_tw_recycle =
net.ipv4.tcp_tw_reuse =
net.ipv4.tcp_keepalive_time =
net.ipv4.tcp_keepalive_probes =
net.ipv4.tcp_keepalive_intvl =
net.ipv4.tcp_max_orphans =
net.ipv4.tcp_wmem =
net.ipv4.tcp_rmem =
net.ipv4.tcp_mem = fs.file-max =
kernel.pid_max =
net.ipv4.tcp_wmem =
net.core.wmem_max =
net.core.netdev_max_backlog =
net.ipv4.tcp_window_scaling =
net.ipv4.tcp_max_syn_backlog = net.core.netdev_max_backlog =
net.core.somaxconn =
net.ipv4.tcp_max_orphans =
net.ipv4.tcp_max_syn_backlog =
net.ipv4.tcp_timestamps =
net.ipv4.tcp_syn_retries =
net.ipv4.tcp_synack_retries = net.ipv4.tcp_syncookies =
net.ipv4.tcp_tw_reuse =
net.ipv4.tcp_tw_recycle =
net.ipv4.tcp_fin_timeout = net.ipv4.tcp_keepalive_time =
net.ipv4.ip_local_port_range =
net.ipv4.tcp_max_syn_backlog =
net.ipv4.tcp_max_tw_buckets =
centos7 系统安全加固方案的更多相关文章
- CentOS7 系统服务器初始化配置、安全加固、内核升级优化常用软件安装的Shell脚本分享
转载自:https://www.bilibili.com/read/cv13875630?spm_id_from=333.999.0.0 描述: 适用于企业内部 CentOS7 系列操作服务器初始化. ...
- 阿里云安骑士-Centos7系统基线合规检测-修复记录
执行命令 sysctl -w net.ipv4.conf.all.send_redirects=0sysctl -w net.ipv4.conf.default.send_redirects=0sys ...
- Android 第三方加固方案 对比 MD
常见的第三方加固方案官网介绍 由于安卓APP是基于Java的,所以极容易被破解,一个不经过加固的APP犹如裸奔一样,毫无防备.之前曾有新闻报道,一些专职的APP打包黑产就是专门从各种渠道找到apk,通 ...
- MongoDB安全加固方案,防止数据泄露被勒索
早上起来,发现生产数据库被删了,留下一个数据库名叫“PLEASE_READ”,里面内容如下: "Info" : "Your DB is Backed up at our ...
- linux系统安全加固--账号相关
linux系统安全加固 一.账号相关 1.禁用或删除无用账号 减少系统无用账号,降低安全风险. 当我们的系统安装完毕后,系统默认自带了一些虚拟账户,比如bin.adm.lp.games.postfix ...
- 解决docker容器中Centos7系统的中文乱码
解决docker容器中Centos7系统的中文乱码问题有如下两种方案: 第一种只能临时解决中文乱码: 在命令行中执行如下命令: # localedef -i zh_CN -f UTF-8 zh_CN. ...
- 如何利用PowerShell完成的Windows服务器系统安全加固实践和基线检测
0x00 前言简述 最近单位在做等保测评,由本人从事安全运维方面的工作(PS:曾经做过等保等方面的安全服务),所以自然而然的与信安的测评人员一起对接相关业务系统的检查,在做主机系统测评检查时发现了系统 ...
- 读:HIS 与医保系统的接入方案及实现
HIS 与医保系统的接入方案及实现刘剑锋 李刚荣第三军医大学西南医院信息科(重庆 400038) 医院HIS和医保系统的接口设计方案涉及两个部分,分别由医院和医保中心分别完成相,应的程序设计,这两部分 ...
- 使用Xshell5连接虚拟机VMware中安装的CentOS7系统
使用Xshell5连接VMware中安装的CentOS7系统 准备材料 Xshell 下载地址 VMware Workstation 12 Pro 下载地址 CentOS 7 64位系统 下载地址 安 ...
随机推荐
- 【USACO】 Max Flow
[题目链接] 点击打开链接 [算法] LCA + 树上差分 [代码] #include<bits/stdc++.h> using namespace std; int i,x,y,N,K, ...
- 【Cocos2dx】新建场景、场景的切换、设置启动场景与菜单的新建
这是Cocos2dx最简单的部分.主要是体现对场景的操作,其实这东西就是Flash的舞台,安卓的Activity,WIN32窗体程序的Framework窗体,网页的body,反正就是对那个容纳各种东西 ...
- Cocos2dx+lua合适还是Cocos2dx+js合适?
问题: 开发cocos2dx手游Cocos2dx+lua合适还是Cocos2dx+js合适 百牛信息技术bainiu.ltd整理发布于博客园 回答: 作者:廖宇雷链接:https://www.zhih ...
- HDU-5538 House Building
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submissio ...
- 016--python文件处理
一.操作文件流程 1.打开文件,得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 示例代码: f = open('chenli.txt') #打开文件 first_line = ...
- python学习笔记4-时间函数
1 time #时间与日期 import time; # This is required to include time module. ticks = time.time() print (&qu ...
- hibernate的基础学习--一对多关联
基本的用户和部门类,只有uuid和名称,没有其余字段. 配置文件 部门: <?xml version="1.0" encoding="utf-8" ?&g ...
- 纳尼,Java 存在内存泄泄泄泄泄泄漏吗?
01. 怎么回事? 纳尼,Java 不是自动管理内存吗?怎么可能会出现内存泄泄泄泄泄泄漏! Java 最牛逼的一个特性就是垃圾回收机制,不用像 C++ 需要手动管理内存,所以作为 Java 程序员很幸 ...
- 解决error while loading shared libraries
ldd print shared library dependencies.可以查看哪些库没有找到. 这个进程启动失败,使用ldd命令可以发现是因为memcache库没有发现.把该so文件放入/lib ...
- 位运算 UEST 84 Binary Operations
题目传送门 题意:所有连续的子序列的三种位运算计算后的值的和的期望分别是多少 分析:因为所有连续子序列的组数有n * (n + 1) / 2种,所以要将他们分类降低复杂度,以ai为结尾的分成一组,至于 ...