Настройка Centos 6 iptables

Обновлено: 21.11.2024

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

Как и другие дистрибутивы Linux, CentOS 6 поставляется с мощной технологией брандмауэра, известной как встроенная iptables. О настройке iptables могут быть написаны и написаны целые книги. Если вы хотите узнать больше об iptables, мы рекомендуем Linux Firewall Configuration — Packet Filtering и iptables, которые можно найти в Интернете по адресу:

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

Содержание

Настройка базового брандмауэра CentOS 6

Чтобы запустить стандартный инструмент настройки брандмауэра CentOS 6, откройте системное меню рабочего стола и нажмите «Администрирование», а затем «Брандмауэр». Кроме того, инструмент можно запустить из командной строки следующим образом:

Введите пароль root, если будет предложено это сделать. После загрузки инструмент брандмауэра должен выглядеть следующим образом:

По умолчанию брандмауэр будет активен в только что установленной системе CentOS 6. Это предпочтительное состояние для брандмауэра, если только система не работает в защищенной сетевой среде или не имеет сетевого подключения. Чтобы включить или отключить брандмауэр, нажмите соответствующую кнопку на панели инструментов окна «Конфигурация брандмауэра». Текущее состояние брандмауэра отображается в поле состояния в нижней части окна.

сообщить об этом объявлении

Настройка параметров брандмауэра с помощью мастера

По умолчанию брандмауэр разрешает доступ к системе только через безопасную оболочку (SSH) и рассматривает все установленные сетевые адаптеры как ненадежные устройства. Эти параметры можно настроить вручную с помощью инструмента настройки брандмауэра. В качестве альтернативы можно использовать инструмент Wizard для настройки брандмауэра на основе ответов на ряд вопросов. Чтобы получить доступ к мастеру, просто нажмите кнопку Wizard на панели инструментов инструмента настройки брандмауэра.

Мастер задаст вопросы о том, подключена ли система к сети, являетесь ли вы новичком или опытным пользователем и, наконец, используется ли система в качестве настольного компьютера или сервера. После сбора информации мастер соответствующим образом настроит брандмауэр. Например, если вы заявляете, что являетесь новичком, использующим систему в качестве настольного компьютера, мастер настроит брандмауэр, чтобы разрешить печать и доступ к файлам и принтерам в других системах, использующих Samba. Режим для начинающих также отключает доступ к более продвинутым параметрам конфигурации брандмауэра. Чтобы изменить уровень квалификации или профиль конфигурации (рабочий стол или сервер), используйте настройки, доступные через меню «Параметры».

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

Настройка параметров порта брандмауэра

Основная область инструмента настройки брандмауэра состоит из списка категорий на левой панели и текущих соответствующих настроек для этой категории на правой панели.

Категория доверенных служб определяет, какие порты TCP/IP открыты для трафика через брандмауэр. Существует ряд так называемых известных портов, которые назначаются определенным серверам (например, порт 80 для веб-сервера).

Более подробный список сервисов и портов можно найти в Интернете по адресу:

Чтобы активировать или деактивировать параметр, просто установите флажок рядом с сервисом.

Настройка других портов

Список известных портов, конечно, не единственный доступный порт. На самом деле существуют тысячи портов, доступных для использования приложениями и службами. Чтобы открыть определенный порт, используйте категорию «Другие порты» инструмента настройки брандмауэра. Чтобы открыть порт, нажмите кнопку «Добавить», чтобы открыть диалоговое окно «Порт и протокол», показанное ниже:

В этом диалоговом окне представлен гораздо более обширный список портов. Либо выберите нужный порт из списка, либо введите его вручную, если его нет в списке, выбрав опцию User Defined. При ручном определении порта необходимо указать как номер порта, так и протокол (TCP или UDP), чтобы брандмауэр не мешал трафику на этом порту.

Настройка доверенных интерфейсов

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

Маскарад

Маскарад более известен в кругах администраторов сетей как преобразование сетевых адресов (NAT). При использовании системы CentOS 6 в качестве шлюза в Интернет для сети компьютеров маскировка позволяет всем внутренним системам использовать IP-адрес этой системы CentOS 6 при общении через Интернет. Это имеет то преимущество, что скрывает внутренние IP-адреса любых систем от вредоносных внешних объектов, а также позволяет избежать необходимости выделения общедоступного IP-адреса каждому компьютеру в сети.

Эта услуга также предоставляется большинством маршрутизаторов и шлюзов, поэтому эта функция брандмауэра CentOS 6 используется редко.

