CentOS 7/8'de Squid Kullanarak HTTP Proxy Nasıl Oluşturulur


Web proxy'leri bir süredir ortalıkta dolaşıyor ve dünya çapında milyonlarca kullanıcı tarafından kullanılıyor. Çok çeşitli amaçları vardır; en popüler olanı çevrimiçi anonimliktir, ancak web proxy'lerinden yararlanmanın başka yolları da vardır. İşte bazı fikirler:

  • Çevrimiçi anonimlik
  • Çevrimiçi güvenliği iyileştirin
  • Yükleme sürelerini iyileştirin
  • Kötü amaçlı trafiği engelle
  • Çevrimiçi etkinliğinizi günlüğe kaydedin
  • Bölgesel kısıtlamaları aşmak için
  • Bazı durumlarda bant genişliği kullanımını azaltabilir

Proxy Sunucusu Nasıl Çalışır?

Proxy sunucusu, istemci ile istemcinin kaynak isteyebileceği diğer sunucular arasında aracı olarak kullanılan bir bilgisayardır. Bunun basit bir örneği, bir istemcinin çevrimiçi isteklerde bulunması (örneğin bir web sayfası açmak istemesi) sırasında ilk önce proxy sunucusuna bağlanmasıdır.

Proxy sunucusu daha sonra yerel disk önbelleğini kontrol eder ve eğer veri orada bulunabilirse, verileri istemciye geri gönderir, eğer önbelleğe alınmadıysa, proxy IP adresini kullanarak istemci adına istekte bulunur (önbellekten farklı). istemciler) ve ardından verileri istemciye geri gönderin. Proxy sunucusu yeni verileri önbelleğe almaya çalışacak ve bunu aynı sunucuya gelecekte yapılacak istekler için kullanacaktır.

Kalamar Proxy Nedir?

Squid, çok çeşitli kuruluşlarımda kullanılan bir web proxy'sidir. Genellikle önbelleğe alma proxy'si olarak kullanılır ve yanıt sürelerini iyileştirir ve bant genişliği kullanımını azaltır.

Bu makalenin amacı doğrultusunda, Linode CentOS 7 VPS'ye Squid'i kuracağım ve onu bir HTTP proxy sunucusu olarak kullanacağım.

CentOS 7/8'e Squid Nasıl Kurulur

Başlamadan önce şunu bilmelisiniz: Squid'in herhangi bir minimum gereksinimi yoktur ancak RAM kullanım miktarı, proxy sunucu üzerinden internette dolaşan istemcilere göre değişiklik gösterebilir.

Squid temel depoya dahil edilmiştir ve bu nedenle kurulumu basit ve kolaydır. Ancak kurmadan önce çalıştırarak paketlerinizin güncel olduğundan emin olun.

yum -y update

Squid'i yükleyerek ilerleyin, aşağıdaki komutları kullanarak sistem başlangıcında başlatın ve etkinleştirin.

yum -y install squid
systemctl start squid
systemctl  enable squid

Bu noktada Squid web proxy'niz zaten çalışıyor olmalıdır ve hizmetin durumunu ile doğrulayabilirsiniz.

systemctl status squid
Örnek Çıktı
 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.

Bilmeniz gereken bazı önemli dosya konumları şunlardır:

  • Squid yapılandırma dosyası: /etc/squid/squid.conf
  • Squid Erişim günlüğü: /var/log/squid/access.log
  • Squid Önbellek günlüğü: /var/log/squid/cache.log

Minimum squid.conf yapılandırma dosyası (içinde açıklamalar olmadan) şuna benzer:

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

Squid'i HTTP Proxy Olarak Yapılandırma

Burada, kimlik doğrulama için yalnızca istemci IP adresini kullanarak squid'i bir HTTP proxy olarak nasıl yapılandıracağınızı göstereceğiz.

Kalamar ACL'leri ekleyin

IP adresinin yeni proxy sunucunuz aracılığıyla web'e erişmesine izin vermek istiyorsanız, yapılandırma dosyasına yeni bir ACL (erişim kontrol listesi) satırı eklemeniz gerekecektir. .

vim /etc/squid/squid.conf

Eklemeniz gereken satır:

acl localnet src XX.XX.XX.XX

