iptables第一部分

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介:

iptables :包过滤型防火墙

功能:

filter:过滤,防火墙

nat:network address translation 网络地址转换

mangle:拆解报文,做出修改,封装报文。

raw:关闭nat表上启用的连接追踪机制

流入:PREROUTING-->INPUT

流出:OUTPUT-->POSTROUTING

转发:PREROUTING-->FORWARD-->POSTROUTING

各功能的分别实现;

filter:INPUT,FORWARD,OUTPUT

nat:PREROUTING,OUTPUT,POSTROUTING

mangle:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

raw:PREROUTING,OUTPUT

路由发生的时刻;

报文进入本机后;

判断目标主机

报文发送之前;

判断经由哪个接口送往下一跳

iptables:四表五链

四表:filter,nat,mangle,raw

五链;INPUT,FORWARD,OUTPUT,PREROUTING,POSTROUTING

添加规则要点:

1.实现哪种功能,判断添加在哪张表

2.报文流经的路径,判断添加在哪个链上

链:链上规则的次序,即为检查的次序。

1.同类规则(访问同一个应用),匹配范围小的放上面

2.不同类规则(访问不同应用),匹配到报文频率大的放上面

3.将那些可由一条规则描述得多个规则合并为一个

4.设置默认策略

功能优先级次序:raw,mangle,nat,filter

规则:

组成部分;报文的匹配条件,匹配到之后处理动作

匹配条件:根据协议报文特征指定

基本匹配条件

扩展匹配条件

处理动作:

内建处理机制

自定义处理机制

注意:报文不能经过自定义链,只能在内置链上通过规则进行引用后生效;

iptables:规则管理工具

添加,修改,删除,显示等;

规则和链有计数器:

pkts:由规则或链所匹配到的报文的个数

bytes:由规则或链匹配到的所有报文大小之和;

   iptables [-t table] {-A|-D} chain rule-specification


   iptables [-t table] -I chain [rulenum] rule-specification


   iptables [-t table] -R chain rulenum rule-specification


   iptables [-t table] -D chain rulenum


   iptables [-t table] -S [chain [rulenum]]


   iptables [-t table] {-F|-L|-Z} [chain [rulenum]] [options...]


   iptables [-t table] -N chain


   iptables [-t table] -X [chain]


   iptables [-t table] -P chain target


   iptables [-t table] -E old-chain-name new-chain-name


   rule-specification = [matches...] [target]


   match = -m matchname [per-match-options]


   target = -j targetname [per-target-options]

iptables[-t table ]SUBCOMMAND CHAIN CRETERIA -j TARGET 

-t table 

filter,nat,mangle,raw

链管理:

-F:flush,清空规则链;

-N;new,创建自定义规则链

-X: drop,删除用户自定义的规则链;

-Z: zero,清零,置零规则计数器

-P:policy,为指定链设置默认策略;对filter表中的链而言,默认策略通常有ACCEPT,DROP,REJECT;

-E:rEname,重命名自定义链,引用计数不为0的自定义链,无法改名,也无法删除

规则管理:

-A:append,将新规则增加到指定链的尾部;

-I;insert,将新规则插入到指定链的指定位置

-D:delete,删除指定链上的指定规则

1,指定匹配条件

2,指定规则编号

-R;replace,替换指定链上的指定规则

查看:

-L;list,列出指定链上的所有规则

-n;numberic,以数字格式显示地址和端口号

-v:verbose,显示详细信息

-vv,-vvv

--line-numbers:显示规则编号;

-x:exactly,显示计数器计数结果的精确值。

   清空:iptables -F

   查看:iptables -L

   查看:iptables -L -n

   查看:iptables -L -n -v

   查看:iptables -L -n -vvv

   查看:iptables -L -n -vv

   查看:iptables -t nat -L 

   查看:iptables -t mangle -L 

   查看:iptables -t raw -L 

   查看:iptables -t filter -L 

   新建:iptables -t filter -N test

   删除链:iptables -t filter -X test

   重命名:iptables -t filter -E test test1   

   修改默认策略:iptables -t filter  -P FORWARD DROP 

   查看:iptables -t filter -L  -v --line-numbers

   删除规则:iptables -D INPUT 5

