RHEL7-Firewall

1.简介

Linux服务器的功能是非常强大的。不仅可以作为正常的服务器、路由器,也可以作为防火墙使用。在RHEL7之前的系统中,防火墙一般指的就是iptables,防火墙的功能是通过iptables调用//lib/modules/2.6.32-358.el6.x86_64/kernel/net/netfilter来实现的。但是在RHEL7中,有三个能实现防火墙功能的“防火墙”:iptables、firewall、ebtables。

在RHEL7系统中,Redhat建议使用的是firewall这个防火墙,其它两个建议关闭。因为三个防火墙之间相互冲突,并且在安装系统时默认都是开启状态的。

例:关闭并锁定iptables、ebtables防火墙


[[email protected] ~]# systemctl stop  iptabes

[[email protected] ~]# systemctl disable  iptabes

[[email protected] ~]# systemctl mask  iptabes

ln -s ‘/dev/null‘ ‘/etc/systemd/system/iptabes.service‘

[[email protected] ~]# systemctl stop  ebtables

[[email protected] ~]# systemctl disable  ebtables

[[email protected] ~]# systemctl mask  ebtables

ln -s ‘/dev/null‘  ‘/etc/systemd/system/ebtables.service‘

----------------------------------------------------查看状态-----------------------------------------------------

[[email protected] ~]# systemctl status  iptables

iptables.service - IPv4 firewall with  iptables

Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled)

Active: inactive (dead)

[[email protected] ~]# systemctl status  ebtables

ebtables.service

Loaded: masked (/dev/null)

Active: inactive (dead)

May 12 11:15:34 freeit.example.com  systemd[1]: Stopped Ethernet Bridge Filte....

Hint: Some lines were ellipsized, use -l  to show in full.

其它两个防火墙关闭之后,下面,我们就开始介绍firewall的强大功能。

2.Firewall图形化

2.1.图形化介绍

例1:打开图形化界面

输入命令firewall-config,打开图形化,如下:

  • configuration

此处有两个状态,如下:

  1. Runtime:默认状态。运行时,为当前状态,此状态下的firewall设置只是当前生效,下    次重启失效;
  2. Permanent:下次启动状态,此状态下的配置下次重启生效,为永久状态,设置不对当前生效。

注:

  • Permanent下设置的状态虽然下次重启生效,但是可以设置让其加载到当前状态生效,如下:

点击菜单【Options】---选择【Reload Firewall】即可。

  • 在实验环境及真实生产环境中,建议使用此状态设置firewall,不要使用Runtime。
  • Zone

区域,下包含多种策略:block、dmz、drop、external、home、internal、public、trusted、work。缺省采用public策略。可以针对不同的情况设置不同的策略。举个简单例子:实际生活中,我们使用一台电脑上班、在家上网,而一些公司要求严格,上班期间不能聊QQ、看视频等,但是休息期间可以,而使用iptables的话,就可能会出现上班添加策略,休息期间删除策略的情况。但是,使用firewall却可以针对不同的情况使用不同的策略,上班可以使用work策略,下班可以使用nowork策略。这样就可以简单、自动化。针对这些策略,我们只介绍以下一个:

  1. block:所有策略拒绝,有提示。相当于iptables中的REJECT选项;
  2. drop:所有策略拒绝,无提示。相当于iptables中的DROP选项;
  3. trusted:默认都允许,相当于iptables中的ACCEPT选项;
  4. public:缺省使用策略,规则只允许services的dhcpc6-client和ssh。
  5. u  策略选项

此选项值介绍以下几种

  • Services:针对服务的策略设置。缺省的public策略只允许dhcpc6-client和ssh两个服务。其他策略此项缺省都拒绝。

  • Ports:端口选项。为自定义项,缺省没有任何选项,要自己添加允许被访问的端口或端口范围;

  • Masquerading:地址伪装,仅支持IPV4,打开此选项将开启IPV4地址转发功能;

  • Port Forwarding:端口转发,缺省无任何设置,同样为自定义选项。仅转发Ipv4;

  • ICMP Filter:icmp过滤,支持以下设置(缺省无设置,即拒绝所有);

  • Rich Rules:富规则,可以做比services更加颗粒化的设置,缺省无任何设置,自定义项;

  • Interface:接口选项,缺省无设置,需自定义;

  • Sources:源,可以添加源地址。缺省无设置,需自定义;

