V našem předchozím příspěvku Jak nainstalovat Squid Proxy Server na Linux jsme vám poskytli základní představení Squid serveru a jeho instalaci do systému Linux. V tomto příspěvku budeme pokračovat v konfiguraci proxy serveru Squid. Budeme se zabývat následujícími tématy:
- Konfigurace Squid pro poslech na jiném portu
- Konfigurace názvu hostitele pro proxy server Squid
- Nastavení velikosti mezipaměti Squid
- Určení jmenných serverů DNS k použití
- Odepření přístupu k určitým webovým stránkám na proxy serveru Squid
- Konfigurace ověřování klienta proxy Squid
- Konfigurace klientů pro připojení prostřednictvím serveru proxy Squid
Poznámka: Příkazy a postupy popsané v tomto článku byly testovány na Ubuntu 20.04 LTS (Focal Fossa). Stejné příkazy a procedury platí také pro distribuci Debian.
Předpoklady
- Počítač s nainstalovaným Ubuntu nebo Debian
- Uživatel sudo
Konfigurace serveru Squid Proxy v systému Linux
Konfigurační soubor proxy serveru Squid se nachází na adrese /etc/squid/squid.conf .seznam. Tento soubor obsahuje direktivy, pomocí kterých se konfiguruje proxy server Squid.
Konfigurace Squid pro poslech na jiném portu
Ve výchozím nastavení proxy server Squid naslouchá na portu 3128 pro provoz přicházející z klientských počítačů. Můžete jej však nakonfigurovat tak, aby naslouchal na jiném než výchozím portu pomocí http_port směrnice.
Upravte konfiguraci olihně pomocí níže uvedeného příkazu:
$ sudo nano /etc/squid/squid.conf
Nyní najděte níže uvedený záznam v konfiguračním souboru.
Poznámka: Můžete použít Ctrl+W k vyhledání libovolného řádku. Stiskněte Ctrl+W, zadejte klíčová slova a stiskněte Enter.
http_port 3128
Nyní nahraďte 3128 s číslem portu, který má proxy server Squid naslouchat, řekněme 3155 :
http_port 3155
Nyní restartujte službu proxy serveru squid, aby se změny projevily:
$ sudo service squid restart
Konfigurace názvu hostitele pro proxy server Squid
Můžete nakonfigurovat název hostitele pro proxy server Squid, pokud nemůže sám určit název hostitele počítače. Ke konfiguraci názvu hostitele můžete použít viditelný_název_hostitele směrnice. Tento název používá Squid v chybových zprávách, interních URL, výpisech FTP adresářů atd.
Upravte konfiguraci olihně pomocí níže uvedeného příkazu:
$ sudo nano /etc/squid/squid.conf
Nyní přidejte do konfiguračního souboru následující položku, která nahradí
visible_hostname <host_name>
Chcete-li například nastavit „linuxways ” jako název hostitele proxy serveru Squid by záznam byl:
visible_hostname linuxways
Jakmile budete s konfiguracemi hotovi, uložte a ukončete konfigurační soubor.
Nyní restartujte službu proxy Squid, aby se změny konfigurace projevily.
$ sudo service squid restart
V případě, že klient Squid obdrží jakoukoli chybovou stránku, uvidí název hostitele uvedený ve spodní části webové stránky.
Nastavení velikosti mezipaměti Squid
Squid ukládá často navštěvovaný obsah do paměti. Výchozí velikost mezipaměti Squid je 256 MB. Chcete-li změnit velikost mezipaměti Squid, cache_mem je použita směrnice.
Upravte konfigurační soubor pomocí níže uvedeného příkazu:
$ sudo nano /etc/squid/squid.conf
Poté vyhledejte v konfiguračním souboru následující položku a nahraďte 256 hodnotou, kterou chcete nastavit pro velikost mezipaměti.
cache_mem 256 MB
Chcete-li například nastavit velikost mezipaměti na 512 MB, položka by se změnila na:
cache_mem 512 MB
Jakmile budete s konfiguracemi hotovi, uložte a ukončete konfigurační soubor.
Nyní restartujte službu squid, aby se změny projevily:
$ sudo service squid restart
Určení jmenných serverů DNS k použití
Ve výchozím nastavení používá Squid /etc/resolv.conf vyřešit názvy domén. Pokud chcete, aby Squid používal jiný jmenný server, můžete tak učinit pomocí dns_nameservers směrnice. Upravte konfiguraci olihně pomocí níže uvedeného příkazu:
$ sudo nano /etc/squid/squid.conf
Nyní přidejte níže uvedenou položku do konfiguračního souboru nahrazující:
dns_nameservers <IP address of DNS server>
Chcete-li například nastavit8.8.4.4 jako jmenné servery by záznam byl:
dns_nameservers 8.8.8.8 8.8.4.4
Jakmile budete s konfiguracemi hotovi, uložte a ukončete soubor.
Nyní restartujte službu squid, aby se změny projevily:
$ sudo service squid restart
Řízení přístupu k serveru proxy
Jak Squid ACL funguje
Pro řízení přístupu se ACL používají v kombinaci s direktivou řízení přístupu. Samotné ACL jsou k ničemu, pouze pomáhají identifikovat požadavky uživatelů na základě různých pravidel. Aby bylo možné povolit nebo zakázat přístup, jsou kombinovány s http_access směrnice.
Chcete-li definovat ACL, syntaxe je:
acl NAME TYPE value
Příklad: Povolit provoz LAN prostřednictvím serveru proxy Squid
Porovnat provoz přicházející z LAN 192.168.5.0/24 , budeme muset vytvořit pravidlo ACL v konfiguračním souboru Squid:
acl myacl src 192.168.5.0/24
Jakmile je ACL definován, můžete použít http_access direktiva pro povolení/zakázání přístupu. Zde je syntaxe pro http_access směrnice:
http_access allow|deny NAME
Kde NAME identifikuje provoz, kterému chcete povolit/zakázat přístup.
Chcete-li povolit provoz identifikovaný v ACL, budete muset přidat následující http_access direktiva v konfiguračním souboru Squid:
http_access allow myacl
Konfigurace zdrojů proxy pro přístup k internetu
Nejprve nakonfigurujeme zdroje, kterým chceme povolit přístup k internetu přes proxy server. Můžete například chtít povolit přístup k serveru proxy pouze z interní sítě.
1. Chcete-li nakonfigurovat povolené zdroje, upravte konfigurační soubor squid:
$ sudo nano /etc/squid/squid.conf
2. Nyní vyhledejte položku acl localnet src .
Poznámka: Chcete-li vyhledat položku v editoru Nano, stiskněte Ctrl+w a zadejte výraz, který chcete hledat. V případě výše uvedeného příkladu stiskněte Ctr+w a zadejte acl localnet src jak je znázorněno na následujícím snímku obrazovky.
3. Zde uvidíte počet položek pro různé rozsahy IP adres. Zde přidejte položku pro vaši síť následovně:
acl localnet src subnet_ID/subnet_mask
Například vaše místní síť běží na 192.168.72.0/24 podsíť. V tomto případě by záznam byl:
acl localnet src 192.168.72.0/255.255.255.0
4. Nyní pomocí http_access direktiva, povolit zdroje identifikované pomocí acl s názvem localnet definované výše. Direktiva http_access je již definována v konfiguračním souboru, stačí ji pouze najít a odkomentovat.
Vyhledejte položku #http_access allow localnet a poté jej odkomentujte odstraněním # postava.
http_access allow localnet
Nyní uložte a ukončete konfigurační soubor olihně.
3. Nyní restartujte službu squid pomocí níže uvedeného příkazu:
$ sudo service squid restart
Odepření přístupu k určitým webovým stránkám na proxy serveru Squid
Chcete-li odepřít přístup k některým webovým stránkám na proxy serveru Squid, vytvořte soubor a uveďte všechny weby, kterým chcete odepřít přístup.
$ sudo nano /etc/squid/deniedsites.acl
Nyní uveďte seznam webů, kterým chcete odepřít přístup, a poté soubor uložte a ukončete.
…
.msn.com
.yahoo.com
.bbc.com
…
Poté upravte konfigurační soubor olihně pomocí níže uvedeného příkazu:
$ sudo nano /etc/squid/squid.conf
Nyní vytvořte pravidlo ACL pro zakázané webové stránky a zmiňte soubor obsahující seznam zakázaných webových stránek.
acl denied_sites dstdomain “/etc/squid/deniedsites.acl”
Pravidlo ACL denied_sites bude odpovídat všem požadavkům určeným pro webové stránky uvedené v „/etc/squid/deniedsites.acl “.
Nyní budete muset přidat http_access direktiva k odepření webových stránek identifikovaných výše uvedeným pravidlem ACL s názvem denied_sites . Přidejte následující řádek do konfiguračního souboru Squid:
http_access deny denied_sites
Jakmile budete s konfiguracemi hotovi, uložte a ukončete soubor.
Nyní restartujte službu squid pomocí níže uvedeného příkazu:
$ sudo service squid restart
Konfigurace ověřování Squid Proxy klienta
S proxy serverem Squid můžeme pro určité zabezpečení přidat základní uživatelskou autentizaci. K tomu použijeme htpasswd program, který je dodáván se serverem Apache HTTP. Poté vytvoříme soubor, který bude obsahovat uživatelská jména a hesla pro ověření.
1. Nejprve budeme muset nainstalovat Apache2-utils. Použijte k tomu následující příkaz:
$ apt install -y apache2-utils
2. Nyní vytvořte soubor passwd v /etc/squid adresář pro ukládání hesel:
$ touch /etc/squid/passwd
3. Pomocí níže uvedeného příkazu nastavte vlastnictví na „proxy“ uživatele:
$ chown proxy: /etc/squid/passwd
4. Nyní přidejte uživatele do /etc/squid/passwd soubor:
htpasswd /etc/squid/passwd tin
Zadejte heslo a potvrďte jej opětovným zadáním. Nyní bude uživatel a jeho zašifrované heslo uloženo do /etc/squid/passwd soubor.
5. Upravte soubor /etc/squid/squid.conf soubor pomocí níže uvedeného příkazu:
$ sudo nano /etc/squid/squid.conf
Nyní přidejte do souboru následující řádky:
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwdauth_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
Once you are done with the configurations, save and exit the configuration file.
Konfigurace klientů pro připojení přes Squid proxy server
V této části nakonfigurujeme klienty pro připojení přes proxy server Squid.
1. Otevřete ve svém systému webový prohlížeč. Zde budeme používat Firefox prohlížeč.
2. Přejděte do pravého horního rohu prohlížeče a klikněte na ikonu tří vodorovných pruhů. Poté klikněte na Možnosti .
3. Poté do vyhledávacího pole zadejte síť . Když se zobrazí výsledek vyhledávání, klikněte na Nastavení jak je vidět na níže uvedeném snímku obrazovky.
4. Vyberte možnost Ruční konfigurace serveru proxy tlačítko volby. Poté zadejte IP adresu proxy serveru Squid do HTTP Proxy a číslo portu v poli Port pole. Zaškrtněte také možnost Tento proxy server používat také pro FTP a HTTPS zaškrtávací políčko. Poté klikněte na OK .
Chcete-li nyní zkontrolovat, zda server Squid funguje, zkuste ve svém prohlížeči otevřít jakoukoli webovou stránku. Zobrazí se dialogové okno ověření. Zadejte uživatelské jméno a heslo olihně, které jste vytvořili dříve, a klikněte na OK .
Nyní byste měli mít přístup k požadované webové stránce.
Nyní zkuste přejít na jinou webovou stránku, kterou jste zablokovali pomocí přístupového seznamu. Prohlížeč zobrazí následující stránku se zprávou „Server proxy odmítá připojení“.
To je vše, co k tomu patří! V tomto článku jste se naučili, jak nakonfigurovat proxy server Squid v systému Linux. Právě jsme probrali základní konfigurace. S proxy serverem Squid můžete dělat mnohem víc. Další informace naleznete v oficiální dokumentaci.