Iptables + Squid Transparent proxy kurulumu

Başlatan garafatma, 07 Temmuz 2009 - 22:38:44

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

sdincsoy

#25
Selam,
Ben bunu daha önce forum da yazmıştım.
http://forum.ubuntu-tr.net/index.php?topic=7194.0 buradan bakabilirsin.

Aşağıda kendi iptables ve squid conf umu yaziyorum. sen kendi ip bloklarina göre uyarlarsın. yaklaşık 4 aydır ellemedim ve çalışıyor. hatta unuttum tekrar yap deseler uğraşırım :). findos değil çok şükür çökmüyor. :)
bu şekilde transparent proxy kullanabiliyorum.

Ayrıca senin sisteminde * her şey çalışıyor da sadece transparent çalışmıyorsa;
*** iptables -t nat -A PREROUTING -i eth0 -p tcp -dport 80 -j REDIRECT --to-port 3128 ***

eth0 burda iç network de. 80 e gelen istekleri 3128 portuna yonlendiriyoruz. böylelikle sen network deki pclerine sadece gateway yazarak onların haberi olmadan proxy den çıkartmış olursun.

aşağıdakiler benim config lerim.


Generated by iptables-save v1.4.0 on Mon Mar  9 11:49:24 2009
*nat
:PREROUTING ACCEPT [965:83027]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [135:8181]
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.100.224:3128
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Mon Mar  9 11:49:24 2009
# Generated by iptables-save v1.4.0 on Mon Mar  9 11:49:24 2009
*filter
:INPUT DROP [875:78511]
:FORWARD DROP [35:5991]
:OUTPUT ACCEPT [5787:3140730]
-A INPUT -i lo -j ACCEPT
-A INPUT -j LOG
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 2278 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 2278 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 3128 -j ACCEPT
-A FORWARD -j LOG
-A FORWARD -s 192.168.100.0/24 -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -s 192.168.100.0/24 -p tcp -m tcp --dport 53 -j ACCEPT
-A FORWARD -s 192.168.100.0/24 -p udp -m udp --dport 53 -j ACCEPT
-A FORWARD -s 192.168.100.0/24 -p tcp -m tcp --dport 443 -j ACCEPT
-A FORWARD -s 192.168.100.0/24 -p tcp -m tcp --dport 110 -j ACCEPT
-A FORWARD -s 192.168.100.0/24 -p tcp -m tcp --dport 25 -j ACCEPT
-A FORWARD -s 192.168.100.0/24 -p tcp -m tcp --dport 3128 -j ACCEPT
-A FORWARD -s 192.168.100.0/24 -p tcp -m tcp --dport 6667 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -j LOG
COMMIT
# Completed on Mon Mar  9 11:49:24 2009

cl all src all

acl manager proto cache_object



acl localhost src 127.0.0.1/32

acl to_localhost dst 127.0.0.0/8

acl localnet src 192.168.33.0/24 # RFC1918 possible internal network

acl full_izinli_ipler src "/etc/squid/full_izinli_ipler"



acl BlockExt url_regex -i \.mp3$ \.asx$ \.wma$ \.wmv$ \.avi$ \.mpeg$ \.mpg$ \.qt$ \.ram$ \.rm$ \.iso$ \.wav$ \.exe$ \.rar$

acl yasakkelime url_regex "/etc/squid/yasak.txt"

acl yasaksiteler dstdomain  "/etc/squid/domain.txt"











acl SSL_ports port 443          # https

acl SSL_ports port 563          # snews

acl SSL_ports port 873          # rsync

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 Safe_ports port 631         # cups

acl Safe_ports port 873         # rsync

acl Safe_ports port 901         # SWAT

acl purge method PURGE

acl CONNECT method CONNECT



http_access allow full_izinli_ipler

http_access deny yasaksiteler

http_access deny BlockExt all

http_access deny yasakkelime



http_access allow localnet


http_access allow manager localhost

http_access deny manager

http_access allow purge localhost

http_access deny purge

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access allow localhost

http_access deny all

icp_access allow localnet

icp_access deny all

http_port 3128 transparent

hierarchy_stoplist cgi-bin ?

access_log /var/log/squid/access.log 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

acl apache rep_header Server ^Apache

