Ubuntu, где находится iptables
Обновлено: 21.11.2024
Это руководство поможет вам настроить брандмауэр с помощью iptables на сервере Ubuntu VPS. Мы покажем вам некоторые распространенные команды для управления брандмауэром и научим создавать собственные правила.
Что такое Iptables в Ubuntu?
Утилита iptables — это брандмауэр на базе Linux, который предустановлен во многих дистрибутивах Linux. Это ведущее решение для программных брандмауэров. Это важный инструмент для системных администраторов Linux, который необходимо изучить и понять. Любой общедоступный сервер в Интернете должен иметь какой-либо вид брандмауэра из соображений безопасности. В типичной конфигурации вы должны открывать порты только для тех служб, которые должны быть доступны через Интернет. Все остальные порты останутся закрытыми и недоступными через Интернет. Например, на обычном сервере вы можете захотеть открыть порты для своих веб-служб, но, вероятно, не захотите делать свою базу данных общедоступной!
Предварительная проверка
Для работы с iptables требуются привилегии root на вашем компьютере с Linux. В остальной части этого руководства предполагается, что вы вошли в систему как пользователь root. Пожалуйста, соблюдайте осторожность, так как команды, отправленные в iptables, вступают в силу немедленно. Вы будете манипулировать тем, как ваш сервер доступен для внешнего мира, поэтому вы можете заблокировать себя от своего собственного сервера!
Если вы являетесь клиентом Liquid Web, ознакомьтесь с нашими решениями для удаленного управления VPN + IPMI. Эти решения могут помочь вам восстановить доступ к вашему серверу, даже если вы заблокировали внешний мир. У нас есть руководство по настройке VPN, которое поможет вам начать работу. Конечно, наш персонал службы поддержки также круглосуточно готов помочь вам на случай, если вас заблокируют.
Как работает Iptables?
Iptables проверяет предустановленные правила брандмауэра. Входящий трафик сервера сравнивается с этими правилами, и если iptables находит совпадение, предпринимает действия. Если iptables не может найти совпадение, он применяет действие политики по умолчанию. Обычное использование заключается в том, чтобы настроить iptables для разрешения совпадающих правил и запрета всех остальных.
Как посмотреть правила брандмауэра в Ubuntu?
Прежде чем вносить какие-либо изменения в брандмауэр, рекомендуется просмотреть существующий набор правил и понять, какие порты уже открыты или закрыты. Чтобы получить список всех правил брандмауэра, выполните следующую команду.
Если это совершенно новая установка Ubuntu 16.04, вы можете увидеть, что правила не определены! Вот пример «пустого» вывода без установленных правил:
Цепь ВХОД (политика ПРИНЯТЬ)
Целевая защита, выбор источника, назначения
Цепь ВПЕРЕД (политика ПРИНЯТЬ)
Целевая защита, выбор источника, назначение
Цепь ВЫХОД (политика ПРИНЯТЬ)
целевая защита, выбор источника назначения
Если вы используете Ubuntu 16.04 на Liquid Web VPS, вы увидите, что мы уже настроили для вас базовый брандмауэр. Обычно в наборе правил iptables есть три основных раздела. При работе с наборами правил iptables они называются «цепочками», в частности, «ВХОД цепочки», «ВПЕРЕД цепочки» и «ВЫВОД цепочки». Цепочка ввода обрабатывает трафик, поступающий на ваш сервер, а цепочка вывода обрабатывает трафик, покидающий ваш сервер. Цепочка пересылки обрабатывает серверный трафик, который не предназначен для локальной доставки. Как вы можете догадаться, наш сервер перенаправляет трафик по назначению.
Общие конфигурации брандмауэра
Действие по умолчанию указано в разделе «Политика». Если трафик не соответствует ни одному из правил цепочки, iptables выполнит это действие политики по умолчанию. Вы можете видеть, что с пустой конфигурацией iptables брандмауэр принимает все подключения и ничего не блокирует! Это не идеально, поэтому давайте изменим это. Вот пример конфигурации брандмауэра, разрешающей некоторые распространенные порты и запрещающей весь остальной трафик.
iptables -A INPUT -i lo -j ПРИНЯТЬ
iptables -A INPUT -m состояние --state УСТАНОВЛЕНО,СВЯЗАННО -j ПРИНЯТЬ
iptables -A INPUT -p icmp -j ПРИНЯТЬ
iptables -A INPUT -p tcp --dport 22 -j ПРИНЯТЬ
iptables -A INPUT -p tcp --dport 80 -j ПРИНЯТЬ
iptables -A INPUT -p tcp --dport 443 -j ПРИНЯТЬ
iptables -A INPUT -p udp --dport 1194 -j ПРИНЯТЬ
iptables -A INPUT -s 192.168.0.100 -j ПРИНЯТЬ
iptables -A INPUT -s 192.168.0.200 -j DROP
iptables -P ВХОД DROP
iptables -P ПЕРЕДАЧА ВПЕРЕД
iptables -P ВЫВОД ПРИНЯТЬ
Мы будем раскрывать эти правила по одному.
iptables -A INPUT -i lo -j ПРИНЯТЬ
Эта первая команда указывает цепочке INPUT принимать весь трафик через интерфейс обратной связи. Мы указываем петлевой интерфейс с помощью -i lo. Параметр -j ACCEPT указывает iptables выполнить это действие, если трафик соответствует нашему правилу.
iptables -A INPUT -m состояние --state УСТАНОВЛЕНО,СВЯЗАННО -j ПРИНЯТЬ
Далее мы разрешим уже установленные или связанные соединения.Это может быть особенно полезно для трафика, такого как SSH, когда вы можете инициировать исходящее соединение и хотите принимать входящий трафик намеренно установленного соединения.
iptables -A INPUT -p icmp -j ПРИНЯТЬ
Эта команда указывает вашему серверу не блокировать пакеты ICMP (ping). Это может быть полезно для устранения неполадок в сети и мониторинга. Обратите внимание, что часть -p icmp сообщает iptables, что для этого правила используется протокол ICMP.
Как разрешить порт в Ubuntu?
iptables -A INPUT -p tcp --dport 22 -j ПРИНЯТЬ
TCP-порт 22 обычно используется для SSH. Эта команда разрешает TCP-соединения на порту 22. Измените это, если вы используете SSH на другом порту. Обратите внимание, что поскольку SSH использует TCP, мы указали протокол с помощью -p tcp в этом правиле.
iptables -A INPUT -p tcp --dport 80 -j ПРИНЯТЬ
iptables -A INPUT -p tcp --dport 443 -j ПРИНЯТЬ
iptables -A INPUT -p udp --dport 1194 -j ПРИНЯТЬ
Этот порт используется реже, но вот пример того, как открыть порт 1194, используя протокол UDP вместо TCP. Обратите внимание, что в этом примере мы указали UDP с помощью -p udp.
Как разрешить IP-адрес в Ubuntu?
iptables -A INPUT -s 192.168.0.100 -j ПРИНЯТЬ
Вы можете настроить iptables так, чтобы он всегда принимал соединения с IP-адреса, независимо от того, на какой порт поступают соединения. Обычно это называется «внесение в белый список» и может быть полезно в определенных обстоятельствах. В этом примере мы вносим в белый список 192.168.0.100. Как правило, вы хотели бы быть очень ограничительными с этим действием и разрешать только надежные источники.
Как заблокировать IP-адрес в Ubuntu?
iptables -A INPUT -s 192.168.0.200 -j DROP
Вы также можете использовать iptables для блокировки всех подключений с IP-адреса или диапазона IP-адресов, независимо от того, на какой порт они приходят. Это может быть полезно, если вам нужно заблокировать определенные известные вредоносные IP-адреса. В этом примере мы используем 192.168.0.200 в качестве нашего IP-адреса для блокировки.
Как заблокировать все остальные порты?
iptables -P ВХОД DROP
Далее мы указываем iptables блокировать все остальные входные данные. В нашем примере мы разрешаем только несколько определенных портов, но если вам нужны другие порты, обязательно вставьте их до выполнения команды DROP.
Как перенаправить трафик в Ubuntu?
iptables -P ПЕРЕДАЧА ВПЕРЕД
Аналогичным образом мы будем отбрасывать переадресованные пакеты. Iptables очень мощный, и вы можете использовать его для настройки вашего сервера в качестве сетевого маршрутизатора. Наш пример сервера не действует как маршрутизатор, поэтому мы не будем использовать цепочку FORWARD.
Как разрешить весь исходящий трафик?
iptables -P ВЫВОД ПРИНЯТЬ
Наконец, мы хотим разрешить весь исходящий трафик с нашего сервера. Больше всего нас беспокоит внешний трафик, попадающий на наш сервер, а не блокирующий доступ нашего собственного устройства к внешнему миру.
Как сохранить правила IP навсегда?
Чтобы правила брандмауэра сохранялись после перезагрузки, нам нужно их сохранить. Следующая команда сохранит текущий набор правил:
Как сбросить настройки Iptable?
Чтобы стереть все существующие правила брандмауэра и вернуться к «чистому листу», вы можете ввести следующую команду. Помните, что пустая конфигурация iptables разрешает весь трафик на ваш сервер, поэтому, как правило, вы не захотите оставлять свой сервер незащищенным в этом состоянии на очень долгое время. Тем не менее, это может быть очень полезно при настройке новых наборов правил брандмауэра, и вам нужно вернуться к чистому листу.
В этой статье мы рассмотрели много вопросов! Настройка iptables может показаться сложным процессом при первом взгляде на обширный набор правил брандмауэра, но если вы разберете правила по одному, процесс станет намного проще понять. При правильном использовании iptables является незаменимым инструментом для повышения безопасности вашего сервера. Клиентам Liquid Web нравится наш высококвалифицированный персонал службы поддержки, готовый круглосуточно и без выходных, если у вас есть вопросы по конфигурациям iptables. Удачи в настройке брандмауэра!
Iptables — это брандмауэр, установленный по умолчанию во всех официальных дистрибутивах Ubuntu (Ubuntu, Kubuntu, Xubuntu). Когда вы устанавливаете Ubuntu, iptables есть, но он по умолчанию разрешает весь трафик. Ubuntu поставляется с ufw — программой для простого управления брандмауэром iptables.
Существует множество информации об iptables, но большая ее часть довольно сложна, и если вы хотите сделать несколько основных вещей, это руководство для вас.
Основные команды
перечисляет ваши текущие правила в iptables. Если вы только что настроили свой сервер, у вас не будет правил, и вы должны увидеть
Основные параметры Iptables
- НОВОЕ – соединение еще не обнаружено.
- СВЯЗАННЫЕ — подключение новое, но оно связано с другим уже разрешенным подключением.
- УСТАНОВЛЕНО — соединение уже установлено.
- INVALID – по какой-то причине не удалось идентифицировать трафик.
Разрешение установленных сеансов
- В приведенном выше правиле нет пробелов по обе стороны от запятой в ESTABLISHED,RELATED
Если указанная выше строка не работает, возможно, вы используете кастрированный VPS, поставщик которого не предоставил расширение, и в этом случае в качестве крайней меры можно использовать более низкую версию:
Разрешение входящего трафика через определенные порты
Вы можете начать с блокировки трафика, но вы можете работать через SSH, где вам нужно будет разрешить SSH, прежде чем блокировать все остальное.
Чтобы разрешить входящий трафик через SSH-порт по умолчанию (22), вы можете разрешить iptables разрешать весь TCP-трафик через этот порт.
- добавьте это правило к цепочке ввода (-A INPUT), чтобы мы могли отслеживать входящий трафик
- проверьте, не TCP ли это (-p tcp).
- если да, проверьте, идет ли ввод на порт SSH (--dport ssh).
- если это так, примите ввод (-j ПРИНЯТЬ).
Давайте проверим правила: (показаны только первые несколько строк, вы увидите больше)
Теперь разрешим весь входящий веб-трафик
Проверив наши правила, мы обнаружили
Мы специально разрешили tcp-трафик к ssh- и веб-портам, но, поскольку мы ничего не блокировали, любой трафик все еще может поступать.
Блокировка трафика
После того как принято решение о приеме пакета, на него больше не действуют никакие правила. Поскольку наши правила, разрешающие ssh и веб-трафик, идут первыми, пока наше правило, блокирующее весь трафик, идет после них, мы все равно можем принимать тот трафик, который нам нужен. Все, что нам нужно сделать, это поставить правило, чтобы блокировать весь трафик в конце.
Поскольку мы не указали интерфейс или протокол, блокируется любой трафик для любого порта на любом интерфейсе, за исключением веб и ssh.
Редактирование iptables
Единственная проблема с нашей установкой на данный момент заключается в том, что даже петлевой порт заблокирован. Мы могли бы написать правило отбрасывания только для eth0, указав -i eth0, но мы также могли бы добавить правило для замыкания на себя. Если мы добавим это правило, оно придет слишком поздно — после того, как весь трафик будет отброшен. Нам нужно вставить это правило перед этим. Поскольку это большой объем трафика, мы вставим его в качестве первого правила, чтобы оно обрабатывалось первым.
Первая и последняя строки выглядят почти одинаково, поэтому мы опишем iptables более подробно.
Теперь вы можете увидеть гораздо больше информации. Это правило на самом деле очень важно, так как многие программы используют петлевой интерфейс для связи друг с другом. Если вы не позволите им говорить, вы можете сломать эти программы!
Ведение журнала
В приведенных выше примерах трафик не регистрируется. Если вы хотите регистрировать потерянные пакеты в системном журнале, это будет самый быстрый способ:
Дополнительные идеи по ведению журнала см. в разделе "Советы".
Сохранение iptables
Если бы вы перезагрузили компьютер прямо сейчас, ваша конфигурация iptables исчезла бы. Однако вместо того, чтобы вводить это каждый раз при перезагрузке, вы можете сохранить конфигурацию и запустить ее автоматически. Чтобы сохранить конфигурацию, вы можете использовать iptables-save и iptables-restore.
Конфигурация при запуске
ВНИМАНИЕ! Iptables и NetworkManager могут конфликтовать. Кроме того, если вы достаточно обеспокоены безопасностью, чтобы установить брандмауэр, вы можете не доверять NetworkManager. Также обратите внимание, что NetworkManager и iptables имеют противоположные цели. Iptables стремится предотвратить любой сомнительный сетевой трафик. NetworkManager стремится держать вас на связи в любое время. Поэтому, если вам нужна постоянная безопасность, запускайте iptables во время загрузки. Если вам иногда нужна безопасность, то NetworkManager может быть правильным выбором.
ВНИМАНИЕ! Если вы используете NetworkManager (установленный по умолчанию на Feisty и более поздних версиях), эти шаги не позволят вам использовать NetworkManager для изменяемых вами интерфейсов. Вместо этого выполните действия, описанные в следующем разделе.
ПРИМЕЧАНИЕ. На Hardy появляется проблема с NetworkManager, которая неправильно сохраняет и восстанавливает правила iptable при использовании метода, описанного в следующем разделе. Использование этого первого метода работает. Если вы обнаружите обратное, обновите это примечание.
Сохраните правила брандмауэра в файл
На данный момент у вас есть несколько вариантов. Вы можете внести изменения в /etc/network/interfaces или добавить сценарии в /etc/network/if-pre-up.d/ и /etc/network /if-post-down.d/ для достижения аналогичных целей. Скриптовое решение обеспечивает немного большую гибкость.
(Примечание: будьте осторожны: ввод неправильных директив конфигурации в файл интерфейса может отключить все интерфейсы, что может привести к блокировке вашего доступа к удаленному компьютеру.)
Измените файл конфигурации /etc/network/interfaces, чтобы правила применялись автоматически. Вам нужно будет знать интерфейс, который вы используете, чтобы применить правила — если вы не знаете, вы, вероятно, используете интерфейс eth0, хотя сначала вы должны проверить с помощью следующей команды, чтобы увидеть, есть ли какие-либо беспроводные карты:
Если вы получаете вывод, подобный следующему, значит, у вас вообще нет беспроводных карт, и вам, вероятно, лучше всего подойдет eth0.
Когда вы узнали, какой интерфейс вы используете, отредактируйте (используя sudo) свой /etc/network/interfaces:
В файле найдите найденный интерфейс и в конце строк, связанных с сетью, для этого интерфейса добавьте строку:
Вы также можете подготовить набор правил отключения, сохранить их во второй файл /etc/iptables.downrules и применить его автоматически, выполнив описанные выше действия:
Полностью работающий пример с использованием обоих из приведенных выше:
Вы также можете сохранить данные счетчиков байтов и пакетов.
ПРИМЕЧАНИЕ. В этом решении используется iptables-save -c для сохранения счетчиков. Просто удалите -c, чтобы сохранить только правила.
В качестве альтернативы вы можете добавить iptables-restore и iptables-save в if-pre-up.d и if -post-down.d в каталоге /etc/network вместо прямого изменения /etc/network/interface.
ПРИМЕЧАНИЕ. Скрипты в if-pre-up.d и if-post-down.d не должны содержать точку в своих именах.
Сценарий /etc/network/if-pre-up.d/iptablesload будет содержать:
и /etc/network/if-post-down.d/iptablessave будут содержать:
Затем обязательно дайте обоим скриптам права на выполнение:
Установите и используйте пакет iptables-persistent.
Конфигурация NetworkManager при запуске
NetworkManager позволяет запускать сценарии при активации или деактивации интерфейса. Чтобы сохранить правила iptables при завершении работы и восстановить их при запуске, мы собираемся создать такой скрипт. Чтобы начать, нажмите Alt+F2 и введите следующую команду:
Затем вставьте этот скрипт в свой редактор, сохраните и выйдите из редактора.
Наконец, нам нужно убедиться, что NetworkManager может выполнить этот скрипт. В окне терминала введите эту команду:
Если вы регулярно редактируете iptables вручную
Вышеописанные шаги посвящены настройке правил брандмауэра и предполагают, что они будут относительно статичными (и для большинства людей они должны быть такими). Но если вы много работаете над разработкой, вы можете захотеть, чтобы ваши iptables сохранялись при каждой перезагрузке. Вы можете добавить строку, подобную этой, в /etc/network/interfaces:
Строка «post-down iptables-save > /etc/iptables.rules» сохранит правила, которые будут использоваться при следующей загрузке.
Использование iptables-save/restore для проверки правил
Если вы редактируете свои iptables помимо этого руководства, вы можете использовать функции iptables-save и iptables-restore для редактирования и проверки ваших правил. Для этого откройте файл правил в вашем любимом текстовом редакторе (в данном примере это gedit).
У вас будет файл, похожий на (в приведенном выше примере):
Обратите внимание, что это команды iptables без команды iptable. Не стесняйтесь редактировать это в файл и сохранить, когда закончите. Затем просто протестировать:
ПРИМЕЧАНИЕ. В iptables 1.4.1.1-1 и выше сценарий позволяет протестировать новые правила, не рискуя вывести из строя удаленный сервер. Если вы применяете правила на удаленном сервере, вам следует протестировать его с помощью:
После тестирования, если вы не добавили указанную выше команду iptables-save в свой /etc/network/interfaces, не забудьте не потерять свои изменения:
Более подробное ведение журнала
Отключение брандмауэра
Если вам нужно временно отключить брандмауэр, вы можете сбросить все правила с помощью
или создайте сценарий с помощью текстового редактора, например nano
Убедитесь, что вы можете выполнить скрипт
Вы можете запустить скрипт
Простая настройка через графический интерфейс
UFW и GUFW
GUFW — Gufw представляет собой графический интерфейс для UFW (простой брандмауэр).
Дополнительная информация
Shoreline Firewall, также известный как Shorewall, представляет собой генератор брандмауэра для iptables, который позволяет выполнять расширенную настройку с помощью простых файлов конфигурации. Он доступен в репозиториях Ubuntu через apt-get.
Кредиты
Спасибо Расти Расселу и его практическим рекомендациям, так как многое из этого основано на этом.
IptablesHowTo (последний удаленный пользователь gunnarhj 11.04.2020 23:42:18)
Материалы этой вики доступны по бесплатной лицензии, подробности см. в разделе Авторские права / Лицензия
Вы можете внести свой вклад в эту вики, подробности см. в Руководстве по вики
Прикладная программа iptables пользовательского пространства позволяет настраивать таблицы, предоставляемые брандмауэром ядра Linux, а также цепочки и правила, которые он хранит. Модуль ядра, используемый в настоящее время для iptables, применяется только к трафику IPv4, для настройки правил брандмауэра для соединений IPv6 вместо этого используйте ip6tables, которые реагируют на те же структуры команд, что и iptables.
Список текущих правил
Серверы Ubuntu по умолчанию не применяют никаких ограничений, но для дальнейшего использования проверьте текущие правила iptable с помощью следующей команды.
При этом будет распечатан список из трех цепочек: ввод, пересылка и выход, как в примере с пустой таблицей правил ниже.< /p>
Имена цепочек указывают, к какому трафику будут применяться правила в каждом списке, вход — для всех подключений, входящих на ваш облачный сервер, выход — любой исходящий трафик и вперед для любого прохода. Каждая цепочка также имеет свою настройку policy, которая определяет, как обрабатывается трафик, если он не соответствует каким-либо конкретным правилам. По умолчанию установлено значение принять.
Добавление правил
Брандмауэры обычно можно настроить одним из двух способов: либо установить правило по умолчанию, чтобы принять, а затем заблокировать любой нежелательный трафик с помощью определенных правил, либо использовать правила для определения разрешенного трафика и блокировки всего остального. Последний часто является рекомендуемым подходом, поскольку он позволяет упреждающе блокировать трафик, вместо того, чтобы реактивно отклонять подключения, которые не должны пытаться получить доступ к вашему облачному серверу.
Чтобы начать использовать iptables, сначала необходимо добавить правила для разрешенного входящего трафика для необходимых вам служб. Iptables может отслеживать состояние подключения, поэтому используйте приведенную ниже команду, чтобы разрешить установленные подключения.
Вы можете убедиться, что правило было добавлено, с помощью того же sudo iptables -L, что и раньше.
Далее разрешите трафик на определенный порт, чтобы активировать SSH-соединения со следующим.
После добавления всех разрешенных правил, которые вам нужны, измените политику ввода на удаление.
Предупреждение. Если изменить правило по умолчанию на сброс, будет разрешено только специально принятое соединение. Перед изменением правила по умолчанию убедитесь, что вы включили как минимум SSH, как показано выше.
Эти же правила политики можно определить и для других цепочек, введя имя цепочки и выбрав либо DROP, либо ACCEPT.
Сохранение и восстановление правил
Теперь, если вы перезапустите свой облачный сервер, все эти конфигурации iptables будут стерты. Чтобы этого не произошло, сохраните правила в файл.
Затем вы можете просто восстановить сохраненные правила, прочитав сохраненный файл.
Вы можете автоматизировать процесс восстановления при перезагрузке, установив дополнительный пакет для iptables, который берет на себя загрузку сохраненных правил. Для этого с помощью следующей команды.
После установки первоначальная настройка попросит сохранить текущие правила для IPv4 и IPv6, просто выберите Да и нажмите Enter для обоих.
Если вы вносите дальнейшие изменения в свои правила iptables, не забудьте сохранить их снова, используя ту же команду, что и выше. iptables-persistent ищет файлы rules.v4 и rules.v6 в папке /etc/iptables.
Это всего лишь несколько простых команд, которые вы можете использовать с iptables, который способен на гораздо большее. Читайте дальше, чтобы узнать о некоторых других параметрах, доступных для более расширенного управления правилами iptable.
Расширенная настройка правила
Согласно базовому поведению брандмауэра, правила считываются в том порядке, в котором они перечислены в каждой цепочке, а это значит, что вам нужно расположить правила в правильном порядке. Добавление новых правил добавляет их в конец списка. Вы можете добавить новые правила в определенную позицию списка, вставив их с помощью команды iptables -I, где - это порядковый номер, по которому вы хотите вставить правило. Чтобы узнать, какой порядковый номер вводить, используйте следующую команду.
Число в начале каждой строки правила указывает позицию в цепочке. Чтобы вставить новое правило над определенным существующим правилом, просто используйте порядковый номер этого существующего правила. Например, чтобы вставить новое правило в начало цепочки, используйте следующую команду с номером индекса 1.
Если вы хотите удалить существующее правило из определенной цепочки, используйте команду удаления с параметром -D. Самый простой способ выбрать правило для удаления — использовать порядковые номера, описанные выше. Например, чтобы удалить второе правило в цепочке ввода, используйте эту команду.
Также можно сбросить все правила определенной цепочки или даже всех iptables, используя параметр -F. Это полезно, если вы подозреваете, что iptables мешает вашему сетевому трафику, или вы просто хотите снова начать настройку с чистой таблицы.
Предупреждение. Прежде чем очищать любую цепочку, убедитесь, что для правила по умолчанию задано значение ПРИНЯТЬ.
После этого вы можете очистить другие правила. Не забудьте сохранить правила в файл перед очисткой таблицы на случай, если позже вы захотите восстановить конфигурацию.
Если iptable очищен, ваш сервер может быть уязвим для атак. Убедитесь, что ваша система защищена альтернативным методом, даже временно отключив iptables.
Главный редактор и технический писатель UpCloud с 2015 года.Облачные энтузиасты, пишущие о серверных технологиях и программном обеспечении.
На самом деле правила хранятся на диске (если сохранены) в /etc/sysconfig/iptables.
Где находится iptables?
Существует сервис под названием «iptables». Это должно быть включено. Правила сохраняются в файле /etc/sysconfig/iptables для IPv4 и в файле /etc/sysconfig/ip6tables для IPv6. Вы также можете использовать сценарий инициализации для сохранения текущих правил.
Как просмотреть iptables?
Как получить список всех правил iptables в Linux
- Откройте терминальное приложение или войдите в систему, используя ssh: ssh [email protected]
- Чтобы получить список всех правил IPv4: sudo iptables -S.
- Чтобы получить список всех правил IPv6: sudo ip6tables -S.
- Чтобы получить список всех правил для таблиц: sudo iptables -L -v -n | больше.
- Чтобы получить список всех правил для таблиц INPUT: sudo iptables -L INPUT -v -n.
Есть ли в Ubuntu iptables?
Iptables — это брандмауэр, установленный по умолчанию во всех официальных дистрибутивах Ubuntu (Ubuntu, Kubuntu, Xubuntu). Когда вы устанавливаете Ubuntu, iptables есть, но он по умолчанию разрешает весь трафик. Ubuntu поставляется с ufw — программой для простого управления брандмауэром iptables.
Как узнать, работает ли iptables под управлением Ubuntu?
Однако вы можете легко проверить статус iptables с помощью команды systemctl status iptables. service или, может быть, просто команда состояния службы iptables — в зависимости от вашего дистрибутива Linux. Вы также можете запросить iptables с помощью команды iptables -L, которая выведет список активных правил.
Как сбросить все правила iptables?
Чтобы сбросить все цепочки, что приведет к удалению всех правил брандмауэра, вы можете использовать опцию -F или эквивалентную опцию –flush: sudo iptables -F.
Как использовать iptables?
Как установить и использовать брандмауэр Iptables Linux
- Подключитесь к серверу через SSH. Если вы не знаете, вы можете прочитать наше руководство по SSH.
- Выполните следующие команды одну за другой: sudo apt-get update sudo apt-get install iptables.
- Проверьте состояние текущей конфигурации iptables, выполнив: sudo iptables -L -v.
Как мне навсегда добавить iptables?
Постоянное сохранение правил брандмауэра iptables в Linux
- Шаг 1. Откройте терминал. …
- Шаг 2. Сохраните правила брандмауэра Linux для IPv4 и IPv6. …
- Шаг 3. Восстановите правила файлового экрана Linux IPv4 и IPv6. …
- Шаг 4. Установка пакета iptables-persistent для Debian или Ubuntu Linux. …
- Шаг 5. Установите пакет iptables-services для RHEL/CentOS.
Как увидеть потерянные пакеты в iptables?
Журналировать все потерянные входные пакеты
В чем разница между Firewalld и iptables?
Каковы основные различия между iptables и firewalld? Ответ: iptables и firewalld служат одной и той же цели (фильтрация пакетов), но с другим подходом. … Firewalld запускает iptables под своим капотом вместе с собственным интерфейсом командной строки и файлом конфигурации, основанным на XML и упомянутым выше.
Как запустить iptables в Linux?
После обновления конфигурации введите следующую служебную команду в командной строке:
Что такое команда iptables в Linux?
iptables — это интерфейс командной строки, используемый для настройки и обслуживания таблиц брандмауэра Netfilter для IPv4, включенного в ядро Linux. Брандмауэр сопоставляет пакеты с правилами, определенными в этих таблицах, а затем выполняет указанное действие при возможном совпадении. Таблицы — это название набора цепочек.
Как работает iptables в Linux?
iptables — это утилита брандмауэра командной строки, которая использует цепочки политик для разрешения или блокировки трафика. Когда соединение пытается установиться в вашей системе, iptables ищет правило в своем списке, чтобы сопоставить его. Если он не находит его, он прибегает к действию по умолчанию.
Вы ищете полное руководство по iptables? Оставайся на месте. В этой статье мы покажем вам, как установить и использовать iptables в системе Ubuntu. Узнав об этом инструменте брандмауэра Linux, вы сможете защитить свой Linux VPS с помощью интерфейса командной строки.
Что такое Iptables и как он работает?
Проще говоря, iptables — это брандмауэр для Linux. Он будет отслеживать трафик с вашего сервера и на ваш сервер с помощью таблиц. Эти таблицы содержат наборы правил, называемых цепочками, которые будут фильтровать входящие и исходящие пакеты данных.
Когда пакет соответствует правилу, ему назначается цель, которая может быть другой цепочкой или одним из следующих специальных значений:
- ПРИНЯТЬ — разрешает прохождение пакета.
- DROP — не пропустит пакет.
- RETURN – останавливает передачу пакета по цепочке и указывает ему вернуться к предыдущей цепочке.
В этом руководстве по iptables мы будем работать с одной из таблиц по умолчанию, которая называется filter. Он состоит из трех цепочек:
- INPUT — контролирует входящие пакеты на сервер.
- FORWARD – фильтрует входящие пакеты, которые будут переадресованы в другое место.
- OUTPUT – фильтрация пакетов, исходящих с вашего сервера.
Прежде чем мы начнем это руководство, убедитесь, что у вас есть доступ SSH root или sudo к вашему компьютеру, работающему под управлением Ubuntu 16.04 или более поздней версии. Вы можете установить соединение через PuTTY (Windows) или терминальную оболочку (Linux, macOS). Если вы являетесь владельцем Hostinger VPS, вы можете получить данные для входа по SSH на вкладке «Серверы» в hPanel.
Правила iptables применяются только к ipv4. Если вы хотите настроить брандмауэр для протокола ipv6, вместо этого вам нужно будет использовать ip6tables.
Как установить и использовать брандмауэр Iptables Linux
Мы разделим это руководство по iptables на три этапа. Во-первых, вы узнаете, как установить инструмент на Ubuntu. Во-вторых, мы собираемся показать вам, как определить правила. Наконец, мы поможем вам внести постоянные изменения в iptables.
Шаг 1 — Установка Iptables
Iptables предустановлен в большинстве дистрибутивов Linux. Однако, если он не установлен в системе Ubuntu/Debian по умолчанию, выполните следующие действия:
- Подключитесь к серверу через SSH. Если вы не знаете, вы можете прочитать наше руководство по SSH.
- Выполните следующие команды одну за другой:
- Проверьте состояние текущей конфигурации iptables, выполнив:
Здесь опция -L используется для отображения всех правил, а -v — для отображения информации в более подробном формате. Ниже приведен пример вывода:
Теперь у вас установлен брандмауэр Linux. На этом этапе вы можете заметить, что все цепочки настроены на ACCEPT и не имеют правил. Это небезопасно, так как любой пакет может пройти без фильтрации.
Не волнуйтесь. Мы расскажем вам, как определить правила, на следующем этапе нашего руководства по iptables.
Шаг 2. Определение правил цепочки
Определение правила означает добавление его в цепочку. Для этого вам нужно вставить опцию -A (Добавить) сразу после команды iptables, например:
Это предупредит iptables, что вы добавляете новые правила в цепочку. Затем вы можете комбинировать команду с другими параметрами, такими как:
Если вы хотите использовать их все, вы должны написать команду в следующем порядке:
После того как вы поймете основной синтаксис, вы сможете приступить к настройке брандмауэра, чтобы повысить безопасность вашего сервера. В этом руководстве по iptables мы будем использовать цепочку INPUT в качестве примера.
Включение трафика на локальном хосте
Чтобы разрешить трафик на локальном хосте, введите следующую команду:
В этом руководстве по iptables мы используем интерфейс lo или loopback. Он используется для всех коммуникаций на локальном хосте. Приведенная выше команда обеспечит правильную работу соединений между базой данных и веб-приложением на одном компьютере.
Пришло время проверить, добавлены ли правила в iptables:
Он должен вернуться с приведенными ниже результатами, что означает, что все соединения протокола TCP с указанных портов будут приняты:
Фильтрация пакетов по источнику
Iptables позволяет фильтровать пакеты на основе IP-адреса или диапазона IP-адресов. Вам нужно указать его после опции -s. Например, чтобы принимать пакеты от 192.168.1.3, команда будет выглядеть так:
Вы также можете отклонять пакеты с определенного IP-адреса, заменив цель ACCEPT на DROP.
Если вы хотите отбрасывать пакеты с диапазона IP-адресов, вы должны использовать параметр -m и модуль iprange. Затем укажите диапазон IP-адресов с помощью –src-range. Помните, что дефис должен отделять диапазон IP-адресов без пробела, например:
Отбрасывание всего остального трафика
Очень важно использовать цель DROP для всего остального трафика после определения правил –dport. Это предотвратит несанкционированный доступ к серверу через другие открытые порты. Для этого просто введите:
Теперь соединение за пределами указанного порта будет разорвано.
Удаление правил
Если вы хотите удалить все правила и начать с чистого листа, вы можете использовать параметр -F (сбросить):
Эта команда удаляет все текущие правила. Однако для удаления конкретного правила необходимо использовать параметр -D. Во-первых, вам нужно просмотреть все доступные правила, введя следующую команду:
Вы получите список правил с номерами:
Чтобы удалить правило, вставьте соответствующую цепочку и номер из списка.Допустим, для этого руководства по iptables мы хотим избавиться от правила номер три в цепочке INPUT. Команда должна быть:
Шаг 3. Сохранение изменений
Созданные нами правила iptables сохраняются в памяти. Это означает, что мы должны переопределить их при перезагрузке. Чтобы эти изменения сохранялись после перезапуска сервера, вы можете использовать эту команду:
Текущие правила будут сохранены в файле конфигурации системы, который будет использоваться для перенастройки таблиц при каждой перезагрузке сервера.
Обратите внимание, что вы всегда должны запускать эту команду каждый раз, когда вносите изменения в правила. Например, если вы хотите отключить iptables, вам нужно выполнить следующие две строки:
Вы увидите следующие результаты:
Заключение
Iptables – это мощный брандмауэр, который можно использовать для защиты вашего сервера Linux или VPS. Что здорово, так это то, что вы можете определять различные правила в зависимости от ваших предпочтений.
В этом руководстве по iptables вы узнали, как установить и использовать этот инструмент. Теперь мы надеемся, что вы сможете управлять своими наборами правил для фильтрации входящих и исходящих пакетов.
Пришло время проверить это на себе и удачи!
Притвирадж – эксперт по кибербезопасности, который любит сложные задачи. Когда он не управляет серверами и не устраняет бреши в системе безопасности, он пишет об этом в различных блогах.
Читайте также: