linux系统: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、修改配置文件的方式添加端口


<zone>
<short>Public/<short>
<description>For use in public areas./<description>
<rule>
<source>
<port>
<accept>
/<rule>
<rule>
<source>
<port>
<accept>
/<rule>
<rule>
<source> 放通指定ip,指定端口、协议
<port>
<accept>
/<rule>
<rule> 放通任意ip访问服务器的9527端口
<port>
<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

由于CenterOS7.0以上版本并没有预装Iptables,我们需要自行安装。

  • 安装前先关闭firewall防火墙
linux系统:firewall和iptables有什么区别?


  • 安装iptables:
yum install iptables
  • 安装iptables-services:
yum install iptables-services

使用

  • 开启防火墙:
systemctl start iptables.service
  • 关闭防火墙:
systemctl stop iptables.service
  • 查看防火墙状态:
systemctl status iptables.service
  • 设置开机启动:
systemctl enable iptables.service
  • 禁用开机启动:
systemctl disable iptables.service
  • 查看filter表的几条链规则(INPUT链可以看出开放了哪些端口):
iptables -L -n

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

iptables -t 表名  规则链名 [规则号]  -p 协议名  --sport 源端口  --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连接之类的,远程连接都被拒绝了
————————————————
转载:https://blog.csdn.net/qq_36464836/article/details/79545275


分享到:


相關文章: