AndryXa 0 Posted 2004-11-14 01:00:59 Share Posted 2004-11-14 01:00:59 Привіт. Раніше всіх пускав через сквід (бо обмежував по швидкості деяких юзерів). Працював непогано, але одна проблема - сквід дає тільки веб серфінг, тобто всякі донкі, емуле, thebat не працюють. Потім підняв нат, все почало працювати (emule, thebat....). Але знов проблема - коли юзери забирають настройки проксі сервера, то вони валять на всій швидкості. Покашо бачу одни вихід - поставити cbq, але тоді втрачаю класні можливості сквіда (кешуваня - шо зменшує наватнаженя каналу, і можливість завантажувати на повній швидкості сторінки які важать до встановленого числа Кб (напр. до 40Кб) ) Підкажіть як обєднати нат і сквід. Дякую. Link to post Share on other sites
Slava 1 Posted 2004-11-14 12:53:35 Share Posted 2004-11-14 12:53:35 Вот пример IP сервера 192,168,0,1 Реальный IP от провайдера 202.45.23.78 IP- юзера 192,168,0,2 тогда для коннекта юзера нужен такой скрипт iptables -A FORWARD -s 192,168,0,2 -j ACCEPT iptables -A FORWARD -d 192,168,0,2 -j ACCEPT iptables -t nat -I POSTROUTING 1 -s 192,168,0,2 -j SNAT --to-source 202,45,23,78 iptables -t nat -I INPUT 1 -s 192,168,0,2 -d ! 192.168.0.0/24 -p tcp --dport 80 -j DNAT --to 192,168,0,1:3128 для дисконнекта iptables -D FORWARD -s 192,168,0,2 -j ACCEPT iptables -D FORWARD -d 192,168,0,2 -j ACCEPT iptables -t nat -D POSTROUTING 1 -s 192,168,0,2 -j SNAT --to-source 202,45,23,78 iptables -t nat -D INPUT 1 -s 192,168,0,2 -d ! 192.168.0.0/24 -p tcp --dport 80 -j DNAT --to 192,168,0,1:3128 но в фаерволе нужно прописать iptables -F iptables -t nat -F iptables -t mangle -F iptables -P FORWARD DROP iptables -t mangle -A PREROUTING -d 192.168.0.1 -p tcp --dport 3128 -j DROP /sbin/iptables -F; iptables -t nat -F; iptables -t mangle -F /sbin/iptables -t filter -P FORWARD DROP Link to post Share on other sites
AndryXa 0 Posted 2004-11-14 23:24:23 Author Share Posted 2004-11-14 23:24:23 тогда для коннекта юзера нужен такой скрипт iptables -A FORWARD -s 192,168,0,2 -j ACCEPT iptables -A FORWARD -d 192,168,0,2 -j ACCEPT iptables -t nat -I POSTROUTING 1 -s 192,168,0,2 -j SNAT --to-source 202,45,23,78 iptables -t nat -I INPUT 1 -s 192,168,0,2 -d ! 192.168.0.0/24 -p tcp --dport 80 -j DNAT --to 192,168,0,1:3128 В таблиці NAT нема chain INPUT. Там тільки PREROUTING, OUTPUT, POSTROUTING. Link to post Share on other sites
Guest Вадим Posted 2004-11-15 03:27:19 Share Posted 2004-11-15 03:27:19 Привіт! Було б не погано якби ще хтось написав для мене такі ж правила тільки для FreeBSD. Буду дуже вдячний! Link to post Share on other sites
Guest Guest Posted 2004-11-15 19:27:40 Share Posted 2004-11-15 19:27:40 тогда для коннекта юзера нужен такой скрипт iptables -A FORWARD -s 192,168,0,2 -j ACCEPT iptables -A FORWARD -d 192,168,0,2 -j ACCEPT iptables -t nat -I POSTROUTING 1 -s 192,168,0,2 -j SNAT --to-source 202,45,23,78 iptables -t nat -I INPUT 1 -s 192,168,0,2 -d ! 192.168.0.0/24 -p tcp --dport 80 -j DNAT --to 192,168,0,1:3128 В таблиці NAT нема chain INPUT. Там тільки PREROUTING, OUTPUT, POSTROUTING. Пакеты идут через шлюз двумя путями 1- через цепочку FORWARD - ТРАНЗИТНЫЕ 2- через локальные приложения в том числе и Squid цепочка INPUT т.е. для того чтобы обединить NAT и Squid нужно учитывать что трафик будет протекать по двум ветвям по одной - это FORWARD по другой это INPUT - входящие пакеты в Squid. если написать так iptables -t nat -I PREROUTING 1 -s 192,168,0,2 -d ! 192.168.0.0/24 -p tcp --dport 80 -j DNAT --to 192,168,0,1:3128 ТО ВЫЛАЗИТ СТРАННЫЙ ГЛЮК - при выполнение дисконнекта остаются незавершенные связи с чем я уже сталкивался. Например идет закачка с помощью FlashGat, выполняется дисконнект но закачка продолжается. на сайт вылезтия нельзя аска не работает, но FlashGat, еслия не обрывается связь докачивает файл до конца или до первого обрыва. поэтому лучше использовать iptables -t nat -I INPUT 1 -s 192,168,0,2 -d ! 192.168.0.0/24 -p tcp --dport 80 -j DNAT --to 192,168,0,1:3128 что сразу же перестает пускать пакеты с Squid. см доку. http://www.opennet.ru/docs/RUS/iptables/index.html Link to post Share on other sites
Slava 1 Posted 2004-11-15 19:31:55 Share Posted 2004-11-15 19:31:55 Выше был я Link to post Share on other sites
Slava 1 Posted 2004-11-15 19:33:01 Share Posted 2004-11-15 19:33:01 да попробуй тогда iptables -t nat -I OUTPUT 1 -s 192,168,0,2 -d ! 192.168.0.0/24 -p tcp --dport 80 -j DNAT --to 192,168,0,1:3128 должно быть то же самое Link to post Share on other sites
TimKa 0 Posted 2004-11-16 08:19:02 Share Posted 2004-11-16 08:19:02 /etc/rc.conf ==== firewall_enable="YES" firewall_logging="YES" firewall_quiet="YES" firewall_script="/usr/local/etc/ipfw/ipfw.conf" natd_enable="YES" natd_flags="-f /usr/local/etc/natd.conf -a <внешний ip адрес> -p 8668" ==== /usr/local/etc/natd.conf ==== use_sockets yes same_ports yes ==== /usr/local/etc/ipfw/ipfw.conf ==== #!/bin/sh # Firewall rulese fwcmd="/sbin/ipfw" $fwcmd -f flush $fwcmd add 100 divert 8668 ip from 192.168.222.0/24 to any via <внешний ip адрес> $fwcmd add 200 divert 8668 ip from 192.168.227.0/24 to any via <внешний ip адрес> $fwcmd add 210 divert 8668 ip from 172.16.16.0/24 to any via <внешний ip адрес> $fwcmd add 300 divert 8668 ip from any to <внешний ip адрес> in recv <внешний ip адрес> дальше правила по вкусу Link to post Share on other sites
TimKa 0 Posted 2004-11-16 08:27:33 Share Posted 2004-11-16 08:27:33 забыл про сквид вот для сквида $fwcmd add fwd <ip адрес squid>,3128 tcp from 192.168.222.0/24 to any 80 recv rl0 in $fwcmd add fwd <ip адрес squid>,3128 tcp from 192.168.225.0/24 to any 80 recv ed0 in $fwcmd add fwd <ip адрес squid>,2121 tcp from 192.168.222.0/24 to any 21 recv rl0 in $fwcmd add fwd <ip адрес squid>,2121 tcp from 192.168.225.0/24 to any 21 recv ed0 in Link to post Share on other sites
TimKa 0 Posted 2004-11-16 08:31:36 Share Posted 2004-11-16 08:31:36 для заворота фтп трафика на сквид использую frox Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now