Weboldal keresés

HTTP-proxy létrehozása Squid használatával a CentOS 7/8 rendszeren


A webes proxy-k már jó ideje léteznek, és felhasználók milliói használják szerte a világon. Céljuk széles skálája van, a legnépszerűbb az online névtelenség, de más módokon is kihasználhatja a webes proxy előnyeit. Íme néhány ötlet:

  • Online névtelenség
  • Az online biztonság javítása
  • A betöltési idők javítása
  • Blokkolja a rosszindulatú forgalmat
  • Regisztrálja online tevékenységét
  • A regionális korlátozások megkerülésére
  • Egyes esetekben csökkentheti a sávszélesség-használatot

Hogyan működik a proxyszerver

A proxyszerver egy számítógép, amelyet közvetítőként használnak az ügyfél és más szerverek között, amelyektől az ügyfél erőforrásokat kérhet. Egy egyszerű példa erre, amikor egy kliens online kéréseket intéz (például meg akar nyitni egy weboldalt), először csatlakozik a proxyszerverhez.

A proxyszerver ezután ellenőrzi a helyi lemez gyorsítótárát, és ha az adatok ott találhatók, visszaküldi az adatokat a kliensnek, ha nincs gyorsítótárban, akkor a kliens nevében a proxy IP-címével (a ügyfelek), majd visszaküldi az adatokat az ügyfélnek. A proxyszerver megpróbálja gyorsítótárba helyezni az új adatokat, és felhasználja azokat az ugyanahhoz a szerverhez intézett jövőbeli kérésekhez.

Mi az a Squid Proxy

A Squid egy webes proxy, amely a szervezeteim széles körét használta. Gyakran használják gyorsítótárazási proxyként, és javítja a válaszidőket és csökkenti a sávszélesség-használatot.

Ebben a cikkben a Squid programot egy Linode CentOS 7 VPS-re telepítem, és HTTP-proxyszerverként használom.

A Squid telepítése a CentOS 7/8 rendszeren

Mielőtt elkezdené, tudnia kell, hogy a Squidnek nincsenek minimális követelményei, de a RAM-használat mértéke a proxyszerveren keresztül az internetet böngésző ügyfelektől függően változhat.

A Squid benne van az alaptárban, így a telepítés egyszerű és egyértelmű. Mielőtt azonban telepítené, futtassa, győződjön meg arról, hogy a csomagok naprakészek.

yum -y update

Folytassa a squid telepítésével, indítsa el és engedélyezze a rendszer indításakor a következő parancsokkal.

yum -y install squid
systemctl start squid
systemctl  enable squid

Ekkor a Squid webproxynak már futnia kell, és ezzel ellenőrizheti a szolgáltatás állapotát.

systemctl status squid
Minta kimenet
 squid.service - Squid caching proxy
   Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2018-09-20 10:07:23 UTC; 5min ago
 Main PID: 2005 (squid)
   CGroup: /system.slice/squid.service
           ├─2005 /usr/sbin/squid -f /etc/squid/squid.conf
           ├─2007 (squid-1) -f /etc/squid/squid.conf
           └─2008 (logfile-daemon) /var/log/squid/access.log

Sep 20 10:07:23 tecmint systemd[1]: Starting Squid caching proxy...
Sep 20 10:07:23 tecmint squid[2005]: Squid Parent: will start 1 kids
Sep 20 10:07:23 tecmint squid[2005]: Squid Parent: (squid-1) process 2007 started
Sep 20 10:07:23 tecmint systemd[1]: Started Squid caching proxy.

Íme néhány fontos fájlok helye, amelyekre figyelnie kell:

  • Squid konfigurációs fájl: /etc/squid/squid.conf
  • Squid Access napló: /var/log/squid/access.log
  • Squid Cache napló: /var/log/squid/cache.log

Egy minimális squid.conf konfigurációs fájl (megjegyzések nélkül) így néz ki:

acl localnet src 10.0.0.0/8	# RFC1918 possible internal network
acl localnet src 172.16.0.0/12	# RFC1918 possible internal network
acl localnet src 192.168.0.0/16	# RFC1918 possible internal network
acl localnet src fc00::/7       # RFC 4193 local private network range
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443
acl Safe_ports port 80		# http
acl Safe_ports port 21		# ftp
acl Safe_ports port 443		# https
acl Safe_ports port 70		# gopher
acl Safe_ports port 210		# wais
acl Safe_ports port 1025-65535	# unregistered ports
acl Safe_ports port 280		# http-mgmt
acl Safe_ports port 488		# gss-http
acl Safe_ports port 591		# filemaker
acl Safe_ports port 777		# multiling http
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128
coredump_dir /var/spool/squid
refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern -i (/cgi-bin/|\?) 0	0%	0
refresh_pattern .		0	20%	4320

