防火墙规则-iptables四表五链

2 篇文章 0 订阅

iptables

作用:防止别人进入你的电脑,攻击你的电脑

软件防火墙:

​ Linux系统的防火墙功能由内核实现

实际上是一个数据过滤机制

包过滤机制是netfilter, 管理工具是iptables。

iptables是一个软件,实际不是防火墙,只是一个给netfilter传递参数的中间人,查看netfilter的参数。

netfilter

位于linux内核中的包过滤防火墙功能体系

称为linux防火墙的“内核态”

iptables

位于/sbin/iptables,是用来管理防火墙的工具。

为防火墙体系提供过滤规则/策略,决定如何过滤或处理到达防火墙主机的数据包。

称为防火墙的”用户态“。

规则表规则链(四表五链)

表是规则链的集合

raw:确定是否对数据包进行状态追踪

​ 如何确定曾经是否连接?

​ 三次握手中,未连接过的syn = 1

mangle:为数据设置标记 =》往数据包中插入标记

nat:修改数据包中的源,目标ip地址或端口

filter:确定是否放行该数据包

规则链是规则的集合

INPUT :处理入站数据包

OUTPUT:处理出站数据包

FORWARD:处理转发数据包

POSTROUTING:在进行路由选择后处理数据包

PREROUTING:在进行路由选择前处理数据包

INPUT链用于处理访问防火墙本机的数据,OUTPUT链用于处理防火墙本机访问其他主机的数据
FORWARD链用于处理需要经过防火墙转发的数据包,源地址、目标地址均不是防火墙本机
POSTROUTING、PREROUTING链分别用于在确定路由后、确定路由前对数据包进行处理
在“主机防火墙”中,主要针对服务器本机进出的数据实施控制, 多以INPUT、OUTPUT链的应用为主
在“网络防火墙”中,主要针对数据转发实施控制,特别是防火墙主机作为网关使用时的情况 ,因此多以FORWARD、PREROUTING、POSTROUTING链的应用为主

规则链内的匹配顺序

按顺序依次进行检查,找到相匹配的规则即停止(LOG策略会有例外)

若在该链内找不到匹配规则,则按照该链的默认策略处理

练习:
1.禁止192.168.0.205的主机访问的本机的80端口
2.禁止192.168.0.205的主机访问的本机的3306端口
3.禁止所有的主机ping通本机,但是本机可以ping通别的主机
4.允许192.168.0.205的主机访问的本机的22端口
5.默认策略设置为禁止访问

[root@sanchuang ~]# cat iptables.sh
#!/bin/bash

#清除filter表的规则,表里的链里的规则都会被清空
iptables -F

#设置默认策略
iptables -P INPUT DROP

#禁用web
iptables -A INPUT -s 192.168.0.205 -p tcp --dport 80 -j DROP

#MYSQL
iptables -A INPUT -s 192.168.0.205 -p tcp --dport 3306 -j DROP

#ping
iptables -A INPUT -p icmp --icmp-type 8 -j DROP
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT

#ssh
iptables -A INPUT -s 192.168.0.205 -p tcp --dport 22 -j ACCEPT

[root@sanchuang ~]#
[root@sanchuang ~]# iptables -L -n --line-num -v
-n 以数字的形式显示 number
–line-num 显示规则的编号
-v 显示匹配到的数据包的个数和字节数
Chain INPUT (policy DROP 132 packets, 16358 bytes)
num pkts bytes target prot opt in out source destination
1 15 760 DROP tcp – * * 192.168.0.205 0.0.0.0/0 tcp dpt:80
2 0 0 DROP tcp – * * 192.168.0.205 0.0.0.0/0 tcp dpt:3306
3 4 336 DROP icmp – * * 0.0.0.0/0 0.0.0.0/0 icmptype 8
4 0 0 ACCEPT icmp – * * 0.0.0.0/0 0.0.0.0/0 icmptype 0
5 59 3592 ACCEPT tcp – * * 192.168.0.205 0.0.0.0/0 tcp dpt:22

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 49 packets, 8188 bytes)
num pkts bytes target prot opt in out source destination
[root@sanchuang ~]#

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GZ6lcUst-1597976766069)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1597478810814.png)]

设置规则内容:

-A:在链尾追加一条新的规则
-I:在指定位置(或链首)插入一条新的规则
-R:修改、替换指定位置或内容的规则
-P:设置指定链的默认策略

列表查看规则

-L:列表查看各条规则信息
–line-numbers:查看规则信息时显示规则的行号
-n:以数字形式显示IP地址、端口等信息
-v:显示数据包个数、字节数等详细信息

清除规则

-D:删除指定位置或内容的规则
-F:清空规则链内的所有规则

自定义规则链

-N:创建一条新的规则链
-X:删除自定义的规则链

流程:

  1. 新建
  2. 加规则
  3. 引用
其他

-h:查看iptables命令的使用帮助

设置匹配数据包的条件

  • 通用条件匹配
    • 可直接使用,不依赖于其他的条件或扩展模块
    • 包括网络协议、IP地址、网络接口等匹配方式
  • 隐含条件匹配
  • 显式条件匹配
通用条件匹配
协议匹配
  • 使用“-p 协议名”的形式
  • 协议名可使用在“/etc/protocols”文件中定义的名称
  • 常用的协议包括tcp、udp、icmp等
地址匹配
  • 使用“-s 源地址”、 “-d 目标地址”的形式
  • 地址可以是单个IP地址、网络地址(带掩码长度)
接口匹配
  • 使用“-i 网络接口名”、 “-o 网络接口名”的形式,分别对应接收、发送数据包的网络接口
显示条件匹配
数据包状态显示
  • 使用“-m state” 结合 --state 状态类型的形式
  • 同时表示多种状态时以逗号“,”分隔
  • 常见的数据包状态包括:NEW、ESTABLISHED、RELATED
接口匹配
  • 使用“-i 网络接口名”、 “-o 网络接口名”的形式,分别对应接收、发送数据包的网络接口
显示条件匹配
数据包状态显示
  • 使用“-m state” 结合 --state 状态类型的形式
  • 同时表示多种状态时以逗号“,”分隔
  • 常见的数据包状态包括:NEW、ESTABLISHED、RELATED

lsmod 查看内核加载了哪些模块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值