Linux安全攻防笔记
一、上传木马的过程
1、默认端口22弱口令暴力破解;
2、21端口或者3306端口弱口令暴力破解;
3、webshell进行shell反弹提权;
4、木马传入服务器的上面并且执行,通过木马的方式来控制你的服务器进行非法的操作。
二、常见操作
1、切入/tmp;
2、wget下载木马;
3、木马加载权限;
4、执行木马;
5、后门,支持木马复活。
三、清除木马
1、网络连接,过滤掉正常连接;
# netstat -nalp | grep "tcp" | grep -v "22" | grep "ESTABLISHED"
2、判断一些异常连接,通过PID找到进程名称;
# ps -ef | grep "27368"
3、通过名字,找到原文件,删除掉原文件。
四、清除后门
1、检查/etc/rc.local;
2、检查计划任务crontab -l;
3、检查/root/.bashrc和普通用户下的.bashrc;
4、检查/etc/profile文件定期进行md5校验。
五、安全加固
1、了解常见的扫描和提权端口
-22 端口暴力破解
-21端口提权
-3306 端口提权
-webshell 反弹
2、如何对linux进行安全加固
2.1进程数量监控及对比
2.1.1、进程数量
2.1.2、进程异常的名称及PID号
2.1.3、根据PID号进行查询网络连接异常
写一个脚本:
将服务器正常的进程号,导入到一个目录,取个名字叫做原始.log,提取实时进程名称>实时.log,通过diff去对比原始和实时的log区别,一旦发现对比不一样,通过名称得到PID号,然后通过PID查找网络连接和监听的端口号及IP地址。将这些信息发送告警到管理员的手机或者邮箱邮件里面,让管理员进行判断和分析。
2.2、计划任务列表监控
2.2.1、查看计划任务
2.2.2、监控/var/log/cron日志
2.3、用户登录监控
2.3.1、什么用户登录的?在什么时候登录的?
2.3.2、用户登录IP是否合法?
2.3.3、用户登录的用户名是否合法?
2.3.4、用户登录时间是否合法?
2.4、/etc/passwd、/etc/shadow MD5
2.4.1、MD5校验防止有人更改passwd和shadow文件
2.4.2、passwd文件可以进行加锁chattr权限
2.4.3、passwd定期进行备份,进行内容diff对比
2.5、非有效用户登录shell权限
2.5.1、除了运维常用的维护账号以外,其他账户不能拥有登录系统的shell
2.5.2、针对/etc/passwd文件统计bash结尾的有多少个?将不用的改成/sbin/nologin
2.5.3、将不必要的账户删除或者锁定
2.6、安全日志分析与监控/var/log/secure
2.6.1、定期或者实时分析/var/log/secure文件,是否有暴力破解和试探
2.6.2、过滤Accepted关键字,分析对应的IP是否为运维常用IP及端口号和协议。否则视为已经被入侵。
2.6.3、定期备份/var/log/secure防止此人入侵后,更改和删除入侵目录
2.7、/etc/sudoers监控
2.7.1、防止对方通过webshell反弹的方式,增加普通用户到/etc/sudoers
2.7.2、定期备份/etc/sudoers和监控,发现特殊的用户写入此文件,视为已被入侵。
2.7.3此配置文件,普通用户可绕过root密码直接sudo到root权限
2.8、网络连接数的异常
2.8.1、经常统计TCP连接,排除正常的连接以外,分析额外的TCP长连接,找出非正常的连接进程
2.8.2、发现异常进程后,通过进程名使用top的方式,或者find命令搜索木马所在的位置
2.8.3、找到连接所监听的端口号以及IP,将此IP拉入黑名单,KILL掉进程,删除木马源文件
2.8.4、监控连接监听,防止木马复活
2.9、/etc/profile定期巡检
2.9.1、检查/etc/profile文件防止木马文件路径写入环境变量,防止木马复活
2.9.2、防止/etc/profile调用其他的命令或者脚本进行后门连接
2.9.3、此文件进行MD5校验,定期备份与diff如发现异常则视为被入侵
2.10、/root/.bashrc定期巡检
2.10.1、检查/root/.bashrc文件,防止随着root用户登录,执行用户变量,导致木马复活
2.10.2、防止/root/.bashrc通过此文件进行后门创建与连接
2.10.3、此文件进行MD5校验,定期备份与diff,如发现异常,则视为入侵
2.11、常用端口号加固及弱口令
2.11.1、修改22默认端口号
2.11.2、修改root密码为复杂口令或禁止root用户登录,使用key方式登录
2.11.3、FTP要固定chroot目录,只能在当前目录,不随意切换目录
2.11.4、mysql注意修改3306默认端口号,授权的时候不允许使用%号进行授权。
2.11.5、mysql用户及IP授权请严格进行授权,除了DBA,其他开发人员不应该知道JDBC文件对应的用户名和密码
2.12、/tmp目录的监控
2.12.1、由于/tmp目录的特殊性,很多上传木马的第一目标就是/tmp
2.12.2、/tmp进行文件和目录监控,发现变动及时警告
2.13、WEB层面的防护
所有WEB层的安全成为首要,要定期进行WEB程序漏洞扫描,发现之后及时通知开人员修补,对于金融行业的有必要邀请第三方定期进行渗透测试。
六、常见的安全网站
国家信息安全漏洞平台:http://www.cnvd.org.cn
Freebuf:http://www.freebuf.com
STACKOVERFLOW:http://stackoverflow.com
CVE漏洞:http://cve.mitre.org
360BLOG:http://blogs.360.cn
漏洞库:https://www.exploit-db.com
CODEPROJECT:http://www.codeproject.com
七、运维安全审计
1、环境安全
2、物理链路的安全
3、网络安全
4、前端程序的安全
5、系统的安全
6、数据的安全
7、内部人员的安全
Linux安全攻防笔记的更多相关文章
- Linux实战教学笔记08:Linux 文件的属性(上半部分)
第八节 Linux 文件的属性(上半部分) 标签(空格分隔):Linux实战教学笔记 第1章 Linux中的文件 1.1 文件属性概述(ls -lhi) linux里一切皆文件 Linux系统中的文件 ...
- Linux实战教学笔记07:Linux系统目录结构介绍
第七节 Linux系统目录结构介绍 标签(空格分隔):Linux实战教学笔记 第1章 前言 windows目录结构 C:\windows D:\Program Files E:\你懂的\精品 F:\你 ...
- Linux实战教学笔记06:Linux系统基础优化
第六节 Linux系统基础优化 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 基础环境 第2章 使用网易163镜像做yum源 默认国外的yum源速度很慢,所以换成国内的. 第一步:先备份 ...
- Linux实战教学笔记05:远程SSH连接服务与基本排错(新手扫盲篇)
第五节 远程SSH连接服务与基本排错 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 远程连接LInux系统管理 1.1 为什么要远程连接Linux系统 在实际的工作场景中,虚拟机界面或物理 ...
- Linux实战教学笔记04:Linux命令基础
第四节:Linux命令基础 标签(空格分隔):Linux实战教学笔记 第1章 认识操作环境 root:当前登陆的用户名 @分隔符 chensiqi:主机名 -:当前路径位置 用户的提示符 1.1 Li ...
- Linux实战教学笔记03:操作系统发展历程及系统版本选择
标签(空格分隔): Linux实战教学笔记-陈思齐 第1章 Linux简介 1.1 什么是操作系统? 简单讲:操作系统就是一个人与计算机硬件的中介. 操作系统,英文名称Operating System ...
- Linux实战教学笔记02:计算机系统硬件核心知识
标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 互联网企业常见服务器介绍 1.1 互联网公司服务器品牌 - DELL(大多数公司,常用) - HP - IBM(百度在用) 浪潮 联想 航天联 ...
- Linux实战教学笔记01:计算机硬件组成与基本原理
标签(空格分隔): Linux实战教学笔记 第1章 如何学习Linux 要想学好任何一门学问,不仅要眼睛看,耳朵听,还要动手记,勤思考,多交流甚至尝试着去教会别人. 第2章 服务器 2.1 运维的基本 ...
- storysnail的Linux串口编程笔记
storysnail的Linux串口编程笔记 作者 He YiJun – storysnail<at>gmail.com 团队 ls 版权 转载请保留本声明! 本文档包含的原创代码根据Ge ...
随机推荐
- 升级Xcode6.4插件失效解决办法
发现安装的插件无效 后各种尝试后终于解决 1.先找到之前装的插件文件夹 前往文件夹:~/Library/Application Support/Developer/Shared/Xcode/Plug- ...
- 为什么要进行傅立叶变换?傅立叶变换究竟有何意义?如何用Matlab实现快速傅立叶变换
写在最前面:本文是我阅读了多篇相关文章后对它们进行分析重组整合而得,绝大部分内容非我所原创.在此向多位原创作者致敬!!!一.傅立叶变换的由来关于傅立叶变换,无论是书本还是在网上可以很容易找到关于傅立叶 ...
- Enumeration 接口
Enumeration是遍历集合元素的一种方法. Enumeration中只有两个方法: 1.hasMoreElements() 测试此枚举是否包含更多的元素. 2.nextElement() 如 ...
- Controller方法的返回值
方法的返回值1.ModelAndView这个就不多说,这是最基础的,前面定义一个ModelAndView,中途使用addObject方法添加属性,再返回.视图解析器会自动扫描到的.2.String这个 ...
- hql抓取要注意的点
fetchtype是lazy,那就用到了在通过缓存中的关联去取,用不到不取:lazy遇到joinfetch就失去意义,但是由于hql语句是自己编写的,可以控制加不加fetch 所以如果主力是hql语句 ...
- 有关PHP的字符串知识
字符串是由一系列字符组成,在PHP中,字符和字节一样,也就是说,一共有256种不同字符的可能性. 字符串型可以用三种方法定义:单引号形式.双引号形式和Heredoc结构形式. 1.每条指令可要记得使用 ...
- D.T SOFTWARE (1) 软件架构直播答疑课程
今晚的d.t课程 1项目需求 PPTP服务搭建完成PPTP服务器的搭建,用户重新拨号获得新IP后,要求拔PPTP VPN成功时,也获取到新的公网IP,而且能通过代理上网.VNC服务安装用户可以通过VN ...
- Ogre中TerrainSceneManager
转自:http://blog.csdn.net/yanonsoftware/article/details/1103665 TerrainSceneManager是一个OctreeSceneManag ...
- UNIX,基础知识,文件IO,文件和目录
2015.1.27星期二,早晨阴天,中午下雪了今天上午老师不上课,程序语句,记一下:main(void){ int c; while((c = getc(stdin)) != EOF) if(putc ...
- 怎样修改Response中的内容
重写Stream public class CatchTextStream : Stream { private Stream output; public CatchTextStream(Strea ...