Quantcast
Channel: ÇözümPark
Viewing all articles
Browse latest Browse all 4130

Squid Proxy Server AD Authentication ile Kullanmak

$
0
0

Basit anlamda Açık kaynak kodlu süper performanslı Squid Proxy server’I Active Directory ile entegre ederek internet çıkışını kontrolsüz halden kontrollü hale getirmeyi hedefliyoruz. Yapmanız gerekenler aslında çok basit. Ben bu işlem için En sağlam Linux sürümlerinden biri olan CentOS’u kullandım. Eğer adımları eksiksiz yaparsanız Squid proxy’nin ne kadar mükemmel çalıştığını göreceksiniz.

 

Öncelikle www.centos.org adresinden CentOS’un en son sürümü olan 6.2’yi indiriyoruz. DVD’ye yazarak sunucumuzu boot edip kuruluma başlıyoruz. Ben x64 CentOS kurmayı uygun gördüm. Artık platform olarak x86’dan uzaklaşmaya çalışıyorum. Günümüzde tüm uygulamalar artık x64 olarak sıkıntısız çalışabiliyorlar. Bir sonraki makalede SARG’ı anlatacağım. SARG, Squid’den rapor almanızı sağlayacak. CentOS sağlamlığını kanıtlamış bir Linux dağıtımı. Çünkü temelini Redhat’tan alıyor. Aşağıdaki Screenshotlardaki gibi kurulum yapıyoruz. ScreenShotların altına detay yazmaya gerek yok. Çünkü herkesin anlayabileceği seviyede basit zaten.

 

 

image001

 

 

image002

 

 

image003

 

 

image004

 

 

image005

 

 

image006

 

 

image007

 

 

image008

 

 

image009

 

 

image010

 

 

image011

 

 

image012

 

 

image013

 

 

image014

 

 

image015

 

 

Mutlu son. Reboot sonrası Linux Serverimiz hazır. Bundan sonra artık squid’i kurmaya başlıyoruz. Hemen gerekli komutları yazarak gerekli paketleri yükleyelim.

 

# yum -y install squid nano

 

 

image016

 

 

Yükleme işi bitti. Hemen linux’umuzu son pakerlere update edelim.

 

# yum -y update

 

Update işlemi zaman alabilir. Update bittikten sonra kuruluma devam ediyoruz. Öncelikle Squid’in AD’den kullanıcı bilgilerini çekmesini sağlamamız lazım. Bunun için CentOS sunucumuzu AD’ye dahil etmeliyiz. Yani Windows Client’lar gibi CentOS’u AD’ye alıyoruz. Bunun için Linux tarafında bir takım paketler yüklememiz gerekiyor. Hemen aşağıdaki komutu vererek yükleme işini hallediyoruz.

 

# yum -y install samba* krb5-devel* krb5-server* krb5-server-ldap* ntp krb5-workstation

 

 

image017

 

 

Yukarıdaki gibi yükleme yapacaktır. Yükleme işi bittikten sonra öncelikle NTP servisinin konfigrürasyonun yapılması gerekecek. Çünkü NTP servisi eğer zaman bilgisini AD’den almazsa Domaine dahil edemezsiniz.

 

# mv /etc/ntp.conf /etc/ntp.conf.org

 

Bu dosyanın yenisini oluşturup içerisine AD bilgilerini yazıyoruz.

 

# echo "server srvdc01.techtalk.intra">> /etc/ntp.conf

 

Bu şekilde dosyamızın yenisi oluştu. Kırmızı kısmı kullanmakta olduğunuz AD sunucusu ile değiştirmek zorundasınız. Sonrasında NTP servisinin her açılışta otomatik start olmasını sağlayalım. Ayrıca start edelim,

 

# chkconfig ntpd on; service ntpd start

 

Şimdi aynı işlemleri kurduğumuz programlar içinde yapalım. Hem açılışta otomatik açılsınlar. Hemde start olsunlar.

 

# chkconfig squid on; service squid start
# chkconfig smb on; service smb start
# chkconfig winbind on; service winbind start
# chkconfig iptables off; service iptables stop
# chkconfig ip6tables off; service ip6tables stop
Ekran görüntüsü aşağıdaki gibi olacaktır,

 

 

image018

 

 

Şimdi aşağıdaki komutu verelim ve sunucuyu restart edelim.

 

# usermod -a -G wbpriv squid

 

 

image019

 

 

Bundan sonraki adımlar çok önemli. Buradaki adımları kusursuz yapmalısınız. Öncelikle Linux’un DNS’i AD sunucu DNS’i olmak zorunda. Pinglediğinizde sunucu ismiyle pingleyebilmelisiniz. Çünkü Linux sunucu AD ile entegre hale gelecek.

 

# ping srvdc
# ntpdate -u srvdc         
ß bu işlemi birkaç kez yapmanızı öneririm.

 

 

image020

 

 

Gördüğünüz gibi işlem tamam. Şimdi Linux sunucuyu domain’e almak için gerekli komutu vereceğiz. Fakat bundan önce hosts file içeriğini değiştiriyoruz. Bunun için öncelikle hosts dosyasının orjinalinin bir kopyasını alalım.

 

# cp /et                c/hosts /etc/hosts.org

 

Şimdi düzenleyelim,

 

# nano /etc/hosts

 

Dosyayı açtıktan sonra içeriğini tamamen silin. Sonra sadece aşağıdaki gibi olması gerekenleri yazın.

 

127.0.0.1 squid squid.techtalk.intra
192.168.1.10 srvdc srvdc.techtalk.intra

 

