iptables命令大全
iptables命令参数
iptables命令参数iptables命令是Linux系统中用于设置防火墙规则的工具,它允许用户通过在内核中的网络数据包传输路径上添加或删除规则来过滤、修改和重定向网络数据包。
iptables命令有许多参数可以用来指定具体的操作和规则。
下面是一些常用的iptables命令参数:1. -A或--append:添加规则到规则链的末尾。
例如,`iptables -A INPUT -s 192.168.0.1 -j DROP`将会添加一个规则,禁止来自IP地址为192.168.0.1的主机的所有入站连接。
2. -I或--insert:在规则链内指定的位置插入规则。
例如,`iptables -I INPUT3 -s 192.168.0.1 -j DROP`将会在INPUT链的第3个位置插入一个规则,禁止来自IP地址为192.168.0.1的主机的所有入站连接。
3. -D或--delete:从规则链中删除规则。
例如,`iptables -D INPUT -s 192.168.0.1 -j DROP`将会删除INPUT链中所有来自IP地址为192.168.0.1的主机的入站连接的规则。
4. -P或--policy:设置默认策略。
例如,`iptables -P INPUT ACCEPT`将会将INPUT链的默认策略设置为接受所有入站连接。
5. -s或--source:指定源IP地址或地址段。
例如,`iptables -A INPUT -s 192.168.0.0/24 -j DROP`将会添加一个规则,禁止来自192.168.0.0/24网段的主机的所有入站连接。
6. -d或--destination:指定目标IP地址或地址段。
例如,`iptables -AOUTPUT -d 192.168.0.1 -j DROP`将会添加一个规则,禁止所有出站连接到IP地址为192.168.0.1的主机。
7. -p或--protocol:指定要过滤的传输层协议,如TCP、UDP或ICMP。
iptables 指令详细语法
iptables 指令语法iptables [-t table] command [match] [-jtarget/jump][-t table] 指定规则表-t参数用来指定规则表,内建的规则表有三个,分别是:nat、mangle 和 filter,当未指定规则表时,则一律视为是filter。
三个规则表的功能如下:filter:这是默认的表,包含了内建的链INPUT(处理进入的包)、FORWORD(处理通过的包)和OUTPUT(处理本地生成的包)。
这个规则表顾名思义是用来进行封包过滤的处理动作(例如:DROP、 LOG、 ACCEPT 或 REJECT),我们会将基本规则都建立在此规则表中;nat:这个表被查询时表示遇到了产生新的连接的包,由三个内建的链构成:PREROUTING (修改到来的包)、OUTPUT(修改路由之前本地的包)、POSTROUTING(修改准备出去的包)。
这个规则表除了作网址转换外,请不要做其它用途;mangle:此规则表拥有 PREROUTING、FORWARD 和POSTROUTING 三个规则链。
除了进行网址转换工作会改写封包外,在某些特殊应用可能也必须去改写封包(TTL、TOS)或者是设定 MARK(将封包作记号,以进行后续的过滤),这时就必须将这些工作定义在 mangle 规则表中,由于使用率不高,我们不打算在这里讨论 mangle 的用法。
command 常用命令列表:命令-A, --append范例 iptables -A INPUT ...说明新增规则到某个规则链中,该规则将会成为规则链中的最后一条规则。
命令-D, --delete范例 iptables -D INPUT --dport 80 -j DROPiptables -D INPUT 1说明从某个规则链中删除一条规则,可以输入完整规则,或直接指定规则编号加以删除。
命令-R, --replace范例 iptables -R INPUT 1 -s 192.168.0.1 -j DROP说明取代现行规则,规则被取代后并不会改变顺序。
Iptables常用命令
口输出 -p ---proto 协议类型 指定数据包匹配的协议,如
TCP、UDP 和 ICMP 等 -s --source 源地址或子网> 指定数据包匹配的源地址 指定数据包匹配的源端口号 指定数据包匹配的目的端口号 指定数据包规则所使用的过
--sport 源端口号> --dport 目的端口号> -m --match 匹配的模块 滤模块
DROP 丢弃数据包不予处理,进行完此处理动作后,将不再比对其它规则,直接中断过 滤程序。 REDIRECT 将封包重新导向到另一个端口(PNAT),进行完此处理动作后,将会继续
比对其它规则。这个功能可以用来实作透明代理 或用来保护 web 服务器。例如:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT--to-ports 8081
REJECT
拦阻该数据包,并返回数据包通知对方,可以返回的数据包有几个选择:ICMP
port-unreachable、 ICMP echo-reply 或是 tcp-reset (这个数据包包会要求对方关闭联机) , 进行完此处理动作后,将不再比对其它规则,直接中断过滤程序。 范例如下:
iptables -A INPUT -p TCP --dport 22 -j REJECT --reject-with ICMP echo-reply
命令
说明
-P -L -A -I -D -R -F -Z -X -v
--policy 链名> --list 链名> --append 链名> --insert 链名> --delete 链名> --replace 链名> --flush 链名> --zero 链名>
iptables常用命令解析
iptables常⽤命令解析查看当前iptables规则:iptables -n -L --line-numbers该命令会以列表的形式显⽰出当前使⽤的 iptables 规则,并不做解析,每⼀条规则前⾯的编号可以⽤来做为其它操作,例如后⾯的删除操作的参数,很有⽤。
[root@localhost ~]# iptables -n -LChain INPUT (policy ACCEPT)target prot opt source destinationACCEPT all -- 0.0.0.0/00.0.0.0/0 state RELATED,ESTABLISHEDACCEPT icmp -- 0.0.0.0/00.0.0.0/0ACCEPT all -- 0.0.0.0/00.0.0.0/0ACCEPT tcp -- 0.0.0.0/00.0.0.0/0 state NEW tcp dpt:22REJECT all -- 0.0.0.0/00.0.0.0/0 reject-with icmp-host-prohibitedChain FORWARD (policy ACCEPT)target prot opt source destinationREJECT all -- 0.0.0.0/00.0.0.0/0 reject-with icmp-host-prohibitedChain OUTPUT (policy ACCEPT)target prot opt source destinationiptables 规则中各指令(command)的含义:各种指令如下。
既可以使⽤长指令,也可以使⽤短指令字母,例如,iptables --append chain firewall-rule等价于iptables -A chain firewall-rule另外,指令后⾯所带的参数/选项,如果以 [ ] 包括,则表⽰该参数/选项可省略(有缺省值)。
iptables常用命令
iptables常用命令常用命令列表:命令 -A, --append范例 iptables -A INPUT ...说明新增规则到某个规则炼中,该规则将会成为规则炼中的最后一条规则。
命令 -D, --delete范例 iptables -D INPUT --dport 80 -j DROPiptables -D INPUT 1说明从某个规则炼中删除一条规则,可以输入完整规则,或直接指定规则编号加以删除。
命令 -R, --replace范例 iptables -R INPUT 1 -s 192.168.0.1 -j DROP说明取代现行规则,规则被取代后并不会改变顺序。
命令 -I, --insert范例 iptables -I INPUT 1 --dport 80 -j ACCEPT说明插入一条规则,原本该位置上的规则将会往后移动一个顺位。
命令 -L, --list范例 iptables -L INPUT说明列出某规则炼中的所有规则。
命令 -F, --flush范例 iptables -F INPUT说明删除某规则炼中的所有规则。
命令 -Z, --zero范例 iptables -Z INPUT说明将封包计数器归零。
封包计数器是用来计算同一封包出现次数,是过滤阻断式攻击不可或缺的工具。
命令 -N, --new-chain范例 iptables -N allowed说明定义新的规则炼。
命令 -X, --delete-chain范例 iptables -X allowed说明删除某个规则炼。
命令 -P, --policy范例 iptables -P INPUT DROP说明定义过滤政策。
也就是未符合过滤条件之封包,预设的处理方式。
命令 -E, --rename-chain范例 iptables -E allowed disallowed说明修改某自订规则炼的名称。
常用封包比对参数:参数 -p, --protocol范例 iptables -A INPUT -p tcp说明比对通讯协议类型是否相符,可以使用 ! 运算子进行反向比对,例如:-p ! tcp ,意思是指除 tcp 以外的其它类型,包含 udp、icmp ...等。
iptables命令
IPtables命令详解用iptables -ADC 来指定链的规则,-A添加 -D删除 -C 修改iptables - [RI] chain rule num rule-specification[option]用iptables - RI 通过规则的顺序指定iptables -D chain rule num[option]删除指定规则iptables -[LFZ] [chain][option]用iptables -LFZ 链名 [选项]iptables -[NX] chain用 -NX 指定链iptables -P chain target[options]指定链的默认目标iptables -E old-chain-name new-chain-name-E 旧的链名新的链名用新的链名取代旧的链名说明Iptalbes 是用来设置、维护和检查Linux内核的IP包过滤规则的。
可以定义不同的表,每个表都包含几个内部的链,也能包含用户定义的链。
每个链都是一个规则列表,对对应的包进行匹配:每条规则指定应当如何处理与之相匹配的包。
这被称作'target'(目标),也可以跳向同一个表内的用户定义的链。
TARGETS防火墙的规则指定所检查包的特征,和目标。
如果包不匹配,将送往该链中下一条规则检查;如果匹配,那么下一条规则由目标值确定.该目标值可以是用户定义的链名,或是某个专用值,如ACCEPT[通过], DROP[删除], QUEUE[排队], 或者 RETURN[返回]。
ACCEPT 表示让这个包通过。
DROP表示将这个包丢弃。
QUEUE表示把这个包传递到用户空间。
RETURN表示停止这条链的匹配,到前一个链的规则重新开始。
如果到达了一个内建的链(的末端),或者遇到内建链的规则是RETURN,包的命运将由链准则指定的目标决定。
TABLES当前有三个表(哪个表是当前表取决于内核配置选项和当前模块)。
iptables命令汇总
iptables命令大全.txt对的时间遇见对的人是一生幸福;对的时间遇见错的人是一场心伤;错的时间遇见对的人是一段荒唐;错的时间遇见错的人是一声叹息。
数据包经过防火墙的路径图1比较完整地展示了一个数据包是如何经过防火墙的,考虑到节省空间,该图实际上包了三种情况:来自外部,以防火墙(本机)为目的地的包,在图1中自上至下走左边一条路径。
由防火墙(本机)产生的包,在图1中从“本地进程”开始,自上至下走左边一条路径来自外部,目的地是其它主机的包,在图1中自上至下走右边一条路径。
图1如果我们从上图中略去比较少用的mangle表的图示,就有图2所显示的更为清晰的路径图. 图2禁止端口的实例? 禁止ssh端口只允许在192.168.62.1上使用ssh远程登录,从其它计算机上禁止使用ssh#iptables -A INPUT -s 192.168.62.1 -p tcp --dport 22 -j ACCEPT#iptables -A INPUT -p tcp --dport 22 -j DROP? 禁止代理端口#iptables -A INPUT -p tcp --dport 3128 -j REJECT? 禁止icmp端口除192.168.62.1外,禁止其它人ping我的主机#iptables -A INPUT -i eth0 -s 192.168.62.1/32 -p icmp -m icmp --icmp-type echo-request -j ACCEPT#iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request –j ?DROP或#iptables -A INPUT -i eth0 -s 192.168.62.1/32 -p icmp -m icmp --icmp-type 8 -j ACCEPT #iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j DROP注:可以用iptables --protocol icmp --help查看ICMP类型还有没有其它办法实现?? 禁止QQ端口#iptables -D FORWARD -p udp --dport 8000 -j REJECT强制访问指定的站点图3要使192.168.52.0/24网络内的计算机(这此计算机的网关应设为192.168.52.10)强制访问指定的站点,在做为防火墙的计算机(192.168.52.10)上应添加以下规则:1. 打开ip包转发功能echo 1 > /proc/sys/net/ipv4/ip_forward2. 在NAT/防火墙计算机上的NAT表中添加目的地址转换规则:iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination202.96.134.130:80iptables -t nat -I PREROUTING -i eth0 -p udp --dport 80 -j DNAT --to-destination 202.96.134.130:803. 在NAT/防火墙计算机上的NAT表中添加源地址转换规则:iptables -t nat -I POSTROUTING -o eth1 -p tcp --dport 80 -s 192.168.52.0/24 -j SNAT --to-source 202.96.134.10:20000-30000iptables -t nat -I POSTROUTING -o eth1 -p udp --dport 80 -s 192.168.52.0/24 -j SNAT --to-source 202.96.134.10:20000-300004. 测试:在内部网的任一台计算机上打开浏览器,输入任一非本网络的IP,都将指向IP为202.96.134.130的网站.发布内部网络服务器图4要使因特网上的计算机访问到内部网的FTP服务器、WEB服务器,在做为防火墙的计算机上应添加以下规则:1. echo 1 > /proc/sys/net/ipv4/ip_forward2. 发布内部网web服务器iptables -t nat -I PREROUTING -p tcp -i eth1 -s 202.96.134.0/24 --dport 80 -j DNAT --to-destination 192.168.52.15:80iptables -t nat -I POSTROUTING -p tcp -i eth0 -s 192.168.52.15 --sport 80 -j SNAT --to-source 202.96.134.10:20000-300003. 发布内部网ftp服务器iptables -t nat -I PREROUTING -p tcp -i eth1 -s 202.96.134.0/24 --dport 21 -j DNAT --to-destination 192.168.52.14:21iptables -t nat -I POSTROUTING -p tcp -i eth0 -s 192.168.52.14 --sport 21 -j SNAT --to-source 202.96.134.10:40000-500004. 注意:内部网的计算机网关要设置为防火墙的ip(192.168.52.1)5. 测试: 用一台IP地址为202.96.134.0段的计算机虚拟因特网访问,当在其浏览器中访问http://202.96.134.10时,实际应看到的是192.168.52.15的的web服务。
iptables常用命令
iptables常⽤命令iptables常⽤指令作者:参考资料来源:、⽬录关于iptables的介绍可以参考资料来源的视频介绍。
---1、查看版本与帮助信息$ iptables -V # 查看版本信息iptables v1.6.1$ iptables -h # 查看帮助信息iptables v1.6.1Usage: iptables -[ACD] chain rule-specification [options]iptables -I chain [rulenum] rule-specification [options]iptables -R chain rulenum rule-specification [options]iptables -D chain rulenum [options]iptables -[LS] [chain [rulenum]] [options]iptables -[FZ] [chain] [options]iptables -[NX] chainiptables -E old-chain-name new-chain-nameiptables -P chain target [options]iptables -h (print this help information)Commands:Either long or short options are allowed.--append -A chain Append to chain--check -C chain Check for the existence of a rule--delete -D chain Delete matching rule from chain--delete -D chain rulenumDelete rule rulenum (1 = first) from chain--insert -I chain [rulenum]Insert in chain as rulenum (default 1=first)--replace -R chain rulenumReplace rule rulenum (1 = first) in chain--list -L [chain [rulenum]]List the rules in a chain or all chains--list-rules -S [chain [rulenum]]Print the rules in a chain or all chains--flush -F [chain] 删除所有链的规则(默认的会保留)--zero -Z [chain [rulenum]]链的计数器清零--new -N chain ⾃定义链--delete-chain-X [chain] 删除⾃定义的链--policy -P chain targetChange policy on chain to target--rename-chain-E old-chain new-chainChange chain name, (moving any references)Options:--ipv4 -4 Nothing (line is ignored by ip6tables-restore)--ipv6 -6 Error (line is ignored by iptables-restore)[!] --protocol -p proto protocol: by number or name, eg. `tcp'[!] --source -s address[/mask][...]source specification[!] --destination -d address[/mask][...]destination specification[!] --in-interface -i input name[+]network interface name ([+] for wildcard)--jump -j targettarget for rule (may load target extension)基本的处理⾏为:ACCEPT(接受)、DROP(丢弃)、REJECT(拒绝)--goto -g chainjump to chain with no return--match -m matchextended match (may load extension)--numeric -n numeric output of addresses and ports[!] --out-interface -o output name[+]network interface name ([+] for wildcard)--table -t table table to manipulate (default: `filter')--verbose -v verbose mode--wait -w [seconds] maximum wait to acquire xtables lock before give up--wait-interval -W [usecs] wait time to try to acquire xtables lockdefault is 1 second--line-numbers print line numbers when listing--exact -x expand numbers (display exact values)[!] --fragment -f match second or further fragments only--modprobe=<command> try to insert modules using this command--set-counters PKTS BYTES set the counter during insert/append[!] --version -V print package version.---2、iptables查看表$ sudo iptables --list这个命令和我们常见的sudo iptables -L是等价的,就是以列表显⽰表格,注意这⾥默认显⽰的是filter表格。
iptables命令大全
(7)string:字符限制(对中文字符匹配有限)
-m string
--algo bm|kmp 指定字符匹配算法
--string "字符" 指定字符
iptables -A out -s 172.16.100.1 -p tcp --sport 80 -m string --algo kmp --string “” -j DROP
2、mangle表:为数据包设置标记。
3、nat表:地址转换,修改数据包中的源、目标IP地址或端口;启用connection_track;SNAT,DNAT,PNAT
4、filter表:过滤,确定是否放行该数据包
默认为filter表
二、动作COMMAND
1、对于链的动作:
-F:flush, 清空规则链;
OUTPUT:由本机发出的报文的必经之路,处理出站数据包
POSTROUTING:路由后,进行路由选择后处理数据包
四、匹配条件CRETIRIA
1、通用匹配
-s IP地址:指定报文源IP地址匹配的范围;可以是IP,也可以是网络地址;可使用!取反;
--src, --source
-d IP地址:指定报文目标IP地址匹配的范围;
防火墙是内核的配置,iptables是使用防火墙的工具
包过滤防火墙可以分为“状态检测型”和“简单包过滤型”
iptables语法:
iptables [-t 表名] 动作 链名 匹配条件 -j 目标动作或跳转
详解:
一、表名TABLE
1、raw表:确定是否对数据包进行状态跟踪(目标是关闭nat表上启用的连接追踪功能)。
iptables命令大全
iptables命令大全.txt 来自外部,目的地是其它主机的包,在图1中自上至下走右边一条路径。
图1如果我们从上图中略去比较少用的mangle表的图示,就有图2所显示的更为清晰的路径图.图2禁止端口的实例? 禁止ssh端口只允许在192.168.62.1上使用ssh远程登录,从其它计算机上禁止使用ssh#iptables -A INPUT -s 192.168.62.1 -p tcp --dport 22 -j ACCEPT#iptables -A INPUT -p tcp --dport 22 -j DROP? 禁止代理端口#iptables -A INPUT -p tcp --dport 3128 -j REJECT? 禁止icmp端口除192.168.62.1外,禁止其它人ping我的主机#iptables -A INPUT -i eth0 -s 192.168.62.1/32 -p icmp -m icmp --icmp-type echo-request-j ACCEPT#iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request –j ?DROP或#iptables -A INPUT -i eth0 -s 192.168.62.1/32 -p icmp -m icmp --icmp-type 8 -j ACCEPT#iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j DROP注:可以用iptables --protocol icmp --help查看ICMP类型还有没有其它办法实现?? 禁止QQ端口#iptables -D FORWARD -p udp --dport 8000 -j REJECT强制访问指定的站点图3要使192.168.52.0/24网络内的计算机(这此计算机的网关应设为192.168.52.10)强制访问指定的站点,在做为防火墙的计算机(192.168.52.10)上应添加以下规则:1. 打开ip包转发功能echo 1 > /proc/sys/net/ipv4/ip_forward2. 在NAT/防火墙计算机上的NAT表中添加目的地址转换规则:iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination202.96.134.130:80iptables -t nat -I PREROUTING -i eth0 -p udp --dport 80 -j DNAT --to-destination202.96.134.130:803. 在NAT/防火墙计算机上的NAT表中添加源地址转换规则:iptables -t nat -I POSTROUTING -o eth1 -p tcp --dport 80 -s 192.168.52.0/24 -j SNAT--to-source 202.96.134.10:20000-30000iptables -t nat -I POSTROUTING -o eth1 -p udp --dport 80 -s 192.168.52.0/24 -j SNAT --to-source 202.96.134.10:20000-300004. 测试:在内部网的任一台计算机上打开浏览器,输入任一非本网络的IP,都将指向IP为202.96.134.130的网站.发布内部网络服务器图4要使因特网上的计算机访问到内部网的FTP服务器、WEB服务器,在做为防火墙的计算机上应添加以下规则:1. echo 1 > /proc/sys/net/ipv4/ip_forward2. 发布内部网web服务器iptables -t nat -I PREROUTING -p tcp -i eth1 -s 202.96.134.0/24 --dport 80 -j DNAT --to-destination 192.168.52.15:80iptables -t nat -I POSTROUTING -p tcp -i eth0 -s 192.168.52.15 --sport 80 -j SNAT --to-source 202.96.134.10:20000-300003. 发布内部网ftp服务器iptables -t nat -I PREROUTING -p tcp -i eth1 -s 202.96.134.0/24 --dport 21 -j DNAT --to-destination 192.168.52.14:21iptables -t nat -I POSTROUTING -p tcp -i eth0 -s 192.168.52.14 --sport 21 -j SNAT --to-source 202.96.134.10:40000-500004. 注意:内部网的计算机网关要设置为防火墙的ip(192.168.52.1)5. 测试: 用一台IP地址为202.96.134.0段的计算机虚拟因特网访问,当在其浏览器中访问http://202.96.134.10时,实际应看到的是192.168.52.15的的web服务;当访问ftp://202.96.134.10时,实际应看到的是192.168.52.14上的的ftp服务智能DNS图51. echo 1 > /proc/sys/net/ipv4/ip_forward2. 在NAT服务器上添加以下规则:在PREROUTING链中添加目的地址转换规则:iptables -t nat -I PREROUTING -i eth0 -p tcp --dpor 53 -j DNAT --to-destination 202.96.134.130iptables -t nat -I PREROUTING -i eth0 -p udp --dpor 53 -j DNAT --to-destination 202.96.134.130在POSTROUTING链中添加源地址转换规则:iptables -t nat -I POSTROUTING -o eth1 -s 192.168.52.0/24 -p tcp --dpor 53 -j SNAT --to-source 202.96.134.10:40000-50000iptables -t nat -I POSTROUTING -o eth1 -s 192.168.52.0/24 -p udp --dpor 53 -j SNAT --to-source 202.96.134.10:40000-500003. 测试在内部网任一台计算机上,将DNS设置为任意的外网IP,就可以使用DNS测试工具如nslookup 来解析DNS服务器202.96.134.130上的名称.端口映射见上节透明代理设置#iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.62.0/24 --dport 80 -j REDIRECT --to-ports 3128通过NAT上网? 典型NAT上网一般做为NAT的计算机同时也是局域网的网关,假定该机有两块网卡eth0、eth1,eth0连接外网,IP为202.96.134.134;eth1连接局域网,IP为192.168.62.101. 先在内核里打开ip转发功能#echo 1 > /proc/sys/net/ipv4/ip_forward2.?使局域网用户能访问internet所要做的nat#iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to?202.96.134.134如果上网的IP是动态IP,则使用以下规则:#iptables -t nat -A POSTROUTING -o eth0 -s 192.168.62.0/24 -j MASQUERADE如果是通过ADSL上网,且公网IP是动态IP,则使用以下规则:#iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.62.0/24 -j MASQUERADE3. 使internet用户可以访问局域网内web主机所要做的nat#iptables -t nat -A PREROUTING -p tcp -d 202.96.134.134 --dport 80 -j DNAT --to-destination 192.168.62.10注:局域网内的客户端需将默认网关、DNS设为防火墙的IP? 在我们的网络机房实现NAT共享上网工作环境:上层代理192.168.60.6(4480),只授予教师机(192.168.62.111)使用该代理的权限目标:不使用squid代理上网,而是使用NAT的方式上网方法:1) 确保停止教师机(192.168.62.111)的squid或其它代理服务2) 客户端网关、DNS均指向192.168.62.111,浏览器代理设置为192.168.60.6(4480)。
iptables配置语句
iptables配置语句1. 配置iptables防火墙的命令如下:```iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT```这条命令的作用是允许来自192.168.1.0/24网段的主机通过SSH 连接到本机的22端口。
2. 另一个常见的配置是限制特定IP地址的访问:```iptables -A INPUT -s 192.168.1.100 -j DROP```这条命令会阻止IP地址为192.168.1.100的主机访问本机的任何服务。
3. 如果想要允许特定IP地址范围的访问,可以使用以下命令:```iptables -A INPUT -m iprange --src-range 192.168.1.100-192.168.1.200 -j ACCEPT```这条命令允许来自192.168.1.100到192.168.1.200之间的主机访问本机。
4. 如果想要禁止特定端口的访问,可以使用以下命令:```iptables -A INPUT -p tcp --dport 80 -j DROP```这条命令会阻止任何主机访问本机的80端口,即禁止HTTP访问。
5. 另一种常见的配置是允许本机访问外部服务:```iptables -A OUTPUT -d 8.8.8.8 -p udp --dport 53 -j ACCEPT```这条命令允许本机访问Google Public DNS服务器的53端口,用于DNS解析。
6. 如果想要配置端口转发,可以使用以下命令:```iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080```这条命令会将来自80端口的TCP流量重定向到本机的8080端口。
7. 如果想要配置防火墙日志,可以使用以下命令:```iptables -A INPUT -j LOG --log-prefix "Firewall: "```这条命令会将所有进入本机的流量打上前缀为"Firewall: "的日志。
iptables防火墙用法
iptables是一种Linux下的防火墙工具,它可以对网络数据包进行过滤、修改和转发等操作,以实现网络安全和数据传输控制的功能。
下面是iptables的一些常用用法:1. 添加规则:iptables -A INPUT -p tcp --dport 22 -j ACCEPT这条命令将添加一条规则,允许TCP协议的数据包通过端口22(SSH 默认端口)。
其中,-A表示添加规则,INPUT表示规则应用于输入链,-p tcp指定协议为TCP,--dport 22指定目标端口为22,-j ACCEPT表示接受该数据包。
2. 删除规则:iptables -D INPUT -p tcp --dport 22 -j ACCEPT这条命令将删除之前添加的允许TCP协议的数据包通过端口22的规则。
其中,-D表示删除规则,其他参数与添加规则时相同。
3. 禁止访问特定IP地址:iptables -A INPUT -s 192.168.0.100 -j DROP 这条命令将禁止来自IP地址为192.168.0.100的数据包通过防火墙。
其中,-s指定源IP地址,-j DROP表示丢弃该数据包。
4. 允许访问特定IP地址:iptables -A INPUT -s 192.168.0.100 -j ACCEPT这条命令将允许来自IP地址为192.168.0.100的数据包通过防火墙。
其中,-s指定源IP地址,-j ACCEPT表示接受该数据包。
5. 清除所有规则:iptables -F这条命令将清除所有iptables规则。
其中,-F表示清空所有链的规则。
6. 保存规则:service iptables save这条命令将保存当前iptables规则到文件中,以便在系统重启后恢复。
其中,service表示调用系统服务,iptables表示要操作的防火墙服务,save表示保存规则。
这只是iptables的一些常用用法示例,实际上iptables还有更多功能和选项可以使用。
iptables 命令参数
iptables 命令参数iptables 命令参数是 Linux 系统中一个非常强大的网络管理工具,可以用来配置和管理网络安全防护、流量的分配和限制等。
本文将分步骤介绍 iptables 命令的用法和一些常见的参数。
第一步:启动和停止 iptables 服务在 Linux 系统中, iptables 服务默认是启动的。
如果需要手动停止或启动 iptables 服务,可以使用如下命令:systemctl start iptables # 启动 iptables 服务systemctl stop iptables # 停止 iptables 服务第二步:查看 iptables 规则我们可以使用以下命令来查看当前系统中的 iptables 规则:iptables -L # 查看所有防火墙规则iptables -L -n -v # 显示更详细的信息其中 -n 参数用于显示 IP 地址而不是 DNS 名称,-v 参数用于显示详细的防火墙规则。
第三步:添加 iptables 规则添加 iptables 规则主要使用 -A 参数,它表示在当前防火墙规则下添加一个新规则。
例如,我们要允许来自 192.168.0.1 的 IP 访问我们的 Web 服务器(例如使用 80 端口),可以使用以下命令:iptables -A INPUT -p tcp -s 192.168.0.1 --dport 80 -j ACCEPT其中,-A INPUT 表示添加一个新规则到 INPUT 防火墙链中,-p tcp 表示限制TCP协议流量,-s 参数指定来源 IP 地址,--dport 参数指定目标端口号,-j ACCEPT 表示允许流量通过。
第四步:删除或清空 iptables 规则如果需要删除或清空 iptables 规则,可以使用如下命令:iptables -D INPUT 1 # 删除第一条 INPUT 规则iptables -F # 清空所有的规则其中 -D 参数用于删除指定的规则,-F 参数用于清空所有的规则。
ipatables命令用法
ipatables命令用法iptables命令用法iptables是Linux操作系统中一个用于配置和管理数据包过滤规则的命令行工具。
它允许管理员定义和修改规则,以控制进出系统的网络数据包流动。
下面介绍一些常用的iptables命令用法。
1. 查看当前的iptables规则:$ iptables -L这条命令将显示当前的iptables规则,包括过滤策略、链的规则以及每个链中的规则列表。
2. 清除当前的iptables规则:$ iptables -F使用此命令将清除当前所有的iptables规则。
请谨慎使用,以免误操作导致网络连接中断。
3. 添加一个iptables规则:$ iptables -A [链] [规则][链]:相应规则的目标链,常见的包括INPUT(输入数据包)、OUTPUT(输出数据包)和FORWARD(转发数据包)。
[规则]:需要添加的规则。
例如,要允许所有来源IP的SSH连接:$ iptables -A INPUT -p tcp --dport 22 -j ACCEPT这将在INPUT链中添加一条规则,允许TCP协议、目标端口为22(SSH默认端口)的数据包通过。
4. 删除一个iptables规则:$ iptables -D [链] [规则编号][链]:相应规则的目标链。
[规则编号]:需要删除的规则在链中的编号。
例如,要删除INPUT链中的第3条规则:$ iptables -D INPUT 3这将从INPUT链中删除编号为3的规则。
以上是一些常用的iptables命令用法。
使用iptables命令可以根据网络策略对数据包进行精确控制,提高网络的安全性和性能。
请确保在使用iptables命令时谨慎操作,避免对网络连接造成不必要的影响。
Iptables命令详解
Iptables命令详解很多人把iptables 叫做防火墙,其实这是错误的观点,真正的防火墙名字叫做netfilter,iptables 只是它的一个实现工具。
iptables 各种应用规则是必要要熟练掌握的。
但是作为系统管理员,我们也应该会最基本的操作,认识iptables 的基本规则。
# iptables –nvL //查看当前iptables规则# iptables -F; /etc/init.d/iptables save //清空iptables规则并保存防火墙规则保存在/etc/sysconfig/iptables你可以查看一下这个文件。
iptalbes 的三个表filter表主要用于过滤包的,是系统预设的表,内建三个链INPUT、OUTPUT 以及FORWARD。
INPUT 作用于进入本机的包,OUTPUT 作用于本机送出的包,FORWARD 作用于那些跟本机无关的包。
nat 主要用处是网络地址转换,也有三个链。
PREROUTING 链的作用是在包刚刚到达防火墙时改变它的目的地址,如果需要的话。
OUTPUT 链改变本地产生的包的目的地址。
POSTROUTING 链在包就要离开防火墙之前改变其源地址。
该表我用的不多,但有时候会用到。
mangle 这个表主要是用于给数据包打标记,然后根据标记去操作哪些包。
这个表几乎不怎么用。
除非你想成为一个高级网络工程师,否则就没有必要花费很多心思在它上面。
iptables 基本语法查看规则以及清除规则# iptables -t -nat -n vL说明:-t 后面跟表名, -nvL即查看该表的规则,其中-n表示不针对IP反解析主机名,-L表示列出的意思,而-v表示列出的信息更加详细。
如果不加-t,则打印filter表的相关信息如下图:# iptables -F //-F 表示把所有规则全部删除,# iptables -Z //-Z 表示把包以及流量计数器置零说明:不加-t 默认是针对表filter 来操作的。
iptables的常用命令和选项
iptables的常用命令和选项iptables的常用命令和选项iptables的常用命令和选项iptables命令:维护规则表的命令:1. (-N)创建一个新规则表2. (-X)删除一个空规则表3. (-P)改变内建规则表的默认策略4. (-L)列出规则表中的规则5. (-F)清空规则表中的规则6. (-Z)将规则表计数器清零管理规则表中的规则:1. (-A)添加新规则到规则表2. (-I)插入新规则到规则表的某个位置3. (-R)替换规则表中的规则4. (-D)删除规则表中的某条规则在调试iptables规则时,你也许需要反复修改你的脚本来实现某些特定的功能,这时建议在你的脚本里添加这样几行,以防止重复设置规则:# 清除所有规则iptables -F -t filteriptables -X -t filteriptables -Z -t filteriptables -F -t natiptables -X -t natiptables -Z -t nat# 设置内建规则表的默认策略iptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPTiptables -t nat -P PREROUTING ACCEPTiptables -t nat -P POSTROUTING ACCEPTiptables -t nat -P OUTPUT ACCEPT“-t”选项是“--table”的简写,它指明了你要对哪类规则表进行操作,默认的是指filter。
下面举例说明iptables的部分选项的使用:指定源地址和目标地址指定规则操作的源地址 -s 或 --source 或 -src指定规则操作的目标地址-d 或 --destination 或 -dst允许来自192.168.100.0/24的数据包通过iptables -A INPUT -s 192.168.100.0/24 -d 0.0.0.0/0 -j ACCEPT“-j”选项是“--jump”的简写,它指明了匹配该条规则的数据包的具体处理方法,可能是ACCEPT、DROP等。
Linuxiptables命令详解
Linuxiptables命令详解iptables命令主要是设置防⽕墙信息的常见命令参数Usage: iptables -[AD] chain rule-specification [options]iptables -I chain [rulenum] rule-specification [options]iptables -R chain rulenum rule-specification [options]iptables -D chain rulenum [options]iptables -[LS] [chain [rulenum]] [options]iptables -[FZ] [chain] [options]iptables -[NX] chainiptables -E old-chain-name new-chain-nameiptables -P chain target [options]iptables -h (print this help information)Commands:Either long or short options are allowed.--append -A chain Append to chain--delete -D chain Delete matching rule from chain--delete -D chain rulenumDelete rule rulenum (1 = first) from chain--insert -I chain [rulenum]Insert in chain as rulenum (default 1=first)--replace -R chain rulenumReplace rule rulenum (1 = first) in chain--list -L [chain [rulenum]]List the rules in a chain or all chains--list-rules -S [chain [rulenum]]Print the rules in a chain or all chains--flush -F [chain] Delete all rules in chain or all chains--zero -Z [chain [rulenum]]Zero counters in chain or all chains--new -N chain Create a new user-defined chain--delete-chain-X [chain] Delete a user-defined chain--policy -P chain targetChange policy on chain to target--rename-chain-E old-chain new-chainChange chain name, (moving any references)常见命令展⽰1、查看iptables -nL --line-number-L 查看当前表的所有规则,默认查看的是filter表,如果要查看NAT表,加上-t NAT参数-n 不对ip地址进⾏反查,加上这个参数显⽰速度会快很多-v 输出详细信息,包含通过该规则的数据包数量,总字节数及相应的⽹络接⼝–line-number 显⽰规则的序列号,这个参数在删除或修改规则时会⽤到2、添加添加规则有两个参数:-A和-I。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据包经过防火墙的路径图1比较完整地展示了一个数据包是如何经过防火墙的,考虑到节省空间,该图实际上包了三种情况:来自外部,以防火墙(本机)为目的地的包,在图1中自上至下走左边一条路径。
由防火墙(本机)产生的包,在图1中从“本地进程”开始,自上至下走左边一条路径来自外部,目的地是其它主机的包,在图1中自上至下走右边一条路径。
图1如果我们从上图中略去比较少用的mangle表的图示,就有图2所显示的更为清晰的路径图.图2禁止端口的实例禁止ssh端口只允许在192.168.62.1上使用ssh远程登录,从其它计算机上禁止使用ssh #iptables -A INPUT -s 192.168.62.1 -p tcp --dport 22 -j ACCEPT#iptables -A INPUT -p tcp --dport 22 -j DROP∙禁止代理端口#iptables -A INPUT -p tcp --dport 3128 -j REJECT∙禁止icmp端口除192.168.62.1外,禁止其它人ping我的主机#iptables -A INPUT -i eth0 -s 192.168.62.1/32 -p icmp -m icmp --icmp-type echo-request -j ACCEPT#iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request –j ?DROP或#iptables -A INPUT -i eth0 -s 192.168.62.1/32 -p icmp -m icmp --icmp-type 8 -j ACCEPT#iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j DROP注:可以用iptables --protocol icmp --help查看ICMP类型还有没有其它办法实现?∙禁止QQ端口#iptables -D FORWARD -p udp --dport 8000 -j REJECT强制访问指定的站点图3要使192.168.52.0/24网络内的计算机(这此计算机的网关应设为192.168.52.10)强制访问指定的站点,在做为防火墙的计算机(192.168.52.10)上应添加以下规则:1. 打开ip包转发功能echo 1 > /proc/sys/net/ipv4/ip_forward2. 在NAT/防火墙计算机上的NAT表中添加目的地址转换规则:iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80 -j DNAT--to-destination 202.96.134.130:80iptables -t nat -I PREROUTING -i eth0 -p udp --dport 80 -j DNAT--to-destination 202.96.134.130:803. 在NAT/防火墙计算机上的NAT表中添加源地址转换规则:iptables -t nat -I POSTROUTING -o eth1 -p tcp --dport 80 -s 192.168.52.0/24 -j SNAT --to-source 202.96.134.10:20000-30000iptables -t nat -I POSTROUTING -o eth1 -p udp --dport 80 -s 192.168.52.0/24 -j SNAT --to-source 202.96.134.10:20000-300004. 测试:在内部网的任一台计算机上打开浏览器,输入任一非本网络的IP,都将指向IP为202.96.134.130的网站.发布内部网络服务器图4要使因特网上的计算机访问到内部网的FTP服务器、WEB服务器,在做为防火墙的计算机上应添加以下规则:1. echo 1 > /proc/sys/net/ipv4/ip_forward2. 发布内部网web服务器iptables -t nat -I PREROUTING -p tcp -i eth1 -s 202.96.134.0/24 --dport 80 -j DNAT --to-destination 192.168.52.15:80iptables -t nat -I POSTROUTING -p tcp -i eth0 -s 192.168.52.15 --sport 80 -j SNAT --to-source 202.96.134.10:20000-300003. 发布内部网ftp服务器iptables -t nat -I PREROUTING -p tcp -i eth1 -s 202.96.134.0/24 --dport21 -j DNAT --to-destination 192.168.52.14:21iptables -t nat -I POSTROUTING -p tcp -i eth0 -s 192.168.52.14 --sport 21 -j SNAT --to-source 202.96.134.10:40000-500004. 注意:内部网的计算机网关要设置为防火墙的ip(192.168.52.1)5. 测试: 用一台IP地址为202.96.134.0段的计算机虚拟因特网访问,当在其浏览器中访问http://202.96.134.10时,实际应看到的是192.168.52.15的的web 服务;当访问ftp://202.96.134.10时,实际应看到的是192.168.52.14上的的ftp服务智能DNS图51. echo 1 > /proc/sys/net/ipv4/ip_forward2. 在NAT服务器上添加以下规则:在PREROUTING链中添加目的地址转换规则:iptables -t nat -I PREROUTING -i eth0 -p tcp --dpor 53 -j DNAT--to-destination 202.96.134.130iptables -t nat -I PREROUTING -i eth0 -p udp --dpor 53 -j DNAT--to-destination 202.96.134.130在POSTROUTING链中添加源地址转换规则:iptables -t nat -I POSTROUTING -o eth1 -s 192.168.52.0/24 -p tcp --dpor 53 -j SNAT --to-source 202.96.134.10:40000-50000iptables -t nat -I POSTROUTING -o eth1 -s 192.168.52.0/24 -p udp --dpor 53 -j SNAT --to-source 202.96.134.10:40000-500003. 测试在内部网任一台计算机上,将DNS设置为任意的外网IP,就可以使用DNS测试工具如nslookup来解析DNS服务器202.96.134.130上的名称.端口映射见上节透明代理设置#iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.62.0/24 --dport 80 -j REDIRECT --to-ports 3128通过NAT上网典型NAT上网一般做为NAT的计算机同时也是局域网的网关,假定该机有两块网卡eth0、eth1,eth0连接外网,IP为202.96.134.134;eth1连接局域网,IP为192.168.62.101. 先在内核里打开ip转发功能#echo 1 > /proc/sys/net/ipv4/ip_forward2.?使局域网用户能访问internet所要做的nat#iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to?202.96.134.134如果上网的IP是动态IP,则使用以下规则:#iptables -t nat -A POSTROUTING -o eth0 -s 192.168.62.0/24 -j MASQUERADE如果是通过ADSL上网,且公网IP是动态IP,则使用以下规则:#iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.62.0/24 -j MASQUERADE3. 使internet用户可以访问局域网内web主机所要做的nat#iptables -t nat -A PREROUTING -p tcp -d 202.96.134.134 --dport 80 -j DNAT --to-destination 192.168.62.10注:局域网内的客户端需将默认网关、DNS设为防火墙的IP在我们的网络机房实现NAT共享上网工作环境:上层代理192.168.60.6(4480),只授予教师机(192.168.62.111)使用该代理的权限目标:不使用squid代理上网,而是使用NAT的方式上网方法:1) 确保停止教师机(192.168.62.111)的squid或其它代理服务2) 客户端网关、DNS均指向192.168.62.111,浏览器代理设置为192.168.60.6(4480)。
测试在当前情况下能否上网3) 在教师机(192.168.62.111)上添加如下iptables规则:#iptables -t nat -A POSTROUTING -p tcp -d 192.168.60.6/32 --dport 4480 -j SNAT --to-source 192.168.62.111:10000-30000解释:对于目的地为192.168.60.6、目的端口为4480的TCP包,在经过防火墙路由后,将其源地址转换为192.168.62.111,端口转换为10000-30000间的某个端口。
4) 客户端测试能否上网IP规则的保存与恢复iptables-save把规则保存到文件中,再由目录rc.d下的脚本(/etc/rc.d/init.d/iptables)自动装载使用命令iptables-save来保存规则。
一般用iptables-save > /etc/sysconfig/iptables生成保存规则的文件 /etc/sysconfig/iptables,也可以用service iptables save它能把规则自动保存在/etc/sysconfig/iptables中。