匹配条件:

基本匹配:

[!]-s,--src,--source IP|Netaddr :检查报文中源地址是否符合此处指定的地址范围

[!]-d,--dst,--destination IP|Netaddr :检查报文中目标地址是否符合此处指定的地址范围

-p,--protocol:检查报文中的协议,ip首部中的protocols所标识的协议;

-i,--in-interface IFAS:数据报文的流入接口;仅能用于PREROUTING,INPUT及FORWARD链上;

-o,--out-interface :数据报文的流出接口;仅能用于FORWARD,OUTPUT,POSTROUTING链上

扩展匹配:-m macth_name --spec_options

例如:-m tcp --dport 22

隐私扩展:对-p protocol指明的协议进行的扩展,可以省略-m选项

-p tcp

--dport 端口:目标端口可以一个或多个

--sport 端口:源端口

只允许22号端口通过TCP连接

iptables -I INPUT -d 172.16.6.14 -p tcp --dport 22 -j ACCEPT  

iptables -I OUTPUT -s 172.16.6.14 -p tcp --sport 22 -j ACCEPT  

--tcp-flags:列表1,列表2:检查列表1中所指明的所有标志位,且这其中,列表2所标识出的所有标志位必须为1

而余下的必须为0,没在列表中指明的,不做检查。

SYN,ACK,FIN,RST,PSH,URG

--tcp-flags SYN,ACK,FIN,RST   SYN

--syn:新建TCP连接的第一次请求

-p icmp

--icmp-type

可以用数值标识类型:一般0 或8

0:echo-reply

8:echo-request

iptables -A INPUT 

-p udp

--dport

--sport

显示扩展:必须使用-m

目标:

-j:jump,跳转

ACCEPT:接受

DROP:丢弃

REJECT:拒绝

RETURN:返回调用键

REDIRECT:端口重定向

LOG:记录日志

MARK:做防火墙标记

DNAT:目标地址转换

SNAT:源地址转换

MASQUERADE:地址伪装

。。。

自定义链:有自定义链上的规则进行匹配检查

允许TCP访问

iptables [-t filter] -A INPUT -d 172.16.6.14 -p tcp -j ACCEPT

iptables [-t filter] -A OUTPUT -s 172.16.6.14 -p tcp -j ACCEPT

设置默认策略

iptables -P INTPUT DROP

iptables -p OUTPUT DROP

iptables -p FORWARD DROP

允许ping

iptables [-t filter] -A INPUT -d 172.16.6.14 -p icmp -j ACCEPT

iptables [-t filter] -A OUTPUT -s 172.16.6.14 -p icmp -j ACCEP

允许某一台可以ping

iptables  -A INPUT -s 172.16.6.49 -d 172.16.6.14 -p icmp -j ACCEPT

iptables  -A OUTPUT -s 172.16.6.14 -d 172.16.6.49 -p icmp -j ACCEPT

允许22号端口

iptables -I INPUT -d 172.16.6.14 -p tcp --dport 22 -j ACCEPT  

iptables -I OUTPUT -s 172.16.6.14 -p tcp --sport 22 -j ACCEPT  

本文转自阿伦艾弗森 51CTO博客,原文链接:http://blog.51cto.com/perper/1966346,如需转载请自行联系原作者

 





相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
基于阿里云,构建一个企业web应用上云经典架构,让IT从业者体验企业级架构的实战训练。
相关文章
|
2月前
|
网络协议 网络安全
Iptables小总结
Iptables小总结
|
11月前
|
网络协议 网络安全 网络性能优化
|
安全 网络协议 Linux
扒一下一直不求甚解的 iptables
iptables 是用于配置 Linux 2.4.x 及更高版本包过滤规则集的用户空间命令行程序。它针对系统管理员。 由于网络地址转换 (NAT) 也是从包过滤规则集配置的,iptables 也用于此。 iptables 包还包括 ip6tables。ip6tables 用于配置 IPv6 包过滤器。
扒一下一直不求甚解的 iptables
|
网络安全 Linux Apache
|
网络协议 Linux 网络安全
|
Web App开发 网络协议 网络安全
|
网络协议 Shell