Buradaki isimleri kendi domaininize göre düzenlemeniz çok önemli. J

 

 

image021

 

 

Bu şekilde yapılandırdıktan sonra ctrl+x tuş kombinasyonu ile save ederek çıkalım.

 

En önemli noktaya geldik. Şimdi aşağıdaki komut ile domaine giriş yapacağız. Kırmızı bölümleri sizin domain bilgileri ile değiştirmeniz gerekiyor. Ayrıca komut büyük küçük harfe duyarlıdır.

 

# authconfig --enableshadow --enablemd5 --passalgo=md5 --krb5kdc=srvdc.techtalk.intra --krb5realm=TECHTALK.INTRA --smbservers=srvdc.techtalk.intra --smbworkgroup=TECHTALK --enablewinbind --enablewinbindauth --smbsecurity=ads --smbrealm=TECHTALK.INTRA --smbidmapuid="16777216-33554431" --smbidmapgid="16777216-33554431" --winbindseparator="+" --winbindtemplateshell="/bin/false" --enablewinbindusedefaultdomain --disablewinbindoffline --winbindjoin=Administrator --disablewins --disablecache --enablelocauthorize –updateall

 

Bu komut sonrası AD Administrator password’ü gerekecek. Aşağıdaki gibi şifreyi veriyor ve domain’e girişi seyrediyoruz.

 

 

image022

 

 

Şimdi AD tarafına bir bakalım,

 

 

image023

 

 

Gördüğünüz gibi hem DNS’e hemde Computers’e gerekli kayıtlar açılmış. Şimdi detayları CentOS tarafında inceleyelim, gerekli komut,

 

# net ads info

 

 

image024

 

 

İşlem tamam. Birkaç komut daha var onlarıda sizlerle paylaşmak isterim.

 

# wbinfo -g ß AD druplarını görmeye yarar.
# wbinfo -u
ß
AD user’larını görmeye yarar.

 

Şimdi Selinux’u disable ederek devam edelim.

 

# nano /etc/selinux/config

 

komutunu vererek selinux dosyasının içindeki “SELINUX=enforcing” kısmını “SELINUX=disabled” olarak değiştiriyoruz.

 

Bir komut daha kaldı. Bu komutu bulmak için 1 hafta uğraşıp bir rus sitesinde bulmuştum. O kadar rusça yazı içinden bu komutu nasıl görebildim hala aklıma geldikçe şaşırırım. Allahın takdirinden başka bişey değil.

 

# chown -R root:squid /var/lib/samba/winbindd_privileged

 

Şimdi son işlemde sıra. Squid için konfigürasyon vakti. Önce squid’i çalıştıralım,

 

# service squid stop
# squid -f /etc/squid/squid.conf -z
# service squid start

 

Bu konfigürasyonu grup ve kullanıcı bazlı hale getirebilirsiniz. Ben Domain kapsamı için bir konfig dosyası örneği vereceğim. Şimdi squid.conf dosyasını düzenlememiz gerekecek. Dosyanın orjinal halini saklamak için bir kopya almanızı öneririm.

 

# cp /etc/squid.conf /etc/squid.conf.org
# nano /etc/squid/squid.conf

 

Copy paste edebilirsiniz. –‘li satırları alma manız gerekiyor.

 

------------------------------------------------------------------------------------------------------------------------------------

 

 

# kirmizi kisimlari ben ilave ediyorum. <- buradan itibaren alıyoruz
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 15
auth_param ntlm keep_alive on
auth_param basic realm Squidproxy-caching
auth_param basic credentialsttl 2 hour

 

 

# Recommended minimum configuration:

#

acl NTLMUsers proxy_auth REQUIRED

acl manager proto cache_object

acl localhost src 127.0.0.1/32 ::1

acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1

 

 

# Example rule allowing access from your local networks.

# Adapt to list your (internal) IP networks from where browsing

# should be allowed

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

 

#

# Recommended minimum Access Permission configuration:

#

# Only allow cachemgr access from localhost

http_access allow NTLMUsers all
http_access allow manager localhost

http_access deny manager

 

 

# 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

 

 

# 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

 

 

# We recommend you to use at least the following line.

hierarchy_stoplist cgi-bin ?

 

 

# 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

# bir üst satıra kadar.

---------------------------------------------------------------------------------------------------------------------------------

 

Ve sıra sonuca geldi. Şimdi domain dışında olan bir client makinasına internet explorer ayarlarına bizim proxy serverin ip’sini ve portunu girelim.

 

 

image025

 

 

Sonuç

 

 

image026

 

 

Şifresiz girişler engellendi. İlk internet girişlerinden sonraki girilenlerin sitelerin inanılmaz hızlandığını göreceksiniz. Ayrıca izinsiz girişlerde engellenmiş olacak. Yapılan konfigürasyonda şifre hatırlama süresi 2 saat olarak ayarandı. İsterseniz arttırabilir veya düşürebilirsiniz.

 

Domain içinden kullanıcılarda denediğinizde şifre sormadığını göreceksiniz.

 


Viewing all articles
Browse latest Browse all 4130

Trending Articles


Mide ağrısı için


Alessandra Torre - Karanlık Yalanlar


Şekilli süslü hazır floodlar


Flatcast Güneş ve Ay Flood Şekilleri


Gone Are the Days (2018) (ENG) (1080p)


Yildiz yükseltme


yc82


!!!!!!!!!! Amın !!!!!!!!!


Celp At Nalı (Sahih Tılsım)


SCCM 2012 Client Installation issue