我的编程空间,编程开发者的网络收藏夹
学习永远不晚

命令(3)====ip tables

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

命令(3)====ip tables

1、防火墙基础

linux防火墙主要工作在网络层,针对TCP/IP数据包实施过滤和限制(包过滤防火墙或网络层防火墙),linux防火墙

是基于内核编码实现,具有非常稳定的性能和高效率

(1)netfilter:包过滤防火墙:包过滤防火墙是用一个软件查看所流经的数据包的包头(header),由此决定整个包的命运。

它可能会决定丢弃(DROP)这个包,可能会接受(ACCEPT)这个包(让这个包通过),也可能执行其它更复杂的动作。

工作于网络层,能对IP数据报进行首部检查。例如:IP源地址,目的地址,源端口和目的端口等。

内核态防火墙体系

(2) iptables:指的是用于管理linux防火墙的命令程序

用户态防火墙体系

(3)iptables的表链结构

 表

1)filter表:用来对数据包进行过滤,根据规则确定如何处理一个数据包

filter表对应的内核模块是iptable_filter,表内包含3个链

INPUT FORWARD OUTPUT

2)    net表:nat(Network Address Translation)网络地址转换

主要用来修改IP地址、端口号等信息

net表对应的内核模块是iptable_nat

PREROUTING POSTROUTING OUTPUT

3) mangle表:mangle表用来修改数据包的TOS服务类型、TTL生存周期、或者为数据包设置Mark标记

以实现流量×××、策略路由等高级应用

mangle表对应的内核模块为iptable_mangle,表内含5个链

PREROUTING POSTROUTING INPUT OUTPUT FORWARD

4)   raw表:主要用来决定是否对数据包进行状态跟踪

raw表对应的内核模块为iptable_raw,表内包含两个链

OUTPUT PREROUTING

 链

1) INPUT链:  当收到访问防火墙本机地址的数据包(入站)时,应用此链中规则

2)OUTPUT链:  当防火墙本机向外发送数据包(出站)时,应用此链中规则

3)FORWARD链: 当接收到需要通过防火墙中转发给其他地址的数据包(转发)时,应用此链中规则

4)PREROUTING链:在对数据包做路由选择之前,应用此链中规则

5)POSTROUTING链:在对数据包做路由器选择之后,应用此链中规则

       4表5链

INPUT OUTPUT 主要用在“主机型防火墙”主要针对服务器本身进行保护

FORWARD PREROUTING POSTROUTING 多用在“网络型防火墙”中,可以做linux防火墙的网管服务器

在公司内网与互联网之间进行安全控制

规则之间的顺序

raw mangle nat filter 

1)入站数据流向:来自外界的数据包到达防火墙后,首先被PREROUTING链处理然后进行路由选择

(判断该数据包应该发往何处),如果数据包的目标地址是防火墙本机,那么

内核将其传递给INPUT链处理

2)转发数据流向:如果数据包的目标地址是其它外部地址,则内核将其传递给FORWARD链进行处理

(允许转发或拦截、丢弃),最后交给POSTROUTING(是否修改数据包地址等)进行处理

3)出站数据流向:首先OUTPUT链处理,然后进行路由选择,再交给POSTROUTING链

(是否修改数据包的地址等),进行处理

    4)每条链内的规则(匹配即停止)如果第一条通过了后续的规则将失效

2、编写防火墙规则

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

ACCEPT 允许数据包通过

DROP   丢弃数据包

REJECT 拒绝数据包,必要时会给数据端发送一个相应信息

LOG    在/var/log/messages 文件中记录日志信息,然后将数据包传递给下一条规则

  因为LOG只是一种辅助动作,所以“匹配即停止”,对LOG是个特例,还会继续匹配

iptables 命令的常用的几个管理选项

-A 在指定链的末尾添加一条新的规则

-D 删除指定链中的规则,可指定序号或具体内容

-I 在指定链中插入一条新的规则,未指定序号默认作为第一条规则

-R 修改、替换

-L 列出规则  list

-F 清空规则

-P 设置指定链的默认规则

-n 使用数字形式显示输出结果

-v 查看规则列表显示详细信息

-h 查看命令帮助信息

--line-numbers 查看规则列表时,同时显示规则在链中的序号

1、其它主机无法ping通主机

iptables -t filter -I INPUT -p icmp -j REJECT

2、在INPUT链末尾添加一条允许tcp协议通过的规则