Burada XX.XX.XX.XX eklemek istediğiniz gerçek istemci IP adresidir. ACL'lerin tanımlandığı dosyanın başına satır eklenmelidir. ACL'nin yanına bu IP adresini kimin kullandığını açıklayan bir yorum eklemek iyi bir uygulamadır.

Squid yerel ağınızın dışında bulunuyorsa istemcinin genel IP adresini eklemeniz gerektiğini unutmamak önemlidir.

Yeni değişikliklerin etkili olabilmesi için Squid'i yeniden başlatmanız gerekecek.

systemctl  restart squid

Squid Proxy Bağlantı Noktalarını Aç

Yapılandırma dosyasında da görmüş olabileceğiniz gibi yalnızca belirli bağlantı noktalarının bağlanmasına izin veriliyor. Yapılandırma dosyasını düzenleyerek daha fazlasını ekleyebilirsiniz.

acl Safe_ports port XXX

Burada XXX yüklemek istediğiniz gerçek bağlantı noktasıdır. Yine yanına limanın ne için kullanılacağını açıklayan bir yorum bırakmak iyi bir fikirdir.

Değişikliklerin etkili olması için squid'i bir kez daha yeniden başlatmanız gerekecek.

systemctl  restart squid

Squid Proxy İstemci Kimlik Doğrulaması

Büyük olasılıkla kullanıcılarınızın proxy'yi kullanmadan önce kimlik doğrulamasını isteyeceksiniz. Bu amaçla temel HTTP kimlik doğrulamasını etkinleştirebilirsiniz. Yapılandırması kolay ve hızlıdır.

Öncelikle httpd-tools'un kurulu olması gerekir.

yum -y install httpd-tools

Şimdi daha sonra kimlik doğrulama için kullanıcı adını saklayacak bir dosya oluşturalım. Squid, “squid ” kullanıcısıyla çalışır, dolayısıyla dosyanın sahibi o kullanıcıya ait olmalıdır.

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

Şimdi “proxyclient” adında yeni bir kullanıcı oluşturacağız ve şifresini ayarlayacağız.

htpasswd /etc/squid/passwd proxyclient

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

Şimdi kimlik doğrulamayı yapılandırmak için yapılandırma dosyasını açın.

vim /etc/squid/squid.conf

Bağlantı noktalarından sonra ACL'ler aşağıdaki satırları ekleyin:

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

Yeni değişikliklerin etkili olabilmesi için dosyayı kaydedin ve squid'i yeniden başlatın:

systemctl restart squid

Squid Proxy'de Web Sitelerini Engelle

Son olarak, istenmeyen web sitelerini engellememize yardımcı olacak son bir ACL oluşturacağız. Öncelikle kara listeye alınan siteleri saklayacak dosyayı oluşturun.

touch /etc/squid/blacklisted_sites.acl

Engellemek istediğiniz bazı alan adlarını ekleyebilirsiniz. Örneğin:

.badsite1.com
.badsite2.com

Devam eden nokta squid'e www.badsite1, subsite.badsite1.com, vb. dahil olmak üzere bu sitelere yapılan tüm referansları engellemesini söyler.

Şimdi Squid’in konfigürasyon dosyasını açın.

vim /etc/squid/squid.conf

Bağlantı noktalarının hemen ardından ACL'ler aşağıdaki iki satırı ekleyin:

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

Şimdi dosyayı kaydedin ve squid'i yeniden başlatın:

systemctl restart squid

Her şey doğru şekilde yapılandırıldıktan sonra artık yerel istemci tarayıcınızı veya işletim sisteminizin ağ ayarlarını squid HTTP proxy'nizi kullanacak şekilde yapılandırabilirsiniz.

Çözüm

Bu eğitimde Squid HTTP Proxy sunucusunu kendi başınıza nasıl kuracağınızı, güvenliğini sağlayacağınızı ve yapılandıracağınızı öğrendiniz. Az önce edindiğiniz bilgilerle artık Squid aracılığıyla gelen ve giden trafik için bazı temel filtrelemeler ekleyebilirsiniz.

Daha da ileri gitmek istiyorsanız, dikkatinizin dağılmasını önlemek için squid'i çalışma saatleri sırasında bazı web sitelerini engelleyecek şekilde bile yapılandırabilirsiniz. Herhangi bir sorunuz veya yorumunuz varsa, lütfen bunları aşağıdaki yorum bölümüne gönderin.