linux防火墙

智数先锋说
• 阅读 209

防火墙

iptables 是建立在 netfilter 架构基础上的一个包过滤管理工具。
用户通过 /sbin/iptables 命令来管理 iptables,和 route 命令相同,iptables 命令的效果在重新启动以后就不再有效。

可以使用 /etc/rc.d/init.d/iptables save 将当前 iptables 规则写到 /etc/sysconfig/iptables 文件中,那么每次开机时/etc/rc.d/init.d/iptables start 命令会使 /etc/sysconfig/iptables 中的规则生效

iptables构成

iptables 是由几张表所组成,每张表又由几条链组成,每张表负责不同的封包处理机制,每条链负责不同的封包走向,具体采取的策略由链里的规则设定

  • filter 表: 用于过滤包

    • INPUT 链: 存在于 filter 表,主要用于处理进入本机的包
    • OUTPUT 链: 存在于 filter 表,主要用于处理离开本机的包
    • FORWARD 链: 存在于 fileter 表,主要用于处理穿过本机的包
  • Nat 表 : 用于做地址转换

    • PREROUTING 链: 存在于 nat 表,主要用于在包刚刚到达防火墙时改变目的地址(DNAT)
    • POSTROUTING 链: 存在于 nat 表,主要用于在包就要离开防火墙之前修改来源地址(SNAT)
    • OUTPUT链:存在于nat表,主要用于改变本地产生的包的目的地址
  • mangle 表: 允许改变包的内容来进一步矫正包,主要用于给数据包打标记,然后根据标记去操作哪些包

<!-- more -->

iptebles 配置文件在/etc/sysconfig/iptables

#配置保存命令
service iptables save
# 启动
service iptables start
# 停止
service iptables stop
# 重启
service iptables restart

iptables 的配置

1、iptables 的标准语法

# table 指定表名
# NAT 和一般的 mangle 用 -t 参数指定要操作哪个表。filter 是默认的表,如果没有 -t 参数,就默认对filter 表操作
# chain 链名
# rules 规则
# target 动作如何进行
iptables [-t table] 命令 [chain] [rules] [-j target]

如:
设置 INPUT 规则,将所有基于 icmp 协议的数据包全部丢弃
iptables -A INPUT -p icmp -j DROP
对链的操作的option有
-L 列出当前的 iptables 的规则
-vnL 列出所有 iptables 相关规则的详细参数
-A 追加一条规则(默认添加道最后) 
-I 插入一条规则
-D 删除一条规则
-P 设置某条链的默认规则
-F 清空规则
如:追加一条 INPUT 记录,将源目的地址为 200.200.200.200 的数据包丢弃
iptables -A INPUT -s 200.200.200.200 -j DROP

规则的操作命令
按网络接口匹配
-i eth0 匹配数据进入的网络端口
-o eth0 匹配数据流出的网络端口
按来源目的地址匹配
-s ip 匹配来源 IP
-d ip 匹配目的 IP
例:
在 INPUT 链里追加一条规则,所有从 eth0 口进入的源地址为 200.200.200.200 的数据包全部丢弃
iptables -A INPUT -i eth0 –s 200.200.200.200 –j DROP

在 INPUT 链里追加一条规则,所有源地址为 200.200.200.200 的基于 tcp 协议的数据包允许通过 按来源目的端口匹配
--sport 来源端口
--dport 目的端口
例:
在 INPUT 链里追加一条规则,所有基于 TCP 的源端口为 21 号端口的数据包,全部丢弃。
iptables -A INPUT -p tcp -sport 21 -j DROP

动作处理 
-j ACCEPT 允许封包通过而不拦截 
-j DROP 不允许封包通过
https://zhhll.icu/2021/linux/基础/防火墙/