iptables -t filter -A INPUT -p tcp  -j ACCEPT

3、在filter表INPUT链添加位于表中排序第一的规则和排序第二的规则

iptables -t filter -I INPUT   -p udp  -j ACCEPT

iptables -t filter -I INPUT 2 -p icmp -j ACCEPT

4、查看规则列表

iptables -L  INPUT --line-numbers

iptables -n -L  INPUT     (数据多用这个减少解析时间)

5、删除清空列表

iptables -D INPUT 3    #删除filter表INPUT链的第3条信息

iptables -F INPUT      #清空file表INPUT链中的所有信息

iptables -F            #清空filter表

iptables -t nat -F     #清空nat表

iptables -t mangle -F  #清空mangle表

6、设置默认策略

filter表FORWARD默认策略为丢弃,OUTPUT链默认策略为允许 

iptables -t filter -P FORWARD DROP

iptables -P OUTPUT ACCEPT

7、通用匹配

协议匹配

若要丢弃通过icmp协议访问防火墙本机的数据包,允许转发经过防火墙出icmp以外的的数据包

iptables -I INPUT -p icmp -j DROP

iptables -A FORWARD ! -P icmp -j ACCEPT

地址匹配

若要拒绝转发源地址为192.168.1.11的数据,允许转发源地址位于192.168.7.0/24网段的数据

iptables -A FORWARD -s 192.168.1.11 -j REJECT

iptables -A FORWARD -s 192.168.7.0/24 -j ACCEPT

若检测到来自某个网段(10.20.30.0/24)的频繁扫描添加防火墙进行封锁

iptables -I INPUT -s 10.20.30.0/24 -j DROP

iptables -I FORWARD -s 10.20.30.0/24 -j DROP

网络接口匹配

若要丢弃外网接口(eth1)访问防火墙本机且源地址为私有地址的数据包

iptables -A INPUT -i eth1 -s 10.0.0.0/8  -j DROP

iptables -A INPUT -i eth1 -s 172.16.0.0/12  -j DROP

iptables -A INPUT -i eth1 -s 192.168.0.0/16  -j DROP

端口匹配

若要允许为网段192.168.4.0/24转发DNS查询数据包

iptables -A FORWARD -s 192.168.4.0/24 -p udp --dport 53 -j ACCEPT

iptables -A FORWARD -d 192.168.4.0/24 -p udp --dport 53 -j ACCEPT

构建vsftpd服务器时,若要开放20.21端口,以及用于被动模式的端口范围24500~24600

iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT

iptables -A INPUT -p tcp --dport 24500:24600 -j ACCEPT

ICMP类型匹配                                      #icmp-type检查icmp协议

iptables -A INPUT -p icmp --icmp-type 8 -j DROP   #拒绝其他请求但是自己可以ping其它机器

iptables -A INPUT -p icmp --icmp-type 0 -j DROP   #我ping其它的主机返回来的信息我接收

iptables -A INPUT -p icmp --icmp-type 3 -j DROP   #对方不存在返回值我接收

iptables -A INPUT -p icmp -j DROP                 #禁止所有机器ping

显示匹配

若要允许本机开放25.80.110.143端口 

iptables -A INPUT -p tcp -m multiport --dport 25,80,110,143 -j ACCEPT

IP范围匹配

若要禁止转发源IP地址位于192.168.4.21与192.168.4.28之间的tcp数据包

iptables -A FORWARD -p tcp -m iprange -class="lazy" data-src-range 192.168.4.21-192.168.4.28 -j REJECT

MAC地址匹配 -m 模块

若要根据MAC地址封锁主机,禁止其访问本机的任何应用 

iptables -A INPUT -m mac --mac-source 00:0c:29:c0:55:3f -DROP

状态匹配

若要禁止转发与正常TCP连接无关的非--syn请求的数据包

iptables -A FORWARD -m state --state NEW -p tcp !--syn -j DROP #无正常连接的状态是NEW

#NEW状态模块的非syn选项

若只开放本机的web服务(80端口)

iptables -I INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT  #插入行首一条将有关联的包放行

iptables -A INPUT -p tcp --dport 80 -j ACCEPT                    #紧随其后添加一条允许80端口开放

iptables -P INPUT DROP                               #当前两条规则都没匹配上执行默认规则丢弃数据包


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

命令(3)====ip tables

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

命令(3)====ip tables

