首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向iptable原始表添加规则?

如何向iptable原始表添加规则?
EN

Unix & Linux用户
提问于 2016-12-03 04:02:34
回答 2查看 2.2K关注 0票数 1

我正在研究LinuxMint18.1和GNU/Linux 9扩展(测试)。

我只有IPv4可用。我想提高我的网络的安全性,我读到了以下内容:阻止众所周知的TCP攻击。假设我想试一试,尽管这句话

问题是,我不知道如何将这些规则添加到iptablesraw表中?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2016-12-03 09:01:01

iptables-save的帮助下,当将其保存到:

代码语言:javascript
复制
/etc/iptables/rules.v4

问题中关于链接的规则样本如下:

代码语言:javascript
复制
*raw
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -p icmp -m u32 ! --u32 "0x4&0x3fff=0x0" -j DROP
-A PREROUTING -p icmp -m length --length 1492:65535 -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
COMMIT
票数 0
EN

Unix & Linux用户

发布于 2016-12-03 06:53:29

在这里,我假设您不关心IPv6。因此,您要编辑的文件是:

代码语言:javascript
复制
/etc/sysconfig/iptables

把这个放在你的iptable文件的顶部。它是原始表的框架实现,它在任何与路由相关的表(例如过滤器)之前使用。请注意,每个表的定义底部都有自己的COMMIT命令:

代码语言:javascript
复制
*raw
:TCPFLAGS - [0:0]

# the two rules below assure that only TCP packets get examined. All others continue into the *filter table.
-A PREROUTING -p tcp -j TCPFLAGS
-A PREROUTING -j ACCEPT

# quickly accept standard handshakes
# ALLOW ACK or ACK/SYN
#-A TCPFLAGS -j ACCEPT
-A TCPFLAGS -p tcp --tcp-flags FIN,ACK,URG,PSH,RST ACK  -j ACCEPT

# allow ACK/FIN with either URG or PSH, or both, or neither
# but SYN and RST can't be set
-A TCPFLAGS -p tcp --tcp-flags FIN,SYN,ACK,RST  ACK,FIN -j ACCEPT

# allow SYN or ACK/SYN
-A TCPFLAGS -p tcp --tcp-flags FIN,SYN,URG,PSH,RST SYN -j ACCEPT

# allow RST or ACK/RST
-A TCPFLAGS -p tcp --tcp-flags FIN,SYN,URG,PSH,RST RST -j ACCEPT

# this rule catches xmas-tree and fin attacks
-A TCPFLAGS -p tcp --tcp-flags FIN     FIN     -j DROP

# this rule catches xmas-tree and syn/rst attacks
-A TCPFLAGS -p tcp --tcp-flags SYN     SYN     -j DROP

# this rule catches null attacks
-A TCPFLAGS -p tcp --tcp-flags ALL     NONE    -j DROP

#-A TCPFLAGS -p tcp -ecn-tcp-cwr -j DROP
# these rules catch bad ack combinations
#-A TCPFLAGS -p tcp --tcp-flags ACK     ACK     -j ACC
-A TCPFLAGS -j ACCEPT

# so, what do we accept for tcp?
# handshakes (ACK/FIN), (ACK/SYN), (SYN), (ACK), (RST), (ACK/RST), and data packets with 
# PSH or URG or FIN or ACK

COMMIT

上面的内容位于*过滤器定义之上。我对规则的正确性没有作出任何声明。请注意,我已经注释掉了一些不适用于我的规则。如果你发现我的规则有什么问题,请把它放在下面。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/327709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档