linux的firewall配置命令

firewall介绍

所谓“防火墙”是指一种将内部网和公众访问网(如Internet)分开的方法,它实际上是一种建立在现代通信网络技术和信息安全技术基础上的应用性安全技术,隔离技术。越来越多地应用于专用网络与公用网络的互联环境之中。
防火墙主要是借助硬件和软件的作用于内部和外部网络的环境间产生一种保护的屏障,从而实现对计算机不安全网络因素的阻断。只有在防火墙同意情况下,用户才能够进入计算机内,如果不同意就会被阻挡于外。
防火墙是在两个网络通讯时执行的一种访问控制尺度,能最大限度阻止网络中的黑客访问自己的网络。是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合。它是不同网络或网络安全域之间信息的唯一出入口,能根据企业的安全政策控制(允许、拒绝、监测)出入网络的信息流,且本身具有较强的抗攻击能力。它是提供信息安全服务,实现网络和信息安全的基础设施。在逻辑上,防火墙是一个分离器,一个限制器,也是一个分析器,有效地监控了内部网和Internet之间的任何活动,保证了内部网络的安全。

一.在麒麟服务器系统V10-sp1里有几种防火墙共存:firewalld、iptables、ebtables。
防火墙是通过内核netfilter模块实现的功能,而以上三个服务只是保存防火墙策略的一个工具,默认使用firewalld服务,不过底层调用的命令仍然是iptables。firewalld跟iptables比起来,不好的地方是每个服务都需要去设置才能放行,因为默认是拒绝。
在这里插入图片描述
iptables介绍

iptables的流程
在这里插入图片描述

firewall的优势:
1)firewalld可以动态修改单条规则。
2)firewalld在使用上要比iptables人性化很多,即使不明白“四张表五条链”而且对TCP/IP协议也不理解也可以实现大部分功能。
firewall的特点:
firewall使用区域(zone)的方式管理流入/流出数据,默认有9个zone。
block dmz drop external home internal public trusted work
区域功能
在这里插入图片描述
在这里插入图片描述
注:FirewallD的默认区域是public。

firewalld默认提供了九个zone配置文件:block.xml、dmz.xml、drop.xml、external.xml、 home.xml、internal.xml、public.xml、trusted.xml、work.xml,
他们都保存在“/usr/lib/firewalld/zones/”目录下。
默认情况下,在/etc/firewalld/zones下面只有一个public.xml。如果给另外一个zone做一些改动,并永久保存,那么会自动生成对应的配置文件.
比如给work zone增加一个端口:
firewall-cmd --permanent --zone=work --add-port=1000/tcp
此时就会生成一个work.xml的配置文件

firewalld的配置方法主要有三种:firewall-config、firewall-cmd和直接编辑xml文件,
其中 firewall-config是图形化工具,firewall-cmd是命令行工具。
而对于linux来说大家应该更习惯使用命令行方式的操作,所以 firewall-config我们就不给大家介绍了。
firewalld默认配置文件有两个:
/usr/lib/firewalld/ (系统配置,尽量不要修改)
/etc/firewalld/ (用户配置地址)
在 /usr/lib/firewalld/services/ 目录中,还保存了另外一类配置文件,每个文件对应一项具体的网络服务。
1)通过服务名字来管理规则更加人性化。
2)通过服务来组织端口分组的模式更加高效。

更改服务的默认端口
默认http的端口80改为8080,但想通过服务的方式操作防火墙。
[root@www ~]# cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services/
[root@www ~]# vim /etc/firewalld/services/ftp.xml
把80改为8080
[root@www ~]# vim /etc/firewalld/zones/public.xml
public为默认zone,所以要编辑这个,增加一行,以下内容

[root@www ~]# firewall-cmd --reload

二、防火墙的管理
[root@www ~]# systemctl start firewalld
[root@www ~]# systemctl enable firewalld
[root@www ~]# systemctl status firewalld
[root@www ~]# firewall-cmd --state
[root@www ~]# systemctl stop firewalld
[root@www ~]# systemctl disable firewalld
[root@www ~]# systemctl mask firewalld.service
[root@www ~]# systemctl unmask firewalld.service

三、防火墙的设定
[root@www ~]# firewall-cmd --get-active-zones 查看活动区域信息
[root@www ~]# firewall-cmd --get-zone-of-interface=ens33 查看ens33接口所属区域
[root@www ~]# firewall-cmd --get-services 列出所有服务
[root@www ~]# firewall-cmd --get-zones 列出所有的zone
[root@www ~]# firewall-cmd --panic-on 丢弃
[root@www ~]# firewall-cmd --panic-off 取消丢弃
[root@www ~]# firewall-cmd --query-panic 查询丢弃状态

[root@www ~]# firewall-cmd --complete-reload 重启防火墙
[root@www ~]# firewall-cmd --reload 重新加载防火墙策略
注意:第二个无需断开连接,就是firewalld特性之一动态添加规则,第一个需要断开连接,类似重启服务
[root@www ~]# firewall-cmd --get-default-zone 显示默认zone
[root@www ~]# firewall-cmd --set-default-zone=work 设定默认zone
[root@www ~]# firewall-cmd --add-interface=ens33 添加接口
[root@www ~]# firewall-cmd --add-service=dhcp 添加服务
[root@www ~]# firewall-cmd --add-port=80/tcp
注意:永久生效再加上–permanent 然后reload防火墙,在指定端口的时候要指定协议。

[root@www ~]# firewall-cmd --remove-port=80/tcp 删除端口
[root@www ~]# firewall-cmd --remove-service=dhcp 删除服务
[root@www ~]# firewall-cmd --list-all 列出活跃zone的规则
[root@www ~]# firewall-cmd --list-source 列出源IP
[root@www ~]# firewall-cmd --list-source-ports 列出源端口
[root@www ~]# firewall-cmd --list-ports 列出端口
[root@www ~]# firewall-cmd --list-services 列出活跃zone下的服务
[root@www ~]# firewall-cmd --add-icmp-block=echo-request 禁止ping

firewall 的端口转发
–add-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][:toaddr=address[/mask]] 添加端口转发
–remove-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][:toaddr=address[/mask]] 删除端口转发
例1.访问本地的80端口转发到本地的8080端口
[root@www ~]# firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
例2.访问本地的80端口转发到192.168.0.66的8080端口
[root@www ~]# firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.0.66
例3.删除
[root@www ~]# firewall-cmd --remove-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.0.66

firewall富规则

富规则语法:
rule
[source]
[destination]
service|port|protocol|icmp-block|icmp-type|masquerade|forward-port|source-port
[log]
[audit]
[accept|reject|drop|mark]

rule [family=“ipv4|ipv6”]
source [not] address=“address[/mask]”|mac=“mac-address”
destination [not] address=“address[/mask]”
service name=“service name”
port port=“port value” protocol=“tcp|udp”
protocol value=“protocol value”
forward-port port=“port value” protocol=“tcp|udp” to-port=“port value” to-addr=“address”

例1.限定192.168.0.66地址的主机使用tcp协议链接192.168.0.2
[root@www ~]# firewall-cmd --add-rich-rule="rule family=ipv4 source address=192.168.0.66 destination address=192.168.0.2 protocol value=tcp drop"
例2.允许172.16.1.0/24能访问111端口
[root@www ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.1.0/24 port port=111 protocol=tcp accept

富语言规则相关命令
–add-rich-rule=‘’ …在指定的区域添加一条富语言规则
–remove-rich-rule=‘’ …在指定的区删除一条富语言规则
–query-rich-rule=‘’ …找到规则返回0,找不到返回1
–list-rich-rules …列出指定区里的所有富语言规则

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值