Linux firewall add port

How to configure a firewall on Linux with firewalld

Learn how to install, configure, and use firewalld to restrict or allow a computer’s access to services, ports, networks, subnets, and IP addresses.

Stop worrying and love systemd

Firewalld is an open source, host-based firewall that seeks to prevent unauthorized access to your computer. A firewall is usually a minimum requirement by any information security team at any modern organization, but it’s also a good idea for general computer use.

Training & certification

Firewalld can restrict access to services, ports, and networks. You can block specific subnets and IP addresses.

As with any firewall, firewalld inspects all traffic traversing the various interfaces on your system. The traffic is allowed or rejected if the source address network matches a rule.

Firewalld uses the concept of zones to segment traffic that interacts with your system. A network interface is assigned to one or more zones, and each zone contains a list of allowed ports and services. A default zone is also available to manage traffic that does not match any zones.

Firewalld is the daemon’s name that maintains the firewall policies. Use the firewall-cmd command to interact with the firewalld configuration.

Check the firewalld configuration

Before getting started, confirm that firewalld is running:

The output is either running or not running. To start your firewall if it’s not running, use systemctl :

$ sudo systemctl --enable --now firewalld

View zones

To view all zones on a system, use the —get-zones option:

$ sudo firewall-cmd --get-zones

To display the default zone, use —get-default-zone :

$ sudo firewall-cmd --get-default-zone

By default, if firewalld is enabled and running and in the public zone, all incoming traffic is rejected except SSH and DHCP.

Allow a port

To allow traffic from any IP through a specific port, use the —add-port option along with the port number and protocol:

$ sudo firewall-cmd --add-port=80/tcp

This rule takes effect immediately but only lasts until the next reboot. Add the —permanent flag to make it persistent:

$ sudo firewall-cmd --add-port=80/tcp --permanent

Reload firewalld

I prefer to reload my firewall after making changes. To reload firewalld and all permanent rules:

Читайте также:  Образ web сервера linux

Add a service

There are predefined services you can allow through your firewall. To see all predefined services available on your system:

$ sudo firewall-cmd --get-services

For example, to add the HTTP service to your firewall permanently, enter:

$ sudo firewall-cmd --add-service=http --permanent $ sudo firewall-cmd --reload

IT Automation ebook

Specify traffic by subnet

You can assign traffic coming from a particular subnet to a specific zone (which allows specific ports and services, possibly unique to just that zone).

For example, to assign the network 172.16.1.0/24 to the internal zone and to allow the Jenkins service:

$ sudo firewall-cmd --zone=internal \ --add-source=172.16.1.0/24 --permanent $ sudo firewall-cmd --add-service=jenkins --permanent $ sudo firewall-cmd --reload

List ports and services

You can list all ports and services allowed in the default zone using the —list-all option:

To view all settings for all zones, use —list-all-zones :

$ sudo firewall-cmd --list-all-zones

Know your firewall

A good firewall is an essential feature on modern computer systems, and firewalld is one of the most convenient available. Its commands are intuitive and clear, and its ability to report useful descriptions of its policies makes it easy to understand. Review your firewall settings, and try out some firewall-cmd commands today.

Источник

Управление портами в Linux (Ubuntu/Debian/CentOS)

Как много времени проходит с момента заказа сервера на хостинге до первого подключения к готовому серверу? Несколько минут. На сколько полученный сервер готов к тому, чтобы использовать его на полную? На 100%. Ну или почти на 100. Точнее, совсем не на 100. Новый сервер подобен новорождённому ребёнку. У него одежды, нет приобретённого иммунитета и нет почти никаких навыков. Он уязвим для любого внешнего воздействия. И защиту от окружающих угроз мы должны ему дать. Наш новый сервер на начальном этапе не готов противостоять всему, что приходит к нему извне. А значит, его необходимо оснастить защитой. Такая защита для сервера – брандмауэр, или файрвол (firewall), или межсетевой экран.

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

Читайте также:  Is chrome os linux based

Управление портами в Ubuntu и Debian

В операционных системах Ubuntu и Debian для управления брандмауэром довольно часто применяется утилита iptables. Её упрощённым интерфейсом является UFW (Uncomplicated Firewall). Открытие доступа к серверу для какого-либо приложения происходит путём регистрации этого приложения в UFW.

В Ubuntu интерфейс UFW как правило присутствует по умолчанию, в Debian же необходимо будет сначала его проинсталлировать. Перед установкой брандмауэра рекомендуется обновить репозитории:

$ sudo apt update $ sudo apt install ufw

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

