Squid i Follow X-Forwarded-For headers Yaması İle Patchlemek



Benzer belgeler
SquidGuard Kurulumu. Öncelikle gerekli paket temin edilmelidir. adresinden temin edilebilir. Basitçe kurulumu ;

1 STUNNEL NEDİR? 2 STUNNEL KURULUMU

İsmail YENİGÜL. EnderUNIX Çekirdek Takımı Üyesi.

OpenBSD Pf ve Squid ile Transparent Proxy Kurulumu.!!Bu yazıda OpenBSD 3.7 işletim sistemi kullanılmıştır.

OPENBSD İŞLETİM SİSTEMİ ÜZERİNE PFW KURULUMU

1 Simscan Nedir? 2 Simscan Nasıl Çalışır?

LİNUX İŞLETİM SİSTEMİNİN KÖPRÜ MODUNDA ÇALIŞTIRILMASI VE GÜVENLİK DUVARI İŞLEMLERİ

Seri kablo bağlantısında Windows95/98/ME'ten Windows 2000'e bağlantı Windows95/98/ME - NT4 bağlantısına çok benzer.

KÜTÜPHANE YETKİLENDİRMELİ ÖNBELLEKLEME SERVİSİ

Dr. Fatih AY Tel: fatihay@fatihay.net

Sun Solaris Jumpstart Sistemi

FreeBSD Paket Yönetimi

FreeBSD Üzerinde PostgreSQL i 8.1 e Güncelleme

Virtualmin'e Yeni Web Sitesi Host Etmek - Domain Eklemek

Linux Kullanıcıları Derneği ve Elektrik Mühendisleri Odası

FAKS SUNUCU EĞİTİM DÖKÜMANI

Kets DocPlace Bilgi Bankası. 1. İstemcilerde sunucuya ulaşılamadı şeklinde bağlantı hatası alınıyor... 2

MODSECURITY DENETİM KAYITLARINI ANLAMAK. Gökhan Alkan,

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

Açık Kod VPN Çözümleri: OpenVPN. Huzeyfe ÖNAL

Kampüs Ağlarında Köprü-Güvenlik Duvarı (Bridge Firewall) ve Transparent Proxy

HIGH SPEED PVC DOOR INSTALLATION BOOK

Data Structures Lab Güz

HUAWEI Cihazlara Erişim Yöntemleri

Kullanıcı Dökümanı. Flash B2B. Versiyon 0.1

Proticaret Exclusive Versiyon Yükseltme Dokümanı(v.3.2.0'dan v3.2.1'e)

Network üzerinde MATLAB kurulması

E-İMZA OTOMATİK KURULUM PAKETİ DÖKÜMANI

.: Linux Kullanıcıları Derneği. III. Linux ve Özgür Yazılım Şenliği Mayıs Milli Kütüphane Ankara :.

BIND ile DNS Sunucu Kurulumu

J-Guar Self Servis Kurulumu

İnternet. Küçük düzeyli ağ. Ağ üzerinden çok kullanıcılı kilit modeli. İnternet üzerinden çok kullanıcılı kilit modeli

AHTAPOT Merkezi Güvenlik Duvarı Yönetim Sistemi Kontrol Paneli

AĞ KURULUMU ANA MAKİNA İÇİN:

Cyberoam Single Sing On İle

Ubuntu Terminal Server Ve Uzak Masaüstü Sunucusu

Fedora Core Ağ Ayarları

ZWCAD İçindekiler. Önemli. Tek Kullanıcı Sürümü Lisans Kodu Kullanarak Yükleme Kılavuzu

Nmap Sonuçlarının Yorumlanması

Doğru Adaptor soket kutuplaması.

Lisanslama Sistemi ve Set Yükleme İşlemleri

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 26 Şub Öğr. Gör.

Taşınabilir Kod Yazma

CHAPTER 9. DHCP Server

Kamu Kurum ve Kuruluşları için IPv6'ya Geçiş Planı Ne Gibi Yükümlülükler Getiriyor? Necdet Yücel Çanakkale Onsekiz Mart Üniversitesi

Proticaret Exclusive Versiyon Yükseltme Dokümanı(v.3.0'dan v3.1.0'a)

Belgenin yeni sürümlerine adresinden ulaşabilirsiniz.

