Cerit.Net

Cerit.Net

Makaleler

CentOS 8 Squid Proxy v4.4 Radius Authentication

Bu yazıda Squid Proxy Radius Authentication nasıl yapılacağını okuyacaksınız.

ThC

4-Minute Read

Squid Proxy Radius Authentication

Merhaba Arkadaşlar bugün Linux üzerinde Squid Proxy Radius Authentication konfigürasyonu yapacağız.

Ancak önce Squid Proxy neden ve nerede kullanılır? Sorusunu cevaplayalım.

Proxy sunucular (vekil sunucu) HTTP ya da HTTPS isteklerini sizinle istekte bulunduğunuz sunucu arasına girer. Sizden isteği alır. Sunucuya iletir. Sunucudan gelen yanıtı da size iletir.

Bu işlemi neden yapmak isteyebilirsiniz? İşte size birkaç senaryo

  • Cache tutarak bant genişliği tasarruf etmek isteyebilirsiniz. Mesela 100 kullanıcılı bir ağınız olsun. Sabah kullanıcılar genelde gazete okur. Proxy ile aynı gazeteyi onlarca kere aynı sunucudan istemek zorunda kalmazsınız. Proxy bir kere içeriği aldığında onu kayıt eder. İkinci kez aynı gazeteye yada siteye istek geldiğinde proxy kendi tuttuğu cacheden yanıt verir. Bu şekilde bant genişliği tasarrufu yapılmış olur. Bu tür proxyler genelde transparent diye anılır.
  • Kullanıcıların internete erişimini zamana göre, anahtar kelimelere göre, URL adreslerine göre filtreleyebilirsiniz.
  • Belirli ücretli sitelere erişimi dışarıdan başka kullanıcılara eriştirmek istediğiniz durumlarda kullanılabilir.

Şimdi konfigürasyona geçelim. Önce değiştireceğimiz config dosyasının yedeğini alalım.

[[email protected]]$ cp /etc/squid/squid.conf /etc/squid/squid.conf.backup
[[email protected]]$ vi /etc/squid/squid.conf

Aşağıdaki satırı config dosyasının en üstüne ekleyin.

auth_param basic program  /usr/lib64/squid/basic_radius_auth -f /etc/squid/squid_radius_config.cf
auth_param basic children 5
auth_param basic realm proxyserver
auth_param basic credentialsttl 1 hour

Radius sunucu IP adresi ve secret aşağıdaki dosyaya yazılır.

[[email protected]]$ vi /etc/squid/squid_radius_config.cf

Aşağıdaki satırları ekleyin. Kayıt edip çıkın. ESC tuşuna basın ardından :wq tuşlarına ve ardından enter a basın.

server 192.168.1.1
secret radiuspassword  

Aşağıdaki satırları squid.conf dosyasına ekleyin.

acl localnet proxy_auth REQUIRED
http_access allow localnet
http_access deny localnet  
http_port 8080
access_log /var/log/squid/squidaccess.log

squid.conf dosyasını ESC tuşuna basın ardından :wq tuşları ve ardından enter a basın kayıt edip kapatın. Şimdi sıra ayarları test etmeye geldi.

[[email protected]]$ systemctl restart squid

Tarayıcınızda aşağıdaki yol ile proxy ayarlarını değiştirebilirsiniz. Ayarlar->Gelişmiş ayarlar->Proxy ayarlarını değiştir’e tıkladığınızda IE ayarları açılır. Bağlantılar->Ekle yolu ile Proxy sunucu adresi ve portunu girerek ayarı yapabilirsiniz.

Squid Proxy v4.4 için tamamlanmış config aşağıdaki gibi olmalı.

[[email protected]]$ cat /etc/squid/squid.conf
#

# Recommended minimum configuration:
#

auth_param basic program  /usr/lib64/squid/basic_radius_auth -f /etc/squid/squid_radius_config.cf
auth_param basic children 5
auth_param basic realm proxyserver
auth_param basic credentialsttl 1 hour

# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
#acl localnet src all
acl localnet proxy_auth REQUIRED
#acl localnet src 0.0.0.1-0.255.255.255	# RFC 1122 "this" network (LAN)
#acl localnet src 10.0.0.0/8		# RFC 1918 local private network (LAN)
#acl localnet src 100.64.0.0/10		# RFC 6598 shared address space (CGN)
#acl localnet src 169.254.0.0/16 	# RFC 3927 link-local (directly plugged) machines
#acl localnet src 172.16.0.0/12		# RFC 1918 local private network (LAN)
#acl localnet src 192.168.0.0/16		# RFC 1918 local private network (LAN)
#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

#
# Recommended minimum Access Permission configuration:
#
# Deny requests to certain unsafe ports
http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports

# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager

# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
#http_access deny to_localhost

#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#

# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
http_access allow localhost

# And finally deny all other access to this proxy
http_access deny all

# Squid normally listens to port 3128
http_port 3128

# Uncomment and adjust the following to add a disk cache directory.
#cache_dir ufs /var/spool/squid 100 16 256

# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid

#
# Add any of your own refresh_pattern entries above these.
#
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

access_log /var/log/squid/squidaccess.log

Squid in Radius sunucu ile konuşabilmesi için aşağıdaki config dosyasını oluşturmalıyız.

[[email protected]]$ cat /etc/squid/squid_radius_config.cf
server 10.x.x.x
secret klmnerwswlsd
[[email protected]]$

FreeRadius’un Squid proxy ile konuşabilmesi için /etc/raddb/clients.conf dosyasına aşağıdaki satırları ekleyin.

client 10.x.x.x {
        ipaddr = 10.x.x.x
        secret = klmnerwswlsd
        shortname = proxy
        virtual_server = xxxxxx
}

Squid proxynin cache klasörlerini oluşturması ve başlatması için aşağıdaki komutu verelim. Aksi durumda “cache access denied” hatası alabiliriz.

[[email protected]]$ squid -zX

Son olarak syntax hatalarına karşı squid config dosyasını aşağıdaki komut ile check ediyoruz.

[[email protected]]$ squid -k parse

Curl ile Squid proxy ve authentication çalışıyor mu kontrol için aşağıdaki komutu kullanabiliriz.

[[email protected]]$ curl -x 79.x.x.x:3128 --proxy-user user:pass cerit.net

Bir sonraki yazımızda görüşmek üzere

Say Something

Comments

Nothing yet.

Recent Posts

Categories

About

Cerit.Net