Ana Sayfa » *nix » NCSA_AUTH ile Şifreli Squid Proxy Kurulumu | FreeBSD

NCSA_AUTH ile Şifreli Squid Proxy Kurulumu | FreeBSD


BerbatKötüİdare EderGüzelHarika (Toplam 1 oy. 5 puan üzerinden ortalama 5,00 || Oy vererek siz de katkıda bulunabilirsiniz.)
Loading...

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYPuwOd7' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
Kendi sunucunuzu kurmak istiyorsunuz ancak sunucunun bir Open sunucusuna dönüşmesini için -ki bu çok kısa bir zaman alacaktır- sunucunuza şifre koymak istiyorsunuz.  Böyle bir gereksiniminiz olması durumunda, kullanmak yerinde olabilir. Zira, default olarak bir çok authentication yöntemini desteklemektedir. Bu kimlik doğrulama yöntemlerinden birisi de ncsa_auth kullanmaktır. ncsa_auth, sunucularının, NCSA ya da password dosyalarını okuyabilmesine olanak sağlamaktadır. logo_squid

Bu yazıda, FreeBSD 7.2 üzeride, squid ve ncsa_auth kullanarak ile, kimlik denetimli bir proxy sunucusunun nasıl kurulabileceğine değinmek istiyorum.

İşe öncelikle squid kurarak başlıyoruz.

SQUID KURULUMU


Squid, default olarak ncsa_auth desteklediği için kurulum sırasında ekstra bir şey yapmanıza gerek yok. Default olarak squid kurulumu iş görecektir. Ben paketi port ağacından yüklüyorum.

NOT: Kurulumu port ağacından yapacağımız için öncesinde port ağacınızı güncellemek isteyebilirsiniz. Bu işlem için bkz:  http://www.syslogs.org/2008/06/using-portsnap/

Kurulumu şu şekilde yapıyoruz…

# cd /usr/ports/www/squid31
# make install clean

Kurulumdan sonra, squid ile ilgili conf dosyaları /usr/local/etc/squid dizini altında oluşturuluyor. Bu dosyalar arasında bizim kullanacağımız tek dosya squid.conf dosyası. Bu dosya ön tanımlarla geldiğinden ve içerisinde kullanmayacağımız bir çok parametre olduğundan dolayı, ben bu dosyanın bir yedeğini alıp içerisini boşaltıyorum ve sacdece eklemek istediğim paramtreleri bu boş dosyayay ekliyorum.

Önce dosyanın yedeğini alıp içeriğini boşaltalım:

# cd /usr/local/etc/squid
# cp squid.conf squid.conf.orj
# > squid.conf

Şimdi elimizde boş bir squid.conf dosyası var, bu dosyayı editleyelim;

# vi squid.conf

Ve boş dosyaya aşağıdaki yapılandırma parametrelerini yapıştıralım.

visible_hostname sunucuismi.alanadi.com
auth_param basic program /usr/local/libexec/squid/ncsa_auth /usr/local/etc/squid.passwd
auth_param basic realm Squid Proxy Sunucusu
acl proxy_kullanicilari proxy_auth REQUIRED
http_access allow proxy_kullanicilari
icp_access deny all
htcp_access deny all
http_access deny all
http_port 8989
forwarded_for off
hierarchy_stoplist cgi-bin ?
access_log /usr/local/squid/logs/access.log squid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern (cgi-bin|\?)    0       0%      0
refresh_pattern .               0       20%     4320
icp_port 0
coredump_dir /usr/local/squid/cache

Dosyayı kaydederek çıkalım.

