0

iptables

Первичная настройка IPTables

09.02.2021

Для начала порой есть смысл выполнить:

iptables -F

Сбрасывает правила фаерволла как таковые.

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

#блокирует нулевые пакеты

iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

#сброс пакетов XMAS

iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

#защита от syn-flood

iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

Базовая защита SSH (на этом примере можно защищать FTP и другие порты):

#разрешает доступ по SSH (при условии, что порт 22-ой) с ВАШ_IP, где ВАШ_IP – это IP-адрес с которого нужен доступ (строку можно повторять нужное число раз, перечисляя разные IP-шники).

-A INPUT -s ВАШ_IP -p tcp -m tcp --dport 22 -j ACCEPT

#запрещает доступ по SSH со всех IP, кроме указанных в строке выше.

-A INPUT -p tcp --dport 22 -j DROP

Разрешаем порты для нужных сервисов (на примере нескольких базовых):

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

iptables -A INPUT -i lo -j ACCEPT

#разрешает трафик на 80-ый и 443-ий порты, т.е веб-сервер, т.е http и https

iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

Почта (если сервер не выступает как почтовый, то можно не разрешать):

#разрешает smtp-трафик

iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT

#разрешает pop-трафик

iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT

#разрешает imap-трафик

iptables -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT

Разрешаем исходящие соединения, в целях, например, использования ping и других внутренних приложений:

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

iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

По аналогии разрешите доступ ко всем нужным портам, в частности, со своего IP-адреса. Порты могут быть любыми, в частности, если на сервере есть панель, то не забудьте разрешить доступ к её порту, а то не попадете туда через веб-морду.

Проделав всё необходимое, собственно, остается лишь:

#закрываем остальные порты наглухо и разрешаем исходящие соединения c сервера

iptables -P OUTPUT ACCEPT
iptables -P INPUT DROP

#проверяем заданные правила, мало ли что-то забыли

iptables -L -n

#сохраняем изменения

iptables-save | sudo tee /etc/sysconfig/iptables

#перезагружаем iptables для принятия изменений

service iptables restart

Продолжение следует !

Свежие комментарии

Подписка

Лучшие статьи

Рубрики

Популярное

1 1.9K views

Firewalld в CentOS

Firewalld — утилита для управления встроенным в ядро Linux брандмауэром Netfilter. Несмотря на собственный синтаксис, имеет такой же принцип работы, как Iptables. Дополнительно про управление Netfilter
2 1.8K views

Настройка iptables

iptables для администраторов Фаервол в системе linux контролируется программой iptables (для ipv4) и ip6tables (для ipv6). В данной шпаргалке рассмотрены самые распространённые
Previous Story

Nextcloud: запуск в Docker Compose с SSL от Let’s Encrypt

Next Story

Настройка iptables

Latest from Blog

Настройка простого беспроводного репитера на устройстве MikroTik

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

Настройка и использование Redis

В этой статье мы расскажем что такое Redis, его преимущества и для каких целей он используется. Redis (REmote DIctionary Server) — сетевое журналируемое хранилище данных типа “ключ” — “значение” с открытым исходным кодом. По сути Redis представляет собой базу данных

Настройка и использование Memcached

В статье мы расскажем, что такое Memcache, зачем он нужен и как он влияет на работу некоторых популярных CMS. Кеширование данных – немаловажный момент в работе любого веб-проекта. С ростом посещаемости увеличиваются требования к

Как настроить логирование и ротацию логов Nginx

Вовремя настроенное журналирование позволяет в дальнейшем избежать неожиданных проблем с веб-сервером. Информация, хранящаяся в логах (или журналах) сервера, помогает быстро оценить ситуацию и устранить ошибки. В этой статье мы рассмотрим возможности логирования

Распределение выполнения запросов внутри приватной сети VPS через HAProxy

Приватную сеть можно использовать для распределения выполнения загрузки и балансировки запросов между несколькими серверами. Рассмотрим организацию такой балансировки на примере HAProxy – бесплатного ПО, предназначенного для распределения нагрузки и организации проксирования TCP-пакетов между несколькими обслуживающими
Go toTop

Don't Miss

Configure FirewallD on CentOS 9/8 and RHEL 9/8

Prerequisites Before you begin, ensure that you have: Step 1:
iptables

Перечисление и удаление правил брандмауэра Iptables

Перечисление и удаление правил брандмауэра Iptables Iptables — это брандмауэр,