让我们说我的应用程序已经监听UDP套接字,它知道它可以从哪些IP地址接收UDP数据报。来自其他IP地址的任何内容都将被视为恶意数据报,应尽早丢弃以防止DoS攻击。困难的部分是这些合法IP地址的集合可以在应用程序的生命周期内动态变化(即通过控制通道动态接收它们)。
在上述情况下,如何根据源IP地址实现过滤?
我看到两个解决方案放置这个源IP过滤逻辑:
每种解决方案都有利弊。我想到了一些:
您将在哪里实施源IP过滤?为什么?
您是否可以命名遵循约定#2的任何应用程序(管理员手动安装静态防火墙规则不计算在内)?
答案 0 :(得分:1)
My recommendation (with absolutely no authority behind it) is to use iptables to do rate-limiting to dampen any DoS attacks and do the actual filtering inside your application. This will give you the least-bad of both worlds, allowing you to use the performance of iptables to limit DoS throughput as well as the ability to change which addresses are allowed without introducing a potential security hole.
If you do decide to go about it with iptables alone, I would create a new chain to do the application-specific filtering so that the potential for interference is lowered.
Hope this helps.
答案 1 :(得分:-3)
Hope this link help you 网络层防火墙或数据包筛选器在TCP / IP协议堆栈上运行,不允许数据包通过防火墙,除非它们与管理员定义的默认规则集匹配或默认应用。现代防火墙可以根据许多数据包属性过滤流量,例如源IP地址,源端口,目标IP地址或端口,或目标服务,如WWW或FTP。他们可以根据协议,TTL值,发起者的网络块,源的许多其他属性进行过滤。 应用层防火墙在TCP / IP堆栈的应用程序级别上工作,拦截进出应用程序的所有数据包,丢弃不需要的外部流量到达受保护机器,而无需向发送方确认。额外的检查标准可能会增加将数据包转发到目标的额外延迟。 强制访问控制(MAC)过滤或沙盒通过允许或拒绝基于允许连接到特定网络的特定设备的MAC地址的访问来保护易受攻击的服务。 代理服务器或服务可以在专用硬件设备上运行,也可以作为通用机器上的软件运行,响应输入数据包(如连接请求),同时阻止其他数据包。滥用内部系统不一定会导致安全漏洞,但IP欺骗等方法可能会将数据包传输到目标网络。 网络地址转换(NAT)功能允许通过在RFC 1918中定义的"私有地址范围"中的地址对它们进行编号来隐藏受保护设备的IP地址。此功能可防御网络侦察