Mikrotik i Squid = Transparentne Proxy

Transparentne proxy w firmowych sieciach znajdują coraz większe zastosowanie, także w sieciach lokalnych sprawują się super.

Dzięki takiemu serwerowi można monitorować wiele parametrów i metadanych oraz zapobiegać infekcji klientów.

Zakładamy, że na serwerze (192.168.0.10) mamy zainstalowany system operacyjny Ubuntu lub Debian, oraz sieć lokalna to 192.168.0.0/24.

#instalujemy squida
apt-get install squid3

#tworzymy własny plik konfiguracyjny
mv /etc/squid3/squid.conf /etc/squid3/squid.conf.bak
vim /etc/squid3/squid.conf
## #początek squid.conf ###
debug_options ALL,1
acl localnet src 192.168.0.0/24
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
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 192.168.0.10:8888
http_port 192.168.0.10:3128 intercept
coredump_dir /var/spool/squid3
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern (Release|Packages(.gz)*)$      0       20%     2880
refresh_pattern .               0       20%     4320

cache_dir /data/cache 100 16 256
cache_log /var/log/squid3/cache.log
cache_mem 16 MB
cache_mgr webmaster
cache_replacement_policy lru
cache_store_log /var/log/squid3/store.log
cache_swap_high 95
cache_swap_low 90
client_lifetime 1 days
connect_timeout 2 minutes
error_directory /usr/share/squid3/errors/en
ftp_passive on
maximum_object_size 4096 KB
memory_replacement_policy lru
### koniec squid.conf ###

Na serwerze znajduje sie firewall (iptables) należy wykonać następujące polecenia w celu uzyskania odpowiednich przekierowań:

iptables -t nat -A PREROUTING -s 192.168.0.10 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t mangle -A PREROUTING -p tcp --dport 3128 -j DROP

Następnie na routerze Mikrotik dodajemy następujące regułki by przekierować ruch wybranych klientów (lista SQUID_CLIENTS) na serwer proxy squid:

/ip firewall mangle
add chain=prerouting comment=squid dst-port=80 protocol=tcp src-address=192.168.0.10
add action=mark-routing chain=prerouting dst-port=80 in-interface=ether3 new-routing-mark=2 protocol=tcp src-address-list=SQUID_CLIENTS
add chain=prerouting routing-mark=2

/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1 src-address=192.168.0.0/24

/ip route
add distance=1 gateway=192.168.0.10 routing-mark=2

W ten sposób skonfigurowaliśmy serwer proxy, który przechwytuje ruch wybranych klientów i nie wymaga osobnej konfiguracji na komputerze klienta.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

*