Переадресация портов

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

Настройте переадресацию портов, выбрав категорию «Переадресация портов» в окне «Конфигурация брандмауэра» и нажав кнопку Добавить. Появится следующий диалог:

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

Чтобы перенаправить трафик на другой порт в локальной системе (другими словами, на систему, на которой работает брандмауэр), выберите параметр "Локальная переадресация" и укажите порт назначения.

ICMP-фильтрация

Протокол управляющих сообщений Интернета (ICMP) используется клиентскими системами в сети для отправки друг другу сообщений об ошибках. Это также основа команды ping, которая используется сетевыми администраторами и пользователями для определения того, активен ли конкретный клиент в сети. Категория «Фильтрация ICMP» позволяет блокировать определенные типы сообщений ICMP. Например, администратор может заблокировать входящие ICMP-сообщения ping (эхо-запрос), чтобы предотвратить возможность атаки типа «отказ в обслуживании» (DoS) на основе ping (когда сервер злонамеренно бомбардируется таким количеством ping-сообщений, что становится неспособным ответить). на законные запросы).

Пользовательские правила

Категория «Пользовательские правила» позволяет указать отдельные правила iptables и загрузить их в брандмауэр. Это обеспечивает высокий уровень гибкости для выполнения таких задач, как блокировка сообщений с определенного IP-адреса или диапазона адресов. Мощь и гибкость iptables позволяют накладывать практически любые мыслимые ограничения на трафик, проходящий через брандмауэр. К сожалению, сама эта сила делает подробный обзор технологии далеко за рамками этой книги.

Настройка брандмауэра с терминала с помощью iptables

Помимо использования графического инструмента для настройки правил брандмауэра, команду iptables также можно использовать в командной строке. Чтобы просмотреть текущие настройки iptables, в окне терминала можно выполнить следующую команду:

Если мы сейчас проверим текущие правила, мы увидим, что это теперь указано:

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

Учитывая сложность iptables, неудивительно, что для упрощения процесса создания правил был создан ряд удобных графических инструментов настройки (таких как Guarddog и Firestarter).

Вы читаете образец главы из книги CentOS 6 Essentials Essentials.

Купите копию полностью обновленной версии CentOS 8 в формате электронной книги (24,99 долл. США) или печати (36,99 долл. США)

Печать CentOS 8 Essentials и электронная книга (ePub/PDF/Kindle) содержат 31 главу и более 260 страниц. Узнать больше.

Эта статья устарела и может некорректно работать с текущими операционными системами или программным обеспечением.

Введение

Брандмауэр – это тип инструмента сетевой безопасности, который контролирует входящий и исходящий сетевой трафик в соответствии с предустановленным набором правил. Мы можем использовать брандмауэр вместе с другими мерами безопасности для защиты наших серверов от хакерских атак и взлома.

Конструкцией брандмауэра может быть либо специальное аппаратное обеспечение, либо программа, работающая на нашем компьютере. В CentOS 6 программой брандмауэра по умолчанию является iptables.

В этой статье я покажу вам, как настроить базовый брандмауэр iptables на основе приложения Vultr "WordPress on CentOS 6 x64", который будет блокировать весь трафик, кроме веб-сервисов, SSH, NTP, DNS и ping. . Однако это только предварительная конфигурация, удовлетворяющая общим требованиям безопасности. Если у вас есть дополнительные требования, вам потребуется более сложная конфигурация iptables.

Примечание:

Если вы добавляете IPv6-адрес на свой сервер, вам также следует настроить службу ip6tables. Настройка ip6tables выходит за рамки этой статьи.

В отличие от CentOS 6, iptables больше не является программой брандмауэра по умолчанию в CentOS 7 и заменена программой под названием firewalld. Если вы планируете использовать CentOS 7, вам необходимо настроить брандмауэр с помощью firewalld.

Предпосылки

Свеже разверните экземпляр сервера с помощью приложения Vultr "WordPress on CentOS 6 x64", затем войдите в систему как пользователь root.

Шаг 1. Определите службы и порты, используемые на вашем сервере

Я предполагаю, что на этом сервере будет размещаться только блог WordPress, и он не будет использоваться в качестве маршрутизатора или предоставлять другие услуги (например, почту, FTP, IRC и т. д.).

Здесь нам нужны следующие услуги:

Все остальные ненужные порты будут заблокированы.

Шаг 2. Настройте правила iptables

