CentOS 安全优化
1、操作系统和数据库系统管理用户身份鉴别信息令应有复杂度要求并定期更换。
配置# vi /etc/login.defs
系统默认配置:
PASS_MIN_LEN=5 #密码最小长度 PASS_MAX_DAYS=99999 #密码最大有效期 PASS_MIN_DAYS=0 #两次修改密码的最小间隔时间
优化配置:
PASS_MIN_LEN=8
PASS_MAX_DAYS=90
PASS_MIN_DAYS=2
2、启用登录失败处理功能
vi /etc/pam.d/system-auth
在文件中加入以下语句: password requisite pam_cracklib.so retry=3 difok=2 minlen=8 lcredit=-1 dcredit=-1 difok:本次密码与上次密码至少不同字符数
minlen:密码最小长度,此配置优先于login.defs中的PASS_MAX_DAYS
ucredit:最少大写字母
lcredit:最少小写字母
dcredit:最少数字
retry:重试多少次后返回密码修改错误 #帐户登录连续 3 次失败,就统一锁定 60 秒, 60 秒后可以解锁 auth required pam_tally2.so onerr=fail deny=3 unlock_time=60 even_deny_root root_unlock_time=60 root_unlock_time 表示 root 帐户的 锁定时间
onerr=fail 表示连续失败
deny=3,表示 超过3 次登录失败即锁定 vim /etc/pam.d/sshd
#%PAM-1.0
auth required pam_tally2.so deny=3 unlock_time=60 even_deny_root root_unlock_time=60 vim /etc/pam.d/login
#%PAM-1.0
auth required pam_tally2.so deny=3 unlock_time=60 even_deny_root root_unlock_time=60
3、设置登录终端的操作超时锁定
vi /etc/profile
在“HISTFILESIZE=”后面加入下面这行:
TMOUT=900 # 设置900秒内用户无操作就字段断开终端
4、ulimit 限制资源和文件打开数量优化
[root@localhost ~]# egrep -v "^#|^$" /etc/security/limits.conf
root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
5.对重要信息资源设置敏感标记的功能(SElinux)。
如果对安全要求较高的话就开启SElinux
建议这个选项为SELINUXTYPE=targeted (默认选项)
selinux资料参考:http://cn.linux.vbird.org/linux_basic/0440processcontrol.php
6、ssh服务配置
vim /etc/ssh/sshd_config #确保SSH LogLevel设置为INFO,记录登录和注销活动(取消注释)
LogLevel INFO #设置SSH空闲超时退出时间
ClientAliveInterval 900
ClientAliveCountMax 0 #SSHD强制使用V2安全协议
Protocol 2 #禁止SSH空密码用户登录
PermitEmptyPasswords no #设置最大密码尝试失败次数
MaxAuthTries 4
7.设置用户权限配置文件的权限
chown root:root /etc/passwd /etc/shadow /etc/group /etc/gshadow
chmod 0644 /etc/group
chmod 0644 /etc/passwd
chmod 0400 /etc/shadow
chmod 0400 /etc/gshadow
8.开启地址空间布局随机化
sysctl -w kernel.randomize_va_space=2
9.强制用户不重用最近使用的密码,降低密码猜测攻击风险
#在/etc/pam.d/password-auth和/etc/pam.d/system-auth中password sufficient pam_unix.so 这行的末尾配置remember参数为5-24之间,原来的内容不用更改。如下面只在末尾加了remember=5,即可限制不能重用最近5个密码。 [root@localhost ~]# egrep "password sufficient" /etc/pam.d/password-auth
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5 #只添加remember=5 ...... [root@localhost ~]# egrep "password sufficient" /etc/pam.d/system-auth
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5
......
10.检查密码长度和密码是否使用多种字符类型
编辑/etc/security/pwquality.conf,把minlen(密码最小长度)设置为9-32位,把minclass(至少包含小写字母、大写字母、数字、特殊字符等4类字符中等3类或4类)设置为3或4。
[root@localhost ~]# egrep -v "^#|^$" /etc/security/pwquality.conf
minlen = 10
minclass = 3
11、history安全优化
vim /etc/profile
export HISTTIMEFORMAT="%F %T `who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` `whoami` "
##将所有命令记录到messages日志中(最好如下)
export PROMPT_COMMAND='{ msg=$(history 1 | { read x y ; echo $y ;}); logger "[euid=$(whoami)]":$(who am i):[`pwd`]" $msg";}'
12.服务器开启审计服务auditd和日志服务rsyslog(默认开启)(或者搭建日志服务器【推荐】)
13.安装完整性验证工具tripwire(可以自己写md5的脚本验证)
#验证脚本
[root@localhost ~]# cat /usr/local/scripts/md5_file_check.sh
#!/bin/bash
check_file=/etc/command.md5 md5_status=`/usr/bin/md5sum -c ${check_file}|egrep -v "OK"|wc -l` if [ ${md5_status} -eq 0 ];then
echo 0
else
echo 1
fi #例子
[root@localhost ~]# md5sum /usr/bin/ls >> /etc/command.md5 [root@localhost ~]# cat /etc/command.md5
1e71cac86984ea97fe648a9fe66bc223 /bin/ls #zabbix监控脚本
[root@localhost ~]# egrep "md5" /etc/zabbix/zabbix_agentd.d/scripts.conf
UserParameter=md5_check,/usr/local/scripts/md5_file_check.sh 2>/dev/null
#重启zabbix-agent
[root@168web3 ~]# systemctl restart zabbix-agent.service
zabbix监控模板
监控项

触发器

14.服务器安装clamav杀毒软件
#安装
[root@localhost ~]# yum install clamav -y
#定时更新病毒库
[root@localhost ~]# crontab -l
##每天更新病毒库
00 02 * * * /usr/bin/freshclam 2>&1 >/dev/null #扫描目录(可以写入定时任务中)
[root@localhost ~]# clamscan -r /sbin/
15.设置tcp连接超时以及tcp断开后释放连接的优化。
[root@localhost ~]#vim /etc/sysctl.conf
#网卡设备将请求放入队列的长度。
net.core.netdev_max_backlog = 8192
#开启TCP连接中TIME-WAIT sockets的快速回收
net.ipv4.tcp_tw_recycle = 1
#开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接
net.ipv4.tcp_tw_reuse = 1
#这个参数决定了它保持在FIN-WAIT-2状态的时间
net.ipv4.tcp_fin_timeout = 30
#当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时
net.ipv4.tcp_keepalive_time = 600 #生效
[root@localhost ~]# sysctl -p
16、防火墙安全组规则设置好(ip白名单、控制好每条规则)
systemctl start firewalld.service #开发ip(白名单)(重启生效)
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="1.1.1.1" port protocol="tcp" port="1-65535" accept"
#封ip(临时)直接生效(重启就没)
firewall-cmd --add-rich-rule="rule family='ipv4' source address='2.2.2.2' reject" #开发端口
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=80/tcp
17、关闭不用的服务与开机自启服务
#查看开机自启
systemctl list-unit-files|grep enabled #关闭开机自启与服务
systemctl disable atd.service
systemctl stop atd.service
18、能不对外的服务或端口就不要对外(如ssh端口或gitlab等)
19、重要服务器或数据定时做好备份与快照
CentOS 安全优化的更多相关文章
- centos一键优化脚本
centos一键优化脚本:细节:http://oldboy.blog.51cto.com/2561410/1336488网络状态优化:http://oldboy.blog.51cto.com/2561 ...
- centos内核优化--转至网络
A.关闭selinux(可以预防nginx修改根目录后访问出现404或者403) vi /etc/selinux/config SELINUX=disabled B.修改打开最大文件数句柄也就是 so ...
- 针对Kafka的centos系统参数优化
TCP网络优化 sudo vim /etc/sysctl.conf vm.max_map_count=655360net.core.rmem_default=262144net.core.rmem_m ...
- CentOS内核优化提示:cannot stat /proc/sys/net/bridge/bridge-nf-call-ip6tables: 没有那个文件或目录
临时解决,重启失效 modprobe br_netfilter 为了开机加载上面这个模块 cat > /etc/rc.sysinit << EOF #!/bin/bash for f ...
- mysql性能优化学习笔记
mysql性能优化 硬件对数据库的影响 CPU资源和可用内存大小 服务器硬件对mysql性能的影响 我们的应用是CPU密集型? 我们的应用的并发量如何? 数量比频率更好 64位使用32位的服务器版本 ...
- CentOS系统初始化---不断更新中
注意EOF不能有空格tab键 #get os version release=$(rpm -q --qf "%{VERSION}" $(rpm -q --whatprovides ...
- MySQL for OPS 11:优化
写在前面的话 不管是作为运维还是作为 DBA,我们的工作都不是写 SQL,搞业务.更多的还是如何实现又好又快的给开发提供一个数据库环境和保障数据的安全性.前面的文章中读写分离,高可用,建立索引,分库分 ...
- 什么影响了mysql的性能-硬件资源及系统方面优化
随着数据量的增大,数据库的性能问题也是个值得关注的问题,很多公司对mysql性能方面没有太过重视,导致服务浪费过多资源.mysql服务性能差从而直接影响用户体验,这里我们简单的先来聊聊什么影响了mys ...
- 大流量大负载的Kafka集群优化实战
前言背景 算法优化改版有大需求要上线,在线特征dump数据逐步放量,最终达到现有Kafka集群5倍的流量,预计峰值达到万兆网卡80%左右(集群有几十个节点,网卡峰值流出流量800MB左右/sec.写入 ...
随机推荐
- mysql order by 排序的问题
参考博客http://blog.csdn.net/hollboy/article/details/13296601 mysql order by 的排序在今天时候遇到了问题 情景是:将排序的字段设置成 ...
- Mac 快速切换桌面快捷键
Mac系统可以新建多个桌面,我习惯开三个桌面,第一个桌面放浏览器.QQ等娱乐窗口,第二个窗口开Xcode等编程工具(不编程用Mac干啥,是吧),第三个窗口放一些笔记啊,工具什么的. 一般切换的时候,可 ...
- IOZONE测试工具使用方法
iozone介绍: iozone(www.iozone.org)是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能. 可以测试 Read, write, re-read ...
- AI 循环神经网络(RNN)
循环神经网络(Recurrent Neural Network,简称RNN),通常用于处理序列数据.正如卷积神经网络通常用于处理网格数据(例如图像)一样. 1.展开计算图 输入.输出.记忆 权值 2. ...
- Android 解决布局无法对齐的情况
是这样的,在为app制作titlebar或者使用RadioGroup设置布局的的weight属性后,会出现有些机型的手机布局无法居中的问题. 在遇到这类问题时,大部分的原因就是因为没有设置控件的属性: ...
- php实现一个单链表
单链表,节点只有一个指针域的链表.节点包括数据域和指针域. 因此用面向对象的思维,节点类的属性就有两个:一个data(表示存储的数据),一个指针next(链表中指向下一个节点). 链表一个很重要的特性 ...
- UVA1626 - Brackets sequence(区间DP--括号匹配+递归打印)
题目描写叙述: 定义合法的括号序列例如以下: 1 空序列是一个合法的序列 2 假设S是合法的序列.则(S)和[S]也是合法的序列 3 假设A和B是合法的序列.则AB也是合法的序列 比如:以下的都是合法 ...
- 4.3《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)—链接到目录
在4.2章中我们已经会用cd进入到指定的目录中.这是导航最常见的用途之一,但是它还有几个值得关注的用途.第一个是使用cd ..(读作'see-dee 点点')返回当前目录级别的上一级: $ pwd / ...
- LinqPad的变量比较功能
LinqPad是一个非常方便的C#工具(有免费版和收费版). 今天发现它的变量比较功能真是方便啊.且看3行代码产生如下结果: 说明:图中两个变量的成员属性值分别用红色和绿色背景标注:图很长,只截取了一 ...
- odoo订餐系统之订单设计
订餐系统的主要功能便是用户下单部分,这里我们分为表头mylunch_order和表体mylunch_order_line两张主要的数据表,表头主要记录订单的一些通用信息,比如下单的操作人员 下单日期 ...