Если вы производите первоначальную настройку межсетевого экрана используя подключение к серверу по ssh , логично было бы сразу же прописать в UFW соответствующее этому протоколу правило:

Эту команду также можно применить используя соответствующий номер порта вместо имени протокола. Для ssh это, как правило, порт 22:

В Ubuntu команда для разрешения подключения по ssh выглядит как:

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

Теперь, можно добавить в UFW правило, которое позволит разрешить передачу данных, например, по порту 80, или другими словами, при помощи протокола http . Это можно прописать командой:

По аналогии можно также разрешить трафик с использованием порта 443, то есть по протоколу https :

Подобными инструкциями можно давать разрешения для подключений, использующих несколько портов. Например, так выглядит команда на открытие целого диапазона портов (32810-32814):

$ sudo ufw allow 32810:32814/udp

Также, помимо номеров портов и названий протоколов, в разрешительных правилах есть возможность использовать IP-адреса. Вот как выглядит команда, разрешающая подключение только с IP-адреса 10.10.10.233:

$ sudo ufw allow from 10.10.10.233

Или из одной определённой подсети:

$ sudo ufw allow from 10.10.10.0/24

Или с одного определённого IP-адреса и только по одному определённому порту:

$ sudo ufw allow from 10.10.10.233 to any port 22

Естественно существует возможность и закрыть доступ для уже открытого подключения через определённый порт. Для этого используется команда deny . Следующей командой можно запретить подключения по протоколу http :

Инструкция для закрытия всех подключений с определённого IP-адреса выглядит следующим образом:

$ sudo ufw deny from 10.10.10.233

где 10.10.10.233 – IP-адрес, для которого будут закрыты все соединения на наш сервер.

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

Читайте также:  Linux process stopped starting

Вывод данной команды выглядит следующим образом:

Вывод команды sudo ufw status numbered - Управление портами в Linux

Номера правил указаны в скобках в начале строки. Например, правило для подключения по 443-му порту имеет номер 3. Исходя из этого, команда для удаления этого правила будет выглядеть как:

То же самое можно сделать командой:

$ sudo ufw delete allow 443/tcp

Посмотреть текущее состояние межсетевого экрана позволяет команда:

Просмотр статуса UFW

Для отключения брандмауэра служит следующая инструкция:

Управление портами в Centos

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

$ sudo dnf update -y $ sudo dnf install firewalld -y

Если окажется, что firewalld уже был установлен в системе, команда вернёт следующее сообщение:

Сообщение об уже установленном firewalld

Текущее состояние службы можно увидеть набрав команду:

$ systemctl status firewalld

Если служба работает штатно, то вывод команды будет выглядеть так:

Просмотр статуса firewalld

Список приложений, которым доступ в firewalld уже предоставлен, можно увидеть с помощью команды:

$ sudo firewall-cmd --permanent --list-all 

Такие приложения перечислены в строке services :

Вывод команды sudo firewall-cmd --permanent --list-all

Чтобы предоставить приложению или протоколу, например, http , возможность производить подключения к нашему серверу, необходимо использовать команду следующего вида:

$ sudo firewall-cmd --permanent --add-service=http

Этот протокол должен добавиться в строку services :

Вывод команды sudo firewall-cmd --permanent --list-all - Управление портами в Linux

Аналогичным образом можно открыть доступ для подключений к серверу по протоколу https :

$ sudo firewall-cmd --permanent --add-service=https

Вывод команды sudo firewall-cmd --permanent --list-all - Управление портами в Linux

В firewalld также есть возможность предоставить доступ для подключений по определённому порту. Так, например, будет выглядеть команда для открытия доступа по udp-порту 32810:

$ sudo firewall-cmd --zone=public --add-port=32810/udp

А так пишется команда для открытия доступа по пулу портов, например, для udp-портов с 32811 по 32814:

$ sudo firewall-cmd --zone=public --add-port=32811-32814/udp

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

$ sudo firewall-cmd --zone=public --list-ports

Список открытых портов в firewalld

Доступ для подключений по определённому порту можно также и заблокировать. Например, закрытие доступа по udp-порту 32814 осуществляется командой:

$ sudo firewall-cmd --zone=public --remove-port=32814/udp

И наконец, для применения всех внесённых изменений, брандмауэр необходимо перезапустить:

Заключение

Итак, мы рассмотрели установку и запуск межсетевых экранов в операционных системах Linux, таких как Ubuntu, Debian и Centos. А также, мы научились открывать доступ для подключений к нашему серверу через определённые порты и протоколы.

Источник

Оцените статью
Adblock
detector