Как открыть порт на VPS

В данной статье расскажем, как открыть порт на VPS. Существует несколько методом открыть порт, рассмотрим подробно.

  1. Открыть порт на Ubuntu 20.04
  2. Открыть порт на Ubuntu 18.04
  3. Открыть порт через CSF
  4. Открыть порт на Centos 7
  5. Открыть порт двумя способами

1. Открыть порт на Ubuntu 20.04.

Для данной ОС управление открытием и закрытием портов как правило производится через файрволл ufw.

На свежеустановленной системе данный файрволл по умолчанию отключен, нужно будет открыть порт для ssh-соединения и включить файрволл. Если сначала включить файрволл, то доступа через ssh мы лишимся.

Команды:

sudo ufw status verbose
— проверяем статус, если результатом выполнения команды будет inactive, то файрволл в настоящий момент выключен.
sudo ufw allow 22/tcp
— открываем стандартный порт для ssh. Если у Вас ssh у Вас работает по другому порту, то замените 22 на его номер.

Если открытие порта пройдет успешно, то появится сообщение «Rules updated».

sudo ufw enable
— включаем файрволл.

Появится предупреждение о возможной блокировке ssh, соглашаемся.

Если после этого повторно выполнить sudo ufw status verbose, то увидим, что статус сменился на active, а также уже открытые порты.

открытые порты

После активации файрволла открыть порт можно командой: sudo ufw allow порт/протокол (можно указать диапазон портов через двоеточие). Пример:

sudo ufw allow 6000/tcp
sudo ufw allow 6000:6007/udp

Выполнив ещё раз sudo ufw status verbose можем убедиться, что порты успешно открылись.

Открыть порт

2. Открыть порт на Ubuntu 18.04.

Будем использовать iptables. Посмотрим список действующих правил iptables. Команда:

sudo iptables -L

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

Правила iptables на vps

Здесь мы видим три цепочки OUTPUT, INPUT и FORWARD, за открытые порты отвечает цепочка INPUT, именно через нее проходят все входящие пакеты. Сейчас политика по умолчанию — ACCEPT, это значит, что подключение ко всем портам разрешено.

Добавим правила, которые разрешат обмен данными между любыми портами на локальном интерфейсе lo и добавим в разрешенные уже установленное нами подключение, чтобы не потерять доступ к VPS по ssh. Команды:

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT

Также откроем 22 порт для ssh-доступа в дальнейшем. Команда:

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

И сменим политику по умолчания для входящих подключений с разрешения на блокирование. Команда:

sudo iptables -P INPUT DROP

Сохраним изменения командой (иначе они пропадут после перезагрузки VPS):

sudo /sbin/iptables-save

Добавление правил изменение политики на VPS

Теперь снова смотрим список действующих правил командой:

sudo iptables -L

Видим, что для входящих (цепочка INRUT) политика сменилась на DROP, а разрешены только те входящие подключения, правила для которых мы добавили выше.

Список действующих правил

Новый порт можно открыть командой вида: sudo iptables -I INPUT -p протокол --dport номер порта -j ACCEPT.

Обратите внимание, что ранее мы использовали -A, сейчас используем -I, чтобы избежать конфликта с правилам и добавленными ранее — опция -I добавит новое правило в начало списка.

Пример команды на открытие порта 1888 для протокола tcp:

sudo iptables -I INPUT -p tcp --dport 1888 -j ACCEPT

Также не забываем сохранить командой: sudo /sbin/iptables-save

Открытие нового порта

Командой sudo iptables -L снова проверим список правил. Видим, что порт успешно открыт.

Список правил

3. Открытие портов через CSF

Сначала обновим пакеты на VPS, команды:

apt-get update -y
apt-get upgrade -y

обновим пакеты на VPS

Сначала установим модули Perl, необходимые для CSF. Команды:

На Centos

yum install perl-libwww-perl.noarch perl-LWP-Protocol-https.noarch perl-GDGraph$ -y

На Ubuntu/Debian

apt-get install libwww-perl liblwp-protocol-https-perl libgd-graph-perl -y

Далее скачаем архив csf с официального сайта. Распакуем, перейдем в каталог с распакованным архивом и запустим установку.

wget https://download.configserver.com/csf.tgz
tar -zxvf csf.tgz
cd csf
sh install.sh

скачаем архив csf с официального сайта

Запуск установку

В случае успешной установки должно вывестись сообщение «Install ation Completed». Далее нужно протестировать работу модулей командой:

perl /usr/local/csf/bin/csftest.pl

Если все установлено и работает корректно, результатом вывода должно стать сообщение «RESULT: csf should function on this server».

RESULT: csf should function on this server

Следующим шагом откроем конфигурационный файл CSF и переведем файрволл из тестового режима в рабочий. Команда:

nano /etc/csf/csf.conf

Нам нужно сначала в файле изменить значение TESTING = "1" на TESTING = "0".

Изменение значения TESTING

Далее запускаем файрволл и проверяем его статус. Должно быть «Active».

systemctl start csf
systemctl status csf