A Squid konfigurálása HTTP-proxyként

Itt megmutatjuk, hogyan konfigurálhatja a squid-ot HTTP-proxyként, csak az ügyfél IP-címét használva a hitelesítéshez.

Adjon hozzá Squid ACL-eket

Ha azt szeretné, hogy az IP-cím hozzáférjen az internethez az új proxyszerveren keresztül, akkor hozzá kell adnia egy új ACL (hozzáférési lista) sort a konfigurációs fájlhoz. .

vim /etc/squid/squid.conf

A következő sort kell hozzáadni:

acl localnet src XX.XX.XX.XX

Ahol XX.XX.XX.XX a hozzáadni kívánt kliens tényleges IP-címe. A sort a fájl elejére kell beilleszteni, ahol az ACL-ek vannak meghatározva. Jó gyakorlat az ACL mellé megjegyzést írni, amely leírja, hogy ki használja ezt az IP-címet.

Fontos megjegyezni, hogy ha a Squid a helyi hálózaton kívül található, meg kell adnia az ügyfél nyilvános IP-címét.

Újra kell indítania a Squid-et, hogy az új változtatások érvénybe léphessenek.

systemctl  restart squid

Nyissa meg a Squid proxy portjait

Amint azt a konfigurációs fájlban láthatta, csak bizonyos portok engedélyezettek a csatlakozáshoz. Többet is hozzáadhat a konfigurációs fájl szerkesztésével.

acl Safe_ports port XXX

Ahol XXX a ténylegesen betölteni kívánt port. Ismét jó ötlet egy megjegyzést hagyni mellette, amely leírja, hogy mire fogják használni a portot.

A változtatások életbe léptetéséhez újra kell indítania a squid alkalmazást.

systemctl  restart squid

Squid Proxy kliens hitelesítés

Valószínűleg azt szeretné, ha a felhasználók hitelesítenék magukat a proxy használata előtt. Ebből a célból engedélyezheti az alapvető HTTP-hitelesítést. Könnyen és gyorsan konfigurálható.

Először telepítenie kell a httpd-tools programot.

yum -y install httpd-tools

Most hozzunk létre egy fájlt, amely később tárolja a hitelesítéshez szükséges felhasználónevet. A Squid a „squid” felhasználóval fut, így a fájlnak az adott felhasználónak kell lennie.

touch /etc/squid/passwd
chown squid: /etc/squid/passwd

Most létrehozunk egy új felhasználót „proxyclient” néven, és beállítjuk a jelszavát.

htpasswd /etc/squid/passwd proxyclient

New password:
Re-type new password:
Adding password for user proxyclient

Most a hitelesítés konfigurálásához nyissa meg a konfigurációs fájlt.

vim /etc/squid/squid.conf

A portok ACL-ek után adja hozzá a következő sorokat:

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users

Mentse el a fájlt, és indítsa újra a squid-ot, hogy az új módosítások érvénybe léphessenek:

systemctl restart squid

Webhelyek blokkolása a Squid Proxy-n

Végül létrehozunk egy utolsó ACL-t, amely segít blokkolni a nem kívánt webhelyeket. Először hozzon létre egy fájlt, amely a tiltólistán szereplő webhelyeket tárolja.

touch /etc/squid/blacklisted_sites.acl

Hozzáadhat néhány blokkolni kívánt domaint. Például:

.badsite1.com
.badsite2.com

A folyamatban lévő pont arra utasítja a squid-et, hogy blokkoljon minden hivatkozást az adott webhelyre, beleértve a www.badsite1, subsite.badsite1.com, stb.

Most nyissa meg a Squid konfigurációs fájlját.

vim /etc/squid/squid.conf

Közvetlenül a portok ACL-jei után adja hozzá a következő két sort:

acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"
http_access deny bad_urls

Most mentse a fájlt, és indítsa újra a squid-et:

systemctl restart squid

Miután mindent megfelelően konfigurált, most beállíthatja a helyi ügyfélböngészőt vagy az operációs rendszer hálózati beállításait a squid HTTP-proxy használatához.

Következtetés

Ebben az oktatóanyagban megtanulta, hogyan telepíthet, biztosíthat és konfigurálhat önállóan egy Squid HTTP Proxy szervert. Az imént kapott információk alapján most már hozzáadhat néhány alapvető szűrést a Squid-en keresztül bejövő és kimenő forgalomhoz.

Ha többet szeretne megtenni, még úgy is beállíthatja a squid-et, hogy blokkoljon egyes webhelyeket munkaidőben, hogy elkerülje a figyelemelterelést. Ha bármilyen kérdése vagy észrevétele van, kérjük, tegye fel azokat az alábbi megjegyzés rovatban.