2.2.图形化设置

下面,针对以上的几个策略选项举例并做简单的设置。

首先把Runting(当前状态)状态的firewall配置调用到Permanent状态,并点击【options】-->【Reload Firewall】。

2.2.1.services

例1:安装http服务,创建索引,真机访问http


[[email protected] ~]# yum -y install  httpd

……

[[email protected] ~]# cd /var/www/html/

[[email protected] html]# touch index.html

[[email protected] html]# echo Hello! how  are you! >index.html

[[email protected] html]# cat index.html

Hello!  how are you!

[[email protected] html]# systemctl restart  httpd

[[email protected] html]# systemctl enable  httpd

ln -s  ‘/usr/lib/systemd/system/httpd.service‘ ‘/etc/systemd/system/multi-user.target.wants/httpd.service‘

本机访问

如上:可以访问。

桥接的真机访问查看:

如上:由于firewall策略原因,访问失败。

查看缺省策略

如上:firewall的缺省策略public的Services选项的http没有勾选,所以,默认拒绝所有访问本机http服务的主机。下面,勾选http服务,再次验证:

注:

  • 勾选之后,不要忘记点击【options】--【ReloadFirewalld】,把在Permanent的设置调用到当前状态;
  • Firewall的设置与iptables不同,Firewall设置完后不用保存,但是上个操作一定要做。

设置完后再次验证

如上:访问成功。

2.2.2.Rich Rules

Services选项尽管可以控制对本机服务的访问,但是,对象是针对所有,并没有针对单独的主机。如果想针对单独的主机,可以通过Rich Rules来实现。

例2:只允许同网段的11主机访问本机的ssh服务,禁止其它主机的访问

去掉Public策略的services选项的ssh服务的勾选。然后选择Rich Rules:

点击【Add】添加策略

  • 【Family】选择【ipv4】
  • 【Element】选择【service】à【ssh】
  • 【Action】选择【accept】
  • 【source】填写允许的主机的地址

设置完成后点击【OK】

点击【options】--【Reload Firewalld】,让设置当前生效。

验证:

  • 桥接的真实机使用putty访问

访问失败。

  • 使用同网段的11主机访问

[[email protected] ~]# ssh -o  StrictHostKeyChecking=no [email protected]

Warning: Permanently added ‘192.168.10.10‘  (ECDSA) to the list of known hosts.

[email protected]‘s password:

Last login: Tue May 12 12:53:14 2015

[[email protected] ~]# ifconfig eth0 |grep  inet |cut -d " " -f10

192.168.10.10

fe80::20c:29ff:fe70:f064

访问成功。

2.2.3.Interface

例3:当同网段的主机通过本机的eth0接口访问时,通过home设置的策略,允许访问ssh

然后加载到当前状态。

访问测试:

分别用桥接的真实机和同网段的另一台机子实验。两台主机都能连接,则说明了是经由了home策略的验证。因为缺省的public策略,我们取消了services的ssh,只允许同网段的11主机可以连接。

桥接的真机通过ssh连接:

①输入要连接的主机地址;

②点击打开

连接成功。

同网段的11主机访问


[[email protected] ~]# ifconfig eth0 |grep inet  |cut -d " " -f10

192.168.10.11

fe80::20c:29ff:fe02:1ce7

[[email protected] ~]# ssh -o  StrictHostKeyChecking=no [email protected]

[email protected]‘s password:

Last login: Tue May 12 15:56:19 2015 from  192.168.10.1

[[email protected] ~]# ifconfig eth0 |grep inet  |cut -d " " -f10

192.168.10.10

fe80::20c:29ff:fe70:f064

连接成功。

2.2.4.sources

此选项可以让我们针对指定的源地址设置策略。

例4:设置,让源为桥接的真机的http连接,通过home策略验证,能够正常访问,源为同网段的11主机通过缺省public验证,不能正常访问(此例需去除上个实验的配置,以免产生影响)。

home策略设置

①zone选择【home】策略

②services项勾选【http】

①zone选择【home】策略

②选择【sources】

③添加桥接的真机的地址

Public策略设置

①zone选择【public】策略

②选择【services】

③去除【http】的勾选

①zone选择【public】策略

②选择【sources】

③添加同网段的11主机

测试:

真机访问http

同网段11主机访问http

3.Firewall 命令行

命令:

firewall-cmd

3.1.查看策略

例1:查看命令支持参数


[[email protected] ~]# firewall-cmd --

--add-forward-port=                   --lockdown-off

--add-icmp-block=                     --lockdown-on

--add-interface=                      --panic-off

--add-lockdown-whitelist-command=     --panic-on

--add-lockdown-whitelist-context=     --permanent

--add-lockdown-whitelist-uid=         --query-forward-port=

--add-lockdown-whitelist-user=        --query-icmp-block=

--add-masquerade                      --query-interface=

--add-port=                           --query-lockdown

--add-rich-rule                        --query-lockdown-whitelist-command=

--add-service=                         --query-lockdown-whitelist-context=

--add-source=                         --query-lockdown-whitelist-uid=

--change-interface=                    --query-lockdown-whitelist-user=

--change-source=                      --query-masquerade

--change-zone=                        --query-panic

--complete-reload                     --query-port=

--direct                               --query-rich-rule

--get-active-zones                    --query-service=

--get-default-zone                    --query-source=

--get-icmptypes                       --reload

--get-services                        --remove-forward-port=

--get-zone-of-interface=              --remove-icmp-block=

--get-zones                            --remove-interface=

--help                                 --remove-lockdown-whitelist-command=

--list-all                            --remove-lockdown-whitelist-context=

--list-all-zones                       --remove-lockdown-whitelist-uid=

--list-forward-ports                   --remove-lockdown-whitelist-user=

--list-icmp-blocks                    --remove-masquerade

--list-interfaces                     --remove-port=

--list-lockdown-whitelist-commands    --remove-rich-rule

--list-lockdown-whitelist-contexts    --remove-service=

--list-lockdown-whitelist-uids        --remove-source=

--list-lockdown-whitelist-users       --set-default-zone=

--list-ports                          --state

--list-rich-rules                     --version

--list-services                       --zone=

--list-sources

例2:查看缺省zone--public的缺省策略


[[email protected] ~]# firewall-cmd --list-all

public (default, active)

interfaces: eth0

sources: 192.168.10.11

//上个实验我们设置的策略,源为同网段11主机不能正常访问http服务。

services: dhcpv6-client ssh

ports:

masquerade: no

forward-ports:

icmp-blocks:

rich rules:

例3:查看所有zone的缺省策略


[[email protected] ~]# firewall-cmd  --list-all-zones

block

interfaces:

sources:

services:

ports:

masquerade: no

forward-ports:

icmp-blocks:

rich rules:

dmz

interfaces:

sources:

services: ssh

ports:

masquerade: no

forward-ports:

icmp-blocks:

rich rules:

……

3.2.移除操作

例4:移除Public的sources设置


[[email protected]  ~]# firewall-cmd --remove-source=192.168.10.11 --permanent

success

[[email protected] ~]# firewall-cmd --reload

success

[[email protected] ~]# firewall-cmd --list-all

public (default, active)

interfaces: eth0

sources:

services: dhcpv6-client ssh

ports:

masquerade: no

forward-ports:

icmp-blocks:

rich rules:

例5:移除Public的services的ssh设置


[[email protected] ~]# firewall-cmd --remove-service=ssh

success

[[email protected] ~]# firewall-cmd  --remove-service=ssh --permanent

success

[[email protected] ~]# firewall-cmd --reload

success

[[email protected] ~]# firewall-cmd --list-all

public (default, active)

interfaces: eth0

sources:

services: dhcpv6-client

//默认允许所有的ssh连接本机被删除

ports:

masquerade: no

forward-ports:

icmp-blocks:

rich rules:

注:

  • firewall-cmd设置策略时,要加上- -permanent参数,否则所有操作默认在Runtime状态生效,重启失效;
  • 在- -permanent状态下做完的操作要使用--reload参数使之当前生效,否则下次启动才生效。

3.3.查看及修改默认zone区域

例6:查看默认zone策略及修改默认zone


[[email protected] ~]# firewall-cmd  --get-default-zone

Public

----------------------------------------------修改当前默认zone策略为home--------------------------------

[[email protected] ~]# firewall-cmd  --get-default-zone

home

注:

  • 修改默认zone策略,不需加- -permanent参数,且不用--reload,不仅为当前生效,下次重启同样生效,即使在Runtime状态下做(实验得出)。

3.4.默认zone区域添加策略

例7:为public添加策略,允许所有主机访问http访问


[[email protected] ~]# firewall-cmd  --add-service=http --permanent

success

[[email protected] ~]# firewall-cmd --reload

success

[[email protected] ~]# firewall-cmd --list-all

public (default, active)

interfaces: eth0

sources:

services: dhcpv6-client http

ports:

masquerade: no

forward-ports:

icmp-blocks:

rich rules:

例8:添加富规则,值允许同网段的11主机访问本机的ssh服务


[[email protected] ~]# firewall-cmd  --add-rich-rule ‘rule family=ipv4 source address=192.168.10.11 service  name=ssh accept‘  --permanent

success

[[email protected] ~]# firewall-cmd --reload

success

[[email protected] ~]# firewall-cmd --list-all

public (default, active)

interfaces: eth0

sources:

services: dhcpv6-client http

ports:

masquerade: no

forward-ports:

icmp-blocks:

 rich rules:

        rule family="ipv4" source  address="192.168.10.11" service name="ssh" accept

3.5.非默认zone区域添加策略

经过上个实验我们知道,设置策略在不改变默认zone区域的情况下都是为默认的public这个zone设置的。那么,如果想为其他的zone设置策略应该怎么设置呢?从实验来看,如果想为其他zone设置策略,那么要先设置其他zone为默认zone,然后再为默认zone设置策略。

例9:为home设置策略,仅允许主机192.168.10.11访问其http服务


[[email protected] ~]# firewall-cmd  --set-default-zone=home

success

[[email protected] ~]# firewall-cmd  --get-default-zone

Home

//首先设置home为缺省使用的zone

[[email protected] ~]# firewall-cmd  --add-rich-rule ‘rule family=ipv4 source address=192.168.10.11 service  name=http accept‘  --permanent

success

[[email protected] ~]# firewall-cmd --reload

Success

//为home设置策略并加载到当前

[[email protected]  ~]# firewall-cmd --list-all

home (default, active)

interfaces: eth0

sources: 192.168.10.1

services: dhcpv6-client http ipp-client mdns samba-client ssh

ports:

masquerade: no

forward-ports:

icmp-blocks:

rich rules:

        rule family="ipv4" source  address="192.168.10.11" service name="http" accept

[[email protected] ~]# firewall-cmd  --set-default-zone=public

success

[[email protected] ~]# firewall-cmd  --get-default-zone

Public

//改回缺省的public zone

3.6.其它参数

例10:查看现在firewall的状态


[[email protected] ~]# firewall-cmd --stat

running

例11:查看当前有效的zone


[[email protected] ~]# firewall-cmd  --get-active-zones

home

sources: 192.168.10.1

public

interfaces: eth0

例12:检查当前有效的服务


[[email protected] ~]# firewall-cmd  --get-service

amanda-client bacula bacula-client dhcp  dhcpv6 dhcpv6-client dns ftp high-availability http https imaps ipp  ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd  ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql  proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp tftp-client  transmission-client vnc-server wbem-https

时间: 2024-11-02 04:35:53

RHEL7-Firewall的相关文章

RHEL7 CentOS7 的 firewall命令简单介绍

firewall 服务介绍 firewall 服务是 redhat7 和 centos7 系统默认安装好的防火墙服务,一个信任级别的概念来管理与之相关联的连接与接口.它支持 ipv4 与 ipv6,并支持网桥,采用 firewall-cmd (command) 或 firewall-config (gui) 来动态的管理 kernel netfilter 的临时或永久的接口规则,并实时生效而无需重启服务. Firewall 能将不同的网络连接归类到不同的信任级别,Zone 提供了以下几个级别:

rhel7 之firewall

常用的命令要背住,要专业.不能你是啥都百度,啥都知道,就是记不住. 1.版本 [[email protected] ~]# uname -a Linux roidb01 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux [[email protected] ~]# cat /etc/redhat-release Red Hat Enterprise Linux Serve

RHEL7下PXE+NFS+Kickstart无人值守安装操作系统

1.配置yum源 vim /etc/yum.repos.d/development.repo [development] name=yum server baseurl=file:///mnt enabled=1 gpgcheck=0 2.挂载光盘 mount /dev/sr0 /mnt 3.安装相关软件包 yum install dhcp syslinux xinetd tftp-server 4.配置dhcp vim /etc/dhcp/dhcpd.conf 5.添加内容 subnet 19

RHEL7中tiger VNC的配置和使用

简介: Tigervnc 是一个远程桌面共享和控制工具 tigervnc 是client-server的工作模式,默认是不加密的,可以使用ssh forwarding map来加密这个连接 在rhel7之前tigervnc的配置文件被放在/etc/sysconfig/ 文件夹中 在rhel7中其配置文件放在/etc/systemd/system/ 中 每个用户对应个配置文件,文件名如:vncserver-root (rhel7之前)  [email protected](rhel7) vncse

Fedora 23/RHEL7网络配置和DNS服务器的搭建

Fedora 是一个Linux的发行版,Fedora (第七版以前为Fedora Core)是一款基于 Linux ,从Red Hat Linux发展出来的免费操作系统,Fedora在2015年11月3日已更新到第23版Fedora 23.而红帽的Red Hat Enterprise Linux 7(简称RHEL7)对应的Fedora版本,则是从Fedora 19开始.目前RHEL系列已更新到RHEL7.2. Fedora 是一款由全球社区爱好者构建的面向日常应用的快速.稳定.强大的操作系统.它

使用kickstart服务全自动安装RHEL7.0系统

实验环境: 本次实验使用两台vmware虚拟机 kickstart服务器系统:RHEL7.0 64位 ip地址 192.168.10.20 子网掩码 255.255.255.0 网关: 192.168.10.254 dns服务器:192.168.10.254 实现的目的是:使用kickstart服务全自动安装RHEL7.0系统 具体实现过程如下 一.SELinux和防火墙 临时关闭 SELinux [[email protected] ~]#setenforce 0 添加TCP端口80 和UDP

RHEL7.0 系列 防火墙

Redhat Enterprise Linux7已经默认使用firewalld作为防火墙,其使用方式已经变化. 基于iptables的防火墙被默认不启动,但仍然可以继续使用. RHEL7中有几种防火墙共存:firewalld.iptables.ebtables等,默认使用firewalld作为防火墙,管理工具是firewall-cmd.RHEL7的内核版本是3.10,在此版本的内核里防火墙的包过滤机制是firewalld,使用firewalld来管理netfilter,不过底层调用的命令仍然是i

RHEL7.0 防火墙入门

最近手痒,翻出来新出的(其实已经下载了很长时间的)RHEL7.0鼓捣了一下. 7.0有啥更新,自己问度娘了. 我今天要扯扯的是防火墙的部分,没办法,谁叫他常用来着.当然,如果你从来就是disabled,那绕行,省着浪费时间. 安装 如果系统您老人家是下一步.下一步安装的话,恭喜你,你是最小化安装的滴,没桌面环境(我刚开始也是没注意),当然,防火墙也是默认安上了,只是没有图形的配置工具filewall-cofig. 如果干脆安装的时候就没选,也没关系,请yum来帮忙. 安装firewalld yu

rhel7

RHEL7安装1.创建qcow2格式的磁盘文件# qemu-img create -f qcow2 /var/lib/libvirt/images/rh7.img 200G2.安装操作系统3.克隆# cd /var/lib/libvirt/images/# qemu-img create -f qcow2 -b rh7.img rh7node1.img # qemu-img info rh7node1.img 4.配置网络# ifconfig  复制mac地址# nmtui     填上mac地

Linux系统管理 –RHEL-7 防火墙篇

Linux系统的防火墙功能是由内核实现的: 2.0 版内核中,包过滤机制是ipfw,管理工具是ipfwadm 2.2 版内核中,包过滤机制是ipchain,管理工具是ipchains 2.4 版及以后的内核中,包过滤机制是netfilter,管理工具是iptables 3.10版内核中,包过滤机制是firewalld,管理工具是firewall-cmd 大家应该都知道RHEL7内核的版本是3.10,在此版本的内核里防火墙的包过滤机制是firewalld ,虽然说它的工具变了,但是'firewal