linux中netstatus查看SYN_RECV

可以通过下面这个命令来统计当前连接数

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

这条语句返回结果如下

1.TIME_WAIT 346

2.FIN_WAIT1 85

3.FIN_WAIT2 6

4.ESTABLISHED 1620

5.SYN_RECV 169

6.LAST_ACK 8

SYN_RECV表示正在等待处理的请求数;ESTABLISHED表示正常数据传输状态;TIME_WAIT表示处理完毕,等待超时结束的请求数。

状态:描述

CLOSED:无连接是活动的或正在进行

LISTEN:服务器在等待进入呼叫

SYN_RECV:一个连接请求已经到达,等待确认

SYN_SENT:应用已经开始,打开一个连接

ESTABLISHED:正常数据传输状态

FIN_WAIT1:应用说它已经完成

FIN_WAIT2:另一边已同意释放

ITMED_WAIT:等待所有分组死掉

CLOSING:两边同时尝试关闭

TIME_WAIT:另一边已初始化一个释放

LAST_ACK:等待所有分组死掉

另外很多人会用到TCP SYN Flood透过网路底层对服务器Server进行攻击的,我可以用Iptables防范下:

防止同步包洪水(Sync Flood)

1.iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

也有人写作

1.iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT

--limit 1/s 限制syn并发数每秒1次,可以根据自己的需要修改

防止各种端口扫描

1.iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

Ping洪水攻击(Ping of Death)

1.iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

同时,在初始化系统过程中,可以对服务器的数据连接做设置,下面简单的设置下,如果有关于这方面的设置,欢迎大家分享下,先谢过了...

vim /etc/sysctl.conf

net.ipv4.tcp_tw_reuse = 1

该文件表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接。

net.ipv4.tcp_tw_recycle = 1

recyse是加速TIME-WAIT sockets回收

对tcp_tw_reuse和tcp_tw_recycle的修改,可能会出现.warning, got duplicate tcp line warning, got BOGUS tcp line.上面这二个参数指的是存在这两个完全一样的TCP连接,这会发生在一个连接被迅速的断开并且重新连接的情况,而且使用的端口和地址相同。但基本 上这样的事情不会发生,无论如何,使能上述设置会增加重现机会。这个提示不会有人和危害,而且也不会降低系统性能,目前正在进行工作

net.ipv4.tcp_syncookies = 1

表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

net.ipv4.tcp_synack_retries = 1

net.ipv4.tcp_keepalive_time = 1200

表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时

net.ipv4.tcp_fin_timeout = 30

fin_wait1状态是在发起端主动要求关闭tcp连接,并且主动发送fin以后,等待接收端回复ack时候的状态。对于本端断开的socket连接,TCP保持在FIN-WAIT-2状态的时间。对方可能会断开连接或一直不结束连接或不可预料的进程死亡。

net.ipv4.ip_local_port_range = 1024 65000

net.ipv4.tcp_max_syn_backlog = 8192

该文件指定了,在接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。

net.ipv4.tcp_max_tw_buckets = 5000

使设置生效

sysctl -p

(0)

相关推荐

  • Linux中 如何查看Ubuntu内存信息? 查看内存信息的命令

    分享一些在Linux中,查看内存信息的命令,不明觉厉,希望以后用的到 1. 查看内存插槽数,已使用插槽数,每条内存多大 sudo dmidecode|grep -P -A 5 "Memory/s+De ...

  • Linux中虚拟内存查看命令vmstat的使用教程

    vmstat是一个查看虚拟内存使用状况的工具,它可以看到服务器使用率,内存使用,虚拟内存交换情况,IO读写.相比top,可以看到整个机器的CPU,memory,IO的使用情况,而不是单单看到各个进程各 ...

  • linux中如何查看cpu信息.机器硬件型号

    # cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 8 Intel(R) Xeon(R) CPU E5410 @ 2.33GHz (看到有8 ...

  • linux中如何查看命令所在目录

    Linux如何快速定位命令所在的文件目录,可以参考如下方法. 操作方法 01 可以通过type命令来查询命令所在的目录. 02 type命令是用来判断shell命令的类型的,如果是内部命令,没有独立可 ...

  • LINUX中,查看文件内容的方法及分页显示的办法

    LINUX中查看文件内容的指令很多,下面分别介绍一下: cat file1 [file2] -- cat的本来的意思是连接,就把所有文件的内容全部显示在一起,纵向排列 paste file1 [fil ...

  • 如何在Linux中more命令查看文本文档

    最近在Linux中进行操作,在查看一些大的文本文档时,用cat .more等命令可以提高我们的查看效率,下面和大家分享下不同命令带来的不同效果. more a.txt cat  b.txt tail ...

  • 在Linux系统中如何查看和关闭SELinux

    SELinux是Linux的一个扩张抢占访问控制安全模块,能控制程序只访问特定文件,那么SELinux要如何查看和关闭呢?下面小编就给大家介绍下Linux下如何查看和关闭SELinux。 一、查看SE ...

  • Linux 中RPM命令参数使用详解

    此工具包最先是由Red Hat公司推出的,后来被其他Linux开发商所借用。由于它为Linux使用者省去了很多时间,所以被广泛应用于在Linux下安装、删除软件。下面就给大家介绍一下它的具体使用方法。 ...

  • Linux中使用hostname命令修改主机名称(非常简单)

    在Linux中修改主机名其实是一件非常容易的事情,但网上有些帖子在这一块都说得很复杂,诸如修改什么配置文件之类的等等,用hostname这个命令我们就可以很轻易地修改了。 我们直接运行hostname ...