Linux-firewalld-squid正向代理
之前的服務(wù)都是簡單粗暴的將防火墻直接關(guān)閉后(systemctl stop fireawalld),提供服務(wù),這樣太奔放對身體不好!因此需要使用firewall-cmd命令更加精細(xì)化的管理。
【CLI】
準(zhǔn)備工作:
-
?確保iptables未安裝或者服務(wù)未啟動
?
-
systemctl status iptables 查看是否開啟,我這臺沒安裝iptables所以not be foubd
-
如果安裝了那可以通過
-
systemctl stop iptables?命令關(guān)閉
-
?systemctl start firewalld 開啟防火墻
開始操作
?安裝apache服務(wù),并對外提供測試頁面(漂亮網(wǎng)頁)服務(wù)。
yum install -y httpd
沒提示最后的已安裝就是你得yum倉庫有問題或者需要
重新掛載:mount /dev/cdrom /mnt 再次嘗試安裝
?systemctl start httpd 開啟httpd
systemctl status httpd? 查詢開啟狀態(tài)
瀏覽器輸入apache服務(wù)的ip訪問測試頁打不開
netstat -npl |grep httpd? ? 查看到服務(wù)器已經(jīng)開啟了80端口的監(jiān)聽
firewall-cmd? --get-default-zone? ?查看服務(wù)器所在的區(qū)域zone
使用命令
firewall-cmd --zone=public --query-service=http
查看在public區(qū)域是否語序http流量進(jìn)入?
答案是no
因此需要使用命令放通http流量
firewall-cmd --zone=public --add-service=http
?
再次使用命令
firewall-cmd --zone=public --query-service=http
查看在public區(qū)域是否語序http流量進(jìn)入?
此時為yes
?
再次訪問,發(fā)現(xiàn)可以了
?
但是是臨時放通!!!
使用命令查看是否是永久放通?
firewall-cmd? --permanent --zone=public --query-service=http
是no的,需要手動輸入命令開啟,不然每次都次重啟服務(wù)都需要再臨時關(guān)閉一次,極其繁瑣!
?
?firewall-cmd? --permanent --zone=public --add-service=http
?但是此時無法立刻生效,需要使用命令? ?
firewall-cmd --reload
重啟防火墻服務(wù)
?
重啟服務(wù)依舊可以訪問
firewall-cmd --reload
安裝vsftpd服務(wù)
yum install -y vsftpd
?
不能安裝請重新掛載:mount /dev/cdrom? ?/mnt? 或者檢查yum倉庫repo文件配置:點我查看yum配置文章
查看啟動狀態(tài)為關(guān)
?
systemctl start vsftpd? ?//啟動vsftpd服務(wù)
systemctl status vsftpd? ? //查看服務(wù)狀態(tài)
?
netstat -npl |grep vsftpd? ?
?服務(wù)器已經(jīng)開啟了21端口的監(jiān)聽
?
但是可以ping通卻不可以訪問登陸ftp
?
firewall-cmd --permanent --zone=public --add-service=ftp? //永久允許ftp連接
firewall-cmd --reload? //重啟防火墻
登陸失敗
?
關(guān)閉SELinux,那么此時就可以進(jìn)行查看與上傳下載了。
setenforce 0
我是用子賬戶(mamublog)進(jìn)行登陸上傳,可以登陸上傳
安裝BIND服務(wù),并對外提供域名解析服務(wù)
yum install -y bind-chroot.x86_64
不能安裝請重新掛載:mount /dev/cdrom? ?/mnt? 或者檢查yum倉庫repo文件配置:點我查看yum配置文章
修改主配置文件
vim /etc/named.conf
使用
named-checkconf 查看主配置文件修改是否有誤,沒報錯即可
修改區(qū)域配置文件
vim? /etc/named.rfc1912.zones
輸入或者復(fù)制添加以下內(nèi)容
?
zone "mamublog.com" IN {
? ? ? ? type master;
? ? ? ? file "mamu-zone";
? ? ? ? allow-update { none; };
};
再次使用
named-checkzone?
無報錯即可
cd /var/named?
cp named.localhost mamu-zone? //我們可以從/var/named目錄中復(fù)制一份正向解析的模板文件(named.localhost),然后把域名和IP地址的對應(yīng)數(shù)據(jù)填寫數(shù)據(jù)配置文件中并保存。
更改后wq保存
?
systemctl restart named 回車沒報錯即為重啟成功
?
?
netstat -npl |grep dns? 查看dns監(jiān)聽端口
使用另一臺電腦win7設(shè)置dns為dns服務(wù)器地址192.168.192.136
發(fā)現(xiàn)解析不了
原因是防火墻關(guān)處于開啟狀態(tài),但是并且允許53號端口被訪問。
?
使用以下命令
firewall-cmd --permanent --zone=public --add-service=dns
firewall-cmd --reload
firewall-cmd --zone=public --query-service=dns
再次嘗試可以了
?
【GUI模式】
我們總是要考慮有些人是非命令敏感形的,更多是圖像敏感形式的。所以firewall的GUI格式一定是你的首選。
輸入
firewall-config
?
幾大福利
它是firewalld防火墻配置管理工具的GUI(圖形用戶界面)版本,幾乎可以實現(xiàn)所有以命令行來執(zhí)行的操作,因此可以告別那些令人害喜的長格式命令;
即使讀者沒有扎實的Linux命令基礎(chǔ),也完全可以通過它來妥善配置RHEL 7中的防火墻策略;
功能如下圖所示
可以發(fā)現(xiàn)之前手打的配置的內(nèi)容已經(jīng)被“同步”過來了
所以如果需要修改,例如需要放通某個服務(wù)(https)
先確認(rèn)的確未開放
?
firewall-cmd --zone=public --query-service=https
發(fā)現(xiàn)是no即為關(guān)閉
重啟防火墻
firewall-cmd --zone=public --query-service=https
發(fā)現(xiàn)是yes即為開啟
?
【使用GUI開啟SNAT模式】
iptables的SNAT模式是在nat表中的POSTROUTING規(guī)則鏈中給完成,配置命令令人絕望。
firewalld的SNAT相對而言比較友好,再結(jié)合GUI那簡直如虎添翼。
windows 7(僅主機(jī)模式)
自動獲取分配到192.168.192.134
確保能ping通網(wǎng)關(guān),一般.1
?
RHEL/CentOS 7(橋接)(僅主機(jī)模式)
開啟ip轉(zhuǎn)發(fā)
重啟防火墻
? ? ? ? ? ? ? ? ? ?
將僅主機(jī)的win7更改Ip為手動,ip一樣為剛才獲取的,網(wǎng)關(guān)改為開啟ip轉(zhuǎn)發(fā)的電腦ip? ? ? ? ? ?
百度正常打開
squid部分
使用squid和firewalld
完成一個用戶緩存上網(wǎng)的場景,并且針對網(wǎng)址中所有帶有ruijie的均禁止訪問
1、內(nèi)網(wǎng)用戶經(jīng)常訪問某個網(wǎng)站,
每次訪問均需要重新下載,使得效率較低、帶寬浪費
2、用戶在工作的時候無法總是無心戀戰(zhàn),經(jīng)常訪問一些中繼器網(wǎng)站,老板苦不堪言
?
【解決方法】
1、增大帶寬,替換高端設(shè)備,管理手段(裁員)
2、使用用戶上網(wǎng)行為管理設(shè)備
3、使用緩存技術(shù)(例如Squid)
啥是squid
?
?Squid是Linux系統(tǒng)中最為流行的一款高性能代理服務(wù)軟件,通常用作Web網(wǎng)站的前置緩存服務(wù),能夠代替用戶向網(wǎng)站服務(wù)器請求頁面數(shù)據(jù)并進(jìn)行緩存。簡單來說,Squid服務(wù)程序會按照收到的用戶請求向網(wǎng)站源服務(wù)器請求頁面、圖片等所需的數(shù)據(jù),并將服務(wù)器返回的數(shù)據(jù)存儲在運行Squid服務(wù)程序的服務(wù)器上。當(dāng)有用戶再請求相同的數(shù)據(jù)時,則可以直接將存儲服務(wù)器本地的數(shù)據(jù)交付給用戶,這樣不僅減少了用戶的等待時間,還緩解了網(wǎng)站服務(wù)器的負(fù)載壓力。
????????Squid服務(wù)程序具有配置簡單、效率高、功能豐富等特點,它能支持HTTP、FTP、SSL等多種協(xié)議的數(shù)據(jù)緩存,可以基于訪問控制列表(ACL)和訪問權(quán)限列表(ARL)執(zhí)行內(nèi)容過濾與權(quán)限管理功能,還可以基于多種條件禁止用戶訪問存在威脅或不適宜的網(wǎng)站資源,因此可以保護(hù)企業(yè)內(nèi)網(wǎng)的安全,提升用戶的網(wǎng)絡(luò)體驗,幫助節(jié)省網(wǎng)絡(luò)帶寬。
正向代理之 標(biāo)準(zhǔn)正向代理模式
18-2(CentOS7)(僅主機(jī)模式)?
18-1(CentOS 7)僅主機(jī)模式)(橋接)
還原主機(jī)到一清二白
?
不能安裝請重新掛載:mount /dev/cdrom? ?/mnt? 或者檢查yum倉庫repo文件配置:點我查看yum配置文章
yum install -y squid
設(shè)置18-2(僅主機(jī)模式)?dns為114.114.114.114
發(fā)現(xiàn)設(shè)置了公網(wǎng)DNS IP還是無法上網(wǎng)
確保18-1可以正常訪問外網(wǎng)(僅主機(jī)和橋接)所以可以訪問外網(wǎng)
?配置18-1的squid服務(wù)的主配置文件
vim? /etc/squid/squid.conf
systemctl start squid? ? //?啟動服務(wù)
systemctl enable squid? ? //加入開機(jī)啟動項
配置18-2的Firefox瀏覽器代理
在彈出的對話框中輸入18-1 Squid服務(wù)器僅主機(jī)ip,點擊OK保存
?
?在18-2上訪問www.ruijie.com.cn進(jìn)行測試發(fā)現(xiàn)不行
?
?
?
systemctl status squid發(fā)現(xiàn)服務(wù)開著,如果沒開則需要輸入 systemctl start?squid開啟服務(wù)
使用GUI界面針對內(nèi)網(wǎng)口對應(yīng)的區(qū)域,永久放通squid服務(wù),并且重啟防火墻使其生效
重載防火墻
再次訪問發(fā)現(xiàn)可以了
?
18-2 的試了www.baidu.com訪問不了,而且其他的https的網(wǎng)站均訪問不了
解決辦法,代理中勾選:為所有協(xié)議使用相同代理
再次訪問https網(wǎng)站發(fā)現(xiàn)可以了
?
使用代理的優(yōu)點
1、代理無需配置SNAT
2、代理無需開啟路由轉(zhuǎn)發(fā)功能
缺點
1、終端配置麻煩(小白的噩夢)
2、累死代理服務(wù)器
正向代理之 透明正向代理模式
透明代理,顧名思義,就是對于用戶而言就是透明!!無需做任何額外的配置!
去掉原先的代理,并且確認(rèn)無法上網(wǎng)!
?
在18-1上配置SNAT功能,記得重載防火墻
?
將18-1的內(nèi)網(wǎng)口加入到另外一個區(qū)域,為了便于記憶,加入到internal區(qū)域
?
更改區(qū)域為internal
?
重啟防火墻
將內(nèi)網(wǎng)用戶的所有外網(wǎng)流量全部定位到3128端口上
?
設(shè)置端口轉(zhuǎn)發(fā)到18-1的僅主機(jī)ip,端口3128
彈出的窗口選擇no,即internal區(qū)域不做SNAT
因為內(nèi)網(wǎng)口劃入squid區(qū)域,因此需要針對internal區(qū)域開放squid服務(wù),讓客戶進(jìn)行透明代理
重啟防火墻
?
?修改squid的主配置文件
?
vim /etc/squid/squid.conf
59行 3128后加入transparent
去掉62行#號注釋
?
使用squid -k parse命令檢查主配置文件是否有錯誤
使用squid -z命令對Squid服務(wù)程序的透明代理技術(shù)進(jìn)行初始化。
重啟服務(wù) systemctl restart squid
?測試
?
?
ACL訪問控制
在日常工作中,企業(yè)員工一般是通過公司內(nèi)部的網(wǎng)關(guān)服務(wù)器來訪問互聯(lián)網(wǎng),當(dāng)將Squid服務(wù)程序部署為公司網(wǎng)絡(luò)的網(wǎng)關(guān)服務(wù)器后,Squid服務(wù)程序的訪問控制列表(ACL)功能將發(fā)揮它的用武之地。它可以根據(jù)指定的策略條件來緩存數(shù)據(jù)或限制用戶的訪問。比如很多公司會分時段地禁止員工逛淘寶、打網(wǎng)頁游戲,這些禁止行為都可以通過Squid服務(wù)程序的ACL功能來實現(xiàn)。
Squid服務(wù)程序的ACL是由多個策略規(guī)則組成的,它可以根據(jù)指定的策略規(guī)則來允許或限制訪問請求,而且策略規(guī)則的匹配順序與防火墻策略規(guī)則一樣都是由上至下;在一旦形成匹配之后,則立即執(zhí)行相應(yīng)操作并結(jié)束匹配過程。為了避免ACL將所有流量全部禁止或全部放行,起不到預(yù)期的訪問控制效果,運維人員通常會在ACL的最下面寫上deny all或者allow all語句,以避免安全隱患。
禁止員工訪問域名中帶有ruijie的網(wǎng)站
squid服務(wù)程序的這種ACL功能模式是比較粗獷暴力的,客戶端訪問的任何網(wǎng)址中只要包含了某個關(guān)鍵詞就會被立即禁止訪問,但是這并不影響訪問其他網(wǎng)站。
首先,確保可以打開
?在18-1的squid主配置文件/etc/squid/squid.conf中一個acl
vim?/etc/squid/squid.conf
26以及34行加入命令實現(xiàn)訪問控制
?
acl deny_ruijie url_regex -i rujie
http_access deny deny_ruijie
acl名為deny_ruijie ,內(nèi)容意思是,在url中包含關(guān)鍵詞如果包含ruijie,那么就被拒絕
?重啟服務(wù)后進(jìn)行測試
systemctl restart squid
?
Ctrl+shift+del清除緩存,再次訪問www.ruijie.com.cn
百度還可以正常訪問
總結(jié)
以上是生活随笔為你收集整理的Linux-firewalld-squid正向代理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [BZOJ4408][FJOI2016]
- 下一篇: ActiveX控件注册的几种方法