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 兩種VPN 風險比較
- 解析天翼雲IPsec VPN和SSL VPN的區別
- 給 linux deploy 的映象擴容Linux
- Learn Linux The Hard Way/笨辦法學LinuxLinux
- linux 命令列連線 VPNLinux命令列
- Is OpenStack the new Linux?Linux
- SSL-Explorer基於web瀏覽器的VPN解決方案Web瀏覽器
- The Way to HappinessAPP
- The Way To Go --- 切片Go
- deploy service on swarmSwarm
- kubectl get deploy
- oracle 豎表,橫表(a stupid way,want the smart way)Oracle
- Cisco VPN套件中過期的SSL證書將破壞網路配置套件
- Linux平臺VPN技術概論Linux
- Github deploy key使用Github
- deploy-your-site
- linux下搭建VPN訪問公司內網Linux內網
- Deploy Google BBR on CentOS 7GoCentOS
- Maven Deploy 簡單操作Maven
- Deploy an Oracle include oraInventoryOracleAI
- deploy package outside of jbossPackageIDE
- Hexo deploy git permission deniedHexoGit
- MySQL MMM Install DeployMySql
- 演算法之路 - Way to Algorithm演算法Go
- POJ 2891 Strange Way to Express IntegersExpress
- Learning Django: the hard way (1)Django
- 黑客利用深信服SSL VPN進行攻擊,綠盟威脅情報已支援相關檢測黑客
- mvn deploy命令上傳包
- harbor+k8s deployK8S
- 基於Linux和IPSec的VPN閘道器Linux
- 7、DSVPN
- 10g_Add_New_Node_LinuxLinux
- The Best Way to Export an SVG from SketchExportSVG
- Get table and index DDL in the easy way(轉)Index
- Python: Choice of the one obvious way to do itPython
- Objectify: A Better Way to Build Rails ApplicationsObjectUIAIAPP
- 推薦 | 通往AGI之路(Way to AGI)
- MPLS VPN技術概述-VeCloudMPLS VPN技術概述-VeCloudCloud