рдЕрдирд╛рдо рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд░реВрдк рдореЗрдВ VPS рдФрд░ рди рдХреЗрд╡рд▓ ...

рдЖрдЬ, рдкреНрд░рддреНрдпреЗрдХ рдЗрдВрдЯрд░рдиреЗрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ VPS рдЦрд░реАрдж рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдХ рджреВрд░рд╕реНрде рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдпрд╛ DNS рд╕рд░реНрд╡рд░ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВ рд╡реАрдкреАрдПрд╕ рдХреЗ рдЧреИрд░-рдорд╛рдирдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛: рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдирд╛рдо рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ рдФрд░ рдореМрдЬреВрджрд╛ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмреИрдХрдЕрдк рдПрдХреНрд╕реЗрд╕ рдХреИрд╕реЗ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред

рд╕реНрд░реЛрдд рдбреЗрдЯрд╛:



рдЕрдирд╛рдо рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕рдВрд╕рд╛рдзрди рддрдХ рдкрд╣реБрдВрдЪ


рдЧреНрд░рд╛рд╣рдХ ---> рдЗрдВрдЯрд░рдиреЗрдЯ рдЧреЗрдЯрд╡реЗ (PF) --rdr -> рд╕реНрдерд╛рдиреАрдп рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ (SQUID) --vpn -> VPS рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ (SQUID) ---> рдЗрдВрдЯрд░рдиреЗрдЯ

рдЗрдВрдЯрд░рдиреЗрдЯ рдЧреЗрдЯрд╡реЗ рдкрд░ рдкреАрдПрдл рдлрд╝рд╛рдпрд░рд╡реЙрд▓

рдХреБрдЫ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдЕрдирд╛рдо рдкрд╣реБрдБрдЪ рдХреЗ рд▓рд┐рдП, рд╣рдо PF ip рдкрддреЛрдВ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВрдЧреЗ:
table <anonymous> persist file "/etc/pf/iplists/anonymsites.txt" 

рд╣рдорд╛рд░реА рдпреЛрдЬрдирд╛ рдореЗрдВ, рдЧреНрд░рд╛рд╣рдХ рдПрдХ рдкрд╛рд░рджрд░реНрд╢реА рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреАрдПрдл рдореЗрдВ рдЖрдкрдХреЛ рдПрдХ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 $ext_ip="xxx.xxx.xxx.xxx" $int_if=" " rdr on $int_if proto tcp from $clients to <anonymous> port 80 -> $ext_ip port 3129 rdr on $int_if proto tcp from $clients to <anonymous> port 443 -> $ext_ip port 3129 

рд╣рдо рд╕реНрдерд╛рдиреАрдп рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ (рдкреЛрд░реНрдЯ 3129) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреБрдЫ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдкреЛрд░реНрдЯреНрд╕ 80, 443 рдкрд░ рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рд╕реЗ рдЯреНрд░реИрдлрд┐рдХ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред

рд╕реНрдерд╛рдиреАрдп рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ SQUID

рдирд┐рдореНрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдХ SQUID2.7 рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
 http_port 3129 #    header_access From deny all header_access Server deny all header_access User-Agent deny all header_access WWW-Authenticate deny all header_access Link deny all header_access X-Forwarded-For deny all header_access Via deny all header_access Cache-Control deny all forwarded_for off #          VPS  vpn- cache_peer 10.10.10.250 parent 3128 0 no-query no-digest cache_peer_access 10.10.10.250 allow all never_direct allow all 

рдУрдкрдирд╡реАрдкреАрдПрди рдЯрдирд▓

рд╣рдо рдЗрдВрдЯрд░рдиреЗрдЯрд╡реЗ рдФрд░ рд╡реАрдкреАрдПрд╕ рдХреЗ рдмреАрдЪ рдПрдХ vpn рд╕реБрд░рдВрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдУрдкрдирд╡реЗ рд╕рд░реНрд╡рд░ (10.10.10.1) рдХреЛ рдЧреЗрдЯрд╡реЗ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреА рд╣реИ, рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ VPS (10.10.10.250) рдкрд░ред
 # OpenVPN  mode server tls-server port 2080 proto udp dev tun ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key dh /etc/openvpn/keys/dh1024.pem tls-auth /etc/openvpn/keys/ta.key 0 topology subnet ifconfig 10.10.10.1 255.255.255.0 keepalive 10 120 max-clients 10 comp-lzo cipher DES-EDE3-CBC user nobody group nogroup persist-key persist-tun verb 4 mute 20 client-to-client client-config-dir /etc/openvpn/ccd status /var/log/openvpn/openvpn-status.log log-append /var/log/openvpn/openvpn.log 

 # OpenVPN  client dev tun proto udp remote xxx.xxx.xxx.xxx 2080 pull topology subnet user nobody group nobody persist-key persist-tun ca /usr/local/etc/openvpn/keys/ca.crt cert /usr/local/etc/openvpn/keys/vps.crt key /usr/local/etc/openvpn/keys/vps.key tls-client tls-auth /usr/local/etc/openvpn/keys/ta.key 1 cipher DES-EDE3-CBC comp-lzo verb 3 status /var/log/openvpn-status.log log /var/log/openvpn.log mute 20 

