linux系统防火墙之iptables

版权声明:原创作品,请勿转载!

简介:iptables防火墙属于软件防火墙,一般用来做简单的NAT映射以及流入流出的流量限制,生产环境数据量大的情况下建议选择硬件防火墙配置规则以及做NAT映射。

一、四表五链

1.四表

filter表、nat表、mangle表(不常用)、raw表

1.1 filter表

主要用于数据包的过滤,配置的访问规则在这里面,包括INPUT、OUTPUT、FORWARD链

INPUT:主要用于处理流入本机的数据包

OUTPUT:主要用于处理流出本机的数据包

FORWARD:主要用于处理本机转发到其他地址的数据包

1.2 nat表

主要用于网络地址转换,包括OUTPUT、PREROUTING、POSTROUTING链

OUTPUT:主要用于源地址转换,即SNAT

PREROUTING:主要用于目标地址转换,即DNAT

POSTROUTING:主要用于源地址转换,即SNAT

SNAT:局域网-->NAT-->公网

DNAT:外网----->DNAT-->局域网

剩下的两个表不做详细介绍

2.五链

INPUT链、OUTPUT链、PREROUNTING链、FORWARD链、POSTROUTING链

二、实战案例

1.基础命令

1.1 查看防火墙规则

iptables -nL

1.2 清空防火墙默认的规则

iptables -F

iptables -X

iptables -Z

2.生产案例

2.1 禁止10.0.0.31访问10.0.0.7

root@web01 \~# iptables -I INPUT -s 10.0.0.31 -j DROP

root@web01 \~# iptables -nL

Chain INPUT (policy ACCEPT)

target prot opt source destination

DROP all -- 10.0.0.31 0.0.0.0/0

Chain FORWARD (policy ACCEPT)

target prot opt source destination

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

root@web01 \~#

测试验证

2.2 删除iptables规则

使用-D 选择对应的表,最后加上规则的序号

root@web01 \~# iptables -nL --line #查看规则的序号

Chain INPUT (policy ACCEPT)

num target prot opt source destination

1 DROP all -- 10.0.0.31 0.0.0.0/0

Chain FORWARD (policy ACCEPT)

num target prot opt source destination

Chain OUTPUT (policy ACCEPT)

num target prot opt source destination

root@web01 \~# iptables -D INPUT 1 #删除规则

root@web01 \~# iptables -nL --line

Chain INPUT (policy ACCEPT)

num target prot opt source destination

Chain FORWARD (policy ACCEPT)

num target prot opt source destination

Chain OUTPUT (policy ACCEPT)

num target prot opt source destination

测试验证

2.3 限制网段访问

root@web01 \~# iptables -I INPUT -s 172.16.1.0/24 -j DROP

root@web01 \~# iptables -nL

Chain INPUT (policy ACCEPT)

target prot opt source destination

DROP all -- 172.16.1.0/24 0.0.0.0/0

Chain FORWARD (policy ACCEPT)

target prot opt source destination

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

测试验证

2.4 限制10.0.0.31不能访问10.0.0.7的80端口

root@web01 \~# iptables -I INPUT -s 10.0.0.31 -p tcp --dport 80 -j DROP

root@web01 \~# iptables -nL

Chain INPUT (policy ACCEPT)

target prot opt source destination

DROP tcp -- 10.0.0.31 0.0.0.0/0 tcp dpt:80

Chain FORWARD (policy ACCEPT)

target prot opt source destination

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

测试验证

2.5 多端口配置

root@web01 \~# iptables -I INPUT -p tcp -m multiport --dport 80,443 -j ACCEPT

root@web01 \~# iptables -nL

Chain INPUT (policy ACCEPT)

target prot opt source destination

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443

DROP tcp -- 10.0.0.31 0.0.0.0/0 tcp dpt:80

Chain FORWARD (policy ACCEPT)

target prot opt source destination

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

2.6 使用iptables实现共享上网

将来源是172.16.1.0/24网段的IP都转换为10.0.0.31去访问

root@web01 \~# iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j SNAT --to-source 10.0.0.31

2.7 ip地址映射

将发往 10.0.0.31 这个 IP 的 9000 端口(TCP 协议) 的所有网络请求,转发(映射) 到内网的 172.16.1.7 主机的 22 端口

root@web01 \~# iptables -t nat -A PREROUTING -d 10.0.0.31 -p tcp --dport 9000 -j DNAT --to-destination 172.16.1.7:22

相关推荐
皓月盈江10 分钟前
Hexo博客Butterfly5.7.0主题网站信息:本站访客数和本站总浏览量的数据一直加载不显示的解决方法
linux·hexo·butterfly·busuanzi·vercount·本站访客数·本站总浏览量
程序猿老A12 分钟前
云服务器怎么配置视频存储?
运维·服务器·音视频
H.莓飛12 分钟前
【数据结构】堆_OJ题
linux·数据结构·算法
程序员老陆17 分钟前
Docker 命令全景指南:从镜像构建到生产运维
运维·docker·容器
硅基手札21 分钟前
【linux内核专栏 09】内核模块与 kbuild
linux·架构
流浪00128 分钟前
Linux系统篇43——线程(八) 线程的数据不一致问题,从 ticket-- 的非原子性说起
linux·操作系统·线程·线程安全·锁
Ivanqhz29 分钟前
BURG(自底向上重写生成器)
服务器·数据库·人工智能·深度学习·算法
Είναι η κοπέλα42 分钟前
WSL2 部署 AI 开发环境:内核级 Linux + GPU 直通
linux·运维·人工智能
其实防守也摸鱼1 小时前
网安自测题:掌握核心知识点的实用练习
linux·运维·服务器·前端·数据库·sql·xss
木白CPP1 小时前
[QNX] 深入理解 Resource Manager 接口设计
linux·服务器·数据库