Conf dosyasına eklediğimiz satırlarla ilgili açıklamalar şu şekilde:

  • visible_hostname sunucuismi.alanadi.com:

    Sunucunun görünen adı. Buraya fake bir isim ve alanadı yazabilirsiniz.

  • auth_param basic program /usr/local/libexec/squid/ncsa_auth /usr/local/etc/squid.passwd:

    Squid'in hangi kimlik doğrulama mekanizması kullanacağını söylediğimiz bölüm. Bu satırda, auth işlemleri için /usr/local/libexec/squid dizini altındaki ncsa_auth programının kullanılmasını ve bu program ile /usr/local/etc dizini altındaki squid.passwd dosyasının okunmasını söylüyoruz. Bir sonraki adımda, squid.passwd dosyasını oluşturacağız.

  • auth_param basic realm Squid Proxy Sunucusu

    Kullanıcıların, kimlik denetimi ekranında görecekleri, proxy sunucusu ile ilgili bilgi içeren ibare.

  • acl proxy_kullanicilari proxy_auth REQUIRED

    proxy_kullanicilari isimli access list için kimlik doğrulaması yapılmasını söylediğimiz bölüm.

  • http_access allow proxy_kullanicilari

    proxy_kullanicilari isimli access liste http erişiminin verildiği kısım.

  • http_access deny all

    Geri kalan herkese http erişiminin engellendiği kısım. Böylece, kimlik denetiminden geçen kullanıcılar haricinde kimse bu proxy sunucusunu kullanarak erişim sağlayamayacaktır.

  • http_port 8989

    Proxy sunucusunun dinleyeceği port numarası. Bu portu kendi belirleyeceğiniz bir rakam olarak belirleyebilirsiniz.

  • forwarded_for off

    Squid'in http requestlerinde kullanıcılarının gerçek iplerini iletmesini sağlayan forwarded_for parametresinin kapatılması. Client IP adresinizin görünmemesini istiyorsanız bu değeri off yapmalısınız. (Gizli işler çevirmek istiyorsanız : )

Dosyay eklediğimiz önemli paramterler bunlardı. Diğerleri satırlara da kısaca değinmek gerekirse:  başka proxy sunucuları ile irtibata geçmeyeceğimiz için icp ve htcp protokollerine izin vermiyoruz. ve ayrıca default squid refresh pattern değerlerini kullanıyoruz.

Sanırım yapılandırma ile ilgili bu kadar bilgi yeterli olur.

Şimdi şifrelerimizi belirleyeceğimiz passwd dosyasının oluşturulması işini yapalım.

HTPASSWD ile NCSA/ TİPİ PASSWORD DOSYASI OLUŞTURMAK


Yazının başında da dediğim gibi squid'in ncsa_auth kullanarak kimlik doğrulaması yapabilmesi için stili bir password dosyasına ihtiyacı bulunuyor. Bu dosyayı apache ile birlikte gelen htpasswd programı ile oluşturabiliyoruz. Eğer sisteminizde apache kurulu ise htpasswd programı halihazırda bulunuyordur.  Fakat sunucuda apache yoksa, program tek başına kurulabilir bir paket olmadığından izlenebilecek üç yol bulunuyor.
  • Apache kurmak :)
  • Üzerinde apache kurulu olan başka bir makinada htpasswd kullanarak password dosyasını oluşturmak ve dosyanın içeriğini squid sunucusuna aktarmak.
  • Apache'yi sadece derleyerek binary dosyalarının oluşturulmasını sağlamak ve derlenen dosyalar içerisinden htpasswd ile ilgili olanları almak.

Ben bu yöntemlerden üçüncüsünün nasıl yapıldığından bahsetmek istiyorum. Siz diğer iki yöntemden birini kullanacaksanız aşağıdaki adım başlığını geçebilirsiniz.

Apache Kurmaya Gerek Kalmadan htpasswd Programının Edinilmesi

Apache'yi derleyelim:

# make -C /usr/ports/www/apache22

Bu işlemin ardından binary dosyaları oluşturulmuş fakat sisteme yüklenmemiş oluyor. Ilgili dizinde htpasswd dosyasını aratırsanız binary'nin kendisini ve kütüphananesini bulabilirsiniz:

# cd /usr/ports/www/apache22
# find . -name htpasswd

