| 关键词: 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 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|