Zyx Posted August 23, 2004 Posted August 23, 2004 Вопрос возник изза обилия ословодов. Анлимит, поэтому ословоды качают круглосуточно. И засирают большим количеством пакетов исходящий траффик, посему входящий тоже падает. По портам их не отследить, соединение устанавливается на любом. совсем прикрыть нельзя. Решили пойти от обратного - основные службы с одним приоритетом, а ве остальное с меньшим. Теперь вопрос: если кто такое делал, киньте пожалуйста список портов, которые необходимы для нормальной работы среднего пользователя. Желательно поразвернутее, т.е. не только http, ftp, smtp, но и всякие MSN, ICQ, Yahoo, shoutcast, или чего там пользователи еще юзают. Сам не знаю, т.к. подьзуюусь по старинке только основным. Заранее спасибо. З.Ы. Можно было бы оставить только основные порты, а потом согласно жалобам пользователей, но это не есть хорошо, это дополнительные проблемы... Вставить ник Quote
Roman Ivanov Posted August 23, 2004 Posted August 23, 2004 Вопрос возник изза обилия ословодов. Анлимит, поэтому ословоды качают круглосуточно. И засирают большим количеством пакетов исходящий траффик, посему входящий тоже падает. По портам их не отследить, соединение устанавливается на любом. совсем прикрыть нельзя. Решили пойти от обратного - основные службы с одним приоритетом, а ве остальное с меньшим. Теперь вопрос: если кто такое делал, киньте пожалуйста список портов, которые необходимы для нормальной работы среднего пользователя. Желательно поразвернутее, т.е. не только http, ftp, smtp, но и всякие MSN, ICQ, Yahoo, shoutcast, или чего там пользователи еще юзают. Сам не знаю, т.к. подьзуюусь по старинке только основным.Заранее спасибо. З.Ы. Можно было бы оставить только основные порты, а потом согласно жалобам пользователей, но это не есть хорошо, это дополнительные проблемы... не пойдет. не тот подход. Не помню как называется, можно анализировать СОДЕРЖАНИЕ пакета. И тогда фильтровать. А лучше - забыть про shared acces, зло это. Сам даю людям персональные пакеты, а чем юзер их засерает - его проблема. Вставить ник Quote
Zyx Posted August 24, 2004 Author Posted August 24, 2004 А я хоть что то сказал про shared acces? Есессно все режется по пакетам. Но канал из которого нарезается ограничен, особенно наружу. И почему не тот подход? Я слышал, что многие так успешно работают. Не могли бы аргументировать? Анализировать содержимое есть хрень под линукс, приблуда к иптаблес, а у меня на фре все. Под нее я такой хреновины поука не встречал. И это, анализ пакета при большом траффике ооочень жрет ресурсы. И глючит. Вставить ник Quote
jab Posted August 24, 2004 Posted August 24, 2004 Вы хотя бы примерно представляете во сколько Вам обойдется анализ содержимого пакетов ? :-) Тут как-раз можно получить ситуацию когда лекарство хуже болезни. :-) Вставить ник Quote
Денис Креминский Posted August 24, 2004 Posted August 24, 2004 Вопрос возник изза обилия ословодов. Анлимит, поэтому ословоды качают круглосуточно. И засирают большим количеством пакетов исходящий траффик, посему входящий тоже падает. По портам их не отследить, соединение устанавливается на любом. совсем прикрыть нельзя. Решили пойти от обратного - основные службы с одним приоритетом, а ве остальное с меньшим. Теперь вопрос: если кто такое делал, киньте пожалуйста список портов, которые необходимы для нормальной работы среднего пользователя. Желательно поразвернутее, т.е. не только http, ftp, smtp, но и всякие MSN, ICQ, Yahoo, shoutcast, или чего там пользователи еще юзают. Сам не знаю, т.к. подьзуюусь по старинке только основным.Заранее спасибо. З.Ы. Можно было бы оставить только основные порты, а потом согласно жалобам пользователей, но это не есть хорошо, это дополнительные проблемы... Имею практику внедрения fbsd-шных "труб" (pipe) в такой конфигурации: http, ftp, dns, smtp, все stateful (и запросы и ответы) загоняются в широкую трубу (ftp стоит особняком, но тоже побеждаем). весь остальной трафик -- в узкую. Если похоже, помогу с конфигурацией. Вставить ник Quote
Roman Ivanov Posted August 24, 2004 Posted August 24, 2004 А я хоть что то сказал про shared acces? Есессно все режется по пакетам. Но канал из которого нарезается ограничен, особенно наружу.И почему не тот подход? Я слышал, что многие так успешно работают. Не могли бы аргументировать? Анализировать содержимое есть хрень под линукс, приблуда к иптаблес, а у меня на фре все. Под нее я такой хреновины поука не встречал. И это, анализ пакета при большом траффике ооочень жрет ресурсы. И глючит. Если это не shared access, то скорее всего нарушение договора с вашей стороны. Или в договоре прописано - скорость 1Mbit, p2p - 100kbit ? Пахнет старыми технологиями СТВ... Вставить ник Quote
Zyx Posted August 24, 2004 Author Posted August 24, 2004 Денис Креминский, да, именно оно и надо. Только желательно не только http, ftp, dns, smtp,а еще и усякие ICQ, MSN и т.д. Список портов желателен. Просто когда я попытался сделать только основные порты, стали жаловаться что половина страниц не работает. Видно чего то недоделал... Если не сложно, предоставьте пожалуйста пример как оно у вас сделано. Вставить ник Quote
Roman Ivanov Posted August 24, 2004 Posted August 24, 2004 Денис Креминский, да, именно оно и надо. Только желательно не только http, ftp, dns, smtp,а еще и усякие ICQ, MSN и т.д. Список портов желателен. Просто когда я попытался сделать только основные порты, стали жаловаться что половина страниц не работает. Видно чего то недоделал... Если не сложно, предоставьте пожалуйста пример как оно у вас сделано. tcpdump -n | grep -v 80 | grep -v 21 | grep -v 22 и так несколько раз. Потом такое в лог на пару часов. Вставить ник Quote
jab Posted August 24, 2004 Posted August 24, 2004 А ословодов-то кто будет отфильтровывать ? :-) Пушкин ? Вставить ник Quote
Денис Креминский Posted August 24, 2004 Posted August 24, 2004 Денис Креминский, да, именно оно и надо. Только желательно не только http, ftp, dns, smtp,а еще и усякие ICQ, MSN и т.д. Список портов желателен. Просто когда я попытался сделать только основные порты, стали жаловаться что половина страниц не работает. Видно чего то недоделал... Если не сложно, предоставьте пожалуйста пример как оно у вас сделано. Все еще нуждается в твикании (в основном по части захардкоденных констант внутри), но в такой конфигурации работало. Поддерживает natd (кажется, требует punch для нормальной работы ftp в режиме НЕ-passive, без панча работает в passive, запихивая трафик в узкую трубу). Требует ipfw2 (по умолчанию в 5.2.x-RELEASE) для stateful. #!/bin/sh ipfw_program="/sbin/ipfw" ipfw_flags="-q" ext_net="x.x.x.x/27" ext_addr="x.x.x.x" int_net="192.168.1.0/24" int_addr="192.168.1.1" loopback_iface="lo0" int_iface="xl0" # will be allowed to pass any traffic!!! ext_iface="xl1" # all packets containing private addresses will be denied here in_bandwidth_limit="512Kbit/s" # total bandwidth limit (or NO) out_bandwidth_limit="512Kbit/s" # total bandwidth limit (or NO) in_misc_bandwidth_limit="64Kbit/s" # bandwidth limit per "misc" traffic out_misc_bandwidth_limit="64Kbit/s" # bandwidth limit per "misc" traffic their_free_tcp_ports="20,21,22,23,25,80,119,143,443" their_free_udp_ports="53" my_free_tcp_ports="20,21,22,25,80,443" my_free_udp_ports="53" my_open_tcp_ports="20,21,22,25,53,80,443" my_open_udp_ports="53" transparent_http_proxy="127.0.0.1,3128" ntpdconffile="/etc/ntp.conf" ############################################################################### # # # # # END OF CONFIGURATION VARIABLES. STOP HERE UNLESS YOU KNOW WHAT YOU'RE DOIN' # # # # # ############################################################################### # Suck in the system configuration variables. if [ -r /etc/defaults/rc.conf ]; then . /etc/defaults/rc.conf source_rc_confs elif [ -r /etc/rc.conf ]; then . /etc/rc.conf fi # # flushing all rules # echo -n ' ipfw' /sbin/sysctl -w net.inet.ip.fw.one_pass=0 ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} -f flush echo -n " +loopback" ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 10 pass all from any to any via ${loopback_iface} // loopback if [ -n "${transparent_http_proxy}" ]; then echo -n " >transparent_http_proxy" ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 100 fwd ${transparent_http_proxy} tcp from ${int_net} to not ${ext_net} 80 in via ${int_iface} // transparent http proxy fi case ${natd_enable} in [Yy][Ee][ss]) echo -n " >nat" ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 200 divert natd all from ${int_net} to any out via ${ext_iface} // divert packets from local hosts ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 500 divert natd all from any to ${ext_net} in via ${ext_iface} // divert incoming packets esac echo -n " |default" case ${out_bandwidth_limit} in [Nn][Oo]) break ;; *) ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 300 pipe 300 tcp from ${ext_net} not ${my_free_tcp_ports} to not ${ext_net} not 20,21,25,80 out via ${ext_iface} // pipe misc tcp outgoing except e-mail ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 300 pipe 300 udp from ${ext_net} not ${my_free_udp_ports} to not ${ext_net} out via ${ext_iface} // pipe misc udp outgoing ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} pipe 300 config bw ${out_misc_bandwidth_limit} delay 10 ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 301 pipe 301 ip from ${ext_net} to not ${ext_net} out via ${ext_iface} // pipe all outgoing ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} pipe 301 config bw ${out_bandwidth_limit} delay 10 esac case ${in_bandwidth_limit} in [Nn][Oo]) break ;; *) ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 310 pipe 310 tcp from not ${ext_net} not ${their_free_tcp_ports} to ${ext_net} not 20,21,25,80 in via ${ext_iface} // pipe misc tcp incoming except e-mail, ftp ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 310 pipe 310 udp from not ${ext_net} not ${their_free_udp_ports} to ${ext_net} in via ${ext_iface} // pipe misc udp incoming ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} pipe 310 config bw ${in_misc_bandwidth_limit} delay 10 ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 311 pipe 311 ip from not ${ext_net} to ${ext_net} in via ${ext_iface} // pipe all incoming ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} pipe 311 config bw ${in_bandwidth_limit} delay 10 esac echo -n " |icmp_band_limit" ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 400 pipe 400 icmp from any to any via ${ext_iface} ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 400 allow icmp from any to any ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} pipe 400 config bw 16000 delay 50 echo -n " check-state" ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 600 check-state // check dynamic rules echo -n " +local-keep-state" ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 700 allow ip from ${int_net} to any in via ${int_iface} keep-state // remember nat clients # # DHCP auto-configuration, NET-TEST, MULTICAST (class D), and class E) # on the outside interface # # Prevent any "local" traffic or address spoofing # on external iface other than diverted # echo -n " -private_ips:${ext_iface}" ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 800 deny all from 192.168.0.0/16 to any via ${ext_iface} ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 800 deny all from any to 192.168.0.0/16 via ${ext_iface} ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 800 deny all from any to 127.0.0.0/8 ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 800 deny all from 10.0.0.0/8 to any via ${ext_iface} ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 800 deny all from any to 10.0.0.0/8 via ${ext_iface} ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 800 deny all from 172.16.0.0/12 to any via ${ext_iface} ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 800 deny all from any to 172.16.0.0/12 via ${ext_iface} ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 800 deny all from 0.0.0.0/8 to any via ${ext_iface} ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 800 deny all from any to 0.0.0.0/8 via ${ext_iface} ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 800 deny all from 169.254.0.0/16 to any via ${ext_iface} ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 800 deny all from any to 169.254.0.0/16 via ${ext_iface} ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 800 deny all from 192.0.2.0/24 to any via ${ext_iface} ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 800 deny all from any to 192.0.2.0/24 via ${ext_iface} ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 800 deny all from 224.0.0.0/4 to any via ${ext_iface} ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 800 deny all from any to 224.0.0.0/4 via ${ext_iface} ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 800 deny all from 240.0.0.0/4 to any via ${ext_iface} ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 800 deny all from any to 240.0.0.0/4 via ${ext_iface} echo -n " -ip_spoof:${ext_iface}" ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 800 deny all from not ${ext_net} to any out via ${ext_iface} // prevent my ip spoof echo -n " +my_open_ports" ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 900 allow tcp from any to ${ext_addr} ${my_open_tcp_ports} in via ${ext_iface} setup keep-state // tcp that we show ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 900 allow udp from any to ${ext_addr} ${my_open_udp_ports} in via ${ext_iface} keep-state // udp that we show ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 900 allow ip from ${int_addr} to ${int_net} out via ${int_iface} keep-state // if i want to connect to someone locally # # OBSOLETE with keep-state outgoing udp rules # #echo -n " +ntp_support" #if [ -f ${ntpdconffile} ]; then # servers=`cat ${ntpdconffile} | grep server | awk ' { print $2 } '` # for server in ${servers}; do # ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 1000 allow udp from ${ext_addr} 123 to ${server} 123 keep-state // ntp # done #fi echo -n " +outgoing" ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 1100 allow tcp from ${ext_net} to any out via ${ext_iface} keep-state // allow outgoing tcp ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 1100 allow udp from ${ext_net} to any out via ${ext_iface} keep-state // and udp echo -n " -default" ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 65534 deny all from any to any via ${ext_iface} // deny the rest by default echo -n " -port135" ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 650 deny ip from ${int_net} to any 135 in via ${int_iface} // Blast hack echo -n " -port25" ${ipfw_program:-/sbin/ipfw} ${ipfw_flags} add 640 allow ip from ${int_net} to ${int_net} 25 in via ${int_iface} // allow local smtp to unix echo . Вставить ник Quote
Guest Posted August 24, 2004 Posted August 24, 2004 Мысль такая, прошу не пинать за сырость. Ослиный траффик должен качественно отличаться от других, например: HTTP - короткие, ассиметричные, однонаправленные сеансы, всегда преобладает входящий трафик. FTP - ассиметричные, однонаправленные сеансы, как правило преобладает входящий трафик. Пейджеры - постоянный сверхмалый траффик. Почта - короткие, ассиметричные сеансы. Осёл - постоянный, тяжелый, разнонаправленный траффик. Если использовать анализатор траффика, можно придумать скрипты отсеивающие траффик определённого характера в отдельный пайп. То же решение, что и с tcpdump'ом, но автоматизированное. Вставить ник Quote
Vicus Posted August 26, 2004 Posted August 26, 2004 а если вумный ословод перебьет порты в настройках осла на приоритетные? Вставить ник Quote
Денис Креминский Posted August 26, 2004 Posted August 26, 2004 а если вумный ословод перебьет порты в настройках осла на приоритетные? приоритетные порты должны быть с той стороны. что для большинства ословодов, читаем "для большей части интернета", редкость. Вставить ник Quote
Guest Posted August 26, 2004 Posted August 26, 2004 http://www.http-tunnel.com/html/ August 1, 2004 HTTP-Tunnel Low Bandwidth services up to 40kbit/sec are now provided free of charge. Вставить ник Quote
avial Posted August 26, 2004 Posted August 26, 2004 Roman Ivanov, Сам даю людям персональные пакеты, а чем юзер их засерает - его проблема. То есть, сумма каналов юзеров равна пропускной способности внешнего канала? Или все же сумма на порядки превосходит внешку? Ну тогда это все равно shared, хотя вы его там и по другому называть пытаетесь :) Вставить ник Quote
Roman Ivanov Posted August 26, 2004 Posted August 26, 2004 Roman Ivanov, Сам даю людям персональные пакеты, а чем юзер их засерает - его проблема. То есть, сумма каналов юзеров равна пропускной способности внешнего канала? Или все же сумма на порядки превосходит внешку? Ну тогда это все равно shared, хотя вы его там и по другому называть пытаетесь :) Больше, но не на порядки. При к-ве юзеров более 50-100 действуют другие правила. Хотите гарантийку? за 2-йную цену NP. 99.9% времени я обеспечиваю юзеру его канал. Вставить ник Quote
avial Posted August 26, 2004 Posted August 26, 2004 Roman Ivanov, Ну тогда, собственно, все зависит от соотношения качков к нормальным. Будет у вас много ословодов - будут те же проблемы. Особенно, если канал ADSL, ведь именно он у автора темы как я понял? Вставить ник Quote
Roman Ivanov Posted August 27, 2004 Posted August 27, 2004 Roman Ivanov, Ну тогда, собственно, все зависит от соотношения качков к нормальным. Будет у вас много ословодов - будут те же проблемы. Особенно, если канал ADSL, ведь именно он у автора темы как я понял? У меня симметричный, оптика, 20Mbit. Ословоды меня не волнуют ;) Есть внутренний FTP на 600 гиг. НУ нет и не будет этих скачков. У Автора если ADSL/cable - то возможно. Вставить ник Quote
jab Posted August 27, 2004 Posted August 27, 2004 Ословоды Вас не волнуют пока под осла не выпустили очередной slammer. :-) Вот тогда они Вам будут очень волновать. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.