Linux主机安全加固

devopsec 等级 596 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秒 ###
################################################################################## 

总结:

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

收藏
评论区

相关推荐

GitHub 上的优质 Linux 开源项目,真滴牛逼!
作者:JackTian 来源:公众号「杰哥的IT之旅」 ID:Jake_Internet 作为一名互联网人,提起 Linux 大家都不陌生,尤其是日常跟 Linux 操作系统打交道最多的,最熟悉不过了。互联网上关于 Linux 相关的教程和资料也非常的多,但是当你从中筛选出真正对自己有帮助的资料是需要花费很大精力与时间的。 GitHub 是我非常喜欢的一
写给 Linux 初学者的一封信
大家好,我是肖邦。 这篇文章是写给 Linux 初学者的,我会分享一些作为初学者应该知道的一些东西,这些内容都是本人从事 Linux 开发工作多年的心得体会,相信会对初学者有所帮助。如果你是 Linux 老鸟,那可能就不需要再往下看了 linux(https://imghelloworld.osscnbeijing.aliyuncs.com
Linux 网络分析必备技能:tcpdump 实战详解
大家好,我是肖邦,这是我的第 11 篇原创文章。 今天要分享的是 tcpdump,它是 Linux 系统中特别有用的网络工具,通常用于故障诊断、网络分析,功能非常的强
redhat linux 中用锐捷客服端实现上网
开学了我们学校用的是锐捷的客服端连接外网,window下安装锐捷客服端实现上网很随意,但linux下却不是那么如鱼得水。我们校的很多同学都想用linux系统,但都因为安装锐捷客服端问题,不能上网,望而却步。       如今linux系统越来越火,为了攻破以上问题,结合网络上和自身的知识,总结出下方法: 1.刚开始一直用xrgsu1.1.1.i386.
Linux主机安全加固
Linux主机安全加固 Redhat是目前企业中用的最多的一类Linux,而目前针对Redhat攻击的黑客也越来越多了。我们要如何为这类服务器做好安全加固工作呢? 本文针对系统的账户安全,最小化服务,访问
Jenkins安装部署
(https://blog.csdn.net/cc_park/article/details/113917687?utm_mediumdistribute.pc_relevant.nonetaskblogbaidujs_title0&spm1001.2101.3001.4242)Linux系统安装 虚拟机部署参考虚拟机部署Linux(h
linux系统查看版本命令大全
目录前言正文方法一方法二方法三方法四 前言查看linux系统版本的命令都有哪些?今天我们就来看一看。​​ 正文方法一命令: cat /proc/versionCentOS系统运行结果: Linux version 3.10.01062.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gc
我的 Mac 开发环境
Homebrew访问 安装。使用 Homebrew 安装 Apple(或您的 Linux 系统)没有预装但 。Homebrew 将大大降低维护环境的时间。本文后面将尽可能使用 Homebrew。 brew install:安装 brew uninstall:卸载 brew update:更新 homebrew brew upgr
Linux使用 常见经验和技巧总结
1.XShell连接远程Linux服务器并运行程序后关闭XShell继续执行XShell是用来连接远程Linux很好的工具,在连接之后并运行好需要运行的程序后,往往需要关闭XShell,但是直接运行比如运行python crawler.py运行一个Python爬虫程序后,并直接关闭XShell往往会同时杀掉正在运行的爬虫程序,因此需要使用sudo
源码解读Linux等待队列
从源码角度来解读Linux等待队列机制,了解休眠与唤醒的运转原理kernel/include/linux/wait.hkernel/kernel/sched/wait.ckernel/include/linux/sched.hkernel/kernel/sched/core.c 一、概述Linux内核的等待队列是非常重要的数据结构,在内核驱动中广为使用,它是
Linux shell(1)
1. 免交互处理在免交互输出处理中可以使用重定向将输出内容输入到黑洞文件/dev/null中。[root@localhost ] echo password | passwd stdin user & /dev/null使用重定向输入将/root/testmail中的内容以Test mail为右键名发送给root@localhost: [root@local
Linux shell(2)
1.变量以固定名称存放的可能变化的值,可以提高脚本的适应能力,方便脚本执行中重复使用某个值。定义/赋值变量格式为:变量名变量值注意事项:若指定变量已存在,则相当于重新给变量赋值;等号两边无空格;变量名区分大小写;变量名不能以数字开头,不使用关键字和特殊字符。[root@localhost ] X1 //定义变量
在Windows系统中愉快的运行Linux 系统
大家好,我是IT共享者,人称皮皮。前言 曾经的小编一直都是使用Windows系统,但是当很多人都在我耳边说,用Linux吧,Windows不行;当时不由得怒火朝天,不是因为我在用Windows,而是别人这样说不就等于说用WIndows的男人不行吗?这谁忍得住,要知道,一个男人最忌讳的就是别人说它不行,不管男人女人都不能说,就好比不能说女生胖啊,丑啊啥的,毕
linux
Linux
在Windows系统中愉快的运行Linux 系统
大家好,我是IT共享者,人称皮皮。前言 曾经的小编一直都是使用Windows系统,但是当很多人都在我耳边说,用Linux吧,Windows不行;当时不由得怒火朝天,不是因为我在用Windows,而是别人这样说不就等于说用WIndows的男人不行吗?这谁忍得住,要知道,一个男人最忌讳的就是别人说它不行,不管男人女人都不能说,就好比不能说女生胖啊,丑啊啥的,毕