目录

一、防火墙iptables的概述

1、防火墙的作用

2、netfilter和iptables的关系

3、四表五链

4、常用的控制类型

二、配置基础iptables

1、配置格式

2、查看配置列表

3、添加规则

4、设置默认策略

三、规则匹配

1、通用匹配

2、隐含匹配

3、显示匹配

4、状态匹配


一、防火墙iptables的概述

1、防火墙的作用

netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。

2、netfilet和iptables的关系

这是第一个要说的地方,Iptables和netfilter的关系是一个很容易让人搞不清的问题。很多的知道iptables却不知道 netfilter。其实iptables只是Linux防火墙的管理工具而已,位于/sbin/iptables。真正实现防火墙功能的是 netfilter,它是Linux内核中实现包过滤的内部结构。

3、四表五链

四表:

(1)raw表

确定是否对该数据包进行状态跟踪。包括两个规则链,OUTPUT,PREAUTING

(2)mangle表

修改数据包内容,用来做数据整形,给数据包设置标记。包含五个规则链,INPUT、OUTPUT、

FORWARD、PREROUTING 、POSTROUTING

(3)nat表

用来负责地址转换,用来修改数据包中的源、目标ip地址或端口。包含三个规则链,OUTPUT、

PREROUTING 、POSTROUTING

(4)filter表

负责过滤数据包,确认是否放行该数据包(过滤)包含三个规则链,INPUT、OUTPUT、FORWARD

五链:

(1)INPUT

处理入站数据包,匹配目标ip为主机的数据包

(2)OUTPUT

处理出站数据包,一般不在此链上做配置

(3)FORWARD

处理转发数据包,匹配流经本机的数据包

(4)PREROUTING

在进行路由选择前处理数据包,用来修改目的地址,用来做DNAT,相当于把内网服务器的ip和端口映射到路由器的外网ip和端口上。

(5)POSTROUTING

在进行路由路由选择后处理数据包,用来修改源地址,用来做SNAT,相当于内网通过路由器NAT转换功能来实现内网主机通过一个公网IP地址来上网。

4、常用的控制类型

(1)ACCEPT

允许数据包通过

(2)DROP

直接丢弃数据包,不会给出任何回应

(3)REJCET

拒绝数据包通过,会给数据发送端发送一个响应信息

(4)SNAT

修改数据包的源地址

(5)DNAT

修改数据包的目的地址

(6)MASQUERADE

伪装成非固定公网ip地址

(7)LOG

在/var/log/message文件中记录日志信息,然后将数据包传递给下一条规则,LOG只是一条辅助动作,并没有真正处理数据包。

二、配置基础iptables

1、配置格式

iptables  [ -t 表名]   管理选项  [链名]  [匹配条件]   [ -j  控制类型]

常用的管理选项

(1)-A

在指定链的末尾追加一条新的规则

(2)-I

在指定链的开头追加一条新的规则,未指定序号时默认第一条规则

(3)-R

修改、替换 指定链上的某一条规则,若为指定链名则清空表中的所有链

(4)-F

清空指定链的所有规则,若为指定链名则清空表中的所有链

(5)-L

列出指定链中的所有规则,若未指定链名则列出表中的所有链

(6)-n

使用数字形式显示出数字结果,如显示ip地址而不是主机名。

(7)-v

显示详细信息,包括每条规则的匹配包数量和匹配字节数

(8)-line--numbers

查看规则时,显示规则序号

2、查看配置列表

(1)安装软件包

[root@localhost ~]# yum -y install iptables iptables-services

(2) 查看配置列表

[root@localhost ~]# iptables -nL INPUT                #以数字形式显示INPUT链所有的规则条目(n 和L的顺序不能倒)
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:53
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:67
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:67

(3)查看INPUT链所有的规则条目,并显示规则的序号

[root@localhost ~]# iptables -L INPUT --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
2    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
3    ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootps
4    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:bootps

3、添加规则

(1)在INPUT链的末尾追加tcp协议允许通过的规则

[root@localhost ~]# iptables -t filter -A INPUT -p tcp -j ACCEPT
[root@localhost ~]# iptables -L INPUT --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
2    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
3    ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootps
4    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:bootps
5    ACCEPT     tcp  --  anywhere             anywhere

(2) 在INPUT链中的第三条插入icmp禁ping


[root@localhost ~]# iptables -t filter -L INPUT --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
2    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
3    REJECT     icmp --  anywhere             anywhere             reject-with icmp-port-unreachable
4    ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootps
5    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:bootps
6    ACCEPT     tcp  --  anywhere             anywhere

4、设置默认策略

设置格式

iptables  [-t 表名]   -P 链名  控制类型

为FORWARD链设置默认规则为不允许通过

[root@localhost ~]# iptables -t filter -P FORWARD DROP    

(2) 清空规则

清空INPUT的所有规则

[root@localhost ~]# iptables -t filter -F INPUT
[root@localhost ~]# iptables -t filter -L INPUT --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination

删除INPUT里的第一条规则

(1)先在INPUT第一条那创建一条规则

[root@localhost ~]# iptables -t filter -A INPUT -p icmp -j ACCEPT

(2)通过-D命令删除第一条规则

[root@localhost ~]# iptables -t filter -D INPUT 1

(3)以数字的形式打开指定链名查看删除情况

[root@localhost ~]# iptables -t filter -L INPUT --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination   

三、规则匹配

