1 (16.10.2012 16:34:26 отредактировано Shkrest)

День добрый всем..
Есть сервер под debian 6 крутится там простой сайтик и игровой сервер кс.
Бьюсь довольно таки долго с фильтрацией, не получается закрыть 80 порт от Флуда.
Кину свой конфиг iptables может кто чем поможет словом делом, что поправить что убрать...
Буду премного благодарен за помощь.
Вот собственно и iptables

### BEGIN INIT INFO
# Provides: defaultdaemon
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO

iptables -A INPUT -p tcp --syn -m limit --limit 60/s -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22  -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 25566  -j ACCEPT
iptables -A INPUT -p udp --dport 25566 -m hashlimit --hashlimit-upto 101/s --hashlimit-mode srcip --hashlimit-name css -j ACCEPT
iptables -I INPUT -m state --state NEW -p tcp ! --syn -j DROP
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT
iptables -A INPUT -p tcp -m tcp --dport 22 -m connlimit --connlimit-above 3 --connlimit-mask 32 -j DROP
iptables -A INPUT -p tcp -m tcp --dport 25566 -m connlimit --connlimit-above 10 --connlimit-mask 32 -j DROP
iptables -A INPUT -p udp --dport 25566 -j DROP
iptables -A INPUT -p udp --dport 25566 -m length --length :28 -j DROP
iptables -A INPUT -p tcp --syn -j DROP

Вот так все происходит у меня, но это только тестовый вариант я еще в процессе познания фильтрации.
Вот у меня есть задумка по поводу правил, сами правила не особо важны их полно в инете и примеров и правил.\
Вот меня интересует последовательность всего этого ну что с начала, что в конце. Accept потом Drop это я усвоил,
Хочу что бы было
1)Открытие 80,22,25566
2)Защита от флудов адов ддос атак
3)Логировка активных (Записывание в лог ip ддосеров флудеров)
4)Закрыть все остальное, самбу биос порты, и всю не нужную байду.
Сервер стоит на выделенной линии.Не каких маршрутизаторов не чего подобного нет.
Машина i72600k 16GB ozy 125G SSD Disc.Гигабитная карта.

2

И тебе не хварать =)

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

3

Шустрый =)

4

Shkrest пишет:

2)Защита от флудов адов ддос атак

fail2ban

Shkrest пишет:

3)Логировка активных (Записывание в лог ip ддосеров флудеров)

snort/acid/fail2ban

Shkrest пишет:

4)Закрыть все остальное, самбу биос порты, и всю не нужную байду.

закрыть все. открыть только то что необходимо + ко всему выключить самбу и не нужные сервисы.

It is good day to die ...
MS Windows 10
Заметки о главном...

5

Ну не нужные сервисы то да, как определить какие нужны какие нет.Самбу вырублю не пробленма, а вот про сначало все закрыть потом открыть нужное можно разжевать?!

6

Shkrest пишет:

а вот про сначало все закрыть потом открыть нужное можно разжевать?!

http://rus-linux net/vitls.php?name=/vi … 1-ipt.html
iptables
http://ru.gentoo-wiki.com/wiki/Iptables … 0%B8%D1%85

It is good day to die ...
MS Windows 10
Заметки о главном...

7

Понятно.В гугле я тоже умею писать =)         bc

8 (16.10.2012 17:04:04 отредактировано Kettler)

Shkrest пишет:

Понятно.В гугле я тоже умею писать =)         bc

http://ru.wikipedia.org/wiki/Netfilter
Смотрим внимательно прохождение пакетов.
Гуглить умеют все и так же писать глупости на ответ.

http://upload.wikimedia.org/wikipedia/ru/a/ad/Netfilter-diagram-rus.png

Выложите iptables -L - n -v

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

9

Shkrest пишет:

=)         bc

не поверите, там есть ответы на ваши вопросы, как и зачем.  bx

It is good day to die ...
MS Windows 10
Заметки о главном...

10

Kettler пишет:

Гуглить умеют все и так же писать глупости на ответ.

это вопрос уже задавали +100500 раз. :-)

It is good day to die ...
MS Windows 10
Заметки о главном...

11

i2ks пишет:
Kettler пишет:

Гуглить умеют все и так же писать глупости на ответ.

это вопрос уже задавали +100500 раз. :-)

Согласен. Убивает просто ток пришол зарегился и умничает.
Даже не читая на что дали ссылки.