本文由mdnice多平台发布

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
Centos7中使用iptables,docker容器中实例,外网端口无法访问
因微信小程序需要https的域名访问方式,阿里云无法通过IP和端口绑定域名,只能通过IP进行绑定,故如果不想直接使用443端口,就只能进行端口映射了。这里我使用iptables。由于centos7默认是使用firewall作为防火墙,下面介绍如何将系统的防火墙设置为iptables。停止firewall systemctlstopfire
Stella981 Stella981
3年前
Service IP 原理
ServiceClusterIP是一个虚拟IP,是由Kubernetes节点上的iptables规则管理的。可以通过 iptablessave 命令打印出当前节点的iptables规则,因为输出较多,这里只截取与 httpdsvc ClusterIP 10.99.229.179 相关的信息:!(https:/
Wesley13 Wesley13
3年前
IPTABLES简介
iptables防火墙工作原理简介:iptables防火墙工作在网络层,针对TCP/IP数据包实施过滤和限制,iptables防火墙基于内核编码实现,具有非常稳定的性能和高效率;   iptables属于“用户态”的防火墙管理体系。!(https://oscimg.oschina.net/oscnet/691dc3c1cdd75580e336
Stella981 Stella981
3年前
Linux系统修改防火墙配置
修改Linux系统防火墙配置需要修改/etc/sysconfig/iptables这个文件1vim/etc/sysconfig/iptables在vim编辑器,会看到下面的内容!复制代码(https://oscimg.oschina.net/oscnet/96dc4efbd628b761870c0da1f389c912
Stella981 Stella981
3年前
Linux防火墙之介绍
Linux提供了一个非常优秀的防火墙工具,即Netfilter/iptables(http://www.netfilter.org/)。它完全是免费的,并且可以在一台低配置的老机器上很好地运行。Netfilter/iptables功能强大,使用灵活,并且可以对流入和流出的信息进行细化控制。事实上,每个主要的Linux版本中都有不同的防火墙软件套件,ipt
Stella981 Stella981
3年前
Linux iptables命令详解
iptables是Linux防火墙系统的重要组成部分,iptables的主要功能是实现对网络数据包进出设备及转发的控制。当数据包需要进入设备、从设备中流出或者由该设备转发、路由时,都可以使用iptables进行控制。下面良许小编就将从几个方面对于Linuxiptables命令进行详述,希望对大家有所帮助。!Linux命令(htt
Stella981 Stella981
3年前
CentOS 6.5~7.x防火墙操作命令
网上搜集的防火墙操作命令,很实用CentOS6.5防火墙操作命令配置filter表防火墙清除预设表filter中的所有规则链的规则iptablesF清除预设表filter中使用者自定链中的规则iptablesX保存iptables配置servic
Stella981 Stella981
3年前
Centos7 firewall 基本操作
Centos7默认启用firewall替代原来的iptables。firewall与iptables一个明显的区别是:firewall属于动态防火墙,它拥有运行时配置和永久配置选项,它支持允许服务或者应用程序直接添加防火墙规则的接口,而iptables属于静态防火墙,任何操作都需要重启iptables服务。这里整理一些常用的f
Stella981 Stella981
3年前
Linux防火墙之iptables基础
通过为防火墙提供有关对来自某个源,到某个目的地或具有特定协议类型的信息包要执行操作的指令及规则控制信息包的过滤。通过使用Netfilter/iptables系统提供的特殊命令iptables建立这些规则,并将其添加到内核空间的特定信息包过滤表内的链中。添加,除去及编辑规则命令的一般语法如下:$iptables\ttable\comman
Stella981 Stella981
3年前
Linux iptables 设置
编辑/etc/sysconfig/iptables然后运行/sbin/serviceiptablesrestartnetstatanp|grep80|grepLISTEN防火墙规则只有在iptables服务运行的时候才能被激活。要手工启动服务,使用以下命令:/sbin/servic
iptables- MARK与CONNMARK目标
MARK和CONNMARK是Linux中iptables防火墙规则中的两个重要目标,用于标记数据包以及连接。