文章目录
- 环境拓扑
- 需求描述
- 一、环境配置
- 二、防火墙配置
- 1、在网站服务器上配置防火墙
- 2、网关服务器配置防火墙
- 3、企业内网访问外网web服务器
- 4、外网web服务器访问企业内部网站服务器
- 三、总结
- 问题总结
- 解决方案
环境拓扑
需求描述
1、 网关服务器连接互联网网卡ens33地址为100.1.1.10,为公网IP地址,分配到firewall的external区域;连接内网网卡ens36地址为192.168.1.2,分配到firewall的trusted区域;连接服务器网卡ens37地址为192.168.2.2,分配到firewall的dmz区域
2、 网站服务器和网关服务器均通过SSH来远程管理,为了安全,将SSH默认端口改为12345
3、 网站服务器开启 HTTPS,过滤未加密的HTTP流量
4、 网站务器拒绝ping,网关服务器拒绝来自互联网上的ping
5、 公司内网用户需要通过网关服务器共享上网
6、 互联网用户需要访问网站服务器
虚拟机试验环境搭建:
1、 打开虚拟机网络编辑器
2、 添加对应的网段
一、环境配置
1、网关服务器开启路由转发功能
[root@gateway ~]# vim /etc/sysctl.conf //永久生效
net.ipv4.ip_forward = 1
[root@gateway ~]# sysctl -p //生效
2、网站服务器
1) 检查路由
[root@web ~]# route -n
2)检查防火墙必须开启
[root@web ~]# systemctl status firewalld.service
3) 搭建yum
#挂载光盘
[root@web ~]# vim /etc/fstab
/dev/cdrom /mnt iso9660 defaults 0 0
[root@web ~]# mount -a
#搭建yum仓库
[root@web ~]# cd /etc/yum.repos.d/
[root@web yum.repos.d]# mkdir back
[root@web yum.repos.d]# mv C* back/
[root@web yum.repos.d]# vim local.repo
[centos]
name=centos
baseurl=file:///mnt
gpgcheck=0
enabled=1[root@web yum.repos.d]# yum clean all
[root@web yum.repos.d]# yum makecache
4)安装HTTP 安装https模块
[root@web yum.repos.d]# yum -y install httpd mod_ssl
[root@web yum.repos.d]# systemctl start httpd //开启服务
[root@web yum.repos.d]# systemctl enable httpd
#编辑站点内容
[root@web yum.repos.d]# vim /var/www/html/index.html
<h1>hello-kgc<h1>
#测试正常
5)更改ssh端口
[root@web yum.repos.d]# setenforce 0 //关闭核心防护
[root@web yum.repos.d]# vim /etc/sysconfig/selinux
SELINUX=disabled[root@web yum.repos.d]# vim /etc/ssh/sshd_config //更改端口号
Port 12345
二、防火墙配置
1、在网站服务器上配置防火墙
1) 设置默认区域为DMZ
[root@web ~]# firewall-cmd --set-default-zone=dmz
2)为DMZ区域打开https服务添加TCP为12345端口
[root@web ~]# firewall-cmd --zone=dmz --add-service=https --permanent
[root@web ~]# firewall-cmd --zone=dmz --add-port=12345/tcp --permanent
3)配置dmz区域移除ssh服务
[root@web ~]# firewall-cmd --zone=dmz --remove-service=ssh --permanent
4)禁止ping
[root@web ~]# firewall-cmd --add-icmp-block=echo-request --zone=dmz --permanent
5)重新加载防火墙
[root@web ~]# firewall-cmd --reload
2、网关服务器配置防火墙
1) 检查下防火墙
[root@gateway ~]# systemctl status firewalld.service
2)设置默认区域external区域
[root@gateway ~]# firewall-cmd --set-default-zone=external
[root@gateway ~]# firewall-cmd --list-all
external (active)target: defaulticmp-block-inversion: nointerfaces: ens33 ens36 ens37sources: services: sshports: protocols: masquerade: yesforward-ports: source-ports: icmp-blocks:rich rules:
3)设置ens36网卡为trusted区域;ens37网卡设置为DMZ区域
[root@gateway ~]# firewall-cmd --change-interface=ens36 --zone=trusted
[root@gateway ~]# firewall-cmd --change-interface=ens37 --zone=dmz
4)查看配置详情
[root@gateway ~]# firewall-cmd --get-active-zones
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1aZyehwz-1586700423271)(1586500732485.png)]
5)在企业内网测试访问网站服务器
打开浏览器输入https://192.168.2.10
6)更改ssh端口号
[root@gateway ~]# setenforce 0 //关闭核心防护
[root@gateway ~]# vim /etc/sysconfig/selinux
SELINUX=disabled
[root@gateway ~]# vim /etc/ssh/sshd_config //更改端口号
Port 12345
7)配置external区域添加TCP12345端口
[root@gateway ~]# firewall-cmd --zone=external --add-port=12345/tcp --permanent
8)配置external区域移除ssh服务
[root@gateway ~]# firewall-cmd --zone=external --remove-service=ssh --permanent
9)配置external禁止ping
[root@gateway ~]# firewall-cmd --zone=external --add-icmp-block=echo-request --permanent
10)重新加载防火墙
[root@gateway ~]# firewall-cmd --reload
11)测试
在Internet外网web服务器上ssh登录网关服务器的外部接口ens33地址的12345端口
[root@internet ~]# ssh -p 12345 100.1.1.10
12)在企业内部测试机上ssh登录网站服务器的12345端口
[root@nb ~]# ssh -p 12345 192.168.2.10
3、企业内网访问外网web服务器
企业内网用户通过网关服务器能访问Internet外网web服务器
1) 在外网服务器上搭建HTTP服务
#挂载光盘
[root@internet ~]# vim /etc/fstab
[root@internet ~]# iso9660 defaults 0 0
[root@internet ~]# mount -a
#搭建yum仓库
[root@internet ~]# cd /etc/yum.repos.d/
[root@internet yum.repos.d]# mkdir back
[root@internet yum.repos.d]# mv C* back/
[root@internet yum.repos.d]# vim local.repo
[centos]
name=centos
baseurl=file:///mnt
gpgcheck=0
enabled=1[root@internet yum.repos.d]# yum clean all
[root@internet yum.repos.d]# yum makecache
#安装HTTP服务并启动
[root@internet yum.repos.d]# yum -y install httpd
[root@internet yum.repos.d]# systemctl start httpd
[root@internet yum.repos.d]# systemctl enable httpd
2)访问测试
① web外网服务器访问测试http服务
② 企业内部网站服务器访问外部web网站
③ 企业内部访问测试
3)在网关服务器上查看是否开启伪装
[root@gatway ~]# firewall-cmd --list-all --zone=external
#网关服务器如何关闭伪装
重载防火墙则会重新启动伪装,external默认开启伪装
4)在命令行启动伪装 192.168.1.0/24
[root@gatway ~]# firewall-cmd --zone=external --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 masquerade'
[root@gatway ~]# firewall-cmd --reload
5)在企业内部网站上访问internet网站服务器100.1.1.20
不能访问。说明已经伪装生效
4、外网web服务器访问企业内部网站服务器
1)在网关服务器上配置端口转发,实现外网web服务器能访问企业内部网站服务器
[root@gatway ~]# firewall-cmd --zone=external --add-forward-port=port=443:proto=tcp:toaddr=192.168.2.10 --permanent
[root@gatway ~]# firewall-cmd --reload
2)在internet外部服务器上访问测试,可以访问到内部网站服务器
三、总结
凡是涉及到修改配置或者修改规则,一定要重启或重载服务
此次实验遇到问题:
一、企业内网无法访问网站服务器
解决方法:
1、检查各个IP地址是否冲突
2、检查网关是否正常(企业内网网关与内网站网均分别指向网关服务器对应的接口)
3、检查网关服务器的路由转发功能是否生效
二、ssh登录测试失败
1、检查端口是否正确
2、检查sshd服务是否有启动 netstat -natp | grep 12345
问题总结
A服务器连接B服务器,连接某个功能模块连接不上?
解决方案
-
检查B服务器的,功能模块服务有没有启动
检查环境–根据业务环境来
检查配置文件–肉眼不一定看出来、建议使用比对工具比对配置文件
重启服务服务–服务不要忘了重启,不重要的服务就重启,重要的的服务,重载下
本地验证服务–ssh -p 端口号ip地址(环回口、接口的IP)
-
检查B服务器的防火墙
检查接口配置信息–看功能服务是否正常(多了就删除,少了就添加)
-
检查A服务器的防火墙
检查接口配置信息–看功能服务是否正常(防火墙关闭)
windows检测端口是否启动:telnet IP地址 端口