Организуем прокси на нашем серваке. Прокси мне нужен для обеспечения доступа в инет 3 компов и 2 ноутов. Поднимать я его буду на порту 3128 и заворачивать на него трафик с помощью PF который просто включу в rc.conf и подправлю конфиг. Начнем…
/usr/ports/www/squid/ make install clean
Лезет окно.
Я выбрал только SQUID_PF Enable transparent proxying with PF.
В rc.conf кидаем: squid_enable=»YES»
Делаем конфиг сквида.
ee /usr/local/etc/squid/squid.conf
У меня он такой:
http_port 192.168.0.1:3128 transparent cache_dir ufs /usr/local/squid/cache 2048 64 256 cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log cache_mgr nick@хост.ru visible_hostname gw.хост.local pid_filename /var/run/squid/logs/squid.pid acl all src 0.0.0.0/0.0.0.0 acl our_networks src 192.168.0.0/24 http_access allow our_networks http_access deny all via off forwarded_for off
Первый раз запускаем squid с помощью:
/usr/local/squid/sbin/squid –z
Для того, чтобы он сформировал структуру кэша.
Далее стандартно /usr/local/etc/rc.d/squid.sh start
Если сквид матерится и не хочет стартовать, проверяем права и наличие папок.
/var/log/squid/ /var/run/squid/logs/
С этого момента squid должен нормально воркать. Пробуем настроить броузер для работы через прокси и выходим в инет.
Далее, завернем трафик с момощью PF
Идем в /etc/rc.conf и добавляем:
pf_enable="YES"
На и редактируем конфиг, у меня он такой:
port_web="80, 8080, 3128, 8081"
ext_if="xl0" # внешняя сетевуха
int_if="rl0" # внутренняя
int_ip="192.168.0.1"
int_net_ip="192.168.0.0/24"
rdr on $int_if inet proto tcp from $int_net_ip to any port {$port_web} -> 192.168.0.1 port 3128
nat on $ext_if from $int_net_ip to any -> $ext_if
pass in proto { tcp, udp } from any to any port { ssh, smtp, domain, http, pop3, imap, https, 1723, 3128} keep state
pass in proto { tcp } from any to port {1723} keep state
pass in proto { gre } from any to any
Ребутнемся.
Заходим в броузер и пробуем инет без настроек прокси.
Воркает. Гуд.
Метки: squid pf