TARİHÇE. Versiyon Tarih Düzenleyen Açıklama Engin DURMAZ İlk versiyon

2. Use Dns lookup, Use relay server aralarında seçim yapınız. Biz Dns lookup ile SMTP-mizi çalıştırdık. DNS lookup kısmında domain adınızı yazınız.

Subnet A da bulunan DHCP Server makinesinin ve client makinenin IP yapılandırması aşağıdaki gibidir.

Karma C/C + + Kodlama

Debian GNU/Linux'da BootSplash & Grub Temalarının Kurulumu

Checkpoint SSL-VPN Kurulum Prosedürü. Checkpoint Endpoint VPN Client

Sözü fazla uzatmadan bu durumlar için bir çözüm yolunu sizlere paylaşmak istiyorum..

FTP ve Güvenlik Duvarları

Gökhan AKIN İTÜ/BİDB Ağ Grubu Başkanı - ULAK/CSIRT

AHTAPOT Güvenlik Duvarı Yönetim Sistemi Kullanımı

TÜRKİYE CUMHURİYETİ ORMAN GENEL MÜDÜRLÜĞÜ DASDIFFUSION DEPARTMENTAL EDITION 1. FAZ TARAMA PC KURULUM KILAVUZU

ECLIPSE PROGRAMININ ÇALIŞTIRILMASI

Denetim Masası/Programlar/Windows özelliklerini Aç/Kapat

ArcSight Logger Connector ArcSight Logger Connector Yapılandırması

Üst Düzey Programlama

Fonksiyonlar (Altprogram)

DESTEK DOKÜMANI. Ürün : Tiger Enterprise/ Tiger Plus/ Go Plus/Go Bölüm : Kurulum İşlemleri

PAKET TRANSFER SİSTEMİ

Medula Eczane Stok Bilgileri Web Servisleri Kullanım Kılavuzu

FreeRADIUS ile Kimlik Denetimi. Gökhan AKIN, Hüseyin Yüce, ve Hüsnü DEMIR

İl İlçe uygulaması. : Seçilen ile ait ilçeleri listeleyen program. //İl değişkeni için kodu aşağıdaki sayfadan kopyalayınız.

TÜRKİYE CUMHURİYETİ ORMAN GENEL MÜDÜRLÜĞÜ DASDIFFUSION DEPARTMENTAL EDITION 1. FAZ İSTEMCİ PC KURULUM KILAVUZU

FreeBSD ve Windows XP üzerinde IPv4 Ağından IPv6 Ağına Bağlanma (Tunnel Broker)

C++ Dersi: Nesne Tabanlı Programlama

qmail ile SPAM engelleme Devrim Sipahi Dokuz Eylül Üniversitesi

HSancak Nesne Tabanlı Programlama I Ders Notları

Web Servis-Web Sitesi Bağlantısı

Nova Dental D Ana Makine Kurulum (Windows Server XP Home/Pro)

Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü. Bilgisayar Ağları Dersi Lab. 2

#include <stdio.h> int main(void) { FILE * dosya; dosya = fopen("soru1.txt", "w"); fprintf(dosya, "Merhaba Dunya!"); fclose(dosya); return 0; }

BSD İşletim Sistemi Ailesi. EnderUnix Çekirdek Takımı Üyesi afsin ~ enderunix.org

ProTicaret Versiyon Exclusive v3.3.1 Güncelleme

e-logo e-fatura Özel Entegratör Sistemi

PAKET TRANSFER SİSTEMİ

FOG SERVER (FREE GHOST SERVER) YAZILIMININ KURULUMU

FreeBSD Ağ Uygulamaları

Disk tabanlı bir çözümdür ve bu yapısından dolayı kullanılması kolaydır. Ayrıca hızlı bir şekilde yedekleme ve geri dönüş sağlar.

1)YAPILANDIRMA. Router 1 (PC 1)

NPratik Yazılım Kurulum Kılavuzu. Yedekleme İşlemi

Veri Tabanı-I 5.Hafta

The RestructuredText Book Documentation

TÜRKİYE ELEKTRONİK FON ALIM SATIM PLATFORMU WEB SERVİS İŞLEMLERİ

ALGORİTMA VE PROGRAMLAMA II

