Linux-firewalld-squid正向代理

之前的服务都是简单粗暴的将防火墙直接关闭后(systemctl stop fireawalld),提供服务,这样太奔放对身体不好!因此需要使用firewall-cmd命令更加精细化的管理。

【CLI】

准备工作:

  •  确保iptables未安装或者服务未启动

 

  • systemctl status iptables 查看是否开启,我这台没安装iptables所以not be foubd

image.png

  • 如果安装了那可以通过

  • systemctl stop iptables 命令关闭

  •  systemctl start firewalld 开启防火墙

开始操作

 安装apache服务,并对外提供测试页面(漂亮网页)服务。

yum install -y httpd

没提示最后的已安装就是你得yum仓库有问题或者需要

重新挂载:mount /dev/cdrom /mnt 再次尝试安装

Linux-firewalld-squid正向代理_第1张图片

 systemctl start httpd 开启httpd

systemctl status httpd  查询开启状态

Linux-firewalld-squid正向代理_第2张图片

浏览器输入apache服务的ip访问测试页打不开

Linux-firewalld-squid正向代理_第3张图片

Linux-firewalld-squid正向代理_第4张图片

netstat -npl |grep httpd    查看到服务器已经开启了80端口的监听

firewall-cmd  --get-default-zone   查看服务器所在的区域zone

image.png

image.png

使用命令

firewall-cmd --zone=public --query-service=http

查看在public区域是否语序http流量进入?

image.png

答案是no

因此需要使用命令放通http流量

firewall-cmd --zone=public --add-service=http

image.png

 

再次使用命令

firewall-cmd --zone=public --query-service=http

查看在public区域是否语序http流量进入?

此时为yes

 

image.png

再次访问,发现可以了

Linux-firewalld-squid正向代理_第5张图片

 

但是是临时放通!!!

使用命令查看是否是永久放通?

firewall-cmd  --permanent --zone=public --query-service=http

image.png

是no的,需要手动输入命令开启,不然每次都次重启服务都需要再临时关闭一次,极其繁琐!

 

 firewall-cmd  --permanent --zone=public --add-service=http

 但是此时无法立刻生效,需要使用命令   

firewall-cmd --reload

重启防火墙服务

image.png

 

重启服务依旧可以访问

firewall-cmd --reload

image.pngLinux-firewalld-squid正向代理_第6张图片

安装vsftpd服务

yum install -y vsftpd

Linux-firewalld-squid正向代理_第7张图片

 

不能安装请重新挂载:mount /dev/cdrom   /mnt  或者检查yum仓库repo文件配置:点我查看yum配置文章

查看启动状态为关

 

systemctl start vsftpd   //启动vsftpd服务

systemctl status vsftpd    //查看服务状态

Linux-firewalld-squid正向代理_第8张图片

 

netstat -npl |grep vsftpd   

 服务器已经开启了21端口的监听

image.png

 

但是可以ping通却不可以访问登陆ftp

Linux-firewalld-squid正向代理_第9张图片

 

firewall-cmd --permanent --zone=public --add-service=ftp  //永久允许ftp连接

firewall-cmd --reload  //重启防火墙

image.png

登陆失败

Linux-firewalld-squid正向代理_第10张图片

 

关闭SELinux,那么此时就可以进行查看与上传下载了。

setenforce 0

我是用子账户(mamublog)进行登陆上传,可以登陆上传

Linux-firewalld-squid正向代理_第11张图片

安装BIND服务,并对外提供域名解析服务

yum install -y bind-chroot.x86_64

Linux-firewalld-squid正向代理_第12张图片

不能安装请重新挂载:mount /dev/cdrom   /mnt  或者检查yum仓库repo文件配置:点我查看yum配置文章

修改主配置文件

vim /etc/named.conf

Linux-firewalld-squid正向代理_第13张图片

使用

named-checkconf 查看主配置文件修改是否有误,没报错即可

image.png

修改区域配置文件

vim  /etc/named.rfc1912.zones

输入或者复制添加以下内容

 

zone "mamublog.com" IN {

        type master;

        file "mamu-zone";

        allow-update { none; };

};

Linux-firewalld-squid正向代理_第14张图片

再次使用

named-checkzone 

无报错即可

image.png

cd /var/named 

cp named.localhost mamu-zone  //我们可以从/var/named目录中复制一份正向解析的模板文件(named.localhost),然后把域名和IP地址的对应数据填写数据配置文件中并保存。

image.png

更改后wq保存

Linux-firewalld-squid正向代理_第15张图片

 

systemctl restart named 回车没报错即为重启成功

image.png

 

 

netstat -npl |grep dns  查看dns监听端口

image.png

使用另一台电脑win7设置dns为dns服务器地址192.168.192.136

Linux-firewalld-squid正向代理_第16张图片

发现解析不了

Linux-firewalld-squid正向代理_第17张图片

原因是防火墙关处于开启状态,但是并且允许53号端口被访问。

image.png

 

使用以下命令

firewall-cmd --permanent --zone=public --add-service=dns

firewall-cmd --reload

