Добрый день, во-первых какую книгу можете посоветовать по настройке фаервола Iptables и вторую об ос Debian для новичка. Для полного новичка, а то одну уже купил Unix для студента Ю.С. Магда что вообще больше половины не понял, сразу перешли ядру, сразу пошло программирование на С++, вообщем автор из дурдома вышел. Мне не понравилось.
Конкретно мне необходимо большей части установка nginx, php, mysql и настройка iptables.
Т.к. нас часто мучает DDOS, хостеры помогли избавиться написав правила нам, мы пошли читать гайды, на многое открылись глаза, но все-таки вопросов достаточно.
1. Объясните пожалуйста работу этих 4 правил, по подробнее пожалуйста для чайника:
a) iptables -A INPUT -p tcp -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 10 --connlimit-mask 32 -j DROP
b) iptables -A INPUT -p tcp -m tcp --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 32 -j DROP
c) iptables -A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -m hashlimit --hashlimit-above 1/min --hashlimit-burst 30 --hashlimit-mode srcip --hashlimit-name BLOCK -j DROP
d) iptables -A INPUT -p tcp -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 1/sec --limit-burst 4 -j DROP
2. Как сделать так, чтобы правила не удалялись если ПК перезагрузить?
3. Как организовать такое правило в iptables:
a) Если число единовременных подключений с одно IP адреса на сайт превысило 10, то создать правило такое с этим IP адресом
iptables -A INPUT -s 1.2.3.4 -j DROP.
b) Если число суммарных подключений с одного IP адреса, на сайт, в течении минуты, превысило 70, то создать правило такое с этим IP адресом iptables -A INPUT -s 1.2.3.4 -j DROP.
Спасибо!
Iptables (новичек)
Сейчас в краце.Создаешь в /etc/init.d/iptables файл IPTABLE
1) Делаешь cd /etc/init.d/ (Переходишь в каталог init.d)
2) Делаешь nano /etc/init.d/iptables "Будем заполнять ваш iptables"(nano это редактор *nix, можешь пользоваться любым как удобнее(Только не на винде это полнейший кал, работать после винды не будет))
3) Далее шапка скрипта авто запуска правил 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У меня она выглядит так на debian 6
Эту шапку вставляешь в начало файла, потом Enter и после этого вставляешь свои правила.
4) Если пользовался "nano" после заполнения делаешь ctrl+o enter, ctrl+x (Сохраняешь и закрываешь редактор, X Закрыть, О сохранить)
5) Даем файлу права на запуск chmod +x /etc/init.d/iptables enter
6)Добавим ваш скрипт в default
rc-update add iptables default7) Reboot
P.S. Делал так же, писал по памяти, не суди строго. Должно бы работать.
На всякий случай можно задействовать crontab
Туда можно добавить простенький скрипт такого содержания
#!/bin/bash
iptables -A INPUT -i (eth0 сетевой интерфейс у меня eth0 у тебя что угодно) -p tcp --dport 22 -j ACCEPTCrontab находится в /etc/crontab там есть примеры ну почитаешь если не понятно, там пишешь путь к файлу время и расположение скрипта.
Это вариан нужен для настройки на удаленной машине, если что то накосячишь, то крон запустит скрипт и откроет тебе SSH доступ к машине.
Надеюсь что помог, когда то был таким же как ты и искал решения этой проблемки =) ЭТО БЫЛО ТАК ДАВНО!
Как сделать так, чтобы правила не удалялись если ПК перезагрузить?
Самый простой вариант написать скрипт и выполнять его вместе с запуском системы.
Для автозапуска есть конструкции if-up/down, - каталоги из которых подхватываются стартовые файлы:
/etc/network//if-up.d/
/etc/network/if-down.d/
/etc/network/if-post-down.d/
/etc/network/if-pre-up.d/
/etc/network/if-up.d/
/etc/network/run/ те скрипт нужно сделать исполняемым и закинуть в нужный каталог.
Другой вариант запускать скрипт прописав его исполнение в /etc/network/interfaces - для чего есть man interfaces или сюда можно посмотреть тыц.
Пример использования iptables-save/iptables-restore:
/etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
up iptables-restore
down iptables-save
# Также можно:
pre-up <command>
post-up <command>Сейчас в краце.Создаешь в /etc/init.d/iptables файл IPTABLE
Не надо советовать новичку писать свои инит скрипты, и лезть руками в /etc/init.d/ тоже не надо.
когда то был таким же как ты и искал решения этой проблемки =) ЭТО БЫЛО ТАК ДАВНО!
Сейчас вопросы задаешь на том же уровне что и ТС : Netfilter IPTABLE
Ну вопросы у меня касаемо дргова.У меня порт дырявый и иптаблес не помогает решить.
после переустановки за 10 мин поставил правила, без гемора все просто.
Способ рабочий.
И на мой взгляд выполняется в 10 команд в консоли.А на твой сколько нужно потратить времени?
!!!Умный Поправь цепочки в той теме.А нет, рот закрой и не критикуй.\
Сейчас я знаю гаразда больше, чем знал с начала.Не говорю что гуру, так бы сюда не писал.
Shkrest, остынь дней 5, правила почитай, вопросы правильно научись задавать.
А что тебе не понравилось в моем описание?Что я не так написал?Или этот способ не рабочий?Не пойму...Я понимаю что нахамил, прошу прощения, но способ то рабочий ведь так?И почему вы не советуете его использовать?Может и мне стоит переделать?Поясните.