Fall Object-Oriented Programming Laboratory 03

Packet tracer arayüzü yukarıdaki şekilden de görüldüğü gibi üç ana araç çubuğundan oluşmaktadır.

CAMWorks Licence Manager Kullanımı ve Lisans Aktivasyonu

Ipv6 Egitimi. Mustafa Reşit Şahin. Software Engineer.

MPLAB IDE v7.60 PROGRAMI KULLANIMI

ÖRNEKTİR - SAMPLE. RCSummer Ön Kayıt Formu Örneği - Sample Pre-Registration Form

VMware 4.0 vcenter Server Kurulumu

Scream! e gelen veri akışlarından bazılarını diğer bir kurum yada bilgisayarla paylaşmak için kullanılabilir.

BİLG Dr. Mustafa T. Babagil 1

Microsoft networkte, "Access Control" default olarak "Share-level access control" a ayarlı gelir:

Transkript:

/******************************************************** * Gökhan ALKAN * gokhan [at] enderunix [dot] org * EnderUNIX Yazılım Gelistirme Takımı * http://www.enderunix.org * * Sürüm : 1.0 * Tarih : 27.06.2006 * Makalenin en yeni versiyonunu * * adresinden elde edilebilir. ********************************************************/ Squid i Follow X-Forwarded-For headers Yaması İle Patchlemek Bu makalede OpenBSD3.9 üzerinde Squid-2.5.14.Stable sürümünü kaynak koddan Follow X-Forwarded yaması ile yamalanması anlatılacaktır. İstemci Dansguardian Squid Yukarıdaki gibi bir yapı düşünüldüğünde İstemciden gelen istek önce Dansguardin a ardından squid e iletilir. Genellikle Dansguardian ile Squid aynı makine üzerinde çalıştığından Dansguardian dan gelen istekler squid loglarında istemcilerin geçek ip si ile değilde 127.0.0.1 ipsi ile görüntülenirler. Ve bu şekilde squid için kullanılan acl ler verimli bir şekilde kullanılmayacaktır çünkü squid istemci ip leri 127.0.0.1 ipsi ile görmektedir. Bu özellik squid ile birlikte ön tanımlı olarak gelmemektedir. Squid-2.6 sürümü ile birlikte bu özellik ön tanımlı olarak gelecektir. Öncelikle squid ve gerekli yama indirilip squid sürümününe göre temin edilmelidir. Burada iki şekilde anlatım yapılacaktır. Normalde squid için yapılması gereken yamada problem yaşanmaktadır. Bu yamanın yeniden düzenlenmiş hali ile ve problemli halinin elle yamalanması anlatılacaktır. İsteğe gore istenilen kullanılabilir. Öncelikle düzeltme yapılmış hali ile anlatılacaktır. Yama http://www.enderunix.org/docs/squid-patch/squid-galkan.patch adresinden temin edilmelidir. 1- Yöntem # wget http://www.enderunix.org/docs/squid-patch/squid-galkan.patch # wget http://www.squid-cache.org/versions/v2/2.5/squid- 2.5.STABLE14.tar.gz # tar -zxvf squid-2.5.stable14.tar.gz # cd squid-2.5.stable14 # patch -p0 <../Squid-galkan.patch 1

#./bootstrap.sh WARNING: Cannot find automake version 1.5 Trying Provide an AUTOMAKE_VERSION environment variable, please Provide an AUTOMAKE_VERSION environment variable, please configure.in:1391: warning: AC_TRY_RUN called without default to allow cross compiling configure.in:1491: warning: AC_TRY_RUN called without default to allow cross compiling # Sistemde automake-1.5 mevcut değilse http://ftp.gnu.org/gnu/automake/automake- 1.5.tar.gz adresinden temin edilebilir. Bait bir şekilde kurulum için ise aşağıdaki adımlar takip edilmelidir. # tar zxvf automake-1.5.tar.gz # cd automake-1.5 #./configure # make # make install clean Ardından./bootstrap.sh betiği çalıştırılır. #./bootstrap.sh configure.in:xxx: warning: AC_TRY_RUN called without default to allow cross compiling configure.in:xxx: warning: AC_TRY_RUN called without default to allow cross compiling gibi hatalar alınırsa eğer bunlar göz ardı edilebilir. Şu anda squid FOLLOW_X_FORWARDED yaması ile yamalanmış durumda ve./configure help ile follow-x-forwarded-for seçeneği görülebilir. --enable-follow-x-forwarded-for Enable support for following the X-Forwarded-For HTTP header to try to find the IP address of the original or indirect client when a request has been forwarded through other proxies. 2