Запуск файрволл

Чтобы теперь открыть порт через CSF, нам нужно снова открыть файл /etc/csf/csf.conf и найти строки, начинающиеся с директив TCP_IN, TCP_OUT, UDP_IN, UDP_OUT.

Секция TCP_IN открывает порты для входящих соединений по tcp-протоколу, секция TCP_OUT — для исходящих.

Секции UDP_IN и UDP_OUT = для входящих и исходящих соединений по udp-протоколу.

В соответствующей строке через запятую указываем номера портов, которые нужно открыть. В данном примере прописан tcp-порт 8888 для входящих соединений, также оставлены порты, которые в момент установки csf прописывает по умолчанию.

открыть порт через CSF

Сохраняем изменения и перезапускаем csf командой csf -r

Готово, порт открыт.

4. Открыть порт на Centos 7

На Centos7 в комплекте идет свой файрволл-надстройка над Iptables, который называется Firewalld.

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

sudo system ctl status firewalld

Результатом должно быть «active (running)», как на скриншоте.

Проверка Firewalld

В отличие от IPTables, работу данный файрволл ведет не с цепочками правил, а с зонами. Зона представляет из себя набор правил, ограничений и разрешений, которые применяются к конкретному сетевому интерфейсу и для каждого интерфейса может быть выбрана только одна зона.

Есть несколько предустановленных зон:

  • drop — блокировать все входящие пакеты, разрешить только исходящие.
  • block — в отличие от предыдущего варианта отправителю пакета будет отправлено сообщение по блокировке его пакета.
  • public — поддерживаются входящие соединения только для ssh и dhclient.
  • external — поддерживает NAT для скрытия внутренней сети.
  • internal и home — разрешены сервисы ssh, samba, mdns и dhcp.
  • dmz — используется для изолированных серверов, у которых нет доступа к сети. Разрешено только подключение по SSH.
  • work — разрешены сервисы ssh и dhcp.
  • trusted — всё разрешено.

Проверить, какие зоны назначены сетевым интерфейсам можно командой:

sudo firewall-cmd --get-active-zones

На свежеустановленной Centos7 имеющемся интерфейсам по умолчанию будет назначена зона public. Посмотреть информацию о действующих правилах для зоны можно командой вида: sudo firewall-cmd --zone= имя зоны --list-all. Соответственно для зоны public команда будет выглядеть, как:

sudo firewall-cmd --zone=public --list-all

Проверка зон

Можем видеть, что в зону public у нас уже по умолчанию добавлены сервисы ssh и dhcpv6-client

5. Открыть порт двумя способами

Первый способ — прямой командой вида: sudo firewall-cmd --zone=имя зоны --remove-port=номер порта/протокол --permanent

Пример для зоны: public, порта: 3471 и протокола: tcp

sudo firewall-cmd --zone=public --remove-port=3471/tcp --permanent

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

sudo firewall-cmd --reload

В случае успешного выполнения команд получим сообщение «success».

успешное открытие порта

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

sudo firewall-cmd --get-services

Второй способ открыть порт

Добавить сервис в зону — командой вида: sudo firewall-cmd --zone=имя зоны --add-service=имя сервиса --permanent

Например, команда добавления сервиса SMTP в зону public будет иметь вид:

sudo firewall-cmd --zone=public --add-service=smtp --permanent

После также нужно перезапустить файрволл sudo firewall-cmd --reload

Добавить сервис в зону

Для проверки еще раз выполним sudo firewall-cmd --zone=public --list-all, как можем видеть в результатах вывода — сервис smtp добавлен, порт открыт.

сервис smtp добавлен, порт открыт

Подобрать лучшие VPS с SSD-дисками, можно на нашем сайте.

Комментарии ()

  1. АНДРЕЙ 08 сентября 2022, 16:31 # 0
    Не знал что существует столько различных способов для открытия порта. Познавательная статья.

    Последние отзывыpic


    Coopertino.ru

    Чесноков Кирилл, 3 апреля 2024 оценил

    Особенно радует доступность цен и отличное соотношение цена-качество. Взял максимальный тариф VPS на NVMe дисках, и до сих пор ост...


    pq.hosting

    Ярослав, 3 апреля 2024 оценил

    У меня мой сайт подключен к этому хостингу. Соединение всегда высокого качества, отклик моментальный( для меня это крайне важно, в...


    ihor.ru

    Ermakov, 3 апреля 2024 оценил

    В настоящее время работа здесь отлично организована, техническая поддержка адекватная и реагирует относительно оперативно даже ноч...


    Smartape.ru

    Макс, 2 апреля 2024 оценил

    Отличный хост для загрузки ваших сайтов .Всё будет хорошо работать и без багов


    prohoster.info

    Pogos, 1 апреля 2024 оценил

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


    новые Статьи

    Установка и настройка HestiaCP на VPS/VDS
    Как установить SSH-ключи на сервер в PuTTY?
    Установка git на VPS сервер
    Установка Bitrix24 на VPS
    Установка и настройка LAMP на VPS с Ubuntu
    Читать все статьи