首页 运维 网络学院 查看内容

linux下iptables命令选项、条件匹配及动作目录说明及案例实训

2011-10-26 22:13 485 0

摘要:   iptables命令选项  -A,--append            &...
关键词: nbsp iptables 数据 TCP 地址 端口 dport 必须 192.168 FORWARD

  iptables命令选项  -A,--append                  在所选择的链的最后添加一条规则  -D,--delete                  从所选链中删除规则  -R,--replace                 替换规则  -I,--insert                  向所选链中插入新规则  -L,--list                    显示所选链的所有规则,如果没有指定链,则显示表中的所有链  -F,--flush                   清空所选的链,如果没有指定链,则清空指定表中的所有链  -Z,--zero                    把指定链的所有计数器归零  -N,--new-chain               建立自定义的链  -X,--delete-chain            删除指定的用户自定义链,这个链必须没有被引用,如果被引用,在删除之前必须删除或者替换与之有关的规则  -P,policy                    为链设置默认策略  -E,--rename-chain            对自定义的链进行重命名  -v,--verbose                 显示详细信息  -x,--exact                   使--list输出中的计数器显示准确的数值,而不用K、M、G等估值  -n,--numeric                 使输出中的IP地址和端口以数值的形式显示  --line-numbers               显示出每条规则在相应链中的序号  -c,--set-counters            在创建或更改规则时设置计数器  --modprobe                   让iptables推测并装载要使用的模块  iptables条件匹配  -p,--protocol                 匹配指定的协议  -s,--src,--source             匹配数据包中的源IP地址  -d,--dst,--dstination         匹配数据包中的目的IP地址  -i,--in-interface             以数据包进入本地所使用的网络接口进行匹配  -o,--out-interface            以数据包离开本地所使用的网络接口进行匹配  -f,--fragment                 匹配一个被分片的包的第二片或及以后的部分  --sport,--source-port         匹配基于TCP协议数据包的源端口  --dport,--destination-port    匹配基于TCP协议数据包的目的端口  --tcp-flags                   匹配指定的TCP标记  --syn                         匹配那些SYN标记被设置而ACK和RST标记没有设置的数据包  --tcp-option                  匹配TCP协议数据包的头部信息  --icmp-type                   根据ICMP类型匹配数据包  --linit                       为linit match设置最大平均匹配速率,也就是单位时间内linit match可以匹配几个包,这个匹配操作必须由-m limit明确指定才能使用  --mac-source                  基于数据包的MAC源地址进行匹配。这个匹配操作必须由-m mac明确指定才能使用  --mark                        以数据包被设置的mark值来匹配。这个匹配操作必须由-m mark明确指定才能使用  --uid-owner                   按生成数据包的用户的ID(UID)来匹配外出的包。这个匹配操作必须由-m owner明确指定才能使用  --gid-owner                   按生成数据包的用户所在组的ID(GID)来匹配外出的包。这个匹配操作必须由-m owner明确指定才能使用  --pid-owner                   按生成数据包的进程的ID(UID)来匹配外出的包。这个匹配操作必须由-m owner明确指定才能使用  --sid-owner                   按生成数据包的会话的ID(SID)来匹配外出的包。这个匹配操作必须由-m owner明确指定才能使用  --state                       指定要匹配数据包的状态,一共有4种状态可以使用:INVALID、ESTABLISHED、NEW和RELATED。这个匹配操作必须由-m state明确指定才能使用  --tos                         根据TOS字段匹配数据包,这个匹配操作必须由-m tos明确指定才能使用  --ttl                         根据TTL的值来匹配数据包,这个匹配操作必须由-m ttl明确指定才能使用  iptables动作/目标  ACCEPT                        允许符合条件的数据包通过  DROP                          拒绝符合条件的数据包通过  LOG                           用来记录与数据包相关的信息  MARK                          设置mark值,这个值是一个无符号的整数  MASQUERADE                    和SNAT的作用相同,区别在于它不需要指定--to-source  SNAT                          源网络地址转换  DNAT                          目的网络地址转换  REDIRECT                      转发数据包一另一个端口  REJECT                        REJECT和DROP都会将数据包丢弃,区别在于REJECT除了丢弃数据包外,还向发送者返回错误信息  RETURN                        使数据包返回上一层  TOS                           用来设置IP头部中的Type Of Service字段  TTL                           用于修改IP头部中Time To Live字段的值  ULOG                          ULOG可以在用户空间记录被匹配的包的信息,这些信息和整个包都会通过netlink socket被多播  QUEUE                         为用户空间的程序或应用软件管理包队列  MIRROR                        颠倒IP头部中的源目地址,然后再转发包  iptables -A                  添加记录  #iptables -A INPUT -p icmp -j DROP             添加一条输入的ICMP的拒绝记录  iptables -D                  删除记录  #iptables -D OUTPUT -p icmp -j DROP            删除一条输出的ICMP的拒绝记录  iptables -F                  清除记录  #iptables -F                 清除所有记录  iptables -L                  列出记录  #iptables -L                 列出所有记录  iptables -I                  插入记录  #iptables -I INPUT 3 --dport 80 -j DROP       在位置3的后面插入一条输入的80端口的拒绝记录  #iptables -P INPUT -j DROP                    将列表中所有INPUT的链默认策略定义为拒绝  #iptables -t net -P OUTPUT -j ACCEPT          将net表中所有OUTPUT的链默认策略定义为拒绝  #iptables -L FORWARD                          查看表中FORWARD链的规则记录  #iptables -A INPUT -p tcp --dport 80 -j ACCEPT                    向列表中添加一条允许访问TCP协议的80端口记录  #iptables -I INPUT -s 192.168.1.0/24 -j DROP                      向列表中插入一条拒绝源IP为192.168.1.0网段的数据包通过  #iptables -D INPUT 2                          删除列表中输入的第二条记录  #iptables -F OUTPUT                           清除列表中所有OUTPUT记录  #iptables -A FORWARD -d hi.baidu.com./ylinuxs -j DROP                     禁止客户端访问域名hi.baidu.com./ylinuxs的网站  #iptables -A FORWARD -d 202.16.28.6 -j DROP                         禁止客户端访问IP地址为202.16.28.6的网站  #iptables -I FORWARD -p tcp --dport 8000 -j DROP  #iptables -I FORWARD -p udp --dport 8000 -j DROP  #iptables -I FORWARD -d tcpconn.tencent.com -j DROP                 上面三行的意思为禁止用户访问qq(有可能不太全,可以在qq安装目录下有qq号码的目录下找到config.db文件,打开里面有全部的qq服务器地址)  #iptables -A INPUT -p tcp --dport 80 -j LOG \ --log-level notice                   指定记录日志,并指定等级为notice  #iptables -A INPUT -p tcp --dport 80 -j LOG \ --log-level notice --log-prefix "iptables:"                 在已经记录日志信息之前加上指定的前缀  #iptables -A INPUT -p tcp -j LOG --log-tcp-sequence                              把数据包的TCP序列号和其它日志信息一起记录下来  #iptables -A FORWARD -p tcp -j LOG --log-tcp-options                             记录TCP包头中的字段大小不变的选项  #iptables -A FORWARD -p tcp -j LOG --log-ip-options                              记录IP包头中的字段大小不变的选项  #iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.1.1            将数据包的源地址改为公网地址  DNAT(网络地址转达换):  #iptables -t nat -A PREROUTING -i 网络接品 -p 协议 --dport 端口 -j SNAT --to-destination IP地址  如:  #iptables -t nat -A PREROUTING -d 202.19.26.63 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1        使用DNAT将发送到202.19.26.63,并且端口为80的数据包转发至192.168.1.1  #iptables -t nat -A PREROUTING -d 202.19.26.63 -p tcp --dport 80 -j DNAT --to 192.168.1.1-192.168.1.2        将公司内部的2台服务器,全部响应为外部地址202.19.26.63  #iptables -A PREROUTING  -d 192.168.2.1 -p tcp -m tcp –dport 80 -j DNAT–to-destination 192.168.2.1:8080      将本地80端口的请求转发到8080端口,当前主机IP为192.168.2.1  iptables可以使用扩展模块来进行数据包的匹配,语法就是 -m module_name, 所以-m tcp 的意思是使用 tcp 扩展模块的功能 (tcp扩展模块提供了 --dport, --tcp-flags, --sync等功能)其实只用 -p tcp 了话, iptables也会默认的使用 -m tcp 来调用 tcp模块提供的功能。但是 -p tcp 和 -m tcp是两个不同层面的东西,一个是说当前规则作用于 tcp 协议包,而后一是说明要使用iptables的tcp模块的功能 (--dport 等)  MASQUERADE(伪装接口之间的数据):  #iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.1.0/24 -j MASQUERADE             将192.168.1.0/24的内部地址,转换为ppp0的公网地址,并把数据伪装  #iptables -A INPUT -i lo -j ACCEPT                  添加一条允许使用回环地址的记录  #iptables -A FORWARD -p tcp --dport 80 -j ACCEPT          添加一条记录是允许80端口转发  #iptables -A FORWARD -p udp --dport 53 -j ACCEPT  #iptables -A FORWARD -p tcp --dport 53 -j ACCEPT          上面两条是添加记录是允许53端口转发  #iptables -A INPUT -p tcp --dport 22 -j ACCEPT            允许客户端访问服务器的ss
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部