#./configure --enable-follow-x-forwarded-for (istenilen diğer seçenekler) # make # make install ile kurulumu tamamlanmış olur. Bundan sonra Dansguardian ve Squid yapılandırma dosyasında ufak bir kaç ayarlama ile artık squid loglarında 127.0.0.1 ipsi yerine istemcilerin gerçek ipsi görüntülebilecektir. Dansguardian.conf dosyasındaki forwardedfor değeri on yapılmalıdır. forwardedfor = on 2- Yöntem # wget http://www.squid-cache.org/versions/v2/2.5/squid- 2.5.STABLE14.tar.gz # wget http://devel.squid-cache.org/follow_xff/follow_xff-2.5.patch # tar -zxvf squid-2.5.stable14.tar.gz # cd squid-2.5.stable14 # patch -p0 <../follow_xff-2.5.patch Buraya kadar bir hata mesajı alınmadı ise squid sorunsuz bir biçimde yamalanmış demektir. Eğer aşağıdakine benzer bir hata mesajı alınırsa src/structs.h.rej Dosyasında yapılması gereken işlemler elle yapılmalıdır. -------------------------- Index: src/structs.h --- src/structs.h 30 Oct 2003 03:14:29-0000 1.48.2.15 +++ src/structs.h 23 Nov 2003 14:20:25-0000 -------------------------- Patching file src/structs.h using Plan A... Hunk #1 failed at 592. Hunk #2 succeeded at 639 (offset 21 lines). Hunk #3 failed at 1633. Hunk #4 succeeded at 1668 (offset 5 lines). Hunk #5 failed at 1681. 3 out of 5 hunks failed--saving rejects to src/structs.h.rej done Buna gore src/structs.h dosyasında yapılması gereken 5 değişiklik sırasında hata meydana gelmiş ve gerçekleştirilmesi gereken 3 adım src/structs.h.rej dosyasında belirtilmiştir. Buradaki adımlar elle gerçekleştirilmelidir. 3

# cat src/structs.h.rej @@ -592,6 +592,11 @@ int vary_ignore_expire; int pipeline_prefetch; int request_entities; +#if FOLLOW_X_FORWARDED_FOR + int acl_uses_indirect_client; + int delay_pool_uses_indirect_client; + int log_uses_indirect_client; +#endif /* FOLLOW_X_FORWARDED_FOR */ } onoff; acl *acllist; struct { @@ -1625,6 +1633,11 @@ unsigned int internal:1; unsigned int body_sent:1; unsigned int reset_tcp:1; +#if FOLLOW_X_FORWARDED_FOR + /* XXX this flag could be eliminated; + * see comments in clientaccesscheck */ + unsigned int done_follow_x_forwarded_for; +#endif /* FOLLOW_X_FORWARDED_FOR */ struct _link_list { @@ -1665,6 +1681,11 @@ char *peer_login; /* Configured peer login:password */ time_t lastmod; /* Used on refreshes */ const char *vary_headers; /* Used when varying entities are detected. Changes how the store key is calculated */ +#if FOLLOW_X_FORWARDED_FOR + /* XXX a list of IP addresses would be a better data structure + * than this String */ + String x_forwarded_for_iterator; +#endif /* FOLLOW_X_FORWARDED_FOR */ struct _cachemgr_passwd { # 4

Buna gore ; int vary_ignore_expire; int pipeline_prefetch; int request_entities; int detect_broken_server_pconns; int balance_on_multiple_ip; int relaxed_header_parser; int accel_uses_host_header; int accel_no_pmtu_disc; int global_internal_static; } onoff; olan kısım aşağıdaki gibi olacaktır. int vary_ignore_expire; int pipeline_prefetch; int request_entities; #if FOLLOW_X_FORWARDED_FOR int acl_uses_indirect_client; int delay_pool_uses_indirect_client; int log_uses_indirect_client; #endif /* FOLLOW_X_FORWARDED_FOR */ int detect_broken_server_pconns; int balance_on_multiple_ip; int relaxed_header_parser; int accel_uses_host_header; int accel_no_pmtu_disc; int global_internal_static; } onoff; 5

