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 安全优化的更多相关文章

  1. centos一键优化脚本

    centos一键优化脚本:细节:http://oldboy.blog.51cto.com/2561410/1336488网络状态优化:http://oldboy.blog.51cto.com/2561 ...

  2. centos内核优化--转至网络

    A.关闭selinux(可以预防nginx修改根目录后访问出现404或者403) vi /etc/selinux/config SELINUX=disabled B.修改打开最大文件数句柄也就是 so ...

  3. 针对Kafka的centos系统参数优化

    TCP网络优化 sudo vim /etc/sysctl.conf vm.max_map_count=655360net.core.rmem_default=262144net.core.rmem_m ...

  4. CentOS内核优化提示:cannot stat /proc/sys/net/bridge/bridge-nf-call-ip6tables: 没有那个文件或目录

    临时解决,重启失效 modprobe br_netfilter 为了开机加载上面这个模块 cat > /etc/rc.sysinit << EOF #!/bin/bash for f ...

  5. mysql性能优化学习笔记

    mysql性能优化 硬件对数据库的影响 CPU资源和可用内存大小 服务器硬件对mysql性能的影响 我们的应用是CPU密集型? 我们的应用的并发量如何? 数量比频率更好 64位使用32位的服务器版本 ...

  6. CentOS系统初始化---不断更新中

    注意EOF不能有空格tab键 #get os version release=$(rpm -q --qf "%{VERSION}" $(rpm -q --whatprovides ...

  7. MySQL for OPS 11:优化

    写在前面的话 不管是作为运维还是作为 DBA,我们的工作都不是写 SQL,搞业务.更多的还是如何实现又好又快的给开发提供一个数据库环境和保障数据的安全性.前面的文章中读写分离,高可用,建立索引,分库分 ...

  8. 什么影响了mysql的性能-硬件资源及系统方面优化

    随着数据量的增大,数据库的性能问题也是个值得关注的问题,很多公司对mysql性能方面没有太过重视,导致服务浪费过多资源.mysql服务性能差从而直接影响用户体验,这里我们简单的先来聊聊什么影响了mys ...

  9. 大流量大负载的Kafka集群优化实战

    前言背景 算法优化改版有大需求要上线,在线特征dump数据逐步放量,最终达到现有Kafka集群5倍的流量,预计峰值达到万兆网卡80%左右(集群有几十个节点,网卡峰值流出流量800MB左右/sec.写入 ...

随机推荐

  1. MYSQL联合多表更新和删除(转)

    文章转自http://www.cnblogs.com/andy_tigger/archive/2011/05/11/2043483.html 多表更新在 MySQL 3.23 中,你可以使用 LIMI ...

  2. POJ2387(dijkstra堆优化)

    Til the Cows Come Home Bessie is out in the field and wants to get back to the barn to get as much s ...

  3. android ImageLoader加载本地图片的工具类

    import android.widget.ImageView; import com.nostra13.universalimageloader.core.ImageLoader; /** * 异步 ...

  4. ADO.NET分享

    看到<c#从入门到精通(第三版)>书中对ado.net里几种方法打的比方,很有意思就发一下. 1)这张图中,把数据比作水,储存了大量数据. 2)Connection对象好像进水龙头,插在水 ...

  5. vue 动态创建组件(运行时创建组件)

    function mountCmp (cmp, props, parent) { if (cmp.default) { cmp = cmp.default } cmp = Vue.extend(cmp ...

  6. Android 真机调试

    /************************摘抄*****************************/ 刚好遇到这个问题,在网上百度了一下,看到有人分享了引起该问题的几个原因: 1.手机设 ...

  7. 51nod 1295 XOR key 可持久化01字典树

    题意 给出一个长度为\(n\)的正整数数组\(a\),再给出\(q\)个询问,每次询问给出3个数,\(L,R,X(L<=R)\).求\(a[L]\)至\(a[R]\)这\(R-L+1\)个数中, ...

  8. win8系统本地服务网络受限cpu占用率过高解决方案

    今天更新软件时突然就打不开软件了,接着cpu就飙升. 打开任务管理器看到是“本地服务网络受限”这么一个东西占用的cpu最高. 在网上找到的解决方案无效的: 1.关闭家庭组(服务里的homegroup· ...

  9. Tomcat利用MSM实现Session共享方案解说

    Session共享有多种解决方法,常用的有四种:1)客户端Cookie保存2)服务器间Session同步3)使用集群管理Session(如MSM) 4)把Session持久化到数据库 针对上面Sess ...

  10. centos下部署NTP时间服务器同步环境记录

    1)服务端部署 安装所需软件包 [root@test ~]# yum -y install ntp ntpdate 服务端自己先手工同步一次时间. [root@test ~]# ntpdate ntp ...