firewall和iptables对比介绍

firewall

1、Introduction 

在具体介绍zone之前介绍几个相关的名词,因为如果不理解这几个名词zone就无从入手。
  • target:默认行为,有四个可选值:default、ACCEPT、%%REJECT%%、DROP,如果不设置默认为default

  • service:这个在前面学生已经给大家解释过了,他表示一个服务

  • port:端口,使用port可以不通过service而直接对端口进行设置

  • interface:接口,可以理解为网卡

  • source:源地址,可以是ip地址也可以是ip地址段

  • icmp-block:icmp报文阻塞,可以按照icmp类型进行设置

  • masquerade:ip地址伪装,也就是按照源网卡地址进行NAT转发

  • forward-port:端口转发

  • rule:自定义规则

查看状态:firewall-cmd –stat 
重启:service firewalld restart 
iptables查看状态 service iptables status 

2、系统配置目录(建议不要改) 

目录中存放定义好的网络服务和端口参数,系统参数,不能修改。

对于一个接受到的请求具体使用哪个zone,firewalld是通过三种方法来判断的:

  • 1、source,也就是源地址
  • 2、interface,接收请求的网卡
  • 3、etc/firewalld/firewalld.conf中配置的默认zone

3、用户配置目录

[root@xxx]# vim /etc/firewalld/
firewalld.conf lockdown-whitelist.xml
helpers/ services/
icmptypes/ zones/
ipsets/

4、命令行使用

#添加端口,允许访问,永久有效
firewall-cmd --permanent --add-port=9527/tcp
firewall-cmd [--permanent] [--zone=zone] --list-sources
firewall-cmd [--permanent] [--zone=zone] --query-source=source[/mask]
firewall-cmd [--permanent] [--zone=zone] --add-source=source[/mask]
firewall-cmd [--zone=zone] --change-source=source[/mask]
firewall-cmd [--permanent] [--zone=zone] --remove-source=source[/mask]
#firewall-cmd 参数介绍
#--list-sources:用于列出指定zone的所有绑定的source地址
#--query-source:用于查询指定zone是否跟指定source地址进行了绑定
#--add-source:用于将一个source地址绑定到指定的zone(只可绑定一次,第二次绑定到不同的zone会报错)
#--change-source:用于改变source地址所绑定的zone,如果原来没有绑定则进行绑定,这样就跟--add-source的作用一样了
#--remove-source:用于删除source地址跟zone的绑定

 

查看当前所有起作用的zone firewall-cmd –get-active-zones 要将在80端口接收到tcp请求转发到8080端口可以使用下面的命令 firewall-cmd –add-forward-port=port=80:proto=tcp:toport=8080

firewall-cmd [–permanent] [–zone=zone] –list-ports

5、修改配置文件的方式添加端口

 
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas.</description>
<rule family="ipv4">
<source address="122.10.70.234"/>
<port protocol="udp" port="514"/>
<accept/>
</rule>
<rule family="ipv4">
<source address="123.60.255.14"/>
<port protocol="tcp" port="10050-10051"/>
<accept/>
</rule>
<rule family="ipv4">
<source address="192.249.87.114"/> 放通指定ip,指定端口、协议
<port protocol="tcp" port="80"/>
<accept/>
</rule>
<rule family="ipv4"> 放通任意ip访问服务器的9527端口
<port protocol="tcp" port="9527"/>
<accept/>
</rule>
</zone>

  • 1、添加需要的规则,开放通源ip为122.10.70.234,端口514,协议tcp;
  • 2、开放通源ip为123.60.255.14,端口10050-10051,协议tcp;/3、开放通源ip为任意,端口9527,协议tcp;
  • 3、在不改变状态的条件下重新加载防火墙: firewall-cmd –reload
  • 4、设置某个ip 访问某个服务 firewall-cmd –permanent –zone=public –add-rich-rule=”rule family=”ipv4” source address=”192.168.0.4/24” service name=”http” accept”

iptables

iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。

 
iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作
--------------------------------
表名包括:
raw:高级功能,如:网址过滤。
mangle:数据包修改(QOS),用于实现服务质量。
net:地址转换,用于网关路由器。
filter:包过滤,用于防火墙规则。
-------------------------------
规则链名包括:
INPUT链:处理输入数据包。
OUTPUT链:处理输出数据包。
PORWARD链:处理转发数据包。
PREROUTING链:用于目标地址转换(DNAT)。
POSTOUTING链:用于源地址转换(SNAT)。
-------------------------------
动作包括:
accept:接收数据包。
DROP:丢弃数据包。
REDIRECT:重定向、映射、透明代理。
SNAT:源地址转换。
DNAT:目标地址转换。
MASQUERADE:IP伪装(NAT),用于ADSL。
LOG:日志记录。
-------------------------------
iptables -A INPUT -p tcp --dport 22 -j ACCEPT #允许访问22端k
iptables -A OUTPUT -j ACCEPT #允许所有本机向外的访问
iptables -A INPUT -j reject #禁止其他未允许的规则访问
iptables -L -n -v #查看规则
-------------------------------
格式:iptables [-t table] COMMAND chain CRETIRIA -j ACTION
-t table :3个filter nat mangle
COMMAND:定义如何对规则进行管理
chain:指定你接下来的规则到底是在哪个链上操作的,当定义策略的时候,是可以省略的
CRETIRIA:指定匹配标准
-j ACTION :指定如何进行处理
-P :设置默认策略的(设定默认门是关着的还是开着的)
默认策略一般只有两种
iptables -P INPUT (DROP|ACCEPT) 默认是关的/默认是开的
比如:
iptables -P INPUT DROP 这就把默认规则给拒绝了。并且没有定义哪个动作,所以关于外界连接的所有规则包括Xshell连接之类的,远程连接都被拒绝了
-------------------------------







  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
火墙(Firewall)和iptables都是网络安全的重要组件,但它们的作用域和具体实现有所不同。 **Firewall**:通常指的是系统级别的防火墙,是一个软件或硬件设备,用于监控和控制进出网络的数据包。它可以设置为阻止、限制或允许特定类型的流量,比如基于IP地址、端口、协议等规则。firewall可以提供更高级别的安全策略管理,包括状态检测、应用层代理等功能,并且能够应用于各种操作系统和网络环境中。 **iptables**:它是Linux内核中的一个模块化防火墙工具,也称为Netfilter,是firewall的一种具体实现。iptables主要负责处理用户空间的网络包过滤规则,允许用户自定义规则来决定哪些数据包应该进入或离开内部网络。它是动态的,可以根据需要添加、修改或删除规则,对TCP/IP流量进行实时检查和过滤。 区别总结: 1. **范围**:firewall涵盖广义概念,而iptables属于其中一种具体的防火墙技术。 2. **灵活性**:iptables提供了一种命令行界面,让用户可以直接操作网络包过滤规则,适合灵活配置。 3. **功能**:虽然iptables本身只能做基础的包过滤,但它作为netfilter的一部分,可以与其他模块配合实现更多高级功能。 4. **平台**:firewall可以在多个平台上存在不同实现,而iptables专属于Linux环境。 相关问题: 1. 防火墙的基本作用是什么? 2. iptables如何实现包过滤? 3. 在Linux系统中,除了iptables还有哪些常见的防火墙工具?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

海盗巨人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值