当前位置:   article > 正文

CentOS7服务器的第一道屏障防火墙firewall的使用_centos firewall icmp-blocks:

centos firewall icmp-blocks:

防火墙是系统的第一道防线,其作用是防止非法用户的进入,是内部网和外部网(Internet)之间的保护屏障。在我们构建服务器应用的时候首先应该想到的是安全,不能让用户随意的获取服务器的资源甚至系统的用户数据。这种安全事件频频发生我们更应该注重安全,安全也是未来互联网行业必须重视的重中之重。

防火墙应用的现状

如果大家直接购买阿里云的ECS或者腾讯云的云服务器可能很少关注防火墙,DDoS攻击等问题。因为服务器提供商同时为我们提供了这项业务,对于服务器允许的网络请求类型,接口等我们都可以通过服务器提供商提供的可视化的界面进行配置。这种严格的配置在生产环境中比较多见,对于部分用户为了方便会设置路由规则为0.0.0.0/0这样就会存在潜在的风险,表示你的任何端口都可以被外部的任何设备访问,这其实是很危险的一件事。可能大家会说自己在服务器上搭建的mysql服务器是有密码的,其实mysql的密码校验真的不安全。还有大部分人为了操作方便给数据库授权了所有ip的访问权限,这就更危险了。就等于你暴漏了一个保险柜在大街上人人都可以去试一下。

安全案例(自己搭建redis)

有这样一个案例。自己在云服务器上搭建redis服务的情况。默认情况下redis的配置中有

bind 127.0.0.1
  • 1

这样的内部回环,所以外部服务器是访问不了的。但是如果为了外部网络可以访问注释bind后redis就完全是个暴露的在任何地方都可以随便存取的服务。关于redis安全会在下一篇文章中专门来说。

开启firewall

开启firewall的命令是

systemctl start firewalld.service
  • 1

如果提醒服务被mask则需要执行下边的命令

systemctl unmask firewalld.service
  • 1

然后start就没有问题了

配置防火墙

如果你之前没有使用firewall在上边步骤中刚开启你会发现你的80端口等都不可访问了,这时候就需要配置防火墙来开放相应的端口。

有firewall情况下的网络请求

如果服务器有网络接口 eth0和lo那么网络请求的基本流向是
在这里插入图片描述
数据包从eth0或者lo进入其中的一个zone然后进入内核处理。

什么是zone

zone其实最简单的理解是定制的过滤规则的划分。根据我们对请求的不同信任度来使用不同的zone(规则集合)。例如上图中eth0网卡的请求需要进过第二个zone。而且每一个网卡interface所对应的zone只能有一个,这需要我们设置。我们来看看firewall默认有哪些zone:

 firewall-cmd --get-zones
work drop internal external trusted home dmz public block
  • 1
  • 2

默认情况是有这些zone

查看zone的特征

如果要查看zone的特征,主要是一些过滤规则,可以使用以下的命令

firewall-cmd --list-all-zones
  • 1

这样会返回所有的zone的特征,我们拿一个来看

public
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: dhcpv6-client ssh
  ports: 3306/tcp 80/tcp 6626/tcp
  protocols:
  masquerade: no
  forward-ports:
  sourceports:
  icmp-blocks:
  rich rules:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
target

可用于接受(accept)、拒绝(reject)或丢弃(drop)与任何规则(rule)(端口(port)、服务(etc)等)不匹配的每个包。在可信区域中使用ACCEPT target接收不匹配任何规则的每个包。在block zone中使用%%REJECT%%目标来拒绝(使用默认的firewalld拒绝类型)不匹配任何规则的每个包。DROP target用于drop zone中删除不匹配任何规则的每个包。如果没有指定目标,则将拒绝不匹配任何规则的每个包。

icmp-block-inversion

是一个可选标记,在区域配置中只能使用一次。此标志反转icmp块处理。区域中只接受启用的ICMP类型,而拒绝所有其他类型。

interfaces

是一个可选的标记,可以多次使用。它可用于将接口绑定到zone。对于NetworkManager管理的接口,您不需要这样做,因为NetworkManager自动将接口绑定到区域。

sources

是一个可选的标记,可以多次使用。它可用于将源地址、地址范围、MAC地址或ipset绑定到一个区域。源条目具有以下格式之一:

address="address[/mask]"
mac="MAC"
ipset="ipset"
  • 1
  • 2
  • 3
services

是一个可选的标记,可以多次使用,以启用多个服务条目。服务条目格式如下:

name="string"
  • 1

如果不知道有哪些services可用可以使用以下命令

 firewall-cmd --get-services
 
RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client ceph ceph-mon dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mosh mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster radius rpc-bind rsyncd samba samba-client sane smtp smtps snmp snmptrap squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server
  • 1
  • 2
  • 3
ports

是一个可选标记,可多次用于具有多个端口条目。端口条目的所有属性都是强制性的:

port="portid[-portid]"     #定义端口或者端口范围
protocol="tcp|udp|sctp|dccp"    #定义协议类型
  • 1
  • 2

配置端口可访问

firewall-cmd --zone==public --add-port=80/tcp --permanent                                                                                                                                                            
  • 1

这里是在public zone下配置添加port特性为运行80端口的tcp请求。参数–permanent是为了在重启的情况下该规则任然生效,也就是持久化配置

为什么配置到public zone下呢?因为默认的zone就是public,可以使用以下命令查看

firewall-cmd --get-default-zone
  • 1

在设置完路由规则后需要重新加载

firewall-cmd --reload
  • 1

更多的选项和使用方法大家可以查看firewall-cmd的help

firewall-cmd --h
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/184260
推荐阅读
相关标签
  

闽ICP备14008679号