Добро пожаловать обратно, мои начинающие инженеры по безопасности!
Существует множество причин использовать Linux, но одна из самых недооценённых — это его возможности и универсальность в качестве межсетевого экрана. Многие компании тратят тысячи и десятки тысяч долларов на современные межсетевые экраны, но вы можете создать свой собственный, потратив всего несколько часов. Если это не сделает вас героем на работе, то ничто не сделает!
В предыдущей публикации я показал вам, как использовать iptables для разработки брандмауэра для вашей системы или сети Linux. В этом руководстве я продемонстрирую простой брандмауэр (ufw), который использует iptables для настройки брандмауэра. Ufw делает именно то, что следует из его названия: он делает создание брандмауэра простым и понятным.
kali > sudo apt install ufw
kali > sudo ufw –help
kali> sudo ufw status
При первой установке он по умолчанию отключен. Давайте его включим.
kali > sudo ufw enable
Если мы захотим отключить его позже, мы можем просто выполнить следующую команду.
kali > sudo ufw disable
Например, если мы хотим написать правило для запрета трафика с IP-адреса 103.136.43.142, мы можем написать следующее правило
Кали > sudo ufw Deny из 103.136.43.142
Если мы хотим заблокировать все IP-адреса в подсети, мы можем использовать нотацию CIDER для блокировки всех 255 IP-адресов в подсети, например:
Кали > sudo ufw Deny из 103.136.43.0/24
Кроме того, мы можем указать, на каком сетевом интерфейсе следует блокировать трафик, указав «in on <interface>», например:
kali > sudo deny in on eth0 from 103.136.43.142
Теперь мы можем проверить состояние нашего брандмауэра и просмотреть наши правила.
kali > sudo ufw status
Кали > sudo ufw разрешить от 192.168.1.101
Если позже вам потребуется удалить правило, вы можете просто использовать ключевое слово delete перед правилом, например:
kali > sudo ufw удалить разрешить из 192.168.1.101
Может быть проще, вы можете получить номера правил, введя…
Кали > статус sudo ufw пронумерован
и затем удалить правило по его номеру, например:
kali > sudo ufw delete 1
Чтобы увидеть список приложений, введите:
kali> sudo ufw app list
Так, например, если в вашей сети есть веб-сервер nginx, которому нужен доступ к веб-трафику, ufw позволяет использовать упрощенный синтаксис:
kali > sudo ufw разрешить «Nginx Full»
Это разрешает трафик nginx на портах 80 и 443 с использованием адресов IPv4 и IPv6. Обратите внимание, что это создаёт два правила.
Если вы просто хотите включить https-трафик, вы можете ввести правило, например:
kali > sudo ufw allow https
При проверке статуса вы можете просмотреть все правила, созданные на данный момент времени.
kali > sudo ufw status
Вместо использования имени приложения вы можете указать порт, который необходимо открыть, например:
kali > sudo ufw allow 80
Если вы хотите открыть оба порта: 80 и 443;
kali > sudo ufw allow 80, 443
Обратите внимание, что этот синтаксис приводит к ошибке. Чтобы включить несколько портов, необходимо указать протокол с ключевым словом «proto» (в данном случае TCP) и добавить условие «from any to any» перед портами.
kali> sudo ufw разрешить proto tcp с любого на любой 80,443
Теперь мы успешно включили трафик как на порту 80, так и на порту 443.
Вы можете быть еще более конкретным и ограничить этот трафик только одним интерфейсом, например eth0;
kali > sudo ufw allow in on eth0 proto tcp from any to any 80,443
kali > sudo ufw разрешить с 192.168.1.101 на любой порт 3306
Существует множество причин использовать Linux, но одна из самых недооценённых — это его возможности и универсальность в качестве межсетевого экрана. Многие компании тратят тысячи и десятки тысяч долларов на современные межсетевые экраны, но вы можете создать свой собственный, потратив всего несколько часов. Если это не сделает вас героем на работе, то ничто не сделает!
В предыдущей публикации я показал вам, как использовать iptables для разработки брандмауэра для вашей системы или сети Linux. В этом руководстве я продемонстрирую простой брандмауэр (ufw), который использует iptables для настройки брандмауэра. Ufw делает именно то, что следует из его названия: он делает создание брандмауэра простым и понятным.
Шаг №1: Загрузите и установите UFW
Сначала загрузите и установите ufw. ufw есть практически в каждом репозитории дистрибутивов Linux, включая Kali, и предустановлен в Ubuntu.kali > sudo apt install ufw
Шаг №2: помощь с UFW
Далее давайте взглянем на экран справки UFW, чтобы получить представление о том, как он работает.kali > sudo ufw –help
Шаг №3: Проверьте статус UFW
Теперь, прежде чем приступить к настройке нашего брандмауэра, давайте проверим его состояние.kali> sudo ufw status
При первой установке он по умолчанию отключен. Давайте его включим.
kali > sudo ufw enable
Если мы захотим отключить его позже, мы можем просто выполнить следующую команду.
kali > sudo ufw disable
Шаг №4: Политика по умолчанию
Как правило, самый безопасный межсетевой экран — это тот, у которого есть политика по умолчанию, блокирующая всё, кроме явно разрешенного. Мы можем выбрать это перед продолжением, установив политику по умолчанию на «Запретить». Тогда мы сможем разрешать только необходимый трафик, блокируя всё остальное. Это самый безопасный и надёжный подход.
Шаг №5: Заблокируйте IP-адрес
Чтобы проиллюстрировать команды и возможности UFW, мы установим политику по умолчанию на разрешение просто для целей иллюстрации как разрешения, так и запрета трафика.Например, если мы хотим написать правило для запрета трафика с IP-адреса 103.136.43.142, мы можем написать следующее правило
Кали > sudo ufw Deny из 103.136.43.142
Если мы хотим заблокировать все IP-адреса в подсети, мы можем использовать нотацию CIDER для блокировки всех 255 IP-адресов в подсети, например:
Кали > sudo ufw Deny из 103.136.43.0/24
Кроме того, мы можем указать, на каком сетевом интерфейсе следует блокировать трафик, указав «in on <interface>», например:
kali > sudo deny in on eth0 from 103.136.43.142
Теперь мы можем проверить состояние нашего брандмауэра и просмотреть наши правила.
kali > sudo ufw status
Шаг №6: Разрешение трафика
Если вы выбрали политику по умолчанию «Запретить всё», крайне важно определить, какой трафик будет разрешён, иначе вы заблокируете всю свою сеть (что не очень хорошо). Давайте напишем правила, разрешающие часть трафика. Например, как администратор этого брандмауэра, вам потребуется доступ для настройки и обслуживания брандмауэра. Убедитесь, что вы предоставляете себе доступ со своего IP-адреса.Кали > sudo ufw разрешить от 192.168.1.101
Если позже вам потребуется удалить правило, вы можете просто использовать ключевое слово delete перед правилом, например:
kali > sudo ufw удалить разрешить из 192.168.1.101
Может быть проще, вы можете получить номера правил, введя…
Кали > статус sudo ufw пронумерован
и затем удалить правило по его номеру, например:
kali > sudo ufw delete 1
Шаг №7: Список приложений
Как правило, новые приложения, использующие сетевые коммуникации, автоматически открывают порт на брандмауэре, если приложение находится в той же системе, что и брандмауэр, например, в вашей хост-системе. Если приложение находится в другой системе в сети, вам потребуется вручную открыть порт для обеспечения связи. UFW предлагает список приложений, из которого вы можете просто указать приложение, и UFW автоматически откроет соответствующие порты.Чтобы увидеть список приложений, введите:
kali> sudo ufw app list
Так, например, если в вашей сети есть веб-сервер nginx, которому нужен доступ к веб-трафику, ufw позволяет использовать упрощенный синтаксис:
kali > sudo ufw разрешить «Nginx Full»
Это разрешает трафик nginx на портах 80 и 443 с использованием адресов IPv4 и IPv6. Обратите внимание, что это создаёт два правила.
Если вы просто хотите включить https-трафик, вы можете ввести правило, например:
kali > sudo ufw allow https
При проверке статуса вы можете просмотреть все правила, созданные на данный момент времени.
kali > sudo ufw status
Вместо использования имени приложения вы можете указать порт, который необходимо открыть, например:
kali > sudo ufw allow 80
Если вы хотите открыть оба порта: 80 и 443;
kali > sudo ufw allow 80, 443
Обратите внимание, что этот синтаксис приводит к ошибке. Чтобы включить несколько портов, необходимо указать протокол с ключевым словом «proto» (в данном случае TCP) и добавить условие «from any to any» перед портами.
kali> sudo ufw разрешить proto tcp с любого на любой 80,443
Теперь мы успешно включили трафик как на порту 80, так и на порту 443.
Вы можете быть еще более конкретным и ограничить этот трафик только одним интерфейсом, например eth0;
kali > sudo ufw allow in on eth0 proto tcp from any to any 80,443
Шаг №8: Включение доступа к базе данных MySQL
Представьте себе, что в вашей сети есть база данных MySQL (или любая другая). Скорее всего, вам потребуется предоставить администратору доступ к базе данных, а также ко всем приложениям (веб-сайту, Snort и т. д.), которые её используют. Конечно, никто другой не должен иметь доступа к базе данных, поскольку она является целью практически любой хакерской группы. Мы можем ограничить доступ только администратору, разрешив трафик с его IP-адреса и только через порт MySQL по умолчанию — 3306.kali > sudo ufw разрешить с 192.168.1.101 на любой порт 3306