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

相关推荐
johnny2333 小时前
运维管理面板:AcePanel、OpenOcta、DeepSentry
运维
青梅橘子皮3 小时前
Linux---基本指令
linux·运维·服务器
REDcker4 小时前
Linux信号机制详解 POSIX语义与内核要点 sigaction与备用栈实践
linux·运维·php
cui_ruicheng5 小时前
Linux进程间通信(三):System V IPC与共享内存
linux·运维·服务器
蚰蜒螟5 小时前
深入 Linux 内核同步机制:从 futex 到 spinlock 的完整旅程
linux·windows·microsoft
运维全栈笔记5 小时前
Linux安装配置Tomcat保姆级教程:从部署到性能调优
linux·服务器·中间件·tomcat·apache·web
dllmayday6 小时前
Linux 上用终端连接 WiFi
linux·服务器·windows
ACP广源盛139246256736 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
峥无7 小时前
Linux系统编程基石:静态库·动态库·ELF文件·进程地址空间全景图
linux·运维·服务器
用户2367829801687 小时前
从 chmod 755 说起:Unix 文件权限到底是怎么算的?
linux