DHCP
можно, и имеет репутацию безопасного устройства, но он не идеален. Многие дистрибутивы также не имеют лучших настроек безопасности по умолчанию, поэтому лучше всего внедрить некоторые передовые методы обеспечения безопасности или использовать инструменты безопасности с открытым исходным кодом . Одним из таких примеров является использование брандмауэра.В Linux существует несколько вариантов брандмауэров, но большинство из них на самом деле являются просто оболочками iptables. В этом руководстве мы покажем вам, как напрямую работать с iptables.
Читайте также: Что такое Log4Shell и как защитить от него вашу систему Linux
Что такое Iptables?
Iptables — это межсетевой экран ядра Linux. Он входит в состав каждого дистрибутива Linux и представляет собой наиболее прямой способ управления входящим и исходящим трафиком вашего компьютера.
Iptables имеет репутацию сложного приложения, и это действительно так. Однако вам не обязательно знать все об iptables, чтобы эффективно использовать его на своем рабочем столе. Вам просто нужны базовые знания о том, как он работает и как структурированы его правила.
Структура команд
Все правила iptables имеют одну и ту же базовую
Contents
Что такое Iptables?
редставляет собой однострочную команду для iptables, которая сообщает, как обрабатывать трафик на определенном порту. Взгляните на пример ниже:-A INPUT -i eth0 -p tcp -m state --state ESTABLISHED,RELATED --sport 80 -j ACCEPT
Может показаться, что это много, но на самом деле все очень просто, если разобраться. Во-первых, это правило начинается с -A
, поскольку оно добавляется к вашим правилам iptables.
Далее флаг -i
указывает интерфейс, для которого предназначено правило. В данном случае это eth0
. Когда вы пишете свои собственные правила, убедитесь, что вы знаете, через какой интерфейс вы подключены к сети.
Следующий флаг -p
называет протокол. Это правило предназначено для tcp
, то есть веб-трафика.
Флаг -m
немного отличается. Он используется для подтверждения того, что существует условие, которое должно быть выполнено, чтобы трафик не был отклонен. Условием в этом правиле является состояние.
Состояние на самом деле является следующим флагом. Вам необходимо предоставить --state
список допустимых состояний, написанный заглавными буквами и разделенный запятыми. Это правило принимает как новые, так и установленные соединения.
Предпоследний флаг здесь — --sport
. Он означает «порт-источник» и сообщает iptables, откуда поступает трафик. Существует также флаг --dport
, обозначающий «порт назначения». Он используется для OUTPUT
правил, определяющих, с какого порта поступает трафик.
Наконец, есть флаг -j
. Он сообщает iptable, к какому действию следует «перейти». В этом случае он должен ACCEPT
трафика, соответствующего предыдущим условиям.
Читайте также: Как использовать сканер уязвимостей Nessus в Linux
Использование файла
Вы можете вводить свои правила в iptables вручную по одному. Это невероятно утомительно, и очень легко потерять представление о том, где вы находитесь и что делаете. Гораздо лучше создать файл правил, который можно будет сразу импортировать в iptables.
Не имеет значения, где вы создаете файл. Люди даже создают их в каталоге /tmp
, потому что iptables сохраняет результат после его импорта.
Создайте файл. В этом руководстве будет использоваться /tmp/iptables-ip4
. В файл добавьте следующие две строки. Все ваши правила будут действовать между ними.
*filter # Your Rules Here COMMIT
Создайте свои правила
Вы можете приступить к настройке правил. Это всего лишь предложения. Очевидно, что если вы используете другие службы или вам нужно открыть другие порты, вы, безусловно, можете настроить некоторые вещи или добавить свои собственные правила.
Петля
Интерфейс обратной связи — это внутренний интерфейс, используемый Linux.
-A INPUT -i lo -j ACCEPT -A OUTPUT -o lo -j ACCEPT
Пинг
Это вопрос предпочтений. Многим людям вообще не нравится разрешать пинг на своих рабочих столах. Однако его может быть полезно иметь для проверки соединений. Если вы хотите разрешить пинг, добавьте правила ниже. Если нет, исключите их.
-A INPUT -i eth0 -p icmp -m state --state NEW --icmp-type 8 -j ACCEPT -A INPUT -i eth0 -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT -A OUTPUT -o eth0 -p icmp -j ACCEPT
Интернет
Очевидно, вам нужна возможность подключения к Интернету. С другой стороны, вы не хотите разрешать соединения, исходящие из Интернета.
-A INPUT -i eth0 -p tcp -m state --state ESTABLISHED,RELATED --sport 80 -j ACCEPT -A INPUT -i eth0 -p tcp -m state --stateИспользование файла--sport 443 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 80 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 443 -j ACCEPT
Вам также потребуется разрешить DNS-соединения, чтобы ваш компьютер мог использовать URL-адреса, а не только IP-адреса, поскольку это было бы не очень удобно. Замените IP-адрес вашего маршрутизатора на тот, который используется здесь.
-A INPUT -i ens3 -s 192.168.1.1 -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT -A OUTPUT -o ens3 -d 192.168.1.1 -p udp --dport 53 -m udp -j ACCEPT
Время
Большинство настольных компьютеров Linux используют NTP для уста
Создайте свои правила
времени через Интернет. Чтобы узнать время, вам необходимо разрешить компьютеру подключаться к NTP-серверу.-A INPUT -i eth0 -p udp -m state --state ESTABLISHED,RELATED --dport 123 -j ACCEPT -A OUTPUT -o eth0 -p udp -m udp --sport 123 -jПетляre>
Печать
Если вы не используете USB-принтер или внешний сервер печати, вам необходимо включить подключение к CUPS.
-A INPUT -p udp -m udp --dport 631 -j ACCEPT <Пинг
> INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A OUTPUT -p udp -m udp --sport 631 -j ACCEPT -A OUTPUT -p tcp -m tcp --sport 631 -j ACCEPT
Электронная почта
Вероятно, вы тоже захотите иметь возможность отправлять и получать электронную почту. Электронная почта может быть сложной. Разрешенные здесь порты — это порты электронной почты SSL. Если вам нужно использовать незащищенную электронную почту, замените эти порты.
# IMAP -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED,RELATED --sport 993Интернет
pan> ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 993 -j ACCEPT # POP3 -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED,RELATED --sport 995 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 995 -j ACCEPT # SMTP -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED,RELATED --sport 465 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 465 -j ACCEPT
SSH
Чтобы в полной мере использовать соединения SSH, вам необходимо разрешить как ввод, так и вывод через SSH.
# Input -A INPUT -i ens3 -p tcp -m state --state NEW,ESTABLISHED --dport 22 -j ACCEPT -A OUTPUT -o ens3 -p tcp -m state --state ESTABLISHED --sport 22 -j ACCEPT # Output -A OUTPUT -o ens3 -p tcp -m state --state NEW,ESTABLISHED --dport 22 -j ACCEPT -A INPUT -i ens3 -p tcp -m state --state ESTABLISHED --sport 22 -j ACCEPT
DHCPВремя
ство настольных компьютеров Linux используют DHCP для автоматического получения IP-адреса от маршрутизатора. DHCP использует свои собственные порты, поэтому они тоже должны быть доступны. Если вы используете статический IP-адрес, эти правила вам не нужны.
-A INPUT -i eth0 -p udp -m state --state ESTABLISHED,RELATED --sport 67:68 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 67:68 -j ACCEPT
Отклонить все остальное
-A INPUT -i eth0 -p udp -m state --state ESTABLISHED,RELATED --sport 67:68 -j ACCEPT -A OUTPUT -o eth0 -p udp -m udp --dport 67:68 -j ACCEPT
Наконец, вы сообщите iptables отклонять абсолютно все, что вы явно не раз
Печать
ах выше.-A INPUT -j REJECT -A FORWARD -j REJECT -A OUTPUT -j REJECT
В конечном итоге ваши правила должны выглядеть примерно так.
Читайте также: Как использовать хранилище паролей для управления паролями в Linux
Импорт ваших правил
Теперь у вас есть полнофункциональный список правил
Электронная почта
передать его iptables для использования.Если какие-то правила были добавлены со временем, удалите их. После этих команд вы увидите настройки по умолчанию, которые разрешают все.
sudo iptables -F && sudo iptables -X
Когда они исчезнут, вы можете восстановить новые из созданного вами файла.
sudo iptables-restore < /tmp/itpables-ip4
Теперь ваш компьютер использует новые правила iptables. Вы можете ознакомиться с ними.
sudo iptables -S
Однако они пока не являются постоянными. Если вы перезагрузите компьютер сейчас, вам придется оченьплохо.
Читайте также: Как защитить ваши Linux-серверы с помощью SELinux
Сделать их постоянными
Есть несколько способов сделать правила постоянными. Они разные для каждого дистрибутива. В этом руководстве основное внимание будет уделено системам на базе Debian и Ubuntu, поскольку они наиболее популярны.
Существует пакет iptables-persistantSSHуправляет сохранением и восстановлением iptables. Все, что вам нужно сделать, это установить его.
sudo apt install iptables-persistent
Во время установки пакет спросит вас, хотите ли вы сохранить конфигурацию. Выберите «Да».
В будущем, если вы захотите добавить правила, вы можете сохранить их еще раз, выполнив следующую команду.
sudo service netfilter-persistent save
Теперь вы контролируете трафик, проходящий через ваш компьютер. Конечно, с помощью iptables вы можете сделать гораздо больше, но сначала вам следует освоиться с основами.