iptables 使用与简单示例

1 篇文章 0 订阅
1 篇文章 0 订阅

目录

前言

一,iptabls基础命令

1.1 启动

1.2 停止

1.3 重新启动

1.4 重新加载启动

1.5 帮助命令

1.6 保存

1.7 查看规则链

1.7.1 查看filter表规则链的INPUT(可以理解为“进入”规则)

1.7.2 查看filter表规则链的OUTPUT(可以理解为“出去”规则)

1.7.3 列出nat表三条链的规则

1.7.4 清除所有已制定的规则

1.7.5 删除所有使用者自定义chain

1.7.6 将所有的 chain 的计数与流量统计都清零

1.7.7 删除INPUT链

1.8 查看iptables是否生效

二,常用命令与讲解

2.1 开放80端口

2.2 开放22端口

2.3 封单个IP

2.4 替换指定的规则

2.5 网卡规则

2.6 封单个段IP

2.7 允许特定的IP访问

#语法

2.8 NAT规则

2.8.1 端口射映

2.8.2 删除nat规则

2.9 规则的导出、导入(备份与还原)

三,总结


前言

就”firewall“而言“iptables”算的上是老古董了。

iptables 是 Linux 管理员用来设置 IPv4 数据包过滤条件和 NAT 的命令行工具。

在这里需要注意的是“iptables可以阻止所有我指定网络服务器的流量,还是可以通过 IPv6 进行的外部攻击”,有两种办法来解决:

1.用“iptables”来禁用ipv6。

2.通过ip6tables来设置规则。

好啦开始正文吧! 简单看完你还不会就再看看!实在还不会就去看官方介绍!

这里我将介绍iptables v1.4.21如何配置 Filter 表防火墙配置 NAT 表防火墙

一,iptabls基础命令

1.1 启动
service iptables start

如果你不是老版的linux话使用上面命令会提示使用“systemctl”命令来启动如图1

systemctl start iptables
图1
1.2 停止
##老版
service iptables stop

##新版
systemctl stop iptables
1.3 重新启动
##老版
service iptables restart

##新版
systemctl restart iptables
1.4 重新加载启动

##新版
systemctl reload iptables
1.5 帮助命令

话说我们实在不记得怎么使用语法我就寄出帮助大法!如图2 它讲解了怎么使用和语法

iptables -h
图2
1.6 保存

这里我们在修改规则后最后的一步操作保存

service iptables save

##保存
iptables-save

#保存防火墙策略规则及数据包计数器信息
iptables-save -c

#仅保存防火墙策略中指定的表单内容
iptables-save -t filter

##------------------------------------------------扩展---------------------------------------------

##在使用“iptables”命令中另一种运行方式:

##我们可以先查看“iptables”工具的目录如图3

## whereis 命令从英文看出他的含义是在哪?查找关联工具目录

whereis iptables

图3
1.7 查看规则链

查看所有规则如图4:

iptables --list
图4

##在图4我们可以看到

filter表中有三个链INPUT,OUTPUT,FORWARD,这表是用来过滤数据包的。

1.7.1 查看filter表规则链的INPUT(可以理解为“进入”规则)
iptables -t filter -L INPUT

#我们可看出图4中的INPUT链与如图5中一样,这是因为在iptables默认是filter表。

图5
1.7.2 查看filter表规则链的OUTPUT(可以理解为“出去”规则)
iptables -t filter -L OUTPUT
1.7.3 列出nat表三条链的规则
iptables -t nat -L -n

如图6

图6

##语法

iptables [-t tables] [-L] [-nv]

-t :后面接 table ,例如 nat 或 filter (不使用”-t“默认使用 filter表)。
-L :列出某个 table 的所有链或某个链的规则。
-n :直接显示 IP。
-v :列出更多的信息,包括通过该规则的数据包总位数、相关的网络接口等。

1.7.4 清除所有已制定的规则
iptables -F
1.7.5 删除所有使用者自定义chain
##删除fliter表中ACCOUNRT链
iptables -X  ACCOUNRT
1.7.6 将所有的 chain 的计数与流量统计都清零
iptables -Z
1.7.7 删除INPUT链

假设删除第1行规则:

iptables -D INPUT 1
1.8 查看iptables是否生效
iptables -L

二,常用命令与讲解

2.1 开放80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
service iptables save
##保存
iptables-save
2.2 开放22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

##保存

service iptables save

##保存
iptables-save

##查看配置文件可以看到如图7前面放行端口。

vim /etc/sysconfig/iptables.save
图7
2.3 封单个IP
iptables -I INPUT -s 192.168.1.199 -j DROP
2.4 替换指定的规则