unsigned int internal:1; unsigned int body_sent:1; unsigned int reset_tcp:1; unsigned int must_keepalive:1; olan kısım aşğıdaki gibi olacaktır. unsigned int internal:1; unsigned int body_sent:1; unsigned int reset_tcp:1; #if FOLLOW_X_FORWARDED_FOR /* XXX this flag could be eliminated; * see comments in clientaccesscheck */ unsigned int done_follow_x_forwarded_for; #endif /* FOLLOW_X_FORWARDED_FOR */ unsigned int must_keepalive:1; char *peer_login; time_t lastmod; const char *vary_headers; BODY_HANDLER *body_reader; void *body_reader_data; olan kısım char *peer_login; time_t lastmod; const char *vary_headers; #if FOLLOW_X_FORWARDED_FOR /* XXX a list of IP addresses would be a better data structure * than this String */ String x_forwarded_for_iterator; #endif /* FOLLOW_X_FORWARDED_FOR */ BODY_HANDLER *body_reader; void *body_reader_data; 6

struct _cachemgr_passwd { Gerekli adımlar gerçekleştirildikten sonra./bootstrap.sh çalıştırılmalıdır../bootstrap.sh betiği çalıştırılmadan once sistemde automake-1.5 mevcut olmalıdır. Eğer yoksa./bootstrap.sh betiği çalıştırıldığında şe şekilde hata mesajı alınır. #./bootstrap.sh WARNING: Cannot find automake version 1.5 Trying Provide an AUTOMAKE_VERSION environment variable, please Provide an AUTOMAKE_VERSION environment variable, please configure.in:1391: warning: AC_TRY_RUN called without default to allow cross compiling configure.in:1491: warning: AC_TRY_RUN called without default to allow cross compiling # Sistemde automake-1.5 mevcut değilse http://ftp.gnu.org/gnu/automake/automake- 1.5.tar.gz adresinden temin edilebilir. Bait bir şekilde kurulum için ise aşağıdaki adımlar takip edilmelidir. # tar zxvf automake-1.5.tar.gz # cd automake-1.5 #./configure # make # make install clean Ardından./bootstrap.sh betiği çalıştırılır. #./bootstrap.sh configure.in:xxx: warning: AC_TRY_RUN called without default to allow cross compiling configure.in:xxx: warning: AC_TRY_RUN called without default to allow cross compiling gibi hatalar alınırsa eğer bunlar göz ardı edilebilir. Şu anda squid FOLLOW_X_FORWARDED yaması ile yamalanmış durumda ve./configure help ile follow-x-forwarded-for seçeneği görülebilir. --enable-follow-x-forwarded-for 7

Enable support for following the X-Forwarded-For HTTP header to try to find the IP address of the original or indirect client when a request has been forwarded through other proxies. #./configure --enable-follow-x-forwarded-for (istenilen diğer seçenekler) # make # make install ile kurulumu tamamlanmış olur. Bundan sonra Dansguardian ve Squid yapılandırma dosyasında ufak bir kaç ayarlama ile artık squid loglarında 127.0.0.1 ipsi yerine istemcilerin gerçek ipsi görüntülebilecektir. Dansguardian.conf dosyasındaki forwardedfor değeri on yapılmalıdır. forwardedfor = on Squid yapılandırma dosyasında ise aşağıdaki şekilde kullanılacak örnek bir yapılandırma ile squid log dosyasında 127.0.0.1 ipsi yerine istemcilerin gerçek ip adresleri görüntülenebilir. acl localhost src 192.168.1.0/24 follow_x_forwarded_for allow localhost follow_x_forwarded_for deny all acl_uses_indirect_client on log_uses_indirect_client on acl our_networks src 192.168.1.0/24 http_access allow our_networks acl our_networks src 192.168.1.0/24 ile belirtilen değer istenilen ağa gore değiştirilmelidir. Artık squid log dosyasında 127.0.0.1 ipsi yerine istemcilerin gerçek ip adresleri görüntülenebilmektedir. 8