Linux主机安全加固

DevOpSec
• 阅读 1408

Linux主机安全加固

Redhat是目前企业中用的最多的一类Linux,而目前针对Redhat攻击的黑客也越来越多了。我们要如何为这类服务器做好安全加固工作呢?
本文针对系统的账户安全,最小化服务,访问控制,用户鉴别,审计策略等安全项进行整改及加固,达到提升系统安全,使系统能够抵御一定程度的攻击行为的目的!

加固目录

密码策略
升级openssh版本
设置终端超时
删除无效定时任务
删除无效一次性任务
进程管理
SSH安全配置
无效服务管理
防火墙策略
设置历史记录条数:
设置系统日志保留时间
锁定不必要用户

加固内容及方法

##################################################################################
####     以下部分操作属于高危操作,在未得到用户充分授权的情况下,请勿擅自修改         #####
##################################################################################

##################################################################################
# 1、系统登陆密码复杂度:
### 密码有效期控制 ###
vim /etc/login.defs 

## 修改如下行 ##
PASS_MAX_DAYS   180  #密码最长过期天数
PASS_MIN_DAYS   30   #密码最小过期天数
PASS_MIN_LEN    12   #密码最小长度
PASS_WARN_AGE   20   #密码过期警告天数

###备份###
cp /etc/login.defs /etc/login.defs.xu.bak

sed -i 's/PASS_MAX_DAYS   99999/PASS_MAX_DAYS   180/g' /etc/login.defs
sed -i 's/PASS_MIN_DAYS   0/PASS_MIN_DAYS   30/g' /etc/login.defs
sed -i 's/PASS_MIN_LEN    5/PASS_MIN_LEN    12/g' /etc/login.defs
sed -i 's/PASS_WARN_AGE   7/PASS_WARN_AGE   20/g' /etc/login.defs

### 密码复杂度控制 ###
vim /etc/pam.d/system-auth
### 找到 password requisite pam_cracklib.so 替换成如下:###
password  requisite pam_cracklib.so retry=5  difok=3 minlen=10 ucredit=-1 lcredit=-3 dcredit=-3 dictpath=/usr/share/cracklib/pw_dict
##################################################################################

##################################################################################
# 2、升级openssh版本;
### 按需做,这里暂且不对这项进行整改 ###
##################################################################################

##################################################################################
# 3、设置终端超时:
##后续优化对于已经存在配置的判断,一下方法暂用,不会影响整改结果##
echo 'export TMOUT=1800'>>/etc/profile
echo 'readonly TMOUT' >>/etc/profile
source /etc/profile
##################################################################################

##################################################################################
# 4、检查定时任务(防止病毒感染):
### 定时任务 ###
crontab -l
### 一次性任务检查 ###
at -l
##################################################################################

##################################################################################
# 5、检查异常进程(防止挖矿病毒,占用内存或者CPU):
### 检查cpu占用前10 ###
ps aux|sort -rn -k +3|head

### 检查内存占用前10 ###
ps aux|sort -rn -k +4|head
##################################################################################

##################################################################################
# 6、root用户远程登陆:
### 由于没有业务用户,修改此项会影响用户正常使用,所以在非必要情况下不进行配置 ###
vim /etc/ssh/sshd_config
# 设置如下行
PermitRootLogin yes
PermitRootLogin prohibit-password
## 可以修改默认端口保证安全性,按需 ##
Port 22
### 修改完配置之后记得重启服务生效 ###
service sshd restart
##################################################################################

##################################################################################
# 7、关闭无效的服务及端口:
##邮箱##
service postfix status
chkconfig --del postfix
chkconfig postfix off

##cups##
service cups status
chkconfig --del cups
chkconfig cups off

## 其他服务请手动检查 ##
##################################################################################

##################################################################################
# 8、设置防火墙策略:
####检查IPTABLES状态###
service iptables status

echo '请根据用户实际业务端口占用等情况进行设置!'

## 例如:vim /etc/sysconfig/iptables ,添加如下策略 ##
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 8080 -j ACCEPT

## 重启防火墙 ##
service iptabels restart
##################################################################################

##################################################################################
# 9、设置历史记录数量:
###备份###
cp /etc/profile /etc/profile_xu_bak

###修改###
sed -i s/'HISTSIZE=1000'/'HISTSIZE=5000'/g /etc/profile

###检查###
cat /etc/profile |grep HISTSIZE|grep -v export

##################################################################################

##################################################################################
# 10、日志保留半年以上:

###备份###
cp /etc/logrotate.conf /etc/logrotate.conf_xu_bak

###修改###
sed -i s/'rotate 4'/'rotate 12'/g /etc/logrotate.conf

###重启####
service syslog restart

###检查###
cat /etc/logrotate.conf |grep -v '#' |grep rotate

##################################################################################

##################################################################################
# 11、锁定不必要的用户:

###备份###
cp -p /etc/passwd /etc/passwd_xu_bak
cp -p /etc/shadow /etc/shadow_xu_bak

###锁定不必要的用户###
### bin, sys,adm,uucp,lp, nuucp,hpdb, www, daemon ###
passwd -l bin
passwd -l sys
passwd -l adm
passwd -l uucp
passwd -l lp
passwd -l nuucp
passwd -l hpdb
passwd -l www
passwd -l daemon

##################################################################################

##################################################################################
### 连续6次输错密码禁用一段时间,建议配置成300秒 ###
##################################################################################

##################################################################################
### 配置系统超时自动退出,建议配置成300秒 ###
################################################################################## 

总结:

整改文档可以写成一个完整的脚本,但是由于时间原因及出于安全性考虑,很多部分还是建议使用手动执行,防止不必要的麻烦出现

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
DOIS 2019 DevOps国际峰会北京站来袭~
DevOps国际峰会是国内唯一的国际性DevOps技术峰会,由OSCAR 联盟指导、DevOps时代社区与高效运维社区联合主办,共邀全球80余名顶级专家畅谈DevOps体系与方法、过程与实践、工具与技术。会议召开时间:2019070508:00至2019070618:00结束会议召开地点:北京主办单位:DevOps
Stella981 Stella981
3年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Stella981 Stella981
3年前
Linux运维常见面试题之精华收录
Linux运维常见面试题之精华收录1、什么是运维?什么是游戏运维?1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常,在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术运维又包括很多种,有DBA运维、网站运维、虚
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
3A网络 3A网络
2年前
一次 minerd 肉鸡木马的排查思路
在日常使用Linux系统服务器时,如果系统安全维护方面做的不够规范和严谨,很容易导致主机被黑客植入恶意木马病毒被当做肉鸡。以后就是一次肉鸡木马病毒的排查过程,有助于运维服务器时遇到此情况时进行针对性的排查和修复。【问题现象】Linux主机CPU跑满,或者使用服务器越来越慢,以及收到报警信息提示服务器有对外恶意扫描。【问题原因】这种状况在出现时通
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
DevOpSec
DevOpSec
Lv1
懂开发的运维,懂安全的运维。公众号:DevOpSec
文章
57
粉丝
6
获赞
26