iptables - 如何删除协议

iptables - 如何删除协议

我的桌面服务器 Debian Jessie 机器仅出于测试目的运行了 19 个小时。正如您在上面看到的,我已经设定了一些规则。但我并不真正热衷于网络。所以它需要一些修改。

这是我的iptables -L -v

Chain INPUT (policy DROP 1429 packets, 233K bytes)
 pkts bytes target   prot opt in     out   source     destination         
 1360 61482 DROP     all  --  any    any   anywhere   anywhere    ctstate INVALID
25079 2528K DROP     icmp --  any    any   anywhere   anywhere            
   15   480 DROP     igmp --  any    any   anywhere   anywhere            
14353 7379K ACCEPT   all  --  lo     any   anywhere   anywhere            
5848K 1157M ACCEPT   all  --  any    any   anywhere   anywhere    ctstate RELATED,ESTABLISHED
 1632 86441 ACCEPT   tcp  --  eth0   any   anywhere   anywhere    tcp dpt:8333
    9   472 ACCEPT   tcp  --  eth0   any   anywhere   anywhere    tcp dpt:33211
13801  804K ACCEPT   tcp  --  eth0   any   anywhere   anywhere    tcp dpt:56874
58386 5659K ACCEPT   udp  --  eth0   any   anywhere   anywhere    udp dpt:56874
    0     0 ACCEPT   tcp  --  eth0   any   anywhere   anywhere    tcp dpt:63547
    0     0 ACCEPT   tcp  --  eth0   any   anywhere  anywhere     tcp dpt:https

由于机器主要用作 Web 服务器,如何删除我需要的所有其他传入协议(例如 HTTP(S))?

当我运行 Etherape 时,我看到许多协议试图通过(或可能已经渗透)我的防火墙进行连接。

答案1

上面的 iptables 配置只会让 TCP 和 UDP 数据包通过防火墙(除非它们来自环回)。 INPUT 链的默认规则已设置为 DROP,这意味着每个未明确接受的数据包都将被丢弃。环回中不应该有奇怪的数据包,因此只允许 TCP/UDP 数据包进入。

关于协议,有一件重要的事情需要澄清:网络通信发生在许多(实际上是七层)每层都有自己的一套协议。例如,传输层协议(如 TCP 和 UDP)和应用层协议(如 SMB)的目的之间存在根本差异。 iptables 的范围仅限于传输层及以下。分析应用层协议的数据包需要深度数据包检查,并且计算成本要高得多。

人们还应该小心,不要混淆协议和服务名称。受欢迎的服务有分配给特定端口。 FTP 服务通常在端口 21 上可用,而 Web 服务器将在端口 80 上侦听。暗示对于端口 21 上的流量,所使用的协议通常是 FTP,对于端口 80 上的流量,使用的协议通常是 FTP。但是,任何此类端口上的流量都不需要使用与该服务关联的协议。端口 80 上的流量可能是 SSH 或完全是乱码。

相关内容