Linux-firewalld-squid正向代理_第18张图片

firewall-cmd --zone=public --query-service=dns

image.png

再次尝试可以了

Linux-firewalld-squid正向代理_第19张图片

 

【GUI模式】

我们总是要考虑有些人是非命令敏感形的,更多是图像敏感形式的。所以firewall的GUI格式一定是你的首选。

输入

firewall-config

image.png

 

几大福利

  1. 它是firewalld防火墙配置管理工具的GUI(图形用户界面)版本,几乎可以实现所有以命令行来执行的操作,因此可以告别那些令人害喜的长格式命令;

  2. 即使读者没有扎实的Linux命令基础,也完全可以通过它来妥善配置RHEL 7中的防火墙策略;

  3. 功能如下图所示

Linux-firewalld-squid正向代理_第20张图片

可以发现之前手打的配置的内容已经被“同步”过来了

Linux-firewalld-squid正向代理_第21张图片

所以如果需要修改,例如需要放通某个服务(https)

先确认的确未开放

 

firewall-cmd --zone=public --query-service=https

发现是no即为关闭

image.png

重启防火墙
Linux-firewalld-squid正向代理_第22张图片

firewall-cmd --zone=public --query-service=https

发现是yes即为开启

image.png

 

【使用GUI开启SNAT模式】

iptables的SNAT模式是在nat表中的POSTROUTING规则链中给完成,配置命令令人绝望。

firewalld的SNAT相对而言比较友好,再结合GUI那简直如虎添翼。

windows 7(仅主机模式)

Linux-firewalld-squid正向代理_第23张图片

自动获取分配到192.168.192.134

Linux-firewalld-squid正向代理_第24张图片

确保能ping通网关,一般.1

Linux-firewalld-squid正向代理_第25张图片

 

RHEL/CentOS 7(桥接)(仅主机模式)

Linux-firewalld-squid正向代理_第26张图片

Linux-firewalld-squid正向代理_第27张图片

Linux-firewalld-squid正向代理_第28张图片

开启ip转发

Linux-firewalld-squid正向代理_第29张图片

重启防火墙

Linux-firewalld-squid正向代理_第30张图片                   

将仅主机的win7更改Ip为手动,ip一样为刚才获取的,网关改为开启ip转发的电脑ip           

Linux-firewalld-squid正向代理_第31张图片

百度正常打开

Linux-firewalld-squid正向代理_第32张图片

squid部分

使用squid和firewalld

完成一个用户缓存上网的场景,并且针对网址中所有带有ruijie的均禁止访问

1、内网用户经常访问某个网站,

每次访问均需要重新下载,使得效率较低、带宽浪费

2、用户在工作的时候无法总是无心恋战,经常访问一些中继器网站,老板苦不堪言

 

【解决方法】

1、增大带宽,替换高端设备,管理手段(裁员)

2、使用用户上网行为管理设备

3、使用缓存技术(例如Squid)

啥是squid

 

 Squid是Linux系统中最为流行的一款高性能代理服务软件,通常用作Web网站的前置缓存服务,能够代替用户向网站服务器请求页面数据并进行缓存。简单来说,Squid服务程序会按照收到的用户请求向网站源服务器请求页面、图片等所需的数据,并将服务器返回的数据存储在运行Squid服务程序的服务器上。当有用户再请求相同的数据时,则可以直接将存储服务器本地的数据交付给用户,这样不仅减少了用户的等待时间,还缓解了网站服务器的负载压力。

        Squid服务程序具有配置简单、效率高、功能丰富等特点,它能支持HTTP、FTP、SSL等多种协议的数据缓存,可以基于访问控制列表(ACL)和访问权限列表(ARL)执行内容过滤与权限管理功能,还可以基于多种条件禁止用户访问存在威胁或不适宜的网站资源,因此可以保护企业内网的安全,提升用户的网络体验,帮助节省网络带宽。

正向代理之 标准正向代理模式

18-2(CentOS7)(仅主机模式) 

Linux-firewalld-squid正向代理_第33张图片

18-1(CentOS 7)仅主机模式)(桥接)

Linux-firewalld-squid正向代理_第34张图片

Linux-firewalld-squid正向代理_第35张图片

还原主机到一清二白

 

不能安装请重新挂载:mount /dev/cdrom   /mnt  或者检查yum仓库repo文件配置:点我查看yum配置文章

yum install -y squid

Linux-firewalld-squid正向代理_第36张图片

Linux-firewalld-squid正向代理_第37张图片

设置18-2(仅主机模式) dns为114.114.114.114

Linux-firewalld-squid正向代理_第38张图片

发现设置了公网DNS IP还是无法上网

Linux-firewalld-squid正向代理_第39张图片

确保18-1可以正常访问外网(仅主机和桥接)所以可以访问外网

Linux-firewalld-squid正向代理_第40张图片

 配置18-1的squid服务的主配置文件

vim  /etc/squid/squid.conf

Linux-firewalld-squid正向代理_第41张图片

systemctl start squid    // 启动服务

systemctl enable squid    //加入开机启动项