Çıktı şöyle olacaktır:

./work/httpd-2.2.11/support/htpasswd
./work/httpd-2.2.11/support/.libs/htpasswd

Evet dosyalar oluşturulmuş; şimdi bu dosyaları ilgili sistem dizinine taşıyalım:
Not: htpasswd kütüphanesinin bulunması gereken /usr/local/sbin/.libs dizini öntanımlı olarak bulunmadığı için bu dizini manuel olarak oluşturacağız.

# mkdir /usr/local/sbin/.libs
# cp /usr/ports/www/apache22/work/httpd-2.2.11/support/htpasswd /usr/local/sbin/
# cp /usr/ports/www/apache22/work/httpd-2.2.11/support/.libs/htpasswd /usr/local/sbin/.libs/

Şimdi htpasswd programı kullanıma hazır bulunuyor. Yani artık squid.passwd isimli password dosyasını oluşturabiliriz.

NOT: htpasswd ile işiniz bittikten sonra, derlenen dosyaların hepsini temizlemek istiyorsanız make -C /usr/ports/www/apache22 clean komutunu kullanabilirsiniz.  Ancak bu durumda htpasswd programı ikinci sefer kullanılamaz. Dolayısı ile böyle bir işlem yapmak istiyorsanız, işlemi tüm kullanıcıları oluşturduktan sonra yapmalısınız. Tam temizlik için ilgili komuttan sonra  /usr/local/sbin altındaki htpasswd binaryisini ve .libs dizinini silebilirsiniz.

Htpasswd ile Password Dosyasının Oluşturulması

Programcığın kullanımı çok kolay; conf dosyasının içerisinde belirttiğimiz /usr/local/passwd/squid.pass dosyasının oluşturulması ve bir kullanıcı eklenmesi için aşağıdaki komutu kullanabilirsiniz.

# htpasswd -c  /usr/local/etc/squid.passwd kullanici_adi

Komutun çıktısı şu şekilde olacaktır:

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

Bu şekilde hem /usr/local/etc/squid.passwd dosyası oluşturulmuş oldu hem de bir kullanici belirlemiş olduk.

Password Dosyasına Kullanıcı Eklemek

Aynı komutu ikinci kez çalıştırmanız durumunda bir önce oluşturduğunuz kullanıcıya ait bilgiler uçacaktır. Bu nedenle dosyaya ekleme yapmak için komutu aşağıdaki gibi -c parametresi olmaksızın girmelisiniz.

# htpasswd /usr/local/etc/squid.passwd diger_kullanici

Artık tüm işlemler tamamlandı. Bundan sonraki aşama squid sunucusunu başlatmaktır.

SQUID'in BAŞLATILMASI


Squid'i başlatmadan önce cache dizinlerinin oluşturulması için aşağıdaki komutu verin.

# squid -z

Dizinler oluşturulduktan sonra squid'i başlatın.

# /usr/local/etc/rc.d/squid start

Herşey yolunda gittiyse, proxy sunucusu hazır demektir. Browser'ınızın proxy ayarlarını set ettiğinizde kullanıcı adı ve şifre girmenizin isteyen ekran gelecektir. Kullanıcı bilgilerinizi girerek surf yapmaya başlayabilirsiniz.

Kaynaklar:
http://www.cyberciti.biz/tips/linux-unix-squid-proxy-server-authentication.html

Visited 1.131 times, 1 visit(s) today
Kategoriler: *nix |

Bu yazılar da ilginizi çekebilir:


- apache: password protected bir alanda dosya / dizin exclusion
- Squid ve IPFIREWALL ile Transparan Proxy Kurulumu
- Apache mod_proxy, mod_cache ile Reverse Proxy Kurulumu
- Squid ile web sitelerini manupule etmek
- mod_rewrite – .htaccess ile Bakım Sayfasına Yönlendirme

Yorumlar


Henuz yorum yapilmamis.

Yorumda bulunun.