New way to deploy SSL VPN in Linux
Squid 實現的 SSL Proxy,相對於各類 VPN 和傳統的 SSH 加密通訊手段,SSL 代理具有更優越的效能和更好的安全性;Squid 不僅可以根據需要選擇需要經過代理的域名並進行快取,可以有效提高外部網路訪問速度,還可以實現高度的身份隱藏功能,具有良好的隱私安全保障。 |
本文所採用的伺服器均為 CentOS 7 x86_64 版本,使用 FirewallD 作為防火牆。
Squid 作為代理伺服器實現,Stunnel 進行 HTTPS 與 HTTP 之間的轉換。
本文需要擁有合法的伺服器證書,若沒有請申請或自簽發,免費 SSL 證書可以使用 StartSSL / WoSign 等
Squid 是一個高效能的代理快取伺服器,可以加快內部網瀏覽 Internet 的速度,提高客戶機的訪問命中率。
Squid 不僅支援 HTTP 協議,還支援 FTP、gopher、SSL 和 WAIS 等協議。
和一般的代理快取軟體不同,Squid 用一個單獨的、非模組化的、I/O驅動的程式來處理所有的客戶端請求。
Stunnel 是一個自由的跨平臺軟體,用於提供全域性的 TLS/SSL 服務。
針對本身無法進行 TLS 或 SSL 通訊的客戶端及伺服器,Stunnel 可提供安全的加密連線。
該軟體可在許多作業系統下執行,包括 Unix-like 系統,以及 Windows. Stunnel 依賴於某個獨立的庫,如 OpenSSL 或者 SSLeay,以實現 TLS 或 SSL 協議。
公有云上的 CentOS 7 x86_64(非 OpenVZ),雙核,2 GB 記憶體,SE Linux 不開啟
Users < - HTTPS -> Squid A < - HTTP -> Stunnel A < - HTTPS -> Squid B < - HTTP/HTTPS -> Internet
其中,伺服器 A 位於內部網路但可以訪問伺服器 B,伺服器 B 位於外部網路,此舉一是實現了 Users 都 B 的全方位加密,二是實現了外部網路與內部網路的隔離,在防火牆的幫助下可以更好地保證 A 的安全與穩定;而且,一旦 B 遭遇攻擊,A 可快速切換至另一個 B 伺服器。
關於證書:請使用包含整個證書鏈的證書,否則在部分作業系統上可能出現證書異常
請將您的證書放置於 /etc/cert/ssl.crt
請將您的私鑰放置於 /etc/cert/ssl.key
本文預設配置沒有啟用任何 Squid 認證,如有需要請自行配置。
在啟動認證的情況下, Stunnel 工作不會受到影響,因此無需更改 Stunnel 配置。
yum install -y squid stunnel openssl openssl-devel firewall-cmd --add-port=443/tcp --permanent firewall-cmd --reload
echo "client = yes [https] accept = 127.0.0.1:808 connect = {Server B IP:port}" > /etc/stunnel/stunnel.conf
echo "stunnel" >> /etc/rc.local
touch /etc/squid/inner-sites
sed -i 's/http_access deny all/http_access allow all/g' /etc/squid/squid.conf sed -i 's/http_port 3128/https_port 443 cert=\/etc\/cert\/ssl.crt key=\/etc\/cert\/ssl.key/g' /etc/squid/squid.conf sed -i '$a\acl all src 0.0.0.0/0.0.0.0' /etc/squid/squid.conf sed -i '$a\acl inner-sites dstdomain \"/etc/squid/inner-sites\"' /etc/squid/squid.conf sed -i '$a\always_direct allow inner-sites' /etc/squid/squid.conf sed -i '$a\never_direct allow all' /etc/squid/squid.conf sed -i '$a\request_header_access Via deny all' /etc/squid/squid.conf sed -i '$a\request_header_access Via deny all' /etc/squid/squid.conf sed -i '$a\request_header_access Via deny all' /etc/squid/squid.conf
stunnel systemctl start squid systemctl enable squid
yum install -y squid stunnel openssl openssl-devel firewall-cmd --add-port=443/tcp --permanent firewall-cmd --reload
sed -i 's/http_access deny all/http_access allow all/g' /etc/squid/squid.conf sed -i 's/http_port 3128/https_port 443 cert=\/etc\/cert\/ssl.crt key=\/etc\/cert\/ssl.key/g' /etc/squid/squid.conf sed -i '$a\request_header_access Via deny all' /etc/squid/squid.conf sed -i '$a\request_header_access Via deny all' /etc/squid/squid.conf sed -i '$a\request_header_access Via deny all' /etc/squid/squid.conf
systemctl start squid systemctl enable squid
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2643666/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 解析天翼雲IPsec VPN和SSL VPN的區別
- 給 linux deploy 的映象擴容Linux
- The Way to HappinessAPP
- kubectl get deploy
- Cisco VPN套件中過期的SSL證書將破壞網路配置套件
- 基於Linux和IPSec的VPN閘道器Linux
- The Way To Go --- 切片Go
- deploy-your-site
- Github deploy key使用Github
- HDU 2612 Find a way
- Maven Deploy 簡單操作Maven
- Deploy Google BBR on CentOS 7GoCentOS
- MPLS VPN技術概述-VeCloudMPLS VPN技術概述-VeCloudCloud
- Kubernetes - Deploy wiki.js on clusterJS
- harbor+k8s deployK8S
- linux伺服器配置ssl證書Linux伺服器
- 如何在Linux上安裝一個開源VPN伺服器Linux伺服器
- POJ 2891 Strange Way to Express IntegersExpress
- 演算法之路 - Way to Algorithm演算法Go
- The Best Way to Export an SVG from SketchExportSVG
- HDU2612 Find a way【BFS】
- HDU 2612 Find a way (廣搜)
- maven打包 package install deploy區別MavenPackage
- 黑客利用深信服SSL VPN進行攻擊,綠盟威脅情報已支援相關檢測黑客
- new self()與new static()
- 在Linux中,如何管理SSL/TLS證書?LinuxTLS
- Linux下Nginx安裝並開啟SSLLinuxNginx
- 推薦 | 通往AGI之路(Way to AGI)
- A way to represent that more realistically might be forcing users
- 聚焦科技女性 - “Her Future, Her Way”
- 【Linux】curl: (35) SSL connect error問題處理LinuxError
- 殭屍網路瞄準SonicWall SSL VPN,揭開隱匿在物聯網裝置背後的真面目
- New
- 【網路安全】VPN是什麼?VPN與堡壘機有啥區別?
- JavaScript中的new map()和new set()使用詳細(new map()和new set()的區別)JavaScript
- linux伺服器下pptp搭建vpn代理上網很慢的解決辦法Linux伺服器pptp
- How to Build and Deploy a Next.js App on Apache ServerUIJSAPPApacheServer
- 理解new和實現一個new