LinuxForum.Fans
Тема

Ограничение скорости и запрет соц. сетей

Автор: XliN 30 сообщений 10918 просмотров
#136306

Доброго дня. Как собственно это реализовать?

Вопрос первый.
У меня одноклассники и вконтакте режутся вот таким правилом, но я не знаю сработает ли оно на реальном шлюзе с VLAN.


iptables -A OUTPUT -d odnoklassniki.ru -s 192.168.1.150 -j DROP
iptables -A OUTPUT -d vkontakte.ru -s 192.168.1.150 -j DROP
iptables -A OUTPUT -d vk.com -s 192.168.1.150 -j DROP

Это получается, что 192.168.1.150 не может заходить на сайт. Правильно я его написал? Я проверял на виртуалке, но не уверен на счет -s 192.168.1.150 Хотелось бы что бы еще он перенаправлялся на мой httpd. На страничку типа "Хватит ваньку валять!! Все равно смерть за вами придет."
В итоге получаю

[root@master ~]# ping vk.com
PING vk.com (87.240.188.253) 56(84) bytes of data.
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted

Вот мой iptables.save. Посмотрите его пожалуйста и тыкните туда, где я намудрил и как сделать правильнее.

Показать

[root@ldap ~]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.3.5 on Thu Feb 24 15:36:00 2011
*nat
:PREROUTING ACCEPT [177046:14805979]
:POSTROUTING ACCEPT [2011:132675]
:OUTPUT ACCEPT [14847:1119166]
-A POSTROUTING -s 192.168.3.0/255.255.255.0 -j MASQUERADE
-A POSTROUTING -s 192.168.1.0/255.255.255.0 -j MASQUERADE
COMMIT
# Completed on Thu Feb 24 15:36:00 2011
# Generated by iptables-save v1.3.5 on Thu Feb 24 15:36:00 2011
*mangle
:PREROUTING ACCEPT [6627881:1479511141]
:INPUT ACCEPT [5092189:564773300]
:FORWARD ACCEPT [1469563:909352888]
:OUTPUT ACCEPT [6440494:5614812414]
:POSTROUTING ACCEPT [7738124:6504974532]
COMMIT
# Completed on Thu Feb 24 15:36:00 2011
# Generated by iptables-save v1.3.5 on Thu Feb 24 15:36:00 2011
*filter
:INPUT DROP [5089624:564470147]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [6268158:5595569196]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -f -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 137:139 -j ACCEPT
-A INPUT -p udp -m udp --dport 137:139 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 445 -j ACCEPT
-A INPUT -p udp -m udp --dport 445 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p udp -m udp --dport 67:68 -j ACCEPT
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -j REJECT --reject-with icmp-proto-unreachable
-A FORWARD -s 192.168.1.0/255.255.255.0 -j ACCEPT
-A FORWARD -d 192.168.1.0/255.255.255.0 -j ACCEPT
-A FORWARD -s 192.168.3.0/255.255.255.0 -j ACCEPT
-A FORWARD -d 192.168.3.0/255.255.255.0 -j ACCEPT
COMMIT
# Completed on Thu Feb 24 15:36:00 2011

Второй вопрос.
Как порезать конкретному IP скорость на инет например до 10КБ/с. Хотелось бы средствами iptables или tc.
Есть у кого примеры. С tc совсем не работал.

#136341

А squid не проще?

#136342
Denlookh написал:
А squid не проще?

Проще. И я знаю как все на нем сделать. Ни один раз уже делал, но это скучно. Оставлю его как второй, запасной вариант. Хочется по разбираться с новым, что я еще не щупал.

P.S. И так на слабеньком сервере крутится уже Samba (с большим трафиком), DNS, DHCP., LDAP.

#136424

iptables не умеет работать с именами но для этого есть изврат. Ну если стоит dns думаю проще будет на нём запросы на vk.com пересылать c vk.com - > 127.0.0.1. На счёт tc дома проверю свой новый скрипт и позже выложу. Пока тружусь на работе.

#136439

Вот пока по тс писал на этом же форуме
iptables -t mangle -I OUTPUT -o eth1 -d xx.xx.xx.xx -j MARK --set-mark 10
iptables -t mangle -I OUTPUT -o eth1 -d xx.xx.xx.yy -j MARK --set-mark 11

#дисциплина очереди
tc qdisc add dev eth1 root handle 1: htb
#главный класс
tc class add dev eth1 parent 1: classid 1:1 htb rate 6kbps ceil 6kbps
#дочерние классы
tc class add dev eth1 parent 1:1 classid 1:10 htb rate 3kbps ceil 6kbps prio 0
tc class add dev eth1 parent 1:1 classid 1:11 htb rate 3kbps ceil 6kbps prio 0
#фильтр
tc filter add dev eth1 protocol ip handle 10 parent 1:0 prio 0 fw flowid 1:10
tc filter add dev eth1 protocol ip handle 11 parent 1:0 prio 0 fw flowid 1:11

#136488

Такс tc дал пример щас покажу как закрывать соцсети через bind)
Честно ток сам попробывал но в этих записях не хрена не разобрался.

named.conf.default-zones

zone "linuxforum.ru" in {
file "/etc/bind/linuxforum.ru";
type master;
};

cat /etc/bind/linuxforum.ru
$TTL 2d
@ IN SOA ns.example.ru. root.ns.example.ru. (
2009012810 ; serial
3h ; refresh
1h ; retry
1w ; expiry
1d ) ; minimum

linuxforum.ru. IN NS ns.example.com.

linuxforum.ru. IN A 172.16.0.100


