Linux主机安全加固

devopsec 等级 872 0 0

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秒 ###
################################################################################## 

总结:

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

收藏
评论区

相关推荐

Java程序员必须掌握的常用Linux命令。
点击上方蓝色文字关注↑↑↑↑↑ ![](https://oscimg.oschina.net/oscnet/2ab1caa1-208a-4204-9d64-b55b0b38f09f.jpg) Java程序员也是半个运维了,在日常开发中经常会接触到Linux环境操作。小公司的开发人员甚至是兼了全运维的工作,下面整理了一些常用的Linux操作命令。 *
28个企业运维岗经典面试题,你能回答多少?
![](https://oscimg.oschina.net/oscnet/dd3f36b3-da04-45a0-accd-f2a0059b5edb.gif) ![](https://oscimg.oschina.net/oscnet/a08b06e1-2f8d-40fb-b0a2-f7f0181f4d87.jpg) 作者:运维派 来源:http://
Linux 运维 9月30日 笔记 6.1
目录 一、压缩打包介绍 二、gzip压缩工具 三、bzip2压缩工具 四、xz压缩工具 **一、压缩打包介绍** 1. 常见压缩文件 * Windows .rar .zip. 7z * Linux .zip .gz .bz2 .xz .tar  **二、gzip压缩工具**
Linux shell编程及自动化运维实现 第1章 变量
**1.shell前言** 一,什么是shell ![Linux shell编程及自动化运维实现 第1章 变量](https://s4.51cto.com/images/blog/202009/04/29d10164c845731fba8b649d4bd9478f.png?x-oss-process=image/watermark,size_16,tex
Linux 运维是做什么的
![](https://oscimg.oschina.net/oscnet/up-25a98115c12319b11895484bc9dd5ecd170.png) Linux在现在社会发展是非常受欢迎的一个行业,对于从事Linux方面工作的人来说,属于互联网背后的英雄,没有他们的付出,就没有如今的互联网时代。而在Linux从事岗位之中,Linux运维工程师
Linux云计算工程师
**一、[Linux运维基础](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fwww.cnblogs.com%2Fyxiaodao%2Fp%2F10275366.html)** **二、[Linux运维高级-核心知识提高](https://www.oschina.net/action/G
Linux日常运维小结
**1\. 如何看当前Linux系统有几颗物理CPU和每颗CPU的核数?** 物理cpu个数:cat /proc/cpuinfo |grep -c 'physical id' CPU一共有多少核:grep -c processor /proc/cpuinfo 将CPU的总核数除以物理CPU的个数,得到每颗CPU的核数。 **2\. 查看系统负载有两个常用的命
Linux系统与服务构建运维
Linux系统与服务构建运维 1+x初级,项目三 FTP服务的使用 ======== ### 配置YUM源 #### 将CD设备进行连接 ![](https://img2020.cnblogs.com/blog/1893874/202005/1893874-20200508194528832-718337495.png) #### 将CD设备挂载
Linux菜鸟到老鸟的那些建议
相信很多同学对[Linux](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fwww.linuxprobe.com%2Fchapter-00.html)的认识并不多,平常接触的也不多,对Linux的开发运维等也是一无所知。如今,如果要做一名优秀的程序猿,掌握Linux知识已经是一门必备技能了
Linux运维常用命令详解
1、ls 文件属性:  -:普通文件  d:目录文件  b:块设备  c:字符设备文件  l:符号连接文件  p:命令管道  s:套接字文件  文件权限: 9位数字,每3位一组  文件硬链接次数  文件所属主(owner)  文件的属组(group)  文件大小(size),单位默认是字节  ls常用选项: -l:显示文件属性,ls -l=ll 
Linux运维常见故障排查和处理的技巧汇总
![](https://oscimg.oschina.net/oscnet/e1b447c0-2806-447a-9930-7351cd397e4f.gif) ![](https://oscimg.oschina.net/oscnet/02a88775-b9ed-430b-b43f-fba5122d45bf.jpg) 作为Linux运维,工作中多多少少会
Linux运维常见面试题之精华收录
Linux运维常见面试题之精华收录 ================= **1、什么是运维?什么是游戏运维?** 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常, 在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术 运维又包括很多种,有DBA运维、网站运维、虚
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
第一章 实验环境 1. 硬件环境: Linux服务器一台,IP地址:192.168.80.10; WIN7客户端一台,拥有OUTLOOK2013,测试用,与服务器在同一局域网内。 2. Linux系统环境,如下图: ![Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建]
Redis集群
\[TOC\] > 我叫张贺,贪财好色。一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网站运维工作,爱好佛学和跑步。 个人博客:传送阵 笔者微信:`zhanghe15069028807`,非诚勿扰。 Redis集群 ======= 理论 -- Redis集群起码是三个服务器做,每个服务器里面都有两个实例,两个实例并不