Перейти к содержимому
Калькуляторы

Основные используемые порты

Вопрос возник изза обилия ословодов. Анлимит, поэтому ословоды качают круглосуточно. И засирают большим количеством пакетов исходящий траффик, посему входящий тоже падает. По портам их не отследить, соединение устанавливается на любом. совсем прикрыть нельзя. Решили пойти от обратного - основные службы с одним приоритетом, а ве остальное с меньшим. Теперь вопрос: если кто такое делал, киньте пожалуйста список портов, которые необходимы для нормальной работы среднего пользователя. Желательно поразвернутее, т.е. не только http, ftp, smtp, но и всякие MSN, ICQ, Yahoo, shoutcast, или чего там пользователи еще юзают. Сам не знаю, т.к. подьзуюусь по старинке только основным.

Заранее спасибо.

З.Ы. Можно было бы оставить только основные порты, а потом согласно жалобам пользователей, но это не есть хорошо, это дополнительные проблемы...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вопрос возник изза обилия ословодов. Анлимит, поэтому ословоды качают круглосуточно. И засирают большим количеством пакетов исходящий траффик, посему входящий тоже падает. По портам их не отследить, соединение устанавливается на любом. совсем прикрыть нельзя. Решили пойти от обратного - основные службы  с одним приоритетом, а ве остальное с меньшим. Теперь вопрос: если кто такое делал, киньте пожалуйста список портов, которые необходимы для нормальной работы среднего пользователя. Желательно поразвернутее, т.е. не только http, ftp, smtp, но и всякие MSN, ICQ, Yahoo, shoutcast, или чего там пользователи еще юзают. Сам не знаю, т.к. подьзуюусь по старинке только основным.

Заранее спасибо.

З.Ы. Можно было бы оставить только основные порты, а потом согласно жалобам пользователей, но это не есть хорошо, это дополнительные проблемы...

 

не пойдет. не тот подход.

Не помню как называется, можно анализировать СОДЕРЖАНИЕ пакета.

И тогда фильтровать.

 

А лучше - забыть про shared acces, зло это.

Сам даю людям персональные пакеты, а чем юзер их засерает - его проблема.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А я хоть что то сказал про shared acces? Есессно все режется по пакетам. Но канал из которого нарезается ограничен, особенно наружу.

И почему не тот подход? Я слышал, что многие так успешно работают. Не могли бы аргументировать?

Анализировать содержимое есть хрень под линукс, приблуда к иптаблес, а у меня на фре все. Под нее я такой хреновины поука не встречал. И это, анализ пакета при большом траффике ооочень жрет ресурсы. И глючит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вы хотя бы примерно представляете во сколько Вам обойдется анализ содержимого пакетов ? :-)

Тут как-раз можно получить ситуацию когда лекарство хуже болезни. :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вопрос возник изза обилия ословодов. Анлимит, поэтому ословоды качают круглосуточно. И засирают большим количеством пакетов исходящий траффик, посему входящий тоже падает. По портам их не отследить, соединение устанавливается на любом. совсем прикрыть нельзя. Решили пойти от обратного - основные службы  с одним приоритетом, а ве остальное с меньшим. Теперь вопрос: если кто такое делал, киньте пожалуйста список портов, которые необходимы для нормальной работы среднего пользователя. Желательно поразвернутее, т.е. не только http, ftp, smtp, но и всякие MSN, ICQ, Yahoo, shoutcast, или чего там пользователи еще юзают. Сам не знаю, т.к. подьзуюусь по старинке только основным.

Заранее спасибо.

З.Ы. Можно было бы оставить только основные порты, а потом согласно жалобам пользователей, но это не есть хорошо, это дополнительные проблемы...

 

Имею практику внедрения fbsd-шных "труб" (pipe) в такой конфигурации:

 

http, ftp, dns, smtp, все stateful (и запросы и ответы) загоняются в широкую трубу (ftp стоит особняком, но тоже побеждаем).

 

весь остальной трафик -- в узкую.

 

Если похоже, помогу с конфигурацией.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А я хоть что то сказал про shared acces? Есессно все режется по пакетам. Но канал из которого нарезается ограничен, особенно наружу.