1、防火墙基础 linux防火墙主要工作在网络层,针对TCP/IP数据包实施过滤和限制(包过滤防火墙或网络层防火墙),linux防火墙 是基于内核编码实现,具有非常稳定的性能和高效率(1)netfilter:包过滤防火墙:包过滤防火墙是用一
2023-01-31

Linux命令(3):date命令

date命令功能说明    显示或修改系统时间与日期,只有超级用户才能使用date命令设置时间。一般用户只能查看。用法如下:  date [OPTION]... [+FORMAT]:显示date命令的选项及说明-s--set:设置系统时间-
2023-01-31

linux命令基础(3)

find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。find的使用格式如下:find <指定目录> <指定条件> <指定动作>- <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。- <指定条件>: 所要搜索的文
2023-01-31

Linux基础命令(3)

十二 lsof命令简介lsof(list open files) 是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以 如传输控制协议 (TCP)
2023-01-31

3-Nginx 命令详解

一、Nginx命令详解Nginx    启动nginx服务Nginx  -v 查看版本信息Nginx  -V 查看编译信息Nginx  -t 检查配置文件Nginx  -T 检查配置文件,并打印详细信息Nginx  -s 发送信号:  s
2023-01-31

华为命令集3

【RouterA相关配置】1.      创建(进入)E0.1子接口[RouterA]inter Ethernet 0.12.      在E0.1子接口里封装vlan10[RouterA-Ethernet0.1]vlan-type dot
2023-01-31

iptables命令语法(3)

参数 --limit-burst范例 iptables -A INPUT -m limit --limit-burst 5说明 用来比对瞬间大量封包的数量,上面的例子是用来比对一次同时涌入的封包是否超过 5 个(这是默认值),超过此上限的封
2023-01-31

docker-3 基础命令

创建镜像创建镜像的方法有三种:基于已有的容器创建基于本地模板导入基于dockerfile基于已有的容器创建主要使用docker commit 命令,命令格式:docker commit [OPTIONS] CONTAINER [REPOSI
2023-01-31

Redis-3. Redis高级命令

高级命令三:主从复制1、主从复制:目的是实现读写分离·Master可以拥有多个slave·多个slave可以连接同一个Master外,还可以连接其他的slave·主从复制不会阻塞master,在同步数据时,master可以继续处理clien
2023-01-31

网络常用命令3

网络常用命令:1.最基本,最常用的,测试物理网络的 ping 192.168.10.88 -t ,参数-t是等待用户去中断测试 2.查看DNS、IP、Mac等 A.Win98:winipcfg B.Win2000以上:Ipconfig /a
2023-01-31

HP-UX基础命令3

crontab -l 查看schedule列表crontab -e 编辑schedule列表   5    *    *    *    *    /opt/psb/bin/restart_logserv.sh               
2023-01-31

1-3、ping 和tracert 命令

C:\>ping 192.168.0.1Pinging 192.168.0.1 with 32 bytes of data:Reply from 192.168.0.1: bytes=32 time=12ms TTL=64Reply fro
2023-01-31

CISCO配置命令大全(3)

6、配置PPP:   PPP(Point-to-Point Protocol)是SLIP(Serial Line IP protocol)的继承者,它提供了跨过同步和异步电路实现路由器到路由器(router-to-router)和主机到网络
2023-01-31

Saltstack远程执行命令(3)

Saltstack的一个比较突出的优势是具备执行远程命令的功能,可以帮助运维人员完成集中化的操作平台(批量执行服务器命令)命令格式:salt '<操作目标>' <方法>[参数]实例:查看minion主机的内存使用情况salt 'SN2013
2023-01-31

3. Powershell关键命令介绍

3. Powershell关键命令介绍 我们将在这介绍三种简单的但是很关键的命令,这些命令能够让你的 Powershell之旅更加顺利。 当你学习的时候,请记住一条军规,那就是Powershell的动词-名词(Verb-noun)结构, 就
2023-01-31

华为交换机命令(3)

华为交换机命令\07-stp命令.pdf 华为交换机命令\08-安全命令.pdf 华为交换机命令\09-网络协议命令.pdf
2023-01-31

思科路由器命令3

16:静态路由的配置 配置路由器A的主机名和接口参数 router>enable router#configure terminal router(conf)#hostname routerA routerA(conf)#interface
2023-01-31

CISCO配置命令大全 (3)

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录