Alea jacta est. Юлий Цезарь 44 г. до н.э. (Жребий брошен)





1. Первым делом очистим существующую таблицу правил:

# iptables -F

2. Нам нужно разрешить SSH доступ чтобы при блокировании всего, мы не потеряли контроль над сервером. Стндартным решением (по мнению авторов большинства подобных статей) для этого была бы команда:

-A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT

Но разрешая доступ на SSH в самом начале, мы потом не сможем наложить на SSH правила по его защите от перебора паролей (Bruteforce). Почему? потому, что правила в iptables применяются последовательно! И все другие ограничения которые бы мы наложили на 22 порт ниже текущего правила, уже не имели бы своей силы.
Итак, сначала защита самого SSH потом его доступ, потом остальная конфигурация.

2.1 Для качественой защиты от брутфорса, будем использовать дополнительный модуль который можно установить и сконфигурировать так:

# aptitude install module-assistant xtables-addons-source
# module-assistant prepare
# module-assistant auto-install xtables-addons-source
# depmod -a

2.2 После успешной установки доп. модулей, вводим правила для защиты SSH:

Вариант 1.

# iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --update --seconds 20 -j TARPIT
# iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --set -j ACCEPT

Первое правило проверяет наличие в динамическом списке ip-адреса отправителя, и запись об этом адресе должна быть “моложе” 20 секунд. Иначе – TARPIT. Второе правило разрешает обращение на 22-й порт и заносит IP-адрес в динамический список.

Вариант 2.

# iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m hashlimit --hashlimit 1/hour --hashlimit-burst 2 --hashlimit-mode srcip --hashlimit-name SSH --hashlimit-htable-expire 60000 -j ACCEPT

# iptables -A INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,RST,ACK SYN -j DROP

Первое правило разрешает два соединения на 22-й порт в течение часа, после чего начнёт срабатывать второе правило. Срок действия хэш-таблицы с ip-адресами – 60 секунд, после которых можно повторить попытку. Однако при срабатывании второго правила этот счетчик будет сбрасываться. При действии этих правил в /proc/net/ipt_hashlimit будет создаваться файл с именем, заданным параметром –hashlimit-name.

2.3 Теперь после защиты, можно открыть SSH:

# iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT

3. Когда все готово для того чтобы мы не потеряли доступ, прописываем политики по умолчанию:

# iptables -P INPUT DROP
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT ACCEPT

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

Политики FORWARD и OUTPUT я оставляю открытыми, так как на мой взгляд они менее опасны в плане безопасности , хотя никто не мешает порезать и их. Да, и не забудте, если вы хотите все политики поставить в цепочки DROP, то добавьте к правилу разрешающему входящий доступ по ssh, правило разрешающие исходящий трафик по 22 порту, иначе вы потеряете удаленной доступ. (iptables -A OUTPUT -p tcp -i eth0 –dport 22 -j ACCEPT)

4. Теперь приступаем к прописыванию основных правил для нашего веб-серверы.
- Разрешаем хождение трафика по localhost:

# iptables -A INPUT -i lo -j ACCEPT

- Делаем защиту от Dos атак:

Защита от SYN-flood:

# iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
# iptables -A INPUT -p tcp --syn -j DROP

Защита от сканеров портов:

# iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
# iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j DROP

Защита от Ping of death:

# iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
# iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

- Разрешаем трафик для необходимых служб

# iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp --dport 25 -j ACCEPT
# iptables -A INPUT -i eth0 -p udp --sport 53 -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT

# iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 3 -j ACCEPT
# iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 11 -j ACCEPT
# iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 12 -j ACCEPT

Итак ,что я разрешил:

порт 21 – ftp
порт 80 – http
порт 443 – https
порт 25 – smtp
порт 53 – dns
И плюс необходимые типы icmp пакетов. Так же не забываем , что открыт ssh порт 22.

5. Настраиваем стандартные исходящие и входящие потоки

# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

6. Сохраняем наши новые правила и прописываем их в конфигурационный файлик, дабы они не потерлись после перезагрузки системы.

# iptables-save
# iptables-save > /etc/iptables.conf

Посмотреть текущую таблицу фильтрации можно так:

# iptables -L

7. Автоматическая запись и восстановление правил

# nano /etc/network/interfaces

добавляем в конец файла interfaces следующие строки:

pre-up iptables-restore < /etc/iptables.conf
post-down iptables-save > /etc/iptables.conf

Теперь при отключении машины правила сами будут сохраняться, а при включении - восстанавливаться.

*Удаление определенных правил.

При помощи следующей команды смотрим номер правила, которое нам здесь необходимо удалить:

# iptables -L INPUT --line-number

Запомним номер и удалим правило под номером 2

# iptables -D INPUT 2


@темы: IT

Комментарии
12.02.2024 в 18:01

Здравствуйте, здорова, сообщество форума!

Хотел бы поделиться с вами своим последним опытом поиска отличного автосервиса в Оренбурге. После долгих поисков, я наконец нашел то место, которым действительно остался доволен — AutoLife.

Что мне особенно понравилось в АвтоЛайф 56, так это внимание к деталям каждого специалиста этого сервиса. Мастера не только с учетом всех требований решили проблему с моим автомобилем, но и предоставили нужные наставления по его дальнейшему обслуживанию.

Мне кажется важным поделиться этой информацией с вами, так как знаю, насколько вызывающе порой найти действительно надежный сервис. Если вы ищете надежный автосервис в Оренбурге, рекомендую обратить внимание на АвтоЛайф 56, расположенный по адресу: г. Оренбург, ул. Берёзка, 20, корп. 2. Они работают ежедневно с 10:00 до 20:00, и более подробную информацию вы можете найти на их сайте: https://autolife56.ru/.

Надеюсь, мой опыт окажется важным для кого-то из вас. Буду рад знать вашу реакцию, если решите воспользоваться услугами AutoLife56.

Защита автомобиля от угона в Оренбурге
Вспомогательные ссылки
Вашему вниманию указываем лучший автосервис в Оренбурге - АвтоЛайф Открытие: надёжный автосервис в Оренбурге - АвтоЛайф 56 Обзор: рекомендуемый автосервис в Оренбурге - автосервис AutoLife Откройте для себя о сервисе AutoLife56: почему мы в ремонте автомобилях в Оренбурге Находка: выдающийся автосервис в Оренбурге - автосервис AutoLife c7425_4
URL

Расширенная форма

Редактировать

Подписаться на новые комментарии