Iptables контролирует трафик с помощью списка правил. Когда сетевые пакеты отправляются на наш сервер, iptables проверяет их, последовательно используя каждое правило, и предпринимает соответствующие действия. Если правило выполняется, другие правила игнорируются. Если правила не соблюдены, iptables будет использовать политику по умолчанию.

Весь трафик можно разделить на ВХОДНОЙ, ВЫХОДНОЙ и ПЕРЕДАЧА.

  • ВХОДНОЙ трафик может быть как обычным, так и вредоносным, его следует разрешать выборочно.
  • ВЫХОДНОЙ трафик обычно считается безопасным и должен быть разрешен.
  • Трафик FORWARD бесполезен и должен быть заблокирован.

Теперь давайте настроим правила iptables в соответствии с нашими потребностями. Все следующие команды следует вводить с вашего SSH-терминала от имени пользователя root.

Проверьте существующие правила:

Удалить все существующие правила:

Поскольку изменения в конфигурации iptables вступают в силу немедленно, если вы неправильно настроите правила iptables, ваш доступ к серверу может быть заблокирован. Вы можете предотвратить случайную блокировку с помощью следующей команды. Не забудьте заменить [Ваш-IP-адрес] собственным общедоступным IP-адресом или диапазоном IP-адресов (например, 201.55.119.43 или 201.55.119.0/24).

Разрешить весь петлевой (lo) трафик и сбросить весь трафик на 127.0.0.0/8, кроме lo:

Заблокируйте некоторые распространенные атаки:

Принимать все установленные входящие соединения:

Разрешить подключения SSH:

Разрешить подключения NTP:

Разрешить DNS-запросы:

Наконец установите политики по умолчанию:

Шаг 3. Сохраните настройки

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

Сохраните конфигурацию iptables с помощью следующей команды:

Наши изменения будут сохранены в файле /etc/sysconfig/iptables. Вы можете просмотреть или изменить правила, отредактировав этот файл.

Обходные пути для случайной блокировки

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

В этой статье рассматривается версия CentOS, которая больше не поддерживается. Если вы в настоящее время используете сервер под управлением CentOS 6, мы настоятельно рекомендуем обновить или перейти на поддерживаемую версию CentOS.

Причина: 30 ноября 2020 года закончился срок службы CentOS 6 (EOL), и она больше не получает исправления или обновления для системы безопасности. По этой причине это руководство больше не поддерживается.

Введение

В этой статье показано, как создать простой брандмауэр на Centos VPS. Это откроет только те порты, которые нам нужны, и закроет другие службы. Я также покажу, как предотвратить более простые атаки и как снова войти в VPS, если вы случайно запретите себе доступ.

Учебное пособие никоим образом не является исчерпывающим и показывает только, как открыть несколько входящих портов: для apache, SSH и электронной почты и закрыть все остальные. Мы не будем блокировать исходящий трафик, а создадим лишь несколько наиболее распространенных правил для блокировки обычных скриптов и ботов, которые ищут уязвимые VPS.

iptables – это простой брандмауэр, установленный в большинстве дистрибутивов Linux. На странице руководства Linux для iptables говорится, что это инструмент администрирования для фильтрации пакетов IPv4 и NAT, что в переводе означает, что это инструмент для фильтрации и блокировки интернет-трафика. . Брандмауэр iptables включен по умолчанию в образы Linux Centos 6.4, предоставленные DigitalOcean.

Мы настроим брандмауэр по одному правилу. Проще говоря: брандмауэр — это список правил, поэтому, когда открыто входящее соединение, если оно соответствует какому-либо из правил, это правило может принять это соединение или отклонить его. Если никакие правила не выполняются, мы используем правило по умолчанию.

Примечание. В этом руководстве рассматривается безопасность IPv4. В Linux безопасность IPv6 поддерживается отдельно от IPv4. Например, «iptables» поддерживает только правила брандмауэра для адресов IPv4, но у него есть аналог IPv6, называемый «ip6tables», который можно использовать для поддержки правил брандмауэра для сетевых адресов IPv6.

Если ваш VPS настроен для IPv6, не забудьте защитить сетевые интерфейсы IPv4 и IPv6 с помощью соответствующих инструментов. Дополнительные сведения об инструментах IPv6 см. в этом руководстве: How To Configure Tools for Use IPv6 on the Linux VPS

Решите, какие порты и службы открыть

Начнем с того, что мы хотим знать, какие сервисы мы хотим сделать общедоступными. Давайте воспользуемся типичным сервером веб-хостинга: это веб-сервер и сервер электронной почты, и нам также нужно войти через SSH-сервер.

