centos7 firewalld防火墙(一)

一、Linux防火墙的概念

防火墙设置不同网络于网络安全域之间一系列部件组合也不同安全域之间的唯一出口

在内外之间架起一道墙一,以免发生不可预知或潜在的入侵。

传统上来讲防火墙技术分为三类:包过滤,应用代理,状态检测,无论防火墙过程多么复杂,归根结底都在三种技术基础之上进行扩展的。

Linux的防火墙体系主要用于网络,针对tcp /ip数据包实施过滤和限制,属于包过滤防火墙或称为网络防火墙。

在centos7系统中三种防火墙共存:firewalld,iptables,ebtables,默认只用firewalld来管理netfilter子系统。

1、Linux包过滤防火墙概述

netfilter

位于Linux内核中的包过滤功能体系

称为Linux防火墙的“内核态”

firewalld

CentOS7默认的管理防火墙规则的工具

称为Linux防火墙的“用户态”

包过滤的工作层次

主要是网络层,针对IP数据包

体现在对包内的IP地址、端口等信息的处理上

二、firewalld的概念

  1、firewalld的简介

支持网络区域所定义的网络连接以及接口安全的等级支持动态防火墙的管理工具

支持ipv4,ipv6设置防火墙以及以太网桥

支持服务或应用程序直接添加防火墙规则接口

2、拥有两种配置模式

运行时配置:临时的关机或重启电脑就没有了

永久时配置:配好了之一都在

  1. firewalld数据处理流程

检查数据来源的源地址

若源地址关系到特定的区域,执行该区域制定的规则

若源地址没有关系到特定的区域,执行该区域所制定的规则

  1. firewalld 的预定义的网络九个区域

  区域

         作用

Trusted

信任区域

  可接受所有网络的连接

Pubilc

公共区域

区域是添加端口的默认区域

Work

工作区域

Home

家庭区域

Internal

内部区域

External 外部区域

dmz

Block 限制区域

拒绝所有传入流量

Drop 丢弃区域

丢弃所有流量不产生icmp的错误响应

  • firewalld防火墙的配置方法

1、firewall-config     图形工具

firewall-cmd      命令行工具

cd /etc/firewalld   查看配置文件

  1. firewalld常用命令

Systemctl start firewalld     启动firewalld防火墙

Systemctl enable firewalld   开机自启动

Systenctl stop firewalld      关闭防火墙

Systenctl disable firwalld     开机不启动防火墙

Systemctl status firewalld    查看防火墙的状态

显示 active (running) 为开启状态    Stopping firewalld 关闭状态

  1. firewall-cmd 命令

firewall-cmd --list-all           查看防火墙所有配置

Firewall-cmd --list-all-zone      查看防火墙指定的区域

firewall-cmd --get-default-zone  显示接口的默认区域

firewall-cmd --list-all           显示所有默认区域

firewall-cmd --get-zone-of-interface=ens33 显示当前网卡ens33所对应的区域

firewall-cmd --get-active-zone    显示所有激活区域

firewall-cmd --list-services       显示默认区域访问所有服务      

firewall-cmd --list-services=http   允许访问http服务

firewall-cmd --zone=internal --add-service=mysql s设置internal(内网)区域允许访问mysql服务

firewall-cmd --list-ports         显示所有端口号

firewall-cmd --zone=internal --add-port=443/tcp 动手指定添加端口

firewall-cmd --zone=internal --remove-port=443/tcp 区域禁止访问端口443

Firewall-cmd --remove-interface=ens33    删除当前ens33网卡所对应的区域

网络拓扑如下

实验要求:

  • 网关服务器的网卡ens33分配到external(外部)区域
  • 网关服务器的网卡ens37(36)分配到trusted(信任)区域
  • 网关服务器的网卡ens38(37)分配到dmz(非军事)区域
  • 网站服务器和网关服务器均通过ssh来远程管理,为了安全,将ssh默认端口改为12345
  • 网站服务器和互联网测试都开启https,过滤未加密的http流量
  • 网站服务器拒绝ping,网关服务器拒绝来自互联网上的ping

一、基本环境配置

(一)、网关服务器配置

1、配置主机名

# echo  "bdqn">/etc/hostname

#hostname  bdqn

2、配置ip地址

#ifconfig  #查看下网卡名

# cd /etc/sysconfig/network-scripts/

# cp ifcfg-ens33  ifcfg-ens37  

# cp ifcfg-ens33  ifcfg-ens38

#vim  ifcfg-ens33 ip地址为100.1.1.10

#vim  ifcfg-ens37 ip地址为192.168.1.1

#vim  ifcfg-ens38 ip地址为192.168.2.1

#systemctl  restart  network

3、开启网关服务器的路由转发功能

# echo  "net.ipv4.ip_forward = 1" >/etc/sysctl.conf

4、重新加载

# sysctl   -p

(二)、配置网站服务器配置

1、配置网站服务器主机名

#echo  “web”  >/etc/hostname

2、配置网站服务器的ip地址和网关

# cd /etc/sysconfig/network-scripts/

#vim  ifcfg-ens33

....................................

BOOTPROTO=static

..........................

IPADDR=192.168.2.10

GATEWAY=192.168.2.1

#ifdown ens33;ifup ens33

3、查看ip和网关

#ifconfig

#route   -n      #查看网关

(三)、客户机需要填写正确的网关

二、网站服务器环境搭建

1、挂载系统盘,安装httpd和mod_ssl软件包

# yum  -y install httpd mod_ssl

2、启动httpd,并将其设为自动启动

#systemctl  start  httpd

# systemctl enable  httpd

3、创建网站首页测试页index.html

#echo   “this is a test web”  >/var/www/html/index.html

3、验证firewalld在网站服务器上是否启动并且正在运行

#systemctl   status  firewalld

#systemctl   start   firewalld

4、更改ssh的侦听端口为12345,并重启服务(需关闭selinux)

# vim /etc/ssh/sshd_config

# setenforce 0

# systemctl  restart  sshd

#netstat   -anpt

三、在网站服务器上配置firewalld防火墙

  1. 设置默认区域为dmz区域

# firewall-cmd  --set-default-zone=dmz

查看默认区域的端口

Firewall-cmd --list-all

  1. 为dmz区域打开https  服务和添加tcp的12345端口

# firewall-cmd  --zone=dmz  --add-service=https  --permanent

# firewall-cmd  --zone=dmz  --add-port=12345/tcp  --permanent

port 添加端口

  1. 禁止ping

firewall-cmd  --add-icmp-block=echo-request  --zone=dmz  --permanent

  1. 因为预定义的ssh服务已经更改默认端口,所以将预定义ssh服务移除

# firewall-cmd  --remove-service=ssh --zone=dmz  --permanent

  1. 重新加载firewalld配置

# firewall-cmd  --reload

  1. 查看之前的配置

# firewall-cmd  --list-all

五、在网关服务器上配置firewalld防火墙

1、验证firewalld在网关上启动并正在运行

#systemctl  status  firewalld

2、如没有启动,则启动

3#systemctl   start   firewalld

4、设置默认区域为external区域,并查看配置结果

#firewall-cmd  --set-default-zone=external

#firewall-cmd   --get-default-zone

5、将ens37网卡配置到trusted区域,将ens38配置到dmz区域

# firewall-cmd   --zone=trusted  --add-interface=ens36 

# firewall-cmd   --zone=dmz     --add-interface=ens37 

6、查看配置情况如下

#firewall-cmd   --get-active-zones

7、更改ssh的侦听端口为12345,并重启服务(需关闭selinux)

# vim /etc/ssh/sshd_config

# setenforce 0

# systemctl restart sshd

8、配置external区域添加tcp的12345端口

# firewall-cmd --zone=external  --add-port=12345/tcp   --permanent

9、配置external区域移除ssh服务

# firewall-cmd --zone=external --remove-service=ssh   --permanent

10、禁止external区域ping

# firewall-cmd  --zone=external  --add-icmp-block=echo-request  --permanent

11、重新加载防火墙配置

# firewall-cmd –reload

  • 在内网测试机上访问网站服务器

1、在内部客户机上ping网站

2、在内部客户机上ssh登录网站

#ssh    -p  12345   192.168.2.10

3.访问网站

  • 在互联网测试机上测试

1、在互联网测试机上通过ssh登录网关外部接口地址的12345端口

#ssh    -p  12345  100.1.1.10

  1. 在互联网客户端上ping

#ping  100.1.1.10

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沈稳利

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值