1、通用匹配

  1. 协议匹配: -p协议名 .

  2. 地址匹配: -s源地址、-d目的地址 可以是IP、网段、域名、空(任何地址)

  3. 接口匹配: -i入站网卡、-o出站网卡

(1)拒绝指定地址禁ping

[root@localhost ~]# iptables -t filter  -s 192.168.222.100 -A INPUT -p icmp -j REJECT

2、隐含匹配

要求以特定的协议匹配作为前提,包括端口、TCP标记、ICMP类 型等条件。 端口匹配: --sport 源端口、–dport 目的端口,可以是个别端口、端口范围

允许tcp目标端口20、21通过

[root@localhost ~]# iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT

3、显示匹配

要求以“-m 扩展模块” 的形式明确指出类型包括多端口、MAC地址、IP范围、数据包状态等条件
多端口匹配:-m multiport --sports 源端口列表
-m multiport --dports 目的端口列表
IP范围匹配:-m iprange --src-range IP范围
MAC地址匹配:-m mac --mac-source MAC地址
状态匹配:-m state --state 连接状态
(1)在INPUT链中追加一条规则:目的端口列表中tcp25,80,110端口允许通过

[root@localhost ~]# iptables -t filter -A INPUT -p tcp -m multiport --dports 25,80,100 -j ACCEPT

4、状态匹配

状态匹配:-m state --state 连接状态常见的连接状态:
NEw :与任何连接无关的,还没开始连接
ESTABLISHED :响应请求或者已建立连接的,连接态
RELATED:与已有连接有相关性的(如FTP主被动模式的数据连接),衍生态,一般与ESTABLISHED配合使用INVALID :不能被识别属于哪个连接或没有任何状态

linux防火墙iptables相关推荐

  1. Linux防火墙iptables学习

    http://blog.chinaunix.net/uid-9950859-id-98277.html 要在网上传输的数据会被分成许多小的数据包,我们一旦接通了网络,会有很多数据包进入,离开,或者经过 ...

  2. linux 防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

  3. 共创Linux防火墙,Linux防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

  4. linux防火墙策略文件夹,Linux防火墙iptables的策略

    iptables策略 iptables -L #查看现有防火墙所有策略 iptables -F #清除现有防火墙策略 只允许特定流量通过,禁用其他流量 1.允许SSH流量(重要) iptables - ...

  5. linux防火墙--iptables(三)

    七.SNAT源地址转换 ·Source Network Address Translation ·修改数据包的源地址 ·仅用于nat表的POSTROUTING链 Example:局域网共享公网IP上网 ...

  6. linux 防火墙 iptables的简单使用

    linux 防火墙 iptables的简单使用 [root@web web]# uname -a Linux web 2.6.9-67.ELsmp #1 SMP Wed Nov 7 13:58:04 ...

  7. linux防火墙ip黑名单,【转】Linux防火墙(iptables)之黑名单

    iptables删除规则 So if you would like to delete second rule : iptables -D INPUT 2 ---------------------- ...

  8. linux防火墙常用控制协议,Linux防火墙iptables的基础

    一.网络访问控制 1.Linux一般都是作为服务器系统使用,对外提供一些基于网络的服务 2.通常我们都需要对服务器进行一些网络访问控制,类似防火墙的功能 3.常见的访问控制包括:哪些IP可以访问服务器 ...

  9. linux php添加防火墙,linux防火墙iptables初学者教程

    Iptables是专为Linux操作系统打造的极其灵活的防火墙工具.对Linux极客玩家和系统管理员来说,iptables非常有用.本文将向你展示如何配置最通用的Linux防火墙. 关于iptable ...

最新文章

  1. 闭关修炼——two——struts2
  2. 如何用体验赢取用户信任?让 Waymo 来教教你
  3. python装饰器-python修饰器(装饰器)以及wraps
  4. nginx 修改并隐藏版本号
  5. Visual Studio Code 中文设置教程
  6. a high quality start up vc in uk
  7. jquery(ajax)+ashx简单开发框架(原创)
  8. 自定义Visual Studio.net Extensions 开发符合ABP vnext框架代码生成插件[附源码]
  9. 三思笔记_使用反射前先三思
  10. 线程----Monitor(互斥锁)类设置超时值
  11. wacom mac驱动_MAC系统装Wacom手绘板的方法及注意事项
  12. Putty 重新启动 linux sqlserver服务
  13. 润乾数据集调用postgresql存储过程
  14. hdu 1978 How many ways
  15. Gb28181之Ps流解析H264
  16. python视频换脸下载_FaceSwap下载|Faceswap(AI视频换脸软件) v1.0官方版(附使用教程)...
  17. matlab实现振动弹簧的实时动画,Matlab实现振动弹簧的实时动画
  18. 城市规划CAD影像底图快速导入方法
  19. 基于Go语言Beego+Layui的OA办公系统
  20. Socks5代理和IP代理

热门文章

  1. vant 做表格_Vant Cell 单元格
  2. 无形胜有形——0day破解组织探秘 http://blog.csdn.net/jiangtao/archive/2002/11/30/1868.aspx
  3. 微信公众号开发--双色球开奖查询
  4. android studio实现壁纸
  5. windows电脑连接蓝牙耳机的正确步骤
  6. 通过实现Runnable接口创建,开启,休眠和中断线程。
  7. java 中数组的创建与使用
  8. 《代码大全2》第11章 变量名的力量
  9. java 大数据(多线程)和尚分馒头 整理
  10. 2022年的就业前景