Shkrest Вам стоит поменять правила местами и всё будет уже работать по другому.

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

12

root@DT:~# iptables -L - n -v
Bad argument `-'
Try `iptables -h' or 'iptables --help' for more information.
root@DT:~# iptables -L -n -v
Chain INPUT (policy ACCEPT 6139 packets, 958K bytes)
 pkts bytes target     prot opt in     out     source               destination                                                                
    4   160 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0                                                                          state NEW tcp flags:!0x17/0x02
  136  6724 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0                                                                          tcp flags:0x17/0x02 limit: avg 60/sec burst 5
    0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0                                                                          tcp dpt:80
    0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0                                                                          tcp dpt:22
    0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0                                                                          tcp dpt:25566
1445K   95M ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0                                                                          udp dpt:25566 limit: up to 101/sec burst 5 mode srcip
    0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0                                                                          tcp dpt:80 #conn/32 > 10 reject-with icmp-port-unreachable
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0                                                                          tcp dpt:22 #conn/32 > 3
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0                                                                          tcp dpt:25566 #conn/32 > 10
19742  729K DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0                                                                          udp dpt:25566
    0     0 DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0                                                                          udp dpt:25566 length 0:28
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0                                                                          tcp flags:0x17/0x02

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination                                                                

Chain OUTPUT (policy ACCEPT 1100K packets, 140M bytes)
 pkts bytes target     prot opt in     out     source               destination                                                                

Вот пожалуйста.
Да читал 100500 раз.Слишком замудрен этот wiki.Мой вакуп не способен обрабатывать такие количества информации =)

13

Что показывает iptables -L -n -v ?

14

Shkrest пишет:

iptables -L -n -v ?


       -L, --list [chain]
              List all rules in the selected chain.  If no chain is selected, all chains are listed. Like every other iptables command, it applies to the specified table (filter is the default), so NAT rules get listed by
               iptables -t nat -n -L
              Please note that it is often used with the -n option, in order to avoid long reverse DNS lookups.  It is legal to specify the -Z (zero) option as well, in which case the chain(s) will be atomically listed and  zeroed.
              The exact output is affected by the other arguments given. The exact rules are suppressed until you use
               iptables -L -v
    -n, --numeric
              Numeric output.  IP addresses and port numbers will be printed in numeric format.  By default, the program will try to display them as host names, network names, or services (whenever applicable).

       -v, --verbose
              Verbose output.  This option makes the list command show the interface name, the rule options (if any), and the TOS masks.  The packet and byte counters are also listed, with the suffix  'K',  'M'  or  'G'  for  1000,
              1,000,000  and  1,000,000,000 multipliers respectively (but see the -x flag to change this).  For appending, insertion, deletion and replacement, this causes detailed information on the rule or rules to be printed. -v
              may be specified multiple times to possibly emit more detailed debug statements.

It is good day to die ...
MS Windows 10
Заметки о главном...

15

Я читаю этот форум уже год наверное может быть чуть меньше.Регнуться только решился.Ответы толковые люди толковы.По этому и отписался.Просто не совсем понятно это все.Вот говорите поменять местами, все по другому будет работать.Я вот не знаю =)
По этому к знатакам обратился =)
О по поводу ссылок, кто вам сказал что я их не читаю =)
Очень даже читаю, http://ru.gentoo-wiki.com/wiki/Iptables … 0%B8%D1%85   в закладках =)

16

iptables -h решает =)

17

Начинаю вникать вроде-бы мелочи а для общего дополняют картину.Буду штудировать мать часть =)

18

Shkrest пишет:

Начинаю вникать вроде-бы мелочи а для общего дополняют картину.Буду штудировать мать часть =)

Ответь на простой вопрос - что такое политики по умолчанию в iptables, и установи их как советовали выше.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

19

http://ru.gentoo-wiki.com/wiki/Iptables_для_начинающих Великолепно!!!!!!!!!!!!!!!!!

20

Да так и не хера не понял.Попробовал несколько вариантов, так понял не подключенны некоторые модули.Все равно дырявый http не чего не могу понять conlimit не работает на 80 порт.Что посоветуете гуру linux ?!

21

Shkrest учись задавать вопросы иначе вразумительных ответов не будет.
И надо хотя бы отвечать на заданные вопросы:

zenon пишет:

Ответь на простой вопрос - что такое политики по умолчанию в iptables

Подобные посты:

Shkrest пишет:

Да так и не хера не понял.Попробовал несколько вариантов, так понял не подключенны некоторые модули.Все равно дырявый http не чего не могу понять conlimit не работает на 80 порт.Что посоветуете гуру linux ?!

воспринимаются как неуважение к другим пользователям, посоветую хотя бы ставить пробел после знака препинания.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

22

zenon пишет:

Ответь на простой вопрос - что такое политики по умолчанию в iptables (Я не знаю что это =))

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

23

Shkrest, прежде всего почитай http://www.opennet.ru/docs/RUS/iptables/

Судя по скрипту, политики по умолчанию у тебя в ACCEPT.
Поэтому тебе нужны правила типа
iptables -A INPUT бла-бла-бла -j DROP

В твоем же случае

+ открыть спойлер

iptables -A INPUT -p tcp --syn -m limit --limit 60/s -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22  -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 25566  -j ACCEPT
iptables -A INPUT -p udp --dport 25566 -m hashlimit --hashlimit-upto 101/s --hashlimit-mode srcip --hashlimit-name css -j ACCEPT
iptables -I INPUT -m state --state NEW -p tcp ! --syn -j DROP
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT
iptables -A INPUT -p tcp -m tcp --dport 22 -m connlimit --connlimit-above 3 --connlimit-mask 32 -j DROP
iptables -A INPUT -p tcp -m tcp --dport 25566 -m connlimit --connlimit-above 10 --connlimit-mask 32 -j DROP
iptables -A INPUT -p udp --dport 25566 -j DROP
iptables -A INPUT -p udp --dport 25566 -m length --length :28 -j DROP
iptables -A INPUT -p tcp --syn -j DROP

Сначала ты пишешь
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
Все пакетики пришедшие на интерфейс eth0 и 80 порт разрешены.

А потом
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT

Но поскольку применилось первое правило, то до второго правила пакетики не доходят.
Важен порядок правил, поэтому нужно поменять их местами

iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

24 (02.11.2012 17:00:27 отредактировано Shkrest)

Я так понял это касается всего, С начала идет conlimit  потом accept?ну если по факту, с начала ограничения фильтрация, потом разрешение?но если я поменяю правило, как откроется порт, с начала получится что ограничивается а потом только открывается?
Проверю, если заработает с меня + и огромное спасибо.

25

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

26

Подскажи порядок, с начала чищу все, потом блокирую все, потом даю ограничения, потом открываю получается так?

27

Есть политики по умолчанию.
Если политика по умолчанию в АCCEPT - все разрешено, что не запрещено.
Если в DROP- все запрещено, разрешаешь только то, что нужно.

Конкретно у тебя политика по умолчанию ACCEPT. Соответственно тебе надо запретить все ненужное.
Скриптом ты подгрузил цепочки правил. Потом их поправил. Нужно удалить старые и запустить скрипт еще раз.
Смотри примеры, читай и только потом спрашивай.

28

Да предвкушаю трудности, я так понял не избежать.Ну я так понял все нужно переделывать.Займусь вечером.
Первое, отчистка цепочек, второе запрет всего и вся, третье ограничительные правила, 4 правила на разрешение, это подойдет к политики drop?

29

Читай тему Помогите раздать инет в сети шаг за шагом вроде объяснял.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

30

Обязательно прочту сейча, я только смысл понял что пояснили мне.Вот накидал что не верно поправте.

+ открыть спойлер

### BEGIN INIT INFO
# Provides: defaultdaemon
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
#Politic
iptables        -P INPUT       DROP
iptables        -P OUTPUT      DROP
iptables        -P FORWARD     DROP
# befor clear all chains
iptables -t filter -F
iptables -t filter -X
iptables -t nat -F
iptables -t nat -X
#Main chains
iptables -A INPUT -p tcp --syn -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN -m tcp --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT
iptables -A INPUT -p tcp -m tcp --dport 22 -m connlimit --connlimit-above 4 --connlimit-mask 32 -j REJECT
iptables -A INPUT -p tcp -m tcp --dport 25566 -m connlimit --connlimit-above 5 --connlimit-mask 32 -j DROP
## ACCEPT connections
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 25566 -j ACCEPT
iptables -A INPUT -p tcp --syn -m limit --limit 60/s -j ACCEPT