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.