假设我需要替换filter表中的第2行规则

iptables -R INPUT 2 -s 192.168.1.188 -j REJECT
2.5 网卡规则

这里我以eth0网卡为例拒绝172.20.10.3主机访问我的eth0网卡

iptables -A INPUT -s 172.20.10.3 -i eth0 -j REJECT

这里A主机(172.20.10.3)访问B主机(192.168.179.143)在没有设置规则情况下A主机pingB主机如图8可以正常ping。

图8

B主机开始设置规则:

iptables -A INPUT -s 172.20.10.3 -i eth0 -j REJECT

##保存
iptables-save
2.6 封单个段IP
iptables -I INPUT -s 192.168.1.0/24 -j DROP
2.7 允许特定的IP访问
iptables -I INPUT -s 192.168.1.199 -p TCP –dport 3389 -j ACCEPT

这里允许特定192.168.1.199IP访问3389端口

#语法

iptables [-AI chain] [-io interface] [-p tcp,udp] [-s 来源 IP] [--sport 端口范围] [-d 目标 IP] [--dport 端口范围] -j [ACCEPT,DROP,REJECT]

 -A, --append :用来添加“INPUT或者“OUTPUT”规则

 -I               :  表示在指定的链中插入一条规则,可以指定编号;

 -i               :   数据包从哪个网卡进入   如如:-i eth0 表示eth0网卡 

-o, --out-interface         : 数据包从哪个网卡出去

--sport, --source-port    :sport表示来源端口 

--dport, --destination-port :dport表示目的端口

--sport:限制来源的端口号
--dport:限制目标的端口号

-s : 表示能访问的ip 如“-s 192.168.1.199” 就是这个IP能进入

-d :目标 IP

-j :如-j ACCEPT表示接受(进入),-j REJECT表示拒绝访问并回送一个数据包,

        -j DROP 拒绝所有人访问服务器

-R :替换指定的规则

2.8 NAT规则
2.8.1 端口射映

这里我们把本地8080端口射映出去变成8081端口

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8080 -j DNAT --to-destination 127.0.0.1:8081
iptables -t nat -A POSTROUTING -p tcp -m tcp --dport 8080 -j SNAT --to-source 127.0.0.1
2.8.2 删除nat规则
ptables -t nat -D POSTROUTING 1
2.9 规则的导出、导入(备份与还原)

有时候需要把iptables规则导出在其他主机使用

这里导出在我的/home/demo目录里(导出/etc/sysconfig/iptables文件也是一样)

iptables-save > /home/demo/iptables_backup.txt

在还原到其他同主机我们先通过scp 复制到主机“/home/demo2”目录上

iptables-restore < /home/demo2/iptables_backup.txt

再重启即可生效

systemctl restart iptables

三,总结

想到了在慢慢编辑,写的有点匆忙。

  • 29
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用 Ansible 管理 iptables 规则可以帮助你在多个主机上自动化配置和管理规则。下面是一个简单的步骤指南: 1. 安装 Ansible:首先,确保你已在管理主机上安装了 Ansible。你可以从官方网站 (https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html) 下载和安装适合你操作系统的版本。 2. 创建 Ansible Inventory 文件:在 Ansible 的 Inventory 文件中,列出你想要管理的所有主机。你可以使用 IP 地址或主机名来标识主机。创建一个名为 `hosts` 的文件,并将主机信息添加进去。例如: ``` [web_servers] 192.168.1.10 192.168.1.11 ``` 3. 创建 Ansible Playbook:Ansible 使用 Playbook 来定义任务和配置。创建一个名为 `iptables.yml` 的文件,并添加以下内容: ```yaml - name: Configure iptables hosts: web_servers become: true tasks: - name: Allow SSH iptables: chain: INPUT protocol: tcp destination_port: 22 jump: ACCEPT - name: Allow HTTP iptables: chain: INPUT protocol: tcp destination_port: 80 jump: ACCEPT # 添加更多规则... ``` 上述 Playbook 定义了两个任务:允许 SSH 和 HTTP 流量通过防火墙。你可以根据需要添加或修改其他规则。 4. 运行 Ansible Playbook:现在,你可以运行 Ansible Playbook 来配置 iptables 规则。在命令行中执行以下命令: ``` ansible-playbook -i hosts iptables.yml ``` Ansible 将连接到指定的主机,并应用 Playbook 中定义的规则。 请注意,上述示例仅是一个简单示例,你可以根据需要添加更多规则和任务。了解更多关于 Ansible 的详细用法和功能,请参阅 Ansible 官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值