阿里云centos环境之被dos,syn攻击策略和排查方法,持续更新<九>

    • 阿里云centos环境之被dossyn攻击策略和排查方法持续更新九
  • 查看cpu使用情况
  • 查看网络连接情况
  • 检查端口及对应进程关闭没用的端口
  • 检查网上发送的TCP包
  • 查看某个进程的启动位置
  • 查看系统的登录日志
  • syn攻击补救措施
  • 使用tcpdump抓包
  • 9帐户管理
  • 10使用who命令查看登录用户名称及所启动的进程
  • 11查找包含指定字符串的文件

1.查看cpu使用情况

top

结果如下:

2.查看网络连接情况

antstat -atnp

解释:显示所以tcp协议的连接,同时进程PID和进程名。
antstat在显示各种网络相关信息,如网络连接,路由表,连接状态地方很有用。

netstat参数:

常见参数
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

3.检查端口及对应进程,关闭没用的端口

netstat -ntlp

4.检查网上发送的TCP包

网卡eth0上接收和发送的TCP包情况

tcpdump -nn -i eth0


解释:抓到包的时间 IP 发包的主机和端口 > 接收的主机和端口 数据包内容


监听tcp协议

$ tcpdump -i eth0 -nn 'tcp'

监听指定的主机接收发和发送的包,172.16.78.165这台主机接收到的包和发送的包都会被抓取

$ tcpdump -i eth0 -nn 'host 172.16.78.165'

监听指定的主机接收的包

$ tcpdump -i eth0 -nn 'dst host 172.16.78.165'

监听指定的主机发送的包

$ tcpdump -i eth0 -nn 'src host 172.16.78.165'

监听指定端口

$ tcpdump -i eth0 -nnA 'port 80'

监听指定主机和端口,多个条件可以用and,or连接。

$ tcpdump -i eth0 -nnA 'port 80 and src host 172.16.78.165'

监听除某个端口外的其它端口

$ tcpdump -i eth0 -nnA '!port 22'

统计系统TCP连接资源命令

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

5.查看某个进程的启动位置

找到进程的pid,如木马”Tomcat”为例

ps aux|grep tomcat


进程pid是:1457.然后进入进程工作空间目录”/proc”下

cd /proc/1457
ls -all

结果如下:

其中
cwd:是启动进程的位置,链接到进程当前工作目录
exe:是进程执行命令,链接到进程的执行命令文件
root:是 链接到进程的根目录

6.查看系统的登录日志

more /var/log/secure |grep Accepted

7.syn攻击补救措施

syn是以TCP协议的三次握次协议缺陷为基础发出的Dos攻击。注意是TCP协议。
1.查看某个端口的TCP协议未连接的队列数据,比如8188端口

netstat -ntp| grep SYN_RECV |grep 8188 | wc -l

说明,上面的命令是可以自由组合的
1)netstat是查看网络连接情况的linux命令
-n:拒绝显示别名,能显示数字的全部转化成数字
-t:(tcp)仅显示tcp相关选项
-p:显示建立相关链接的程序名
2)grep是管道命令
3)TCP端口状态说明:
1、LISTENING状态
FTP服务启动后首先处于侦听(LISTENING)状态。
2、ESTABLISHED状态
ESTABLISHED的意思是建立连接。表示两台机器正在通信。
3、CLOSE_WAIT
对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成CLOSE_WAIT 此时我方要调用close()来使得连接正确关闭
4、TIME_WAIT
我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。TCP协议规定TIME_WAIT状态会一直持续2MSL(即两倍的分 段最大生存期),以此来确保旧的连接状态不会对新连接产生影响。处于TIME_WAIT状态的连接占用的资源不会被内核释放,所以作为服务器,在可能的情 况下,尽量不要主动断开连接,以减少TIME_WAIT状态造成的资源浪费。
目前有一种避免TIME_WAIT资源浪费的方法,就是关闭socket的LINGER选项。但这种做法是TCP协议不推荐使用的,在某些情况下这个操作可能会带来错误。
5、SYN_SENT状态
   SYN_SENT状态表示请求连接,当你要访问其它的计算机的服务时首先要发个同步信号给该端口,此时状态为SYN_SENT,如果连接成功了就变为 ESTABLISHED,此时SYN_SENT状态非常短暂。但如果发现SYN_SENT非常多且在向不同的机器发出,那你的机器可能中了冲击波或震荡波 之类的病毒了。这类病毒为了感染别的计算机,它就要扫描别的计算机,在扫描的过程中对每个要扫描的计算机都要发出了同步请求,这也是出现许多 SYN_SENT的原因。
6.SYN_RECV状态,表示当前处于半连接状态,等待客户端发送确认包,一但收到确认包即建立连接

措施
打开sysctl.conf文件

vi /etc/sysctl.conf

修改如下:

//增大队列SYN最大半连接数
net.ipv4.tcp_max_syn_backlog = 2048
//开启重用
net.ipv4.tcp_tw_reuse = 1
//开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_tw_recycle = 1
//修改系統默认的 TIMEOUT 时间
net.ipv4.tcp_fin_timeout = 30

