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连接之类的,远程连接都被拒绝了
-------------------------------







猜你喜欢

转载自blog.csdn.net/qq_36464836/article/details/79545275