配置18-2的Firefox浏览器代理

在弹出的对话框中输入18-1 Squid服务器仅主机ip,点击OK保存

Linux-firewalld-squid正向代理_第42张图片

 

 在18-2上访问www.ruijie.com.cn进行测试发现不行

 Linux-firewalld-squid正向代理_第43张图片

 

 

systemctl status squid发现服务开着,如果没开则需要输入 systemctl start squid开启服务

Linux-firewalld-squid正向代理_第44张图片

使用GUI界面针对内网口对应的区域,永久放通squid服务,并且重启防火墙使其生效

Linux-firewalld-squid正向代理_第45张图片

重载防火墙

Linux-firewalld-squid正向代理_第46张图片

再次访问发现可以了

Linux-firewalld-squid正向代理_第47张图片

 

18-2 的试了www.baidu.com访问不了,而且其他的https的网站均访问不了

Linux-firewalld-squid正向代理_第48张图片

Linux-firewalld-squid正向代理_第49张图片

解决办法,代理中勾选:为所有协议使用相同代理

Linux-firewalld-squid正向代理_第50张图片

再次访问https网站发现可以了

Linux-firewalld-squid正向代理_第51张图片

 

使用代理的优点

1、代理无需配置SNAT

2、代理无需开启路由转发功能

缺点

1、终端配置麻烦(小白的噩梦)

2、累死代理服务器

正向代理之 透明正向代理模式

透明代理,顾名思义,就是对于用户而言就是透明!!无需做任何额外的配置!

去掉原先的代理,并且确认无法上网!

Linux-firewalld-squid正向代理_第52张图片

 

在18-1上配置SNAT功能,记得重载防火墙

Linux-firewalld-squid正向代理_第53张图片

 

将18-1的内网口加入到另外一个区域,为了便于记忆,加入到internal区域

Linux-firewalld-squid正向代理_第54张图片

 

更改区域为internal

Linux-firewalld-squid正向代理_第55张图片

 

重启防火墙

image.png

将内网用户的所有外网流量全部定位到3128端口上

Linux-firewalld-squid正向代理_第56张图片

 

设置端口转发到18-1的仅主机ip,端口3128

Linux-firewalld-squid正向代理_第57张图片

弹出的窗口选择no,即internal区域不做SNAT

Linux-firewalld-squid正向代理_第58张图片

Linux-firewalld-squid正向代理_第59张图片

因为内网口划入squid区域,因此需要针对internal区域开放squid服务,让客户进行透明代理

Linux-firewalld-squid正向代理_第60张图片

重启防火墙

image.png


 

 修改squid的主配置文件

 

vim /etc/squid/squid.conf

59行 3128后加入transparent

去掉62行#号注释

Linux-firewalld-squid正向代理_第61张图片

 

使用squid -k parse命令检查主配置文件是否有错误

Linux-firewalld-squid正向代理_第62张图片

使用squid -z命令对Squid服务程序的透明代理技术进行初始化。

image.png

重启服务 systemctl restart squid

image.png

 测试

Linux-firewalld-squid正向代理_第63张图片

 

 

ACL访问控制

在日常工作中,企业员工一般是通过公司内部的网关服务器来访问互联网,当将Squid服务程序部署为公司网络的网关服务器后,Squid服务程序的访问控制列表(ACL)功能将发挥它的用武之地。它可以根据指定的策略条件来缓存数据或限制用户的访问。比如很多公司会分时段地禁止员工逛淘宝、打网页游戏,这些禁止行为都可以通过Squid服务程序的ACL功能来实现。

Squid服务程序的ACL是由多个策略规则组成的,它可以根据指定的策略规则来允许或限制访问请求,而且策略规则的匹配顺序与防火墙策略规则一样都是由上至下;在一旦形成匹配之后,则立即执行相应操作并结束匹配过程。为了避免ACL将所有流量全部禁止或全部放行,起不到预期的访问控制效果,运维人员通常会在ACL的最下面写上deny all或者allow all语句,以避免安全隐患。

禁止员工访问域名中带有ruijie的网站

squid服务程序的这种ACL功能模式是比较粗犷暴力的,客户端访问的任何网址中只要包含了某个关键词就会被立即禁止访问,但是这并不影响访问其他网站。

首先,确保可以打开

Linux-firewalld-squid正向代理_第64张图片

 在18-1的squid主配置文件/etc/squid/squid.conf中一个acl

vim /etc/squid/squid.conf

26以及34行加入命令实现访问控制

 

acl deny_ruijie url_regex -i rujie

http_access deny deny_ruijie

acl名为deny_ruijie ,内容意思是,在url中包含关键词如果包含ruijie,那么就被拒绝

Linux-firewalld-squid正向代理_第65张图片

 重启服务后进行测试

systemctl restart squid

 

Ctrl+shift+del清除缓存,再次访问www.ruijie.com.cn

Linux-firewalld-squid正向代理_第66张图片

百度还可以正常访问

Linux-firewalld-squid正向代理_第67张图片

 

你可能感兴趣的:(Linux,linux,firewalld,squid正向代理)