VPS рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ SQUID

рдЕрдирд╛рдо рдкрд╣реБрдБрдЪ рдХреЗ рд╕рд╛рде SQUID2.7 рдорд╛рдирдХ рд╡рд┐рдиреНрдпрд╛рд╕ред
 http_port 3128 #   header_access From deny all header_access Server deny all header_access User-Agent deny all header_access WWW-Authenticate deny all header_access Link deny all header_access X-Forwarded-For deny all header_access Via deny all header_access Cache-Control deny all forwarded_for off 


рдмрд╛рд╣рд░ рд╕реЗ рд╕рд░реНрд╡рд░ (HTTP, HTTPs) рдХреЗ рд▓рд┐рдП рдмреИрдХрдЕрдк рдПрдХреНрд╕реЗрд╕


рдЗрдВрдЯрд░рдиреЗрдЯ ---> VPS (PF) --vp + stunnel -> рдЗрдВрдЯрд░рдиреЗрдЯ рдЧреЗрдЯрд╡реЗ (PF) ---> рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ (HTTP, HTTPs)

VPS рдкрд░ PF рдлрд╝рд╛рдпрд░рд╡реЙрд▓

VPS рдкрд░ PF рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдВ:
 $ext_if=" " rdr on $ext_if proto tcp from any to $ext_if port 80 -> 127.0.0.1 port 8180 rdr on $ext_if proto tcp from any to $ext_if port 443 -> 127.0.0.1 port 4443 

рд╣рдо 8180 рдФрд░ 4443 рдкреЛрд░реНрдЯреНрд╕ рдХреЗ рд╕реНрдерд╛рдиреАрдп рд▓реВрдк рдкрддреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рдЧреЗрдЯрд╡реЗ рдХреЗ рдкреАрдЫреЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдд рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕ рдкрд░ Stunnel рдЪрд▓рддрд╛ рд╣реИред

рд╕реБрд░рдВрдЧ Stunnel

рдпрд╣ рд╕рдВрднрд╡ рдерд╛, рд╕реНрдЯреБрдиреЗрд▓ рдХреЗ рдмрд┐рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдПрдХ рд╕реНрдерд┐рд░ рдорд╛рд░реНрдЧ рдФрд░ рдкреЛрд░реНрдЯ рдХреЛ рдкреАрдПрдл рдкрд░ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдирд╛ рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреЛрдбрд╝рдирд╛, рд▓реЗрдХрд┐рди рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрдерд╛рдиреАрдп рд╡реЗрдм рд╕рд░реНрд╡рд░ (192.168.XXX.YYY) рдкрд░ рдмрд╛рд╣рд░реА рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдкреНрд░реЙрдХреНрд╕реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреБрдиреЗрд▓ рдЖрд╡рд╢реНрдпрдХ рд╣реИред VPS рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдЧреЗрдЯрд╡реЗ рдкрд░ Stunnel рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди:
 #stunnel.conf  VPS pid = /var/run/stunnel.pid debug = 4 output = /var/log/stunnel.log cert = /usr/local/etc/stunnel/stunnel.cert key = /usr/local/etc/stunnel/stunnel.key sslVersion = SSLv3 options = DONT_INSERT_EMPTY_FRAGMENTS ciphers = AES256-SHA socket = l:TCP_NODELAY=1 socket = r:TCP_NODELAY=1 compression = rle [http] client = yes accept = 8180 connect = 10.10.10.1:8180 TIMEOUTclose = 0 [https] client = yes accept = 4443 connect = 10.10.10.1:4443 TIMEOUTclose = 0 

 #stunnel.conf  - pid = /var/run/stunnel.pid debug = 4 output = /var/log/stunnel.log cert = /usr/local/etc/stunnel/stunnel.cert key = /usr/local/etc/stunnel/stunnel.key sslVersion = SSLv3 options = DONT_INSERT_EMPTY_FRAGMENTS ciphers = AES256-SHA socket = l:TCP_NODELAY=1 socket = r:TCP_NODELAY=1 compression = rle [http] accept = 8180 connect = 192.168.XXX.YYY:80 TIMEOUTclose = 0 [https] accept = 4443 connect = 192.168.XXX.YYY:443 TIMEOUTclose = 0 

рддреЛ, рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдлреЗрдж рдЖрдИрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрд╡рд╛ рддрдХ рдмреИрдХрдЕрдк рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, DNS рдореЗрдВ domain example.com рдХреЛ рдореБрдЦреНрдп рдмрд╛рд╣рд░реА рдЖрдИрдкреА, рдФрд░ рдЙрдкрдбреЛрдореЗрди рдкрд░ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ www.example.com www.example.com (рдЕрдХреНрд╕рд░ рдореБрдЦреНрдп рдПрдХ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдирд╛рдо) - рджреВрд░рд╕реНрде VPS рдХрд╛ IPред

Source: https://habr.com/ru/post/In217629/


All Articles