iptables防火墙详解

  • 格式:doc
  • 大小:45.00 KB
  • 文档页数:4

Iptables防火墙基本命令参数介绍及其用法!Iptables语法--------------------------------------命令格式:iptables [ -t 表名] 命令[ 链] [ 规则号] [ 条件] [ 规则]参数说明::::::-t:表名指定规则所在表,表可以是filter,nat,mangleiptables的子命令:::-A:在指定链中添加规则-D:在指定链中删除指定规则-R:修改指定链中指定规则-I:在指定规则前插入规则-L:显示链中的规则-N:建立用户链-F:清空链中的规则-X:删除用户自定义链-P:设置链的默认规则-C:用具体的规则链来检查在规则中的数据包-h:显示帮助条件:::-i:接口名指定接收数据包接口-o:接口名指定发送数据包接口-p [ !]协议名指定匹配的协议(tcp,udp,icmp,all)-s [ !]ip地址[/mask] 指定匹配的源地址--sport [!]端口号[:端口号] 指定匹配的源端口或范围-d [!] ip地址[/mask] 指定匹配的目标地址--dport [!]端口号][:端口号] 指定匹配的目标端口或范围--icmp-type [!]类型号/类型名指定icmp包的类型注意:8表示request 0表示relay(应答)-m port [--multiport] 指定多个匹配端口limit [--limit] 指定传输速度mac [--mac-source] 指定匹配MAC地址以上选项用于定义扩展规则-j:规则指定规则的处理方法ACCEPT:接受匹配条件的数据包(应用于INPUT,OUTPUT,FORWARD)DROP:丢弃匹配的数据包(应用于INPUT,OUTPUT,FORWARD)REJECT:丢弃匹配的数据包且返回确认的数据包MASQUERADE:伪装数据包的源地址(应用于POSTROUTING且外网地址为动态地址,作用于NA T)REDIRECT:包重定向(作用于NA T表中PREROUTING,OUTPUT,使用要加上--to-port 端口号)TOS:设置数据包的TOS字段(应用于MANGLE,要加上--set-tos值)SNA T:伪装数据包的源地址(应用于NA T表中PREROUTING链,要加上--to-destination ip 地址)LOG:使用syslog记录的日志RETURN:直接跳出当前规则链Iptables子命令使用实例(1)添加规则# iptables –A INPUT –p icmp –icmp-type 8 –s 192.168.0.3 –j DROP拒绝192.168.0.3主机发送icmp请求# iptables –A INPUT –p icmp –icmp-type 8 –s 192.168.0.1/24 –j DROP拒绝192.168.0.0网段ping防火墙主机,但允许防火墙主机ping其他主机# iptables -A OUTPUT –p icmp --icmp-type 0 -d 192.168.0.0/24 –j DROP拒绝防火墙主机向192.168.0.0网段发送icmp应答,等同于上一条指令# iptables –A FORWARD -d -j DROP拒绝转发数据包到,前提是必须被解析# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNA T --to-source 211.162.1.1NA T,伪装内网192.168.0.0网段的主机地址为外网211.162.1.1,这个公有地址,使内网通过NA T上网,前提是启用了路由转发# iptables –t nat -A PREROUTING -p tcp - -doport 80 –d 211.162.1.1 -j DNA T - -to-destination 192.168.0.5(把internet上通过80端口访问211.168.1.1的请求伪装到内网192.168.0.5这台web服务器,即在iptables中发布web服务器,前提是启用路由转发)# iptables -A FORWARD -s 192.168.0.4 -m mac --mac-source 00:E0:4C:45:3A:38 -j ACCEPT保留IP地址,绑定IP地址与MAC地址(2)删除规则#iptables –D INPUT 3#iptables -t nat -D OUTPUT -d 192.168.0.3 -j ACCEPT(3)插入规则#iptables -I RORWARD 3 -s 192.168.0.3 -j DROP#iptables -t nat -I POSTROUTING 2 -s 192.168.0.0//24 -j DROP(4)修改规则#iptables –R INPUT 1 -s 192.168.0.2 -j DROP(5)显示规则#iptables -L(默认表中的所有规则)#iptables -t nat -L (显示nat表中的所有规则)#iptables -t nat -L POSTROUTING (显示nat表中POSTROUTING链中的规则)(6)清空规则#iptables –F (清空防火墙规则)#iptables -t nat -F POSTROUTING (清空nat表中POSTROUTING链中的规则)(7)设置默认规则#iptables –P INPUT DROP 设置INPUT链默认规则为DROP#iptables -t nat -P OUTPUT DROP 设置nat表中OUTPUT链的默认规则为DROP(8)建立、删除自定义链#iptables -N test#iptables -X test(9)应用自定义链#iptables –A test -s 192.168.100.10 -j DROP#iptables -A INPUT -j test 使用子链规则若要删除自定义链,必须确保该链不被使用且规则为空#iptables -D INPUT -j test 在指定链中删除指定规则实例:::::::#iptables –t filter -L INPUT --line-numbers 在表链规则前显示出行号#iptables -t filter –D INPUT 3 删除filter表中INPUT链中的第三条规则#iptables –Z INPUT 数据包统计清零#iptables -t filter -E stone STONE 更改链名#iptables –A INPUT -I eth0 -j DROP 由eth0网卡进来的所有数据包都丢弃#iptables –t filter -A INPUT -p tcp(udp)--dport 80 -j DROP 访问本机80端口进来的基于tcp或udp协议的数据包全部丢弃#iptables -t filter -A INPUT -m mac --mac-source mac地址-j DROP只要是那个mac地址的网卡发送进来的数据包全部丢弃,可用于禁用某个网卡#iptables -A INPUT -p tcp -m limit --limit 20 --limit-burst 5 -j DROP每秒最多推出去20个包,峰值为5#iptables -t filter -A OUTPUT -p tcp -j LOG --log-level panic报错panic级别一下的不记录到日志中#iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 把访问80端口改为8080端口#iptables -t filter -A test -p tcp -s 192.168.100.10 -j RETURN把访问数据包交给子链test,test链中没有符合规则的话return返回给父链匹配规则默认策略是(DROP)自己能ping通自己,开放21,22,80端口,其中22端口只能有一个人访问!#!/bin/bashIPT="/sbin/iptables"$IPT -P INPUT ACCEPT$IPT -A INPUT -i lo -j ACCEPT$IPT -A INPUT -p tcp -m multiport --dports 21,80 -j ACCEPT$IPT -A INPUT -p udp -m multiport --dports 21,80 -j ACCEPT$IPT -A INPUT -s 192.168.4.4 --dport 22 -j ACCEPT$IPT -P INPUT DROP运行脚本即可!stone(系统内用户)用户不能与外界通讯iptables -t filter -A OUTPUT -m owner --uid-owner `id -u stone` -j DROP3,实时动态监视网络流量watch -n 0.01 iptables -xvnL4,实现动态adsl拨号上网带动局域网内所有其它用户上网cat /proc/sys/net/ipv4/ip_forward返回值必须为1echo 1 > /proc/sys/net/ipv4/ip_forwardiptables -t nat -A POSTROUTING -j MASQUERADE启动和保存iptables规则:::#service iptables start 启动iptables防火墙#service iptables save 将内存中的规则保存到/etc/sysconfig/iptables中,重启系统时iptables启动脚本会利用iptables来恢复该文件中的规则#iptables-save >/etc/sysconfig/iptables 与上一条命令相同#vi /etc/rc.d/iptables 在start()函数中写入要保存的规则将规则写入iptables的启动脚本Iptables基本命令用法写的差不多了,剩下的就靠朋友们自己摸索了,革命尚未成功,同志仍需努力!。