ping linuxforum.ru
PING linuxforum.ru (172.16.0.100) 56(84) bytes of data.
64 bytes from 172.16.0.100: icmp_seq=1 ttl=64 time=0.199 ms
64 bytes from 172.16.0.100: icmp_seq=2 ttl=64 time=0.175 ms

#136634

Можеш для настройки tc попробывать скрипт HTB, сам с его помощью настроил обрезку трафика и без маркировки пакетов
Тыц и тут тыц

#136655
kisil написал:
Можеш для настройки tc попробывать скрипт HTB, сам с его помощью настроил обрезку трафика и без маркировки пакетов
Тыц и тут тыц

Смысла нет! Лучше понять как работает да и в будущем будет проще.

#136671
Kettler написал:
Смысла нет! Лучше понять как работает да и в будущем будет проще.

+1
И не так там сложно.

Kettler написал:
Ну если стоит dns думаю проще будет на нём запросы на vk.com пересылать c vk.com - > 127.0.0.1.

Не на 127.0.0.1 а на страничку-заставку со страшной надписью/картинкой "Не ЛЕЗЬ!!!", или на скрипт который будет вести статистику кто сколько раз лез не туда)

#136675
3axapp написал:

Не на 127.0.0.1 а на страничку-заставку со страшной надписью/картинкой "Не ЛЕЗЬ!!!", или на скрипт который будет вести статистику кто сколько раз лез не туда)

Ну и дураку ясно)

#136717

Кстати кто как решает проблему с торрент-качалками? ну кроме способов запретить устанавливать=)
Я вот думаю с помощью приоритетов выставить портам 80,21,22,443(+ еще если надо) приоритет 0 при форвардинге, а всем остальным 5 или еще больше=)
Может существует более правильный способ?

#136723

Закрой всё и открой токо нужные порты.

#136726

Kettler, слишком радикально) И мне нужен инет в общаге раздать студентам, в общем не хочу им как-то сильно ограничивать их веселую студенческую жизнь=) Хотя пару раз возникала мысль отрубить им все нахрен
И их торренты бесят

#136728
3axapp написал:
слишком радикально)

закрыть ВСЕ входящие(для клиентов) порты - обычная практика.

3axapp написал:
Я вот думаю с помощью приоритетов выставить портам 80,21,22,443(+ еще если надо)

входящие для клиентов? это приведёт к тому, что ваши студенты смогут поднять свой сервер, и траффик К НЕМУ(и от него) будет иметь больший приоритет.
на web, и торренты это НЕ повлияет.
Если-же вы закроете все исходящие (обратные) порты, то не будет веба. Вообще НИЧЕГО не будет.

Для установки связи клиенту с сервером на порту 666 необходимо след:
1) клиент должен иметь возможность отправлять пакеты на порт 666
2) клиент должен иметь возможность принимать пакеты с какого-то порта в диапазоне 1024..65535.

торренты отлично работают если закрыть все входящие порты (хоть и хуже)
торренты не работают, если закрыть исходящие. Но при этом не работает и веб.

Итого: манипуляции с портами вам НЕ помогут.

#136732

iptables -P FORWARD DROP
iptables -A FORWARD -i eth0 -o ppp0 -p tcp -m multiport --dport 80,443,110,25,143,5190 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -p tcp -m multiport --sport 80,110,443,25,143,5190 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p udp --sport 53 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp -m multiport --dport 80,443,110,25,143,5190 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m multiport --sport 80,110,443,25,143,5190 -j ACCEPT

DrBatty Данный кусок отлично работает!

3axapp делай трубу общую например в 128Kb
и ещё одну в 1mb все нужные порты а это обычно (80,110,443,25,143,5190) в трубу 1 мб а всё остальное в 128Kb

#136733

На примере выше (ток не проверял)

iptables -t mangle -A PREROUTING -i eth0 -p tcp -m multiport --dport 80,443,110,25,143,5190 -j MARK --set-mark 10
iptables -t mangle -A PREROUTING -i eth0 -p udp --dport 53 -j ACCEPT
iptables -t mangle -A PREROUTING -i ppp0-p tcp -m multiport --sport 80,110,443,25,143,5190 -j MARK --set-mark 10
iptables -t mangle -A PREROUTING -i eth1 -p udp --sport 53 -j ACCEPT
iptables -t mangle -A PREROUTING -i eth0 -p tcp -m multiport --dport 80,443,110,25,143,5190 -j MARK --set-mark 10
iptables -t mangle -A PREROUTING -i eth1 -p tcp -m multiport --sport 80,110,443,25,143,5190 -j MARK --set-mark 10

#дисциплина очереди
tc qdisc add dev eth1 root handle 1: htb
#главный класс
tc class add dev eth1 parent 1: classid 1:1 htb rate 256kbps ceil 512kbps
#дочерние классы
tc class add dev eth1 parent 1:1 classid 1:10 htb rate 1024kbps ceil 1024kbps prio 0
#фильтр
tc filter add dev eth1 protocol ip handle 10 parent 1:0 prio 0 fw flowid 1:10

#136736
Kettler написал:
DrBatty Данный кусок отлично работает!

в смысле - торренты не работают, а веб работает?

#136738
drBatty написал:
[quote=Kettler]DrBatty Данный кусок отлично работает!

в смысле - торренты не работают, а веб работает?[/quote]
Торенты не пашут а web пашет.
Ведь для web надо 3 порта) 80 (tcp) и 53 (udp) 443 (tcp)

Войдите или зарегистрируйтесь, чтобы ответить.