Linux运维--iptables防火墙的简单使用与示例

Linux运维–iptables防火墙的简单使用与示例

目录

前言

就”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.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在这里插入图片描述

1.6 保存

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

##保存
iptables-save

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

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

##在使用“iptables”命令中另一种运行方式:
##我们可以先查看“iptables”工具的目录如图3
##whereis 命令从英文看出他的含义是在哪?查找关联工具目录
whereis iptables

1.7 查看规则链

查看所有规则如图4:
iptables --list在这里插入图片描述

##在图4我们可以看到
filter表中有三个链INPUT,OUTPUT,FORWARD,这表是用来过滤数据包的。

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

iptables -t filter -L INPUT

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

在这里插入图片描述

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

iptables -t filter -L OUTPUT

1.7.3 列出nat表三条链的规则

iptables -t nat -L -n
在这里插入图片描述

##语法
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

在这里插入图片描述

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。

在这里插入图片描述
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

炫彩@之星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值