Помогите с примерами.
1) Вот как сделать ограничение соединений в общем к серверу, например не больше 5 конектов в секунду и конкретно для какого-то домена.
2) Ограничить скорость например до 100 кбайт максимум на передачу одному конекту или ip.
Пытаюсь вот такое написать:
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 5 -j REJECT
ответ:
iptables: No chain/target/match by that name
Как решить ситуацию?
1. ALEN - 11 Февраля, 2009 - 10:38:08 - перейти к сообщению
2. EuGen - 11 Февраля, 2009 - 10:52:22 - перейти к сообщению
"Библия" iptables для системных администраторов:
http://www[dot]opennet[dot]ru/docs/RUS/iptables/
У меня, честно скажу, не получалось найти ни одной проблемы, которую не удалось бы решить с помощью данного материала, правда, чаще всего нужно много думать.
http://www[dot]opennet[dot]ru/docs/RUS/iptables/
У меня, честно скажу, не получалось найти ни одной проблемы, которую не удалось бы решить с помощью данного материала, правда, чаще всего нужно много думать.
3. ALEN - 11 Февраля, 2009 - 10:56:03 - перейти к сообщению
EuGen
Да вот пытаюсь там, что-то вытащить, но как то пока безрезультатно.
Нужен хотя бы одно решение задачи, а я бы там уже разобрался.
Единственное, что получилось - это ограничить число пакетов в целом к серверу. Но это не то.
Да вот пытаюсь там, что-то вытащить, но как то пока безрезультатно.
Нужен хотя бы одно решение задачи, а я бы там уже разобрался.
Единственное, что получилось - это ограничить число пакетов в целом к серверу. Но это не то.
4. EuGen - 11 Февраля, 2009 - 11:12:03 - перейти к сообщению
Ну, во-первых:
- У вас не указана целевая таблица в цепочке
-Почитайте внимательнее про критерий limit, и поймете свою ошибку в этом мест (как следствие Ваше -j REJECT)
Так же к Вашим услугам
http://www[dot]opennet[dot]ru/docs/RUS/i[dot][dot][dot]/limit-match[dot]txt
(к слову, из того же материала)
P.S. Я бы мог просто дать Вам готовое решение, но помню, как сам гонялся за подобными. И до тех пор, пока не понял работу iptables, все время были проблемы. Но 1 раз разобраться - и все, далее уже правила сами будут строиться под нужные ситуации.
- У вас не указана целевая таблица в цепочке
-Почитайте внимательнее про критерий limit, и поймете свою ошибку в этом мест (как следствие Ваше -j REJECT)
Так же к Вашим услугам
http://www[dot]opennet[dot]ru/docs/RUS/i[dot][dot][dot]/limit-match[dot]txt
(к слову, из того же материала)
P.S. Я бы мог просто дать Вам готовое решение, но помню, как сам гонялся за подобными. И до тех пор, пока не понял работу iptables, все время были проблемы. Но 1 раз разобраться - и все, далее уже правила сами будут строиться под нужные ситуации.
5. ALEN - 11 Февраля, 2009 - 11:34:09 - перейти к сообщению
EuGen
Подскажи, что такое : --syn
Подскажи, что такое : --syn
6. EuGen - 11 Февраля, 2009 - 12:04:30 - перейти к сообщению
--syn это неявный TCP критерий, указывает на то, что пакет фильтруется по биту SYN. Этот бит равен 1 в случае, если имел место запрос на установление соединения. Это так называемое "тройное рукопожатие", которое есть часть протокола TCP
7. ALEN - 11 Февраля, 2009 - 12:12:24 - перейти к сообщению
EuGen
Смотри:
iptables -t filter -A INPUT -p tcp --syn --dport 80 -m iplimit --iplimit-above 4 -j REJECT
Написал вот так.
В ответ:
iptables v1.3.6: Couldn't load match `iplimit':/lib/iptables/libipt_iplimit.so: cannot open shared object file: No such file or directory Try `iptables -h' or 'iptables --help' for more information.
Я так понял у меня не установлен модуль iplimit.
А так я понимаю все правильно??
А если написать еще вот так:
iptables -t filter -A INPUT -p tcp --syn --dport 80 -s domen.ru -m iplimit --iplimit-above 4 -j REJECT
То к домену domen.ru можно будет сдеать 4 одновременных соединения с одного ip. Если больше то: "сервер не найден"
Правильно?
Смотри:
iptables -t filter -A INPUT -p tcp --syn --dport 80 -m iplimit --iplimit-above 4 -j REJECT
Написал вот так.
В ответ:
iptables v1.3.6: Couldn't load match `iplimit':/lib/iptables/libipt_iplimit.so: cannot open shared object file: No such file or directory Try `iptables -h' or 'iptables --help' for more information.
Я так понял у меня не установлен модуль iplimit.
А так я понимаю все правильно??
А если написать еще вот так:
iptables -t filter -A INPUT -p tcp --syn --dport 80 -s domen.ru -m iplimit --iplimit-above 4 -j REJECT
То к домену domen.ru можно будет сдеать 4 одновременных соединения с одного ip. Если больше то: "сервер не найден"
Правильно?
8. EuGen - 11 Февраля, 2009 - 12:27:44 - перейти к сообщению
Да, и в руководстве указано какие модули Вам потребуются:
http://www[dot]opennet[dot]ru/docs/RUS/i[dot][dot][dot]s/#USERLANDSETUP
http://www[dot]opennet[dot]ru/docs/RUS/i[dot][dot][dot]s/#USERLANDSETUP
9. ALEN - 11 Февраля, 2009 - 13:54:09 - перейти к сообщению
EuGen
Слушай помоги на примере iplimit - как установить именно модуль.
iptables v1.3.6
Слушай помоги на примере iplimit - как установить именно модуль.
iptables v1.3.6
10. EuGen - 11 Февраля, 2009 - 14:13:49 - перейти к сообщению
Вам нужно собрать ядро так, чтобы соответствующие модули в него вошли
что нибудь вроде
что нибудь вроде
Далее установить
CONFIG_IP_NF_MATCH_LIMIT - конкретно для этого модуля..
Рекомендуемый список:
CODE (text):
скопировать код в буфер обмена
скопировать код в буфер обмена
- CONFIG_PACKET
- CONFIG_NETFILTER
- CONFIG_IP_NF_CONNTRACK
- CONFIG_IP_NF_FTP
- CONFIG_IP_NF_IRC
- CONFIG_IP_NF_IPTABLES
- CONFIG_IP_NF_FILTER
- CONFIG_IP_NF_NAT
- CONFIG_IP_NF_MATCH_STATE
- CONFIG_IP_NF_TARGET_LOG
- CONFIG_IP_NF_MATCH_LIMIT
- CONFIG_IP_NF_TARGET_MASQUERADE