centos7之防火墙规则

1. 防火墙简介

我们常说的防火墙是什么呢?所谓的防火墙是一个由软件和硬件设备组合而成的、在内部网络和外部网路之间、专用网络与公共网络之间的界面上构造的保护屏障。用来保护服务器的安全以及网络安全,减少被攻击的可能,它是有一种计算机硬件和软件的结合,使Internet与intranet之间建立起一个安全网关。

2. 防火墙的分类

防火墙分为软件和硬件防火墙两大类:

  • 软件防火墙:运行在特定的计算机上,它需要客户预先安装好的计算机操作系统的支持,一般来说这台计算机就是整个网络的网关。俗称”个人防火墙“。软件防火墙就像其他的软件产品一样需要先在计算机上安装并做好配置才可以使用。
  • 硬件防火墙:传统的硬件防火墙一般至少具备三个端口,分别是接内网,外网和DMZ区,一些新的硬件防火墙往往扩展了端口,常见四端口防火墙一般将第四个端口作为配置口、管理端口。很多防火墙还可以进一步扩展端口数目。

3. centos6和centos7防火墙的区别

  1. centos6自带的防火墙是iptables,centos7自带的防火墙涉是firewall
  2. iptables用于过滤数据包,属于网络层的防火墙,firewall能够允许哪些服务可用,哪些端口号可用,属于更高级一点的防火墙。
  3. firewalld的配置文件在/etc/sysconfig/firewalld,iptables的配置文件在/etc/sysconfig/iptables

4. iptables的常用命令以及作用

4.1 查询防火墙状态

service iptables status

4.2 关闭防火墙

service iptables stop

4.3 开启防火墙

service iptables start

4.4 重启防火墙

service iptables restart

4.5 永久关闭防火墙

chkconfig iptables off

4.6 永久关闭后再开器防火墙

chkconfig iptables on

4.7 查询当前iptables的规则

iptables -L --line-numbers

4.8 开放端口号

-A INPUT -p tcp --dport 3306 -j ACCEPT

4.9 关闭端口

-A INPUT -p tcp -dport 22 -j DROP

5. firewall常用命令及作用

5.1 开启防火墙

[root@localhost ~]# systemctl start firewalld.service

5.2 关闭防火墙

[root@localhost ~]# systemctl stop firewalld.service

5.3 查看防火墙状态

[root@localhost ~]# systemctl status firewalld.service 
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

5.4 开启防火墙并开机自启

[root@localhost ~]# systemctl enable --now firewalld.service
Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service.
Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.

5.5 永久关闭防火墙

[root@localhost ~]# systemctl disable --now firewalld.service 
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

5.6 查看防火墙的版本

[root@localhost ~]# firewall-cmd --version 
0.8.0

5.7 查看防火墙开放的端口号

// 下面两条命令都可以
[root@localhost ~]# firewall-cmd --list-ports 
3306/tcp
[root@localhost ~]# firewall-cmd --permanent --zone=public --list-ports 
3306/tcp

5.8 查看防火墙是否开放了某一端口号

[root@localhost ~]# firewall-cmd --get-zones // 查看有哪些区域
block dmz drop external home internal public trusted work

[root@localhost ~]# firewall-cmd --zone=public --query-port=3306/tcp  //zone表示区域,public是公共的意思,而区域默认是上面的九个区域,--query-port表示查看3306端口号以及tcp协议是否支持
yes  // yes表示开放,若是no的话就表示没有开放

5.8.1 九个区域的介绍

网络区名称默认配置
block(限制)拒绝所有网络连接
dmz(非军事区)仅接受ssh服务连接
drop(丢弃)任何接收的网络数据包都被丢弃,没有任何回复
external(外部)出去的ipv4网络连接通过此区域伪装和转发,仅接受ssh服务连接
home(家庭)用于家庭网络,仅接受ssh、mdns、ipp-client、samba-client、dhcpv6-client服务连接
internal(内部)用于内部网络,仅接受ssh、mdns、ipp-client、ssamba-client、dhcpv6-client服务连接
public(公共)在公共区域内使用,仅接受ssh或dhcpv6-client服务连接,为firewalld的默认区域
trusted(信任)可接受所有的网络连接
wark(工作)用于工作区,仅接受ssh、ipp-client或dhcpv6-clinet服务连接

5.9 查找默认区域

[root@localhost ~]# firewall-cmd --get-default-zone 
public  //默认区域

5.10 修改默认区域

[root@localhost ~]# firewall-cmd --set-default-zone=work  //修改默认区域为work

5.11 列出所有区域配置

[root@localhost ~]# firewall-cmd --list-all-zones 
block
  target: %%REJECT%%
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: 
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

dmz
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

drop
  target: DROP
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: 
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

external
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
  ports: 
  protocols: 
  masquerade: yes
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

home
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: cockpit dhcpv6-client mdns samba-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

internal
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: cockpit dhcpv6-client mdns samba-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 3306/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

trusted
  target: ACCEPT
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: 
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

work
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

5.12 列出活动区域

[root@localhost ~]# firewall-cmd --get-active-zones 
public
  interfaces: ens160

// Interfaces (接口)是系统中的硬件和虚拟的网络适配器的名字,所有的活动的接口都将被分配到区域,要么是默认的区域,要么是用户指定的一个区域。但是,一个接口不能被分配给多于一个的区域。

5.13 查看一个区域的配置信息

[root@localhost ~]# firewall-cmd --zone=public --list-all 
public (active)  // 活动的区域
  target: default  // 默认启动的区域
  icmp-block-inversion: no
  interfaces: ens160  // 列出此区域上关联的接口
  sources:   // 列出这个区域的源。现在这里什么都没有,如果这里有内容,它们应该是这样的格式
  services: cockpit dhcpv6-client ssh  // 列出允许通过这个防火墙的服务。你可以通过运行 firewall-cmd --get-services 得到一个防火墙预定义服务的详细列表
  ports: 3306/tcp  // 列出允许通过这个防火墙的目标端口
  protocols: // 协议值可以是一个协议 ID 数字,或者一个协议名
  masquerade: no  // 表示这个区域是否允许 IP 伪装。如果允许,它将允许 IP 转发,它可以让你的计算机作为一个路由器。
  forward-ports:   // 列出转发的端口
  source-ports:   // 
  icmp-blocks:   // 阻塞的 icmp 流量的黑名单
  rich rules:  // 在一个区域中优先处理的高级配置。

5.14 对外开放指定的端口号

[root@localhost ~]# firewall-cmd --add-port=3306/tcp --permanent  //这里写要添加的端口号/协议,--permanent为永久生效,如果不写,重启之后就会失效。

// 开放之后需要使用下面的命令重新加载使其立即生效
[root@localhost ~]# firewall-cmd --reload

5.15 查看ftp服务是否支持

[root@localhost ~]# firewall-cmd --query-service ftp
no

5.16 永久开放ftp服务

[root@localhost ~]# firewall-cmd --add-service=ftp --permanent

5.17 永久移除ftp服务

[root@localhost ~]# firewall-cmd --remove-service=ftp --permanent

5.18 拒绝所有包

[root@localhost ~]# firewall-cmd --panic-on

5.19 取消拒绝状态

[root@localhost ~]# firewall-cmd --panic-off 

5.20 查看是否拒绝

[root@localhost ~]# firewall-cmd --query-panic

5.21 删除加入的3306防火墙规则

[root@localhost ~]# firewall-cmd --remove-port=3306/tcp --permanent 
success

[root@localhost ~]# firewall-cmd --reload 
success

[root@localhost ~]# firewall-cmd --query-port=3306/tcp
no  //删除成功

5.22 查看指定接口所属区域

[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens160 
public

5.23 将服务器的6666端口号转发到另一个服务器的8888端口号

[root@localhost ~]# firewall-cmd --add-forward-port=6666:porto=tcp:toaddr=另一台服务器的IP地址:toport=8888  //如果使用的是udp协议进行通讯将tcp改为udp即可。

[root@localhost ~]# firewall-cmd --reload  //重新加载防火墙规则使其生效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值