Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: iptables
Форумы портала PHP.SU » Серверное администрирование » Администрирование *nix » iptables

Страниц (3): [1] 2 3 »
 

1. ALEN - 11 Февраля, 2009 - 10:38:08 - перейти к сообщению
Помогите с примерами.
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

Как решить ситуацию?
2. EuGen - 11 Февраля, 2009 - 10:52:22 - перейти к сообщению
"Библия" 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 раз разобраться - и все, далее уже правила сами будут строиться под нужные ситуации.
5. ALEN - 11 Февраля, 2009 - 11:34:09 - перейти к сообщению
EuGen
Подскажи, что такое : --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. Если больше то: "сервер не найден"


Правильно?
8. EuGen - 11 Февраля, 2009 - 12:27:44 - перейти к сообщению
Да, и в руководстве указано какие модули Вам потребуются:
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
10. EuGen - 11 Февраля, 2009 - 14:13:49 - перейти к сообщению
Вам нужно собрать ядро так, чтобы соответствующие модули в него вошли
что нибудь вроде

Далее установить
CONFIG_IP_NF_MATCH_LIMIT - конкретно для этого модуля..
Рекомендуемый список:
CODE (text):
скопировать код в буфер обмена
  1.  
  2.  
  3.       CONFIG_PACKET
  4.  
  5.       CONFIG_NETFILTER
  6.  
  7.       CONFIG_IP_NF_CONNTRACK
  8.  
  9.       CONFIG_IP_NF_FTP
  10.  
  11.       CONFIG_IP_NF_IRC
  12.  
  13.       CONFIG_IP_NF_IPTABLES
  14.  
  15.       CONFIG_IP_NF_FILTER
  16.  
  17.       CONFIG_IP_NF_NAT
  18.  
  19.       CONFIG_IP_NF_MATCH_STATE
  20.  
  21.       CONFIG_IP_NF_TARGET_LOG
  22.  
  23.       CONFIG_IP_NF_MATCH_LIMIT
  24.  
  25.       CONFIG_IP_NF_TARGET_MASQUERADE
  26.  
11. ALEN - 11 Февраля, 2009 - 14:35:51 - перейти к сообщению
EuGen
В ответ на:
make config
ответ:
make: *** No rule to make target `config'. Stop.
(Добавление)
EuGen
Третий параметр я так понял нужно указать
12. EuGen - 11 Февраля, 2009 - 14:56:23 - перейти к сообщению
uname -a
В студию
13. ALEN - 11 Февраля, 2009 - 15:13:58 - перейти к сообщению
EuGen
Linux srv.*****.ru 2.6.18-92.1.13.el5.028stab059.3 #1 SMP Wed Oct 15 13:33:44 MSD 2008 i686 GNU/Linux
(Добавление)
EuGen
Usage: make [options] [target] ...
Options:
-b, -m Ignored for compatibility.
-B, --always-make Unconditionally make all targets.
-C DIRECTORY, --directory=DIRECTORY
Change to DIRECTORY before doing anything.
-d Print lots of debugging information.
--debug[=FLAGS] Print various types of debugging information.
-e, --environment-overrides
Environment variables override makefiles.
-f FILE, --file=FILE, --makefile=FILE
Read FILE as a makefile.
-h, --help Print this message and exit.
-i, --ignore-errors Ignore errors from commands.
-I DIRECTORY, --include-dir=DIRECTORY
Search DIRECTORY for included makefiles.
-j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg.
-k, --keep-going Keep going when some targets can't be made.
-l [N], --load-average[=N], --max-load[=N]
Don't start multiple jobs unless load is below N.
-L, --check-symlink-times Use the latest mtime between symlinks and target.
-n, --just-print, --dry-run, --recon
Don't actually run any commands; just print them.
-o FILE, --old-file=FILE, --assume-old=FILE
Consider FILE to be very old and don't remake it.
-p, --print-data-base Print make's internal database.
-q, --question Run no commands; exit status says if up to date.
-r, --no-builtin-rules Disable the built-in implicit rules.
-R, --no-builtin-variables Disable the built-in variable settings.
-s, --silent, --quiet Don't echo commands.
-S, --no-keep-going, --stop
Turns off -k.
-t, --touch Touch targets instead of remaking them.
-v, --version Print the version number of make and exit.
-w, --print-directory Print the current directory.
--no-print-directory Turn off -w, even if it was turned on implicitly.
-W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE
Consider FILE to be infinitely new.
--warn-undefined-variables Warn when an undefined variable is referenced.

This program built for i486-pc-linux-gnu
Report bugs to <bug-make@gnu.org>
14. EuGen - 11 Февраля, 2009 - 20:12:26 - перейти к сообщению
К чему Вы это?
Насчет второго - по виду похоже, по делу - надо проверять

По ходу, у Вас Debian
Я сам его не админил, но есть куча интересных статей:
http://lug32[dot]org[dot]ru/mediawiki/in[dot][dot][dot]BE_-_Debian_Etch
http://jedi-linux[dot]blogspot[dot]com/2[dot][dot][dot]g-post_3999[dot]html
+http://google[dot]com
15. vitaliy_mad - 11 Февраля, 2009 - 21:03:37 - перейти к сообщению
ядра до, помоему 2.6.20 не боддерживают модуль conlimit есть пакет патчей patch-o-matic-ng-20080307.tar.bz 2 там есть эти модули

PS могу ошибаться не помню на какое я себе ставил...

 

Powered by ExBB FM 1.0 RC1