然后执行 /sbin/sysctl -p让参数生效
查看修改后增大队列SYN最大半连接数sysctl -a|grep net.ipv4.tcp_max_syn_backlog

8.使用tcpdump抓包

Wireshark和 TcpDump抓包分析心得 讲的比较好。特别是BPF过滤语言。
1.协议+port:抓端口8080的包
tcpdump tcp port 8080 -n
tcpdump tcp port 8080 -w /tmp/xxxx.cap
其中:tcpdump 的抓包保存到文件的命令参数是-w xxx.cap

2.ip+协议+port:抓119.29.121.116的80端口的包
tcpdump tcp port 8080 and host 10.104.102.228

3.网卡:抓eth0的包
tcpdump -i eth0 -w /tmp/xxx.cap

4.网卡+ip:抓 119.29.121.116的包
tcpdump -i eth0 host 119.29.121.116 -w /tmp/xxx.cap

5.网卡+ip+端口:抓119.29.121.116的80端口的包
tcpdump -i eth0 host 119.29.121.116 and port 80 -w /tmp/xxx.cap

抓119.29.121.116的80端口和110和25以外的其他端口的包
tcpdump -i eth0 host 119.29.121.116 and ! port 80 and ! port 25 and ! port 110 -w /tmp/xxx.cap

6.以100m大小分割保存文件, 超过100m另开一个文件 -C 100m
抓10000个包后退出 -c 10000
tcpdump tcp port 8080 -n -C100 -c 1000
列出简单的抓包操作,更新复杂要需要专门学习tcpdump命令了

9、帐户管理

Linux系统中所有的账户都存放在/etc/passwd文件中。系统管理员可以定期监控/etc/passwd文件,验证系统中活动账户的合法性,及时删除或禁用系统中不必要或不再使用的账户。此类账户主要分为以下两种情况。

 某些服务安装时默认创建的执行账户,比如ftp、news、postfix、apache、squid等。无人使用或者无业务需求的账户。


使用cat /etc/passwd显示结果如上图。
解释一下/sbin/nologin/bin/bash 的区别?
决定帐户是否可ssh登录。
/sbin/nologin一般设置这样的帐号是给启动服务的账号所用的,这只是让服务启动起来,但是不能通过SSH登录系统。


9.1 禁止用户登陆最简单方式将帐户对应的权限由/bin/bash变为/sbin/nologin


9.2 锁定帐户,以mysql帐户为例

passwd -l mysql

结果如下,说明锁定帐户成功,这个帐户就不能登陆:

Locking password for user mysql.
passwd: Success

解锁命令:

passwd -uf mysql

结果如下:

Unlocking password for user mysql.
passwd: Success

9.3 禁止所有用户登录。 touch /etc/nologin 除root以外的用户不能登录了。


9.4 删除或新增用户
useradd 与 adduser的区别
添加用户
1.1. 命令useradd
在root权限下,useradd只是创建了一个用户名,如 (useradd +用户名 ),它并没有在/home目录下创建同名文件夹,也没有创建密码,因此利用这个用户登录系统,是登录不了的,为了避免这样的情况出现,可以用 (useradd -m +用户名)的方式创建,它会在/home目录下创建同名文件夹,然后利用( passwd + 用户名)为指定的用户名设置密码。
添加用户:useradd -m 用户名 然后设置密码 passwd 用户名

2.1. 命令adduser
可以直接利用adduser创建新用户(adduser +用户名)这样在/home目录下会自动创建同名文件夹(创建用户的家目录),会建立同名组,建立新用户密码,还会从/etc/SKEL目录下拷贝文件到家目录,完成初始化。是否加密主目录等等。
添加用户:adduser + 用户名


删除用户
删除用户,“userdel 用户名”即可。最好将它留在系统上的文件也删除掉,可以使用“userdel -r 用户名”来实现。
删除用户:userdel -r 用户名

更具体参考Linux的用户和用户组管理文章


9.5 使用finger用来显示用户的相关信息
若没安装则yum install finger命令finger。以mysql为例

finger mysql

结果如下:


查看登录本地系统的用户的详情报告

finger -l

如下:


查看登录本地系统的用户的短报告

finger -s

如下:

9.6 id命令
这个命令则可以查询某人或自己的相关 UID/GID 等等的信息

10、使用who命令查看(登录)用户名称及所启动的进程

结果如下:

root     tty1         2018-01-03 11:33
root     pts/0        2018-01-03 12:16 (122.245.121.209)
chenyuan pts/1        2018-01-03 13:39 (122.245.121.209)

查看当前登陆用户名

whoami

11、查找包含指定字符串的文件

在当前目录下遍历所以文件,查找包括“hello,world!”字符串的文件。

grep -rn "hello,world!" *
  • : 表示当前目录所有文件,也可以是某个文件名

-r 是递归查找

-n 是显示行号

-R 查找所有文件包含子目录

-i 忽略大小写

与find命令结合使用,先用find命令找相应的文件,再从文件里查找包括指定字符的文件。

 find /usr/ -name *.sh |xargs grep -ir "mydata.war"

先查找/use目录下所以以“sh”后缀结尾的文件,再从文件里找包含“mydata.war”的文件

阿里云centos环境之被dos,syn攻击策略和排查方法,持续更新九相关推荐

  1. 阿里云centos环境之vsftpd安装(十五)

    阿里云centos环境之vsftpd安装(十五) 文章目录 前言 安装 检测 安装 配置文件路径 启动服务器 启动ftp命令: 其它相关命令 停止ftp命令: 重启ftp命令: 设置开机自启动 看是否 ...

  2. 阿里云centos环境之Let's Encrypt SSL证书配置十一

    阿里云centos环境之Let's Encrypt SSL证书配置<十一> 1.目标 Let's Encrypt是国外一个公共的免费SSL项目.这里记录的是可执行的生成免费SSL证书Let ...

  3. 阿里云CentOS环境之-实战docker集群swarm(十五)

    前言 docker1.12版本之前版本配置 准备工作 开始 拉取swarm 开放2375远程访问端口 创建集群的token 向集群里添加结点 查看集群里有哪些结点 创建管理者容器 使用集群 离开集群 ...

  4. 阿里云centos环境之linux上redis安装及踩过的坑(七)

    阿里云centos环境之linux上redis安装及踩过的坑<七> 文章目录 阿里云centos环境之linux上redis安装及踩过的坑<七> 第一:下载上传 第二:解压安装 ...

  5. 阿里云盘资源分享合集,海量优质资源,持续更新!

    最近阿里云盘最近总算火起来了,还记得刚出来的时候由于更新慢,各种功能跟不上,一度让广大网友觉得可能要夭折了

  6. 阿里云centos 6.5 32位安装可视化界面的方法

    http://www.dzbfsj.com/forum.php?mod=viewthread&tid=2702 http://www.mayanpeng.cn/?p=507 http://bl ...

  7. 阿里云 Centos 7 PHP7环境配置 LNMP

    阿里云 Centos 7 PHP7环境配置 LNMP (centos7+nginx+MySQL5.7.9+PHP7) 首先更新系统软件$ yum update 安装nginx 1.安装nginx源 1 ...

  8. 阿里云 centos oracle安装

    Title: 阿里云CentOS7 Silent Mode安装Oracle11GR2 Date: 2016-6-9 Author: kagula Environment: [1]阿里云CentOS7- ...

  9. java搭建阿里云服务器环境(java环境+mysql+tomcat)和部署 JavaWeb 项目到云服务器(十分详细)

    文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源. 购买一系列的东西 其实就是花钱买块区域,服务器,域名,云解析,花了好多money... 一. ...

最新文章

  1. surface pro 3 linux,新闻|在Surface Pro 3上运行Ubuntu – 虽不完美但很有戏
  2. MySQL 数据库show processlist where条件筛选报错解决方法,[Code: 1064, SQL State: 42000] You have an error in your
  3. Angular应用input和div标签页的动态创建场景
  4. zynq linux网口不通,已解决: ZYNQ 7035以太网口无法连通 - Community Forums
  5. wireshark网卡权限_设置网卡属性用wireshark抓VLAN包
  6. Python菜鸟入门:day11文件操作
  7. JZ3-从尾到头打印链表
  8. 计算十进制转为二进制后1的个数
  9. 透析QTP自动化测试框架SAFFRON
  10. GBDT算法参数详解
  11. Anylogic学习--------------智能体(可用于复杂装备系统建模)
  12. 【个人作品】记之-串口日志记录工具
  13. python爬虫简历项目怎么写_爬虫项目咋写,爬取什么样的数据可以作为项目写在简历上?...
  14. educoder第9关:原码一位乘法器设计
  15. 基于python/scipy学习概率统计(3):正态分布
  16. 每天一个医药小故事②神农和药王
  17. 数商云:补齐数字化短板,农林牧渔供应链升级执行“三步走”
  18. Ubuntu 16.04 LTS设置屏幕分辨率并永久保存所设置的分辨率
  19. mysql数据库备份方式
  20. QQ空间点赞源码,基于autojs的安卓免root全自动脚本

热门文章

  1. 2020G1工业锅炉司炉模拟考试系统及G1工业锅炉司炉操作证考试
  2. ANF到DNT完美转移
  3. 【转】超星转PDF最佳方法(对打印机重新审视)
  4. 如何正确理解TL431的工作方式
  5. matlab 双边沿滤波,一种基于数字PWM发生器的左增长双边沿UPWM信号频谱估计方法与流程...
  6. 基于网络爬虫的大学生就业数据分析与预测模型研究
  7. python笑傲江湖_ensp模拟器上玩python编程自动化(入门)
  8. PyInstaller库的使用(py文件转exe文件)及Koch曲线及推广,绘制康托尔集
  9. 软件测试需要学什么(软件测试人员怎么入行)?
  10. 基于Android开发通讯录功能