И почему не тот подход? Я слышал, что многие так успешно работают.  Не могли бы аргументировать?

Анализировать содержимое есть хрень под линукс, приблуда к иптаблес, а у меня на фре все. Под нее я такой хреновины поука не встречал. И это, анализ пакета при большом траффике ооочень жрет ресурсы. И глючит.

 

Если это не shared access, то скорее всего нарушение договора с вашей стороны.

 

Или в договоре прописано - скорость 1Mbit, p2p - 100kbit ?

 

Пахнет старыми технологиями СТВ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Денис Креминский, да, именно оно и надо. Только желательно не только

http, ftp, dns, smtp,а еще и усякие ICQ, MSN и т.д. Список портов желателен. Просто когда я попытался сделать только основные порты, стали жаловаться что половина страниц не работает. Видно чего то недоделал...

Если не сложно, предоставьте пожалуйста пример как оно у вас сделано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Денис Креминский, да, именно оно и надо. Только желательно не только  

http, ftp, dns, smtp,а еще и усякие ICQ, MSN и т.д. Список портов желателен. Просто когда я попытался сделать только основные порты, стали жаловаться что половина страниц не работает. Видно чего то недоделал...

Если не сложно, предоставьте пожалуйста пример как оно у вас сделано.

 

tcpdump -n | grep -v 80 | grep -v 21 | grep -v 22

и так несколько раз.

Потом такое в лог на пару часов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А ословодов-то кто будет отфильтровывать ? :-) Пушкин ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Денис Креминский, да, именно оно и надо. Только желательно не только  

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 .

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Гость

Мысль такая, прошу не пинать за сырость.

Ослиный траффик должен качественно отличаться от других, например:

HTTP - короткие, ассиметричные, однонаправленные сеансы, всегда преобладает входящий трафик.

FTP - ассиметричные, однонаправленные сеансы, как правило преобладает входящий трафик.

Пейджеры - постоянный сверхмалый траффик.

Почта - короткие, ассиметричные сеансы.

Осёл - постоянный, тяжелый, разнонаправленный траффик.

 

Если использовать анализатор траффика, можно придумать скрипты отсеивающие траффик определённого характера в отдельный пайп.

 

То же решение, что и с tcpdump'ом, но автоматизированное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а если вумный ословод перебьет порты в настройках осла на приоритетные?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а если вумный ословод перебьет порты в настройках осла на приоритетные?

 

приоритетные порты должны быть с той стороны. что для большинства ословодов, читаем "для большей части интернета", редкость.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Roman Ivanov,

Сам даю людям персональные пакеты, а чем юзер их засерает - его проблема.

 

То есть, сумма каналов юзеров равна пропускной способности внешнего канала? Или все же сумма на порядки превосходит внешку? Ну тогда это все равно shared, хотя вы его там и по другому называть пытаетесь :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Roman Ivanov,

Сам даю людям персональные пакеты, а чем юзер их засерает - его проблема.

 

То есть, сумма каналов юзеров равна пропускной способности внешнего канала? Или все же сумма на порядки превосходит внешку? Ну тогда это все равно shared, хотя вы его там и по другому называть пытаетесь :)

 

Больше, но не на порядки. При к-ве юзеров более 50-100 действуют другие правила.

Хотите гарантийку? за 2-йную цену NP.

99.9% времени я обеспечиваю юзеру его канал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Roman Ivanov,

Ну тогда, собственно, все зависит от соотношения качков к нормальным. Будет у вас много ословодов - будут те же проблемы. Особенно, если канал ADSL, ведь именно он у автора темы как я понял?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Roman Ivanov,

Ну тогда, собственно, все зависит от соотношения качков к нормальным. Будет у вас много ословодов - будут те же проблемы. Особенно, если канал ADSL, ведь именно он у автора темы как я понял?

 

У меня симметричный, оптика, 20Mbit.

Ословоды меня не волнуют ;)

Есть внутренний FTP на 600 гиг.

НУ нет и не будет этих скачков.

 

У Автора если ADSL/cable - то возможно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ословоды Вас не волнуют пока под осла не выпустили очередной slammer. :-) Вот тогда они Вам будут очень волновать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.