broken_vary_encoding allow apache

extension_methods REPORT MERGE MKACTIVITY CHECKOUT

hosts_file /etc/hosts

coredump_dir /var/spool/squid



cache_mem 64 MB

maximum_object_size 16384 KB

cache_dir aufs /var/spool/squid 512 16 256

garafatma

Bu çok iyi oldu, eve gidip testlerime devam edebilirim. Teşekküler.
Bira, Tanrı'nın bizi sevdiğinin ve eğlenmemizi istediğinin kanıtıdır.

>-- Askıdaki Çeviri --< Ubuntu Türkçe Çevirilerine Sizde Destek Olun
Elveda metal müziğin tanrısı... \m/ Ronnie James DIO: 1942 - 2010

sdincsoy

selam
ne durumdasin keiser_soze? yapabldin mi?
yapamadi isen yardimci olmaya calisayim.

garafatma

İşlerimin yoğunluğundan deneme fırsatı henüz bulamadım, muhtemelen bu gece deneyeceğim. ondan sonra buraya yazıyorum sonuçları. İlgin için teşekkür ederim :)
Bira, Tanrı'nın bizi sevdiğinin ve eğlenmemizi istediğinin kanıtıdır.

>-- Askıdaki Çeviri --< Ubuntu Türkçe Çevirilerine Sizde Destek Olun
Elveda metal müziğin tanrısı... \m/ Ronnie James DIO: 1942 - 2010

garafatma

Şimdi denedim ama sonuç değişmedi. iptables için kullandığın betiği yollayabilirmisin? iptables ayarlarından yanlış komutlar verebilrim, o yüzden olduğu gibi betiği paylaşabilirsen çok iyi olur.
Bira, Tanrı'nın bizi sevdiğinin ve eğlenmemizi istediğinin kanıtıdır.

>-- Askıdaki Çeviri --< Ubuntu Türkçe Çevirilerine Sizde Destek Olun
Elveda metal müziğin tanrısı... \m/ Ronnie James DIO: 1942 - 2010

sdincsoy

Selam;
Öncelikle bu topic i bir oku derim. buradan başlamanda fayda var.

http://forum.ubuntu-tr.net/index.php?topic=7194.0


Ben kendi sistemimde nasıl yaptığımı sırasıyla yazayım;

bu sistemde 2 ethernet kartı olduğunu ve eth1 iç network e bakan, eth0 da dış network e bakan bacak olarak varsayıyorum.

iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.100.224:3128
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


(bu 2 satır senin proxy ini transparent yapman için yeterli)

daha sonra
#iptables-save demen yeterli.


eğer ki bu satırları yazmaz isen terminal tarafında internet explorer ya da firefox una proxy tanımlaman lazım.

Bu iki satırı yazmadan önce öncelikle squid inin çalışıp çalışmadığını test etmende fayda var. yani sen ilk önce gerekli paketleri kurup ayarlarını yaptıktan sonra terminallerinden proxy sunucunun çalışıp çalışmadığını öncelikle bir test et derim.

* her şey normal ise transparent yapma olayına girersin ve yukarıda belirttiğim 2 satırı yazıp iptables-save ile save edersin.

kolay gelsin.




garafatma

Proxy su anda calisiyor, her turlu testi yaptim. Benim networkumde eth0 ic aga eth1 dis bacak seklinde, senin anlatimini tekrar gozden gecirip bilgilendiririm. Tesekkur ederim
Bira, Tanrı'nın bizi sevdiğinin ve eğlenmemizi istediğinin kanıtıdır.

>-- Askıdaki Çeviri --< Ubuntu Türkçe Çevirilerine Sizde Destek Olun
Elveda metal müziğin tanrısı... \m/ Ronnie James DIO: 1942 - 2010

garafatma

Tekrar denedim ancak yine beceremedim. Neyse şu an için pfSense'e doğru kaymam gerekiyor. Arada yine denemeler yapacağım.
Bira, Tanrı'nın bizi sevdiğinin ve eğlenmemizi istediğinin kanıtıdır.

>-- Askıdaki Çeviri --< Ubuntu Türkçe Çevirilerine Sizde Destek Olun
Elveda metal müziğin tanrısı... \m/ Ronnie James DIO: 1942 - 2010