Во-первых, мы хотим оставить порт SSH открытым, чтобы мы могли удаленно подключиться к VPS: это порт 22.

Кроме того, нам нужны порты 80 и 443 (порт SSL) для веб-трафика. Для отправки электронной почты мы откроем порт 25 (обычный SMTP) и 465 (защищенный SMTP). Чтобы пользователи могли получать электронную почту, мы откроем обычный порт 110 (POP3) и 995 (защищенный порт POP3).

Кроме того, мы откроем порты IMAP, если он у нас установлен: 143 для IMAP и 993 для IMAP через SSL.Примечание. Рекомендуется разрешать только защищенные протоколы, но это может быть не вариант. , если мы не можем повлиять на пользователей почтового сервиса, чтобы они изменили свои почтовые клиенты.

Блокировать наиболее распространенные атаки

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

Затем мы можем добавить несколько простых правил брандмауэра, чтобы блокировать наиболее распространенные атаки и защитить наш VPS от скрипт-кидди. Мы не можем рассчитывать только на iptables, чтобы защитить нас от полномасштабного DDOS или подобного, но мы можем, по крайней мере, отложить обычных ботов, сканирующих сеть, которые в конечном итоге найдут наш VPS и начнут искать дыры в безопасности, чтобы использовать их. Во-первых, мы начнем с блокировки пустых пакетов.

Мы сказали брандмауэру принимать все входящие пакеты с tcp-флагами NONE и просто УДАЛИТЬ их. Нулевые пакеты — это, проще говоря, разведывательные пакеты. Шаблоны атак используют их, чтобы посмотреть, как мы настроили VPS, и найти слабые места. Следующим шаблоном, который следует отвергнуть, является атака syn-flood.

Атака Syn-flood означает, что злоумышленники открывают новое соединение, но не указывают, что они хотят (например, SYN, ACK и т. д.). Они просто хотят занять ресурсы наших серверов. Мы не принимаем такие пакеты. Теперь мы переходим к еще одному распространенному шаблону: пакеты XMAS, также пакет разведки.

Мы исключили по крайней мере некоторые из обычных шаблонов, которые находят уязвимости в нашем VPS.

Открыть порты для выбранных сервисов

Теперь мы можем начать добавлять выбранные службы в наш фильтр брандмауэра. Первая такая вещь — это локальный интерфейс:

Мы говорим iptables добавить (-A) правило в таблицу фильтрации входящего (INPUT) любого трафика, поступающего на интерфейс localhost (-i lo), и принять (-j ACCEPT) его. Localhost часто используется для, т.е. ваш веб-сайт или почтовый сервер взаимодействуют с локальной базой данных. Таким образом, наш VPS может использовать базу данных, но база данных закрыта для эксплойтов из Интернета.

Теперь мы можем разрешить трафик веб-сервера:

Как уже говорилось ранее, если мы можем влиять на наших пользователей, нам следует использовать безопасную версию, но часто мы не можем диктовать условия, и клиенты будут подключаться через порт 25, с которого гораздо проще перехватить пароли. . Теперь мы разрешаем пользователям читать электронную почту на своем сервере:

Эти два правила разрешают трафик POP3. Опять же, мы могли бы повысить безопасность нашего почтового сервера, просто используя безопасную версию службы. Теперь нам также нужно разрешить почтовый протокол IMAP:

Ограничение доступа по SSH

Мы также должны разрешить SSH-трафик, чтобы мы могли удаленно подключаться к VPS. Простой способ сделать это с помощью этой команды:

Теперь мы сказали iptables добавить правило для приема трафика tcp, входящего на порт 22 (порт SSH по умолчанию). Рекомендуется изменить конфигурацию SSH на другой порт, и этот фильтр брандмауэра следует изменить соответствующим образом, но настройка SSH не является частью этой статьи.

Однако мы могли бы сделать еще одну вещь с самим брандмауэром. Если бы у нашего офиса был постоянный IP-адрес, мы могли бы разрешить подключения к SSH только из этого источника. Это позволит подключаться только людям из нашего местоположения.

в терминале мы должны увидеть, что мы вошли в систему (если мы единственные, кто вошел в систему), и наш IP-адрес записан.

Вывод выглядит примерно так:

Теперь вы можете создать правило брандмауэра, разрешающее трафик на SSH-порт только в том случае, если он исходит из одного источника: вашего IP-адреса:

Конечно, замените YOUR_IP_ADDRESS фактическим IP-адресом.

Мы могли бы открыть больше портов в нашем брандмауэре по мере необходимости, изменив номера портов. Таким образом, наш брандмауэр разрешит доступ только к тем службам, которые нам нужны. Прямо сейчас нам нужно добавить еще одно правило, которое позволит нам использовать исходящие соединения (например, пинговать с VPS или запускать обновления программного обеспечения);

Это позволит любым установленным исходящим соединениям получать ответы от VPS на другой стороне этого соединения. Когда все будет настроено, мы заблокируем все остальное и разрешим все исходящие соединения.

Теперь у нас есть правила брандмауэра.

Сохраните конфигурацию

Теперь, когда у нас есть все настройки, мы можем составить список правил, чтобы проверить, не упущено ли что-нибудь.

Файл конфигурации iptables в CentOS находится в папке /etc/sysconfig/iptables. Приведенная выше команда сохранила созданные нами правила в этот файл. Чтобы убедиться, что все работает, мы можем перезапустить брандмауэр:

Сохраненные правила сохранятся даже после перезагрузки VPS.

Сбросьте, чтобы разблокировать себя

Если мы допустили ошибку в нашей конфигурации, возможно, мы заблокировали себе доступ к VPS. Возможно, мы указали неправильный IP-адрес, поэтому брандмауэр не разрешает подключения с нашей рабочей станции. Теперь мы не можем добраться до этих правил, а если мы их сохранили, то даже перезагрузка нам не поможет. К счастью, веб-интерфейс DO позволяет нам подключаться к серверу через консоль:

После подключения мы входим в систему как root и вводим следующую команду:

Это очистит фильтры, и мы снова сможем войти в VPS.

Заключение

Эта статья не является исчерпывающей, и она лишь поверхностно описывает запуск простого брандмауэра на компьютере с Linux. Этого будет достаточно для типичного сценария веб-сервера и почтового сервера для разработчика, не знакомого с командной строкой Linux или iptables.

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

Мы надеемся, что краткие инструкции обеспечат базовую безопасность новых VPS.

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.

CentOS 6 использует iptables в качестве системного брандмауэра.
Мы настроили iptables в нашей установке по умолчанию, чтобы отбрасывать весь входящий трафик (включая входящий трафик для маршрутизации), кроме ICMP и TCP-порта 22 (SSH).

Пожалуйста, запустите iptables -nL, чтобы увидеть текущие правила брандмауэра.

Отключение брандмауэра

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

<р>1. использовать текстовый интерфейс для базовой настройки брандмауэра

система-конфигурация-брандмауэр-tui

из пакета system-config-firewall-tui. Отметьте брандмауэр как отключенный и нажмите «ОК», чтобы сохранить изменения.

<р>2. отключить службу брандмауэра: остановить работу службы брандмауэра

остановка службы iptables & & остановка службы ip6tables

затем, чтобы предотвратить запуск брандмауэра при загрузке, при необходимости запустите

chkconfig iptables выкл. && chkconfig ip6tables выкл.

<р>3. удалить файлы /etc/sysconfig/ip6tables и /etc/sysconfig/iptables и перезагрузить пустую конфигурацию брандмауэра

перезапуск службы iptables && перезапуск службы ip6tables

Чтобы отключить брандмауэр только до первой перезагрузки:

iptables -F .

Настройка брандмауэра

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

<р>1. использовать текстовый интерфейс для базовой настройки брандмауэра

система-конфигурация-брандмауэр-tui

из пакета system-config-firewall-tui. Отметьте брандмауэр как включенный, нажмите «Настроить», отметьте нужные службы, добавьте дополнительные порты и т. д. Следуйте инструкциям интерфейса программы. Нажмите "ОК", чтобы сохранить изменения.

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ПРИНЯТЬ

Статьи по теме

Для создания виртуальных машин (ВМ) с помощью XenSerever на вашем сервере должен быть установлен гипервизор Xen.

(Ваш сервер не реализует свой потенциал? Закажите у нас сервер с промокодом ПАКЕТЫ.

(Сеть вашего сервера не реализует свой потенциал? Закажите у нас сервер по промокоду.

(Ваш сервер не реализует свой потенциал? Закажите у нас сервер с промокодом ПАКЕТЫ.

(Ваш сервер не реализует свой потенциал? Закажите у нас сервер с промокодом ПАКЕТЫ.

Читайте также: