一个(tct)socket连接需要在客户端与服务端开启一个隧道,客户端提供一个端口(new时可指定,也可不指定,随机),服务端的端口和地址一定要指定。
在win下,服务端创建监听端口时,防火墙会提示阻止,这时要解除这个端口的阻止才能让客户端连接。

 

客户端连接时,由于windows防火墙不过滤所有的主动请求,所以不会被防火墙阻止(ftp例外),但是在tcp三次握手的第二次,服务端响应的syn和ack相当于服务端连接客户端,此时防火墙是否会阻止第二次握手?待验证

 

查资料感觉第二次握手不会被过滤

 
 

在linux下,iptables也有output链,用来过滤主动请求,那么output默认是什么样的呢?如果不阻止output,主动请求发出去之后,第二次握手会不会被防火墙的input链过滤呢?

IPTABLES默认策略为:

/etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

详解:

:INPUT ACCEPT [0:0]
# 该规则表示INPUT表默认策略是ACCEPT :FORWARD ACCEPT [0:0]
# 该规则表示FORWARD表默认策略是ACCEPT :OUTPUT ACCEPT [0:0]
# 该规则表示OUTPUT表默认策略是ACCEPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 意思是允许进入的数据包只能是刚刚我发出去的数据包的回应,ESTABLISHED:已建立的链接状态。RELATED:该数据包与本机发出的数据包有关。 -A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
# 这两条的意思是在INPUT表和FORWARD表中拒绝所有其他不符合上述任何一条规则的数据包。并且发送一条host prohibited的消息给被拒绝的主机。
-A INPUT -i lo -j ACCEPT
-i 参数是指定接口,这里的接口是lo ,lo就是Loopback(本地环回接口),意思就允许本地环回接口在INPUT表的所有数据通信。

有非默认规则时,默认规则会失效,即上面默认策略中,FORWARD ACCEPT[0:0]与INPUT ACCEPT[0:0]会无效

其实也不算会失效,只是拦截规则是有优先级的,下面的优先级较高,所以拦截之后上面的就无效了。

以及根据上面的规则可以看出来,三次握手请求和防火墙规则并不冲突,防火墙不会因为是第二次握手就会放行(当然不同防火墙有可能会不一样),这里的默认策略是放行第二次握手,以及默认的ACT包(仅仅ACT位为1的包)都会被防火墙放行,不管是什么防火墙。

更新:真坑,Ubuntu开启ufw之后,默认拦截了所有的input,包括第二次握手,我去。。。

TCP三次握手与防火墙规则的更多相关文章

  1. wireshark抓包工具简介以及tcp三次握手的一些含义

    wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示网络封包的详细信息.使用wireshark的人必须了解网络协议,否则就看不懂wireshark了.为了安全考虑, ...

  2. Wireshark基本介绍和学习TCP三次握手

    wireshark介绍 wireshark的官方下载网站: http://www.wireshark.org/ wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示 ...

  3. TCP 三次握手四次挥手, ack 报文的大小.tcp和udp的不同之处、tcp如何保证可靠的、tcp滑动窗口解释

    一.TCP三次握手和四次挥手,ACK报文的大小 首先连接需要三次握手,释放连接需要四次挥手 然后看一下连接的具体请求: [注意]中断连接端可以是Client端,也可以是Server端. [注意] 在T ...

  4. iOS 开发:TCP三次握手连接

    在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认: 第二次握 ...

  5. TCP三次握手原理详解

    TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族. 从协议分层模型方面来讲,TCP/IP由四个层次组成:网络接口层.网络层.传输层.应用层. TCP协议:即传输控制 ...

  6. TCP三次握手四次挥手详解

    转载 http://www.cnblogs.com/zmlctt/p/3690998.html 相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需 ...

  7. Wireshark基本介绍和学习TCP三次握手(转)

    http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html 之前写过一篇博客:用 Fiddler 来调试HTTP,HTTPS. 这篇 ...

  8. Wireshark 基本介绍和学习 TCP 三次握手

    这篇文章介绍另一个好用的抓包工具 Wireshark, 用来获取网络数据封包,包括 HTTP.TCP.UDP 等网络协议包. 记得大学的时候就学习过TCP的三次握手协议,那时候只是知道,虽然在书上看过 ...

  9. Wireshark抓包介绍和TCP三次握手分析

    wireshark介绍 wireshark的官方下载网站: http://www.wireshark.org/ wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示 ...

随机推荐

  1. APP压力测试异常结果分析

    CRASH:即奔溃,应用程序在使用过程中,非正常的退出 ANR:Application Not responding(响应延时,响应时间过长)

  2. prettytable模块(格式化打印内容)

    1.查看系统是否已经安装prettytable模块 2.下载prettytable模块 登陆:https://pypi.python.org/pypi/PrettyTable 3.安装PrettyTa ...

  3. Eclipse注释配置

    新的文件/** * @ClassName: ${type_name}  * @Description: ${todo} * @author ${user} * @date ${date} ${time ...

  4. 安装Apache2

    Linux下安装Apache 2.4 2012-08-06 09:36:51|  分类: linux|字号 订阅     本文原创,欢迎转载.转载请在文章明显可见处张贴如下内容:(注意:请保留超链接格 ...

  5. Web内容回顾

    -----------------siwuxie095 Java EE 三层结构 1.Web 层:Struts2 框架 2.Service 层:Spring 框架 3.DAO 层:Hibernate ...

  6. iOS中NSDate常用转换操作整合

    //当前时间格式化, 例:YYYY-MM-dd-EEEE-HH:mm:ss + (NSString *)getCurrentDataWithDateFormate:(NSString *)format ...

  7. 大话CNN

    这几年深度学习快速发展,在图像识别.语音识别.物体识别等各种场景上取得了巨大的成功,例如AlphaGo击败世界围棋冠军,iPhone X内置了人脸识别解锁功能等等,很多AI产品在世界上引起了很大的轰动 ...

  8. Xmind 常用快捷键列表(官方推荐)

    XMind中文版快捷键指南 XMind是一款非常实用的思维导图软件,能够帮助人们快速理清思路,打开新的局面.熟练地掌握快捷键的操作不光能够提供便捷,更能很大程度上的缩短制作时间,提高工作效率.本文总结 ...

  9. 908G New Year and Original Order

    传送门 分析 代码 #include<iostream> #include<cstdio> #include<cstring> #include<string ...

  10. pcl文档库

    http://docs.pointclouds.org/trunk/structpcl_1_1_polygon_mesh.html