Sudo ufw allow openssh error не найдено профилей соответствующих openssh

I followed a guide on creating your own VPN using OpenVPN and only encountered two errors from openVPN guide. I think my VPN is created but I thought this would be useful since I am in Libraries us...

I followed a guide on creating your own VPN using OpenVPN and only encountered two errors from openVPN guide. I think my VPN is created but I thought this would be useful since I am in Libraries using open WiFi.

When I ran sudo ufw allow OpenSSH I got an error message: ERROR: Could not find a profile matching ‘OpenSSH’

Another issue I encounter was after I ran sftp tim@openvpn_server_ip:client-configs/files/client1.ovpn ~/ I received the message ssh: Could not resolve hostname openvpnserverip: Name or service not known
Couldn’t read packet: Connection reset by peer

Thanks for any help in advance! I tried running the second command again and it wouldn’t terminate so I had to ctrl + c it myself

asked Sep 11, 2016 at 17:35

timmyspan's user avatar

I have encountered the same ERROR:

ERROR: Could not find a profile matching 'OpenSSH'

So what I did was to run:

sudo apt-get install ssh

After installing, I ran:

cd ~/openvpn-ca
sudo ufw allow OpenSSH

And I verified it with:

sudo ufw status

I hope it will work for you too!

Eliah Kagan's user avatar

Eliah Kagan

115k53 gold badges311 silver badges484 bronze badges

answered Jan 14, 2017 at 7:30

Ion Ionoi's user avatar

Ion IonoiIon Ionoi

1362 silver badges4 bronze badges

$ sudo ufw allow OpenSSH
ERROR: Could not find a profile matching 'OpenSSH'

Run

sudo apt-get install ssh

and then:

$ sudo ufw allow OpenSSH
Rules updated
Rules updated (v6)
$ sudo ufw status
Status: inactive
$ sudo ufw enable
Firewall is active and enabled on system startup
$ sudo ufw status
Status: active
To                         Action      From
--                         ------      ----
8080                       ALLOW       Anywhere                  
OpenSSH                    ALLOW       Anywhere                  
8080 (v6)                  ALLOW       Anywhere (v6)             
OpenSSH (v6)               ALLOW       Anywhere (v6)     

Zanna's user avatar

Zanna

68.2k55 gold badges210 silver badges320 bronze badges

answered May 22, 2019 at 20:48

Saurabh Asthana's user avatar

Содержание

  1. Как настроить брандмауэр с UFW в Ubuntu 20.04
  2. Подготовка
  3. Установить UFW
  4. Проверить статус UFW
  5. Политики UFW по умолчанию
  6. Профили приложений
  7. Включение UFW
  8. Открытие портов
  9. Портовые диапазоны
  10. Определенный IP-адрес и порт
  11. Подсети
  12. Конкретный сетевой интерфейс
  13. Отказ от подключений
  14. Удаление правил UFW
  15. Отключение UFW
  16. Сброс UFW
  17. IP-маскарадинг
  18. Выводы
  19. Основные команды UFW
  20. Введение:
  21. Проверка статуса UFW
  22. Включение UFW
  23. Отключение UFW
  24. Блокировка обращения IP-адреса
  25. Заблокировать подсеть
  26. Блокирование входящих подключений к сетевому интерфейсу
  27. Разрешить обращения IP-адреса
  28. Разрешение входящих подключений к сетевому интерфейсу
  29. Удалить правило брандмауэра
  30. Список доступных профилей приложений
  31. Включить профиль для определенного приложения
  32. Отключить профиль для определенного приложения
  33. Разрешить SSH
  34. Разрешить входящий SSH с определенного IP-адреса или подсети
  35. Разрешить входящий Rsync с определенного IP-адреса или подсети
  36. Разрешить Nginx HTTP / HTTPS
  37. Разрешить Apache HTTP / HTTPS
  38. Разрешить все входящие HTTP (порт 80)
  39. Разрешить все входящие HTTPS (порт 443)
  40. Разрешить все входящие HTTP и HTTPS
  41. Разрешить подключение к MySQL с определенного IP-адреса или подсети
  42. Разрешить подключение к PostgreSQL с определенного IP-адреса или подсети
  43. Разрешить подключение к PostgreSQL с определенного IP-адреса или подсети
  44. Заключение

Как настроить брандмауэр с UFW в Ubuntu 20.04

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

Ubuntu поставляется с инструментом настройки межсетевого экрана под названием UFW (Несложный межсетевой экран). Это удобный интерфейс для управления правилами брандмауэра iptables. Его основная цель — упростить или, как следует из названия, упростить управление межсетевым экраном.

В этой статье описывается, как использовать инструмент UFW для настройки и управления брандмауэром в Ubuntu 20.04. Правильно настроенный брандмауэр — один из наиболее важных аспектов общей безопасности системы.

Подготовка

Только root или пользователи с привилегиями sudo могут управлять системным брандмауэром. Лучше всего запускать административные задачи от имени пользователя sudo.

Установить UFW

UFW является частью стандартной установки Ubuntu 20.04 и должен присутствовать в вашей системе. Если по какой-то причине он не установлен, вы можете установить пакет, набрав:

Проверить статус UFW

По умолчанию UFW отключен. Вы можете проверить статус службы UFW с помощью следующей команды:

Вывод покажет, что состояние брандмауэра неактивно:

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

Политики UFW по умолчанию

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

Политики по умолчанию определены в /etc/default/ufw и могут быть изменены либо путем изменения файла вручную, либо с помощью команды sudo ufw default

Политики брандмауэра — это основа для создания более сложных и определяемых пользователем правил. Как правило, исходные политики по умолчанию UFW являются хорошей отправной точкой.

Профили приложений

Профиль приложения — это текстовый файл в формате INI, который описывает службу и содержит правила брандмауэра для службы. Профили приложений создаются в каталоге /etc/ufw/applications.d во время установки пакета.

Вы можете просмотреть все профили приложений, доступные на вашем сервере, набрав:

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

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

Выходные данные показывают, что профиль «Nginx Full» открывает порты 80 и 443 .

Вы также можете создавать собственные профили для своих приложений.

Включение UFW

Если вы подключаетесь к Ubuntu из удаленного места, перед включением брандмауэра UFW вы должны явно разрешить входящие соединения SSH. В противном случае вы больше не сможете подключиться к машине.

Чтобы настроить брандмауэр UFW для разрешения входящих соединений SSH, введите следующую команду:

Если SSH работает на нестандартном порту , вам необходимо открыть этот порт.

Например, если ваш демон ssh прослушивает порт 7722 , введите следующую команду, чтобы разрешить соединения на этом порту:

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

Вы будете предупреждены, что включение брандмауэра может нарушить существующие соединения ssh, просто введите y и нажмите Enter .

Открытие портов

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

Ниже приведены несколько способов, как разрешить HTTP-соединения.

Первый вариант — использовать имя службы. UFW проверяет файл /etc/services предмет порта и протокола указанной службы:

Вы также можете указать номер порта и протокол:

Если протокол не указан, UFW создает правила как для tcp и для udp .

Другой вариант — использовать профиль приложения; в данном случае Nginx HTTP:

UFW также поддерживает другой синтаксис для указания протокола с помощью ключевого слова proto :

Портовые диапазоны

UFW также позволяет открывать диапазоны портов. Открывающий и закрывающий порты разделяются двоеточием ( : ), и вы должны указать протокол, либо tcp или udp .

Например, если вы хотите разрешить порты с 7100 до 7200 как на tcp и на udp , вы должны выполнить следующую команду:

Определенный IP-адрес и порт

Чтобы разрешить соединения на всех портах с заданного IP-адреса источника, используйте ключевое слово from за которым следует адрес источника.

Вот пример внесения IP-адреса в белый список:

Если вы хотите разрешить данному IP-адресу доступ только к определенному порту, используйте ключевое слово to any port за которым следует номер порта.

Например, чтобы разрешить доступ к порту 22 с машины с IP-адресом 64.63.62.61 , введите:

Подсети

Синтаксис разрешения подключений к подсети IP-адресов такой же, как и при использовании одного IP-адреса. Единственное отличие состоит в том, что вам нужно указать маску сети.

Ниже приведен пример, показывающий, как разрешить доступ для IP-адресов от 192.168.1.1 до 192.168.1.254 до порта 3360 ( MySQL ):

Конкретный сетевой интерфейс

Чтобы разрешить подключения к определенному сетевому интерфейсу, используйте ключевое слово in on за которым следует имя сетевого интерфейса:

Отказ от подключений

Политика по умолчанию для всех входящих подключений настроена на deny , и если вы не изменили ее, UFW заблокирует все входящие подключения, если вы специально не откроете подключение.

Написание запрещающих правил аналогично написанию разрешающих правил; вам нужно только использовать ключевое слово deny вместо allow .

Допустим, вы открыли порты 80 и 443 , и ваш сервер атакован из сети 23.24.25.0/24 . Чтобы запретить все соединения с 23.24.25.0/24 вы должны выполнить следующую команду:

Вот пример 23.24.25.0/24 доступа только к портам 80 и 443 из 23.24.25.0/24 вы можете использовать следующую команду:

Удаление правил UFW

Есть два разных способа удалить правила UFW по номеру правила и указав фактическое правило.

Удалять правила по номеру правила проще, особенно если вы новичок в UFW. Чтобы сначала удалить правило по номеру правила, вам нужно найти номер правила, которое вы хотите удалить. Чтобы получить список пронумерованных правил, используйте команду ufw status numbered :

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

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

Отключение UFW

Если по какой-либо причине вы хотите остановить UFW и деактивировать все правила, вы можете использовать:

Позже, если вы захотите снова включить UTF и активировать все правила, просто введите:

Сброс UFW

Сброс UFW отключит UFW и удалит все активные правила. Это полезно, если вы хотите отменить все изменения и начать все заново.

Чтобы сбросить UFW, введите следующую команду:

IP-маскарадинг

IP Masquerading — это вариант NAT (трансляция сетевых адресов) в ядре Linux, который преобразует сетевой трафик путем перезаписи исходных и целевых IP-адресов и портов. С помощью IP Masquerading вы можете разрешить одной или нескольким машинам в частной сети связываться с Интернетом, используя одну машину Linux, которая действует как шлюз.

Настройка IP-маскарадинга с помощью UFW включает несколько шагов.

Во-первых, вам нужно включить переадресацию IP. Для этого откройте файл /etc/ufw/sysctl.conf :

Найдите и раскомментируйте строку net.ipv4.ip_forward = 1 :

Затем вам нужно настроить UFW, чтобы разрешить пересылку пакетов. Откройте файл конфигурации UFW:

Найдите ключ DEFAULT_FORWARD_POLICY и измените значение с DROP на ACCEPT :

Теперь вам нужно установить политику по умолчанию для цепочки POSTROUTING в таблице nat и правило маскарада. Для этого откройте файл /etc/ufw/before.rules и добавьте строки, выделенные желтым, как показано ниже:

Добавьте следующие строки:

Не забудьте заменить eth0 в строке -A POSTROUTING чтобы он соответствовал имени публичного сетевого интерфейса:

Когда вы закончите, сохраните и закройте файл.

Наконец, перезагрузите правила UFW, отключив и снова включив UFW:

Выводы

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

Для получения дополнительной информации по этой теме посетитесправочную страницу UFW .

Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Источник

Основные команды UFW

Введение:

Инструментом настройки брандмауэра по умолчанию для Ubuntu является ufw. Разработанный для упрощения настройки брандмауэра iptables, ufw предоставляет удобный способ создания брандмауэра на базе хоста IPv4 или IPv6. По умолчанию UFW отключен.

Проверка статуса UFW

Проверить, включен ли брандмауэр, используйте эту команду:

  • Результат покажет, активен ли ваш брандмауэр или нет.

Включение UFW

Если при выполнении команды ufw status вы получили сообщение Status: inactive, это означает, что брандмауэр еще не включен в системе. Вам нужно выполнить команду, чтобы включить его.

По умолчанию, когда UFW включен, он блокирует внешний доступ ко всем портам на сервере. На практике это означает, что если вы подключены к серверу по SSH и включите ufw до разрешения доступа через порт SSH, вы будете отключены.

Чтобы включить UFW в вашей системе, выполните команду:

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

Отключение UFW

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

Будьте внимательны, эта команда полностью отключит службу брандмауэра в вашей системе!

Блокировка обращения IP-адреса

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

  • В этом примере “from 91.198.174.190” указывает IP-адрес источника «91.198.174.190».

Если вы запустите эту команду, вы увидите, что указанный IP-адрес находится в списке запрещенных:

  • Все соединения, входящие и исходящие, блокируются для указанного IP-адреса.

Заблокировать подсеть

Если вам нужно заблокировать всю подсеть, вы можете использовать адрес подсети в качестве параметра «from» в команде ufw deny. Это заблокирует все IP-адреса в приведенной в примере подсети 91.198.174.0/24:

Блокирование входящих подключений к сетевому интерфейсу

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

  • Параметр «in» указывает брандмауэру применять правило только для входящих соединений, а параметр «on eth0» указывает, что правило применяется только для интерфейса eth0. Это может быть полезно, если у вас есть система с несколькими сетевыми интерфейсами (включая виртуальные), и вам нужно заблокировать внешний доступ к некоторым из этих интерфейсов, но не ко всем.

Разрешить обращения IP-адреса

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

  • Если теперь вы запустите “sudo ufw status”, вы увидите вывод, похожий на этот, с надписью ALLOW рядом с IP-адресом, который вы только что добавили.

  • Вы также можете разрешить соединения из целой подсети, указав соответствующую маску подсети для хоста, например, 91.198.174.0/24.

Разрешение входящих подключений к сетевому интерфейсу

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

  • Параметр «in» указывает брандмауэру применять правило только для входящих соединений, а параметр «on eth0» указывает, что правило применяется только для интерфейса «eth0».

Если вы выполните команду , вы увидите результат, подобный этому:

  • Результат команды «sudo ufw status»

Удалить правило брандмауэра

Чтобы удалить правило, ранее установленное в UFW, используйте «ufw delete», затем введите правило (allow / deny) и целевую спецификацию. В следующем примере удаляется правило, ранее установленное для разрешения всех подключений с IP-адреса 91.198.174.192:

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

  • Из вывода видно, что есть два активных правила. Первое правило, запрещает все соединения, исходящие с IP-адреса 91.198.174.190. Второе правило разрешает соединения на интерфейсе eth0, поступающие с IP-адреса 91.198.174.22.

Поскольку по умолчанию брандмауэр уже блокирует весь внешний доступ, если он не разрешен явным образом, первое правило является избыточным, поэтому его можно удалить. Чтобы удалить правило согласно его ID, выполните команду:

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

Если вы снова перечислите свои правила со статусом «sudo ufw», вы увидите, что правило было удалено.

Список доступных профилей приложений

При установке приложения, которые полагаются на сетевые коммуникации, обычно устанавливают профиль брандмауэра, который можно использовать для разрешения подключения с внешних адресов. Это часто то же самое, что запустить «ufw allow from», с тем преимуществом, что это ярлык, который абстрагирует конкретные номера портов, используемые службой, и обеспечивает удобную номенклатуру для ссылающихся служб.

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

Включить профиль для определенного приложения

Чтобы включить профиль приложения брандмауэра, выполните команду «ufw allow», за которой следует имя профиля приложения, который вы хотите включить и который можно получить с помощью команды «sudo ufw app list». В следующем примере мы включаем профиль OpenSSH, который разрешит все входящие SSH-соединения на стандартном порту SSH.

Отключить профиль для определенного приложения

Чтобы отключить профиль приложения, который вы ранее настроили в брандмауэре, вам нужно удалить соответствующее правило. Например, рассмотрим следующий вывод из “sudo ufw status”

Если вы хотите разрешить только HTTPS-запросы к вашему веб-серверу, вам нужно сначала включить наиболее ограничивающее правило, которым в данном случае будет «Nginx HTTPS», а затем отключить активное правило «Nginx Full»:

sudo ufw delete allow «Nginx Full»

Помните, что вы можете перечислить все доступные профили приложений с помощью «sudo ufw app list».

Разрешить SSH

При работе с удаленными серверами вам необходимо убедиться, что порт SSH открыт для подключений, чтобы вы могли удаленно войти на свой сервер.

Следующая команда включит профиль приложения OpenSSH для брандмауэра и разрешит все соединения с портом SSH по умолчанию на сервере:

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

Разрешить входящий SSH с определенного IP-адреса или подсети

Чтобы разрешить входящие соединения с определенного IP-адреса или подсети, вы включите директиву «from» для определения источника соединения. Это необходимо, чтобы вы также указали адрес назначения с помощью параметра «to». Чтобы заблокировать это правило только для SSH, ограничьте «proto» (протокол) значением «tcp», а затем используйте параметр «port» и установите его на 22, порт по умолчанию SSH.

Следующая команда разрешит только соединения SSH, исходящие с IP-адреса 91.198.174.33:

Вы также можете использовать адрес подсети в качестве параметра «from», чтобы разрешить входящие соединения SSH из всей сети:

Разрешить входящий Rsync с определенного IP-адреса или подсети

Программа Rsync, которая работает на порту 873, может использоваться для передачи файлов с одного компьютера на другой.

Чтобы разрешить входящие соединения rsync с определенного IP-адреса или подсети, используйте параметр from для указания IP-адреса источника и параметр port для установки порта назначения 873. Следующая команда разрешит только соединения Rsync, поступающие с IP-адреса 91.198.174.33:

Чтобы разрешить всей подсети 91.198.174.0/24 возможность «rsync» на ваш сервер, выполните команду:

Разрешить Nginx HTTP / HTTPS

При установке веб-сервер Nginx устанавливает несколько различных профилей брандмауэра внутри сервера. После установки и включения Nginx в качестве службы выполните следующую команду, чтобы определить, какие профили доступны:

Чтобы разрешить трафик HTTP и HTTPS, выберите Nginx Full. В противном случае выберите либо Nginx HTTP, чтобы разрешить только HTTP, либо Nginx HTTPS, чтобы разрешить только HTTPS.

Следующая команда разрешит трафик HTTP и HTTPS на сервере (порты 80 и 443):

Разрешить Apache HTTP / HTTPS

При установке веб-сервер Apache устанавливает несколько различных профилей UFW внутри сервера. После установки и включения Apache в качестве службы выполните следующую команду, чтобы определить, какие профили доступны:

Чтобы включить трафик HTTP и HTTPS, выберите «Apache Full». В противном случае выберите либо «Apache» для HTTP, либо «Apache Secure» для HTTPS.

Следующая команда разрешит HTTP и HTTPS трафик на сервере (порты 80 и 443):

Разрешить все входящие HTTP (порт 80)

Веб-серверы, такие как Apache и Nginx, обычно прослушивают HTTP-запросы на порту 80. Если ваша политика по умолчанию для входящего трафика настроена на отклонение или запрет, вам необходимо создать правило UFW для разрешения внешнего доступа к порту 80. В качестве параметра этой команды можно использовать либо номер порта, либо имя службы (http).

Чтобы разрешить все входящие HTTP-соединения (порт 80), выполните команду:

Альтернативным синтаксисом является указание номера порта службы HTTP:

Разрешить все входящие HTTPS (порт 443)

HTTPS обычно работает на порту 443. Если ваша политика по умолчанию для входящего трафика настроена на отклонение или запрет, вам нужно создать правило UFW для разрешения внешнего доступа по порту 443. В качестве параметра этой команды можно использовать либо номер порта, либо имя службы (https).

Чтобы разрешить все входящие соединения HTTPS (порт 443), выполните:

Альтернативным синтаксисом является указание номера порта службы HTTPS:

Разрешить все входящие HTTP и HTTPS

Если вы хотите разрешить трафик HTTP и HTTPS, вы можете создать одно правило, которое разрешает оба порта. Это использование требует, чтобы вы также определили протокол с помощью параметра “proto”, который в данном случае должен быть установлен на tcp.

Чтобы разрешить все входящие соединения HTTP и HTTPS (порты 80 и 443), выполните команду:

Разрешить подключение к MySQL с определенного IP-адреса или подсети

MySQL прослушивает клиентские соединения на порту 3306. Если ваш сервер баз данных MySQL используется клиентом на удаленном сервере, вам необходимо создать правило UFW, чтобы разрешить такой доступ.

Чтобы разрешить входящие соединения MySQL с определенного IP-адреса или подсети, используйте параметр from для указания IP-адреса источника и параметр «port» для установки порта назначения 3306.

Следующая команда разрешит IP-адрес 91.198.174.33 для подключения к порту MySQL сервера:

Чтобы разрешить всей подсети 91.198.174.0/24 возможность подключения к вашему серверу MySQL, выполните команду:

Разрешить подключение к PostgreSQL с определенного IP-адреса или подсети

PostgreSQL прослушивает клиентские соединения на порту 5432. Если ваш сервер баз данных PostgreSQL используется клиентом на удаленном сервере, вам необходимо разрешить этот трафик.

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

Чтобы разрешить всей подсети 91.198.174.0/24 возможность подключения к вашему серверу PostgreSQL, выполните команду:

Разрешить подключение к PostgreSQL с определенного IP-адреса или подсети

Почтовые серверы, такие как Sendmail и Postfix, обычно используют порт 25 для SMTP-трафика. Если ваш сервер не должен отправлять исходящую почту, вы можете заблокировать этот вид трафика. Чтобы заблокировать исходящие SMTP-соединения, выполните команду:

Это настроит ваш брандмауэр на блокирование всего исходящего трафика на порту 25. Если вам нужно отклонить исходящие соединения на другом номере порта, вы можете повторить эту команду и заменить 25 на номер порта, который вы хотите заблокировать.

Заключение

UFW — это мощный инструмент, который при правильной настройке может значительно повысить безопасность ваших серверов. В данном руководстве рассматриваются некоторые общие правила UFW, которые часто используются для настройки брандмауэра в Ubuntu. Большинство команд в этом руководстве можно адаптировать для различных случаев и сценариев использования, изменяя такие параметры, как IP-адрес источника и/или порт назначения. Для получения более подробной информации о каждом параметре команды и доступных модификаторах вы можете воспользоваться утилитой man, чтобы проверить руководство UFW:

Источник

Как правильно задавать вопросы

Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот

Аватара пользователя

Я_Максим

Сообщения: 207
Зарегистрирован: 10 ноя 2017, 19:25
Решено: 1
Благодарил (а): 32 раза
Контактная информация:

Установка OpenVPN Сервера на Ubuntu 18.04

01 дек 2018, 01:07

Доброй ночи, в гуглил рабочие мануалы по установке OpenVPN но постоянно какой то косяк, подскажите как установить и настроить OpenVPN Сервера на Ubuntu 18.04 ?

FX-8350 тащит


Аватара пользователя

di_mok

Сообщения: 5440
Зарегистрирован: 27 авг 2016, 19:06
Решено: 32
Откуда: Арзамас
Благодарил (а): 1569 раз
Поблагодарили: 1263 раза
Контактная информация:

Установка OpenVPN Сервера на Ubuntu 18.04

#2

01 дек 2018, 10:42

Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)
Изображение


Аватара пользователя

di_mok

Сообщения: 5440
Зарегистрирован: 27 авг 2016, 19:06
Решено: 32
Откуда: Арзамас
Благодарил (а): 1569 раз
Поблагодарили: 1263 раза
Контактная информация:

Установка OpenVPN Сервера на Ubuntu 18.04

#4

02 дек 2018, 22:37

Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)
Изображение


no avatar

kream7

Сообщения: 12
Зарегистрирован: 26 сен 2018, 12:45
Благодарил (а): 1 раз
Поблагодарили: 4 раза
Контактная информация:

Установка OpenVPN Сервера на Ubuntu 18.04

#5

03 дек 2018, 00:29

027 писал(а): ↑

02 дек 2018, 21:59


воспользуйтесь одним из скриптов автоматической настройки

долго мучал когда то первый скрипт на дебиане в виртуалбоксе. Сервер запускается, .ovpn запускается , но айпи не менялся. Так и не понял почему.


Аватара пользователя

Я_Максим

Сообщения: 207
Зарегистрирован: 10 ноя 2017, 19:25
Решено: 1
Благодарил (а): 32 раза
Контактная информация:

Установка OpenVPN Сервера на Ubuntu 18.04

#6

03 дек 2018, 19:16

027, скрипт

https://github.com/Nyr/openvpn-install

, скачал запустил

Код: Выделить всё

Обрабатываются триггеры для libc-bin (2.27-3ubuntu1) …
openvpn-install.sh: строка 237: ./easyrsa: Нет такого файла или каталога
openvpn-install.sh: строка 238: ./easyrsa: Нет такого файла или каталога
openvpn-install.sh: строка 239: ./easyrsa: Нет такого файла или каталога
openvpn-install.sh: строка 240: ./easyrsa: Нет такого файла или каталога
openvpn-install.sh: строка 241: ./easyrsa: Нет такого файла или каталога
cp: не удалось выполнить stat для 'pki/ca.crt': Нет такого файла или каталога
cp: не удалось выполнить stat для 'pki/private/ca.key': Нет такого файла или каталога
cp: не удалось выполнить stat для 'pki/issued/server.crt': Нет такого файла или каталога
cp: не удалось выполнить stat для 'pki/private/server.key': Нет такого файла или каталога
cp: не удалось выполнить stat для 'pki/crl.pem': Нет такого файла или каталога
chown: невозможно получить доступ к '/etc/openvpn/crl.pem': Нет такого файла или каталога
249
Job for openvpn@server.service failed because the control process exited with error code.
See "systemctl status openvpn@server.service" and "journalctl -xe" for details.
cat: /etc/openvpn/easy-rsa/pki/ca.crt: Нет такого файла или каталога
cat: /etc/openvpn/easy-rsa/pki/issued/admin_cl.crt: Нет такого файла или каталога
cat: /etc/openvpn/easy-rsa/pki/private/admin_cl.key: Нет такого файла или каталога

Finished!

Your client configuration is available at: /home/scool11/admin_cl.ovpn
If you want to add more clients, you simply need to run this script again!

выхлом не тот который ожыдал :acute:

FX-8350 тащит


Аватара пользователя

zuzabrik

Сообщения: 1744
Зарегистрирован: 29 авг 2016, 12:08
Решено: 20
Благодарил (а): 108 раз
Поблагодарили: 521 раз
Контактная информация:

Установка OpenVPN Сервера на Ubuntu 18.04

#7

03 дек 2018, 19:44

Я_Максим писал(а): ↑

03 дек 2018, 19:16


выхлом не тот который ожыдал

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

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

более конкретно смогут посоветовать люди, которые непосредственно пользовались этими скриптами или ставили у себя openvpn :)

А мог бы стать нормальным человеком…


Аватара пользователя

di_mok

Сообщения: 5440
Зарегистрирован: 27 авг 2016, 19:06
Решено: 32
Откуда: Арзамас
Благодарил (а): 1569 раз
Поблагодарили: 1263 раза
Контактная информация:

Установка OpenVPN Сервера на Ubuntu 18.04

#8

03 дек 2018, 19:53

Дык правильно в скрипте apt-get install openvpn iptables openssl ca-certificates -y Я_Максим, забей на эту автоматизацию поставь всё руками. Потом забабикаешься разбираться откуда ноги отвалились

Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)
Изображение


Аватара пользователя

Я_Максим

Сообщения: 207
Зарегистрирован: 10 ноя 2017, 19:25
Решено: 1
Благодарил (а): 32 раза
Контактная информация:

Установка OpenVPN Сервера на Ubuntu 18.04

#9

03 дек 2018, 20:13

di_mok будем пробывать :smile:

FX-8350 тащит


Аватара пользователя

Я_Максим

Сообщения: 207
Зарегистрирован: 10 ноя 2017, 19:25
Решено: 1
Благодарил (а): 32 раза
Контактная информация:

Установка OpenVPN Сервера на Ubuntu 18.04

#10

03 дек 2018, 20:18

zuzabrik, не все от рута без рута он даже не запускался

FX-8350 тащит


Аватара пользователя

di_mok

Сообщения: 5440
Зарегистрирован: 27 авг 2016, 19:06
Решено: 32
Откуда: Арзамас
Благодарил (а): 1569 раз
Поблагодарили: 1263 раза
Контактная информация:

Установка OpenVPN Сервера на Ubuntu 18.04

#12

03 дек 2018, 21:23

Я_Максим, sudo ufw status?

Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)
Изображение


Аватара пользователя

Я_Максим

Сообщения: 207
Зарегистрирован: 10 ноя 2017, 19:25
Решено: 1
Благодарил (а): 32 раза
Контактная информация:

Установка OpenVPN Сервера на Ubuntu 18.04

#13

03 дек 2018, 21:26

di_mok,решил проблему командой sudo apt install ssh, в правилах все прописалось,
но сервер не стартует

Код: Выделить всё

scool11@server:~/openvpn-ca/keys$ sudo systemctl start openvpn@server
Job for openvpn@server.service failed because the control process exited with error code.
See "systemctl status openvpn@server.service" and "journalctl -xe" for details.

FX-8350 тащит


Аватара пользователя

di_mok

Сообщения: 5440
Зарегистрирован: 27 авг 2016, 19:06
Решено: 32
Откуда: Арзамас
Благодарил (а): 1569 раз
Поблагодарили: 1263 раза
Контактная информация:

Установка OpenVPN Сервера на Ubuntu 18.04

#14

03 дек 2018, 21:35

Я_Максим, выкатывай на всеобщее обозрение, то, что тебя попросили: systemctl status openvpn@server.service и journalctl -xe

Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)
Изображение


Аватара пользователя

Я_Максим

Сообщения: 207
Зарегистрирован: 10 ноя 2017, 19:25
Решено: 1
Благодарил (а): 32 раза
Контактная информация:

Установка OpenVPN Сервера на Ubuntu 18.04

#15

03 дек 2018, 21:38

di_mok,

Код: Выделить всё

#################################################
# Sample OpenVPN 2.0 config file for            #
# multi-client server.                          #
#                                               #
# This file is for the server side              #
# of a many-clients <-> one-server              #
# OpenVPN configuration.                        #
#                                               #
# OpenVPN also supports                         #
# single-machine <-> single-machine             #
# configurations (See the Examples page         #
# on the web site for more info).               #
#                                               #
# This config should work on Windows            #
# or Linux/BSD systems.  Remember on            #
# Windows to quote pathnames and use            #
# double backslashes, e.g.:                     #
# "C:\Program Files\OpenVPN\config\foo.key" #
#                                               #
# Comments are preceded with '#' or ';'         #
#################################################

# Which local IP address should OpenVPN
# listen on? (optional)
;local a.b.c.d

# Which TCP/UDP port should OpenVPN listen on?
# If you want to run multiple OpenVPN instances
# on the same machine, use a different port
# number for each one.  You will need to
# open up this port on your firewall.
port 1194

# TCP or UDP server?
proto tcp
;proto udp

# "dev tun" will create a routed IP tunnel,
# "dev tap" will create an ethernet tunnel.
# Use "dev tap0" if you are ethernet bridging
# and have precreated a tap0 virtual interface
# and bridged it with your ethernet interface.
# If you want to control access policies
# over the VPN, you must create firewall
# rules for the the TUN/TAP interface.
# On non-Windows systems, you can give
# an explicit unit number, such as tun0.
# On Windows, use "dev-node" for this.
# On most systems, the VPN will not function
# unless you partially or fully disable
# the firewall for the TUN/TAP interface.
;dev tap
dev tun

# Windows needs the TAP-Win32 adapter name
# from the Network Connections panel if you
# have more than one.  On XP SP2 or higher,
# you may need to selectively disable the
# Windows firewall for the TAP adapter.
# Non-Windows systems usually don't need this.
;dev-node MyTap

# SSL/TLS root certificate (ca), certificate
# (cert), and private key (key).  Each client
# and the server must have their own cert and
# key file.  The server and all clients will
# use the same ca file.
#
# See the "easy-rsa" directory for a series
# of scripts for generating RSA certificates
# and private keys.  Remember to use
# a unique Common Name for the server
# and each of the client certificates.
#
# Any X509 key management system can be used.
# OpenVPN can also use a PKCS #12 formatted key file
# (see "pkcs12" directive in man page).
ca ca.crt
cert server.crt
key server.key  # This file should be kept secret

# Diffie hellman parameters.
# Generate your own with:
#   openssl dhparam -out dh2048.pem 2048
dh dh2048.pem

# Network topology
# Should be subnet (addressing via IP)
# unless Windows clients v2.0.9 and lower have to
# be supported (then net30, i.e. a /30 per client)
# Defaults to net30 (not recommended)
;topology subnet

# Configure server mode and supply a VPN subnet
# for OpenVPN to draw client addresses from.
# The server will take 10.8.0.1 for itself,
# the rest will be made available to clients.
# Each client will be able to reach the server
# on 10.8.0.1. Comment this line out if you are
# ethernet bridging. See the man page for more info.
server 10.8.0.0 255.255.255.0

# Maintain a record of client <-> virtual IP address
# associations in this file.  If OpenVPN goes down or
# is restarted, reconnecting clients can be assigned
# the same virtual IP address from the pool that was
# previously assigned.
ifconfig-pool-persist /var/log/openvpn/ipp.txt

# Configure server mode for ethernet bridging.
# You must first use your OS's bridging capability
# to bridge the TAP interface with the ethernet
# NIC interface.  Then you must manually set the
# IP/netmask on the bridge interface, here we
# assume 10.8.0.4/255.255.255.0.  Finally we
# must set aside an IP range in this subnet
# (start=10.8.0.50 end=10.8.0.100) to allocate
# to connecting clients.  Leave this line commented
# out unless you are ethernet bridging.
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100

# Configure server mode for ethernet bridging
# using a DHCP-proxy, where clients talk
# to the OpenVPN server-side DHCP server
# to receive their IP address allocation
# and DNS server addresses.  You must first use
# your OS's bridging capability to bridge the TAP
# interface with the ethernet NIC interface.
# Note: this mode only works on clients (such as
# Windows), where the client-side TAP adapter is
# bound to a DHCP client.
;server-bridge

# Push routes to the client to allow it
# to reach other private subnets behind
# the server.  Remember that these
# private subnets will also need
# to know to route the OpenVPN client
# address pool (10.8.0.0/255.255.255.0)
# back to the OpenVPN server.
;push "route 192.168.10.0 255.255.255.0"
;push "route 192.168.20.0 255.255.255.0"

# To assign specific IP addresses to specific
# clients or if a connecting client has a private
# subnet behind it that should also have VPN access,
# use the subdirectory "ccd" for client-specific
# configuration files (see man page for more info).

# EXAMPLE: Suppose the client
# having the certificate common name "Thelonious"
# also has a small subnet behind his connecting
# machine, such as 192.168.40.128/255.255.255.248.
# First, uncomment out these lines:
;client-config-dir ccd
;route 192.168.40.128 255.255.255.248
# Then create a file ccd/Thelonious with this line:
#   iroute 192.168.40.128 255.255.255.248
# This will allow Thelonious' private subnet to
# access the VPN.  This example will only work
# if you are routing, not bridging, i.e. you are
# using "dev tun" and "server" directives.

# EXAMPLE: Suppose you want to give
# Thelonious a fixed VPN IP address of 10.9.0.1.
# First uncomment out these lines:
;client-config-dir ccd
;route 10.9.0.0 255.255.255.252
# Then add this line to ccd/Thelonious:
#   ifconfig-push 10.9.0.1 10.9.0.2

# Suppose that you want to enable different
# firewall access policies for different groups
# of clients.  There are two methods:
# (1) Run multiple OpenVPN daemons, one for each
#     group, and firewall the TUN/TAP interface
#     for each group/daemon appropriately.
# (2) (Advanced) Create a script to dynamically
#     modify the firewall in response to access
#     from different clients.  See man
#     page for more info on learn-address script.
;learn-address ./script

# If enabled, this directive will configure
# all clients to redirect their default
# network gateway through the VPN, causing
# all IP traffic such as web browsing and
# and DNS lookups to go through the VPN
# (The OpenVPN server machine may need to NAT
# or bridge the TUN/TAP interface to the internet
# in order for this to work properly).
;push "redirect-gateway def1 bypass-dhcp"

# Certain Windows-specific network settings
# can be pushed to clients, such as DNS
# or WINS server addresses.  CAVEAT:
# http://openvpn.net/faq.html#dhcpcaveats
# The addresses below refer to the public
# DNS servers provided by opendns.com.
;push "dhcp-option DNS 208.67.222.222"
;push "dhcp-option DNS 208.67.220.220"

# Uncomment this directive to allow different
# clients to be able to "see" each other.
# By default, clients will only see the server.
# To force clients to only see the server, you
# will also need to appropriately firewall the
# server's TUN/TAP interface.
;client-to-client

# Uncomment this directive if multiple clients
# might connect with the same certificate/key
# files or common names.  This is recommended
# only for testing purposes.  For production use,
# each client should have its own certificate/key
# pair.
#
# IF YOU HAVE NOT GENERATED INDIVIDUAL
# CERTIFICATE/KEY PAIRS FOR EACH CLIENT,
# EACH HAVING ITS OWN UNIQUE "COMMON NAME",
# UNCOMMENT THIS LINE OUT.
;duplicate-cn

# The keepalive directive causes ping-like
# messages to be sent back and forth over
# the link so that each side knows when
# the other side has gone down.
# Ping every 10 seconds, assume that remote
# peer is down if no ping received during
# a 120 second time period.
keepalive 10 120

# For extra security beyond that provided
# by SSL/TLS, create an "HMAC firewall"
# to help block DoS attacks and UDP port flooding.
#
# Generate with:
#   openvpn --genkey --secret ta.key
#
# The server and each client must have
# a copy of this key.
# The second parameter should be '0'
# on the server and '1' on the clients.
tls-auth ta.key 0 # This file is secret
key-direction 0

# Select a cryptographic cipher.
# This config item must be copied to
# the client config file as well.
# Note that v2.4 client/server will automatically
# negotiate AES-256-GCM in TLS mode.
# See also the ncp-cipher option in the manpage
cipher AES-128-CBC
auth SHA256

# Enable compression on the VPN link and push the
# option to the client (v2.4+ only, for earlier
# versions see below)
;compress lz4-v2
;push "compress lz4-v2"

# For compression compatible with older clients use comp-lzo
# If you enable it here, you must also
# enable it in the client config file.
;comp-lzo

# The maximum number of concurrently connected
# clients we want to allow.
;max-clients 100

# It's a good idea to reduce the OpenVPN
# daemon's privileges after initialization.
#
# You can uncomment this out on
# non-Windows systems.
user nobody
group nogroup

# The persist options will try to avoid
# accessing certain resources on restart
# that may no longer be accessible because
# of the privilege downgrade.
persist-key
persist-tun

# Output a short status file showing
# current connections, truncated
# and rewritten every minute.
status /var/log/openvpn/openvpn-status.log

# By default, log messages will go to the syslog (or
# on Windows, if running as a service, they will go to
# the "Program FilesOpenVPNlog" directory).
# Use log or log-append to override this default.
# "log" will truncate the log file on OpenVPN startup,
# while "log-append" will append to it.  Use one
# or the other (but not both).
;log         /var/log/openvpn/openvpn.log
;log-append  /var/log/openvpn/openvpn.log

# Set the appropriate level of log
# file verbosity.
#
# 0 is silent, except for fatal errors
# 4 is reasonable for general usage
# 5 and 6 can help to debug connection problems
# 9 is extremely verbose
verb 3

# Silence repeating messages.  At most 20
# sequential messages of the same message
# category will be output to the log.
;mute 20

# Notify the client that when the server restarts so it
# can automatically reconnect.
explicit-exit-notify 1

FX-8350 тащит


Аватара пользователя

Я_Максим

Сообщения: 207
Зарегистрирован: 10 ноя 2017, 19:25
Решено: 1
Благодарил (а): 32 раза
Контактная информация:

Установка OpenVPN Сервера на Ubuntu 18.04

#16

03 дек 2018, 21:39

di_mok,

Код: Выделить всё

#################################################
# Sample OpenVPN 2.0 config file for            #
# multi-client server.                          #
#                                               #
# This file is for the server side              #
# of a many-clients <-> one-server              #
# OpenVPN configuration.                        #
#                                               #
# OpenVPN also supports                         #
# single-machine <-> single-machine             #
# configurations (See the Examples page         #
# on the web site for more info).               #
#                                               #
# This config should work on Windows            #
# or Linux/BSD systems.  Remember on            #
# Windows to quote pathnames and use            #
# double backslashes, e.g.:                     #
# "C:\Program Files\OpenVPN\config\foo.key" #
#                                               #
# Comments are preceded with '#' or ';'         #
#################################################

# Which local IP address should OpenVPN
# listen on? (optional)
;local a.b.c.d

# Which TCP/UDP port should OpenVPN listen on?
# If you want to run multiple OpenVPN instances
# on the same machine, use a different port
# number for each one.  You will need to
# open up this port on your firewall.
port 1194

# TCP or UDP server?
proto tcp
;proto udp

# "dev tun" will create a routed IP tunnel,
# "dev tap" will create an ethernet tunnel.
# Use "dev tap0" if you are ethernet bridging
# and have precreated a tap0 virtual interface
# and bridged it with your ethernet interface.
# If you want to control access policies
# over the VPN, you must create firewall
# rules for the the TUN/TAP interface.
# On non-Windows systems, you can give
# an explicit unit number, such as tun0.
# On Windows, use "dev-node" for this.
# On most systems, the VPN will not function
# unless you partially or fully disable
# the firewall for the TUN/TAP interface.
;dev tap
dev tun

# Windows needs the TAP-Win32 adapter name
# from the Network Connections panel if you
# have more than one.  On XP SP2 or higher,
# you may need to selectively disable the
# Windows firewall for the TAP adapter.
# Non-Windows systems usually don't need this.
;dev-node MyTap

# SSL/TLS root certificate (ca), certificate
# (cert), and private key (key).  Each client
# and the server must have their own cert and
# key file.  The server and all clients will
# use the same ca file.
#
# See the "easy-rsa" directory for a series
# of scripts for generating RSA certificates
# and private keys.  Remember to use
# a unique Common Name for the server
# and each of the client certificates.
#
# Any X509 key management system can be used.
# OpenVPN can also use a PKCS #12 formatted key file
# (see "pkcs12" directive in man page).
ca ca.crt
cert server.crt
key server.key  # This file should be kept secret

# Diffie hellman parameters.
# Generate your own with:
#   openssl dhparam -out dh2048.pem 2048
dh dh2048.pem

# Network topology
# Should be subnet (addressing via IP)
# unless Windows clients v2.0.9 and lower have to
# be supported (then net30, i.e. a /30 per client)
# Defaults to net30 (not recommended)
;topology subnet

# Configure server mode and supply a VPN subnet
# for OpenVPN to draw client addresses from.
# The server will take 10.8.0.1 for itself,
# the rest will be made available to clients.
# Each client will be able to reach the server
# on 10.8.0.1. Comment this line out if you are
# ethernet bridging. See the man page for more info.
server 10.8.0.0 255.255.255.0

# Maintain a record of client <-> virtual IP address
# associations in this file.  If OpenVPN goes down or
# is restarted, reconnecting clients can be assigned
# the same virtual IP address from the pool that was
# previously assigned.
ifconfig-pool-persist /var/log/openvpn/ipp.txt

# Configure server mode for ethernet bridging.
# You must first use your OS's bridging capability
# to bridge the TAP interface with the ethernet
# NIC interface.  Then you must manually set the
# IP/netmask on the bridge interface, here we
# assume 10.8.0.4/255.255.255.0.  Finally we
# must set aside an IP range in this subnet
# (start=10.8.0.50 end=10.8.0.100) to allocate
# to connecting clients.  Leave this line commented
# out unless you are ethernet bridging.
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100

# Configure server mode for ethernet bridging
# using a DHCP-proxy, where clients talk
# to the OpenVPN server-side DHCP server
# to receive their IP address allocation
# and DNS server addresses.  You must first use
# your OS's bridging capability to bridge the TAP
# interface with the ethernet NIC interface.
# Note: this mode only works on clients (such as
# Windows), where the client-side TAP adapter is
# bound to a DHCP client.
;server-bridge

# Push routes to the client to allow it
# to reach other private subnets behind
# the server.  Remember that these
# private subnets will also need
# to know to route the OpenVPN client
# address pool (10.8.0.0/255.255.255.0)
# back to the OpenVPN server.
;push "route 192.168.10.0 255.255.255.0"
;push "route 192.168.20.0 255.255.255.0"

# To assign specific IP addresses to specific
# clients or if a connecting client has a private
# subnet behind it that should also have VPN access,
# use the subdirectory "ccd" for client-specific
# configuration files (see man page for more info).

# EXAMPLE: Suppose the client
# having the certificate common name "Thelonious"
# also has a small subnet behind his connecting
# machine, such as 192.168.40.128/255.255.255.248.
# First, uncomment out these lines:
;client-config-dir ccd
;route 192.168.40.128 255.255.255.248
# Then create a file ccd/Thelonious with this line:
#   iroute 192.168.40.128 255.255.255.248
# This will allow Thelonious' private subnet to
# access the VPN.  This example will only work
# if you are routing, not bridging, i.e. you are
# using "dev tun" and "server" directives.

# EXAMPLE: Suppose you want to give
# Thelonious a fixed VPN IP address of 10.9.0.1.
# First uncomment out these lines:
;client-config-dir ccd
;route 10.9.0.0 255.255.255.252
# Then add this line to ccd/Thelonious:
#   ifconfig-push 10.9.0.1 10.9.0.2

# Suppose that you want to enable different
# firewall access policies for different groups
# of clients.  There are two methods:
# (1) Run multiple OpenVPN daemons, one for each
#     group, and firewall the TUN/TAP interface
#     for each group/daemon appropriately.
# (2) (Advanced) Create a script to dynamically
#     modify the firewall in response to access
#     from different clients.  See man
#     page for more info on learn-address script.
;learn-address ./script

# If enabled, this directive will configure
# all clients to redirect their default
# network gateway through the VPN, causing
# all IP traffic such as web browsing and
# and DNS lookups to go through the VPN
# (The OpenVPN server machine may need to NAT
# or bridge the TUN/TAP interface to the internet
# in order for this to work properly).
;push "redirect-gateway def1 bypass-dhcp"

# Certain Windows-specific network settings
# can be pushed to clients, such as DNS
# or WINS server addresses.  CAVEAT:
# http://openvpn.net/faq.html#dhcpcaveats
# The addresses below refer to the public
# DNS servers provided by opendns.com.
;push "dhcp-option DNS 208.67.222.222"
;push "dhcp-option DNS 208.67.220.220"

# Uncomment this directive to allow different
# clients to be able to "see" each other.
# By default, clients will only see the server.
# To force clients to only see the server, you
# will also need to appropriately firewall the
# server's TUN/TAP interface.
;client-to-client

# Uncomment this directive if multiple clients
# might connect with the same certificate/key
# files or common names.  This is recommended
# only for testing purposes.  For production use,
# each client should have its own certificate/key
# pair.
#
# IF YOU HAVE NOT GENERATED INDIVIDUAL
# CERTIFICATE/KEY PAIRS FOR EACH CLIENT,
# EACH HAVING ITS OWN UNIQUE "COMMON NAME",
# UNCOMMENT THIS LINE OUT.
;duplicate-cn

# The keepalive directive causes ping-like
# messages to be sent back and forth over
# the link so that each side knows when
# the other side has gone down.
# Ping every 10 seconds, assume that remote
# peer is down if no ping received during
# a 120 second time period.
keepalive 10 120

# For extra security beyond that provided
# by SSL/TLS, create an "HMAC firewall"
# to help block DoS attacks and UDP port flooding.
#
# Generate with:
#   openvpn --genkey --secret ta.key
#
# The server and each client must have
# a copy of this key.
# The second parameter should be '0'
# on the server and '1' on the clients.
tls-auth ta.key 0 # This file is secret
key-direction 0

# Select a cryptographic cipher.
# This config item must be copied to
# the client config file as well.
# Note that v2.4 client/server will automatically
# negotiate AES-256-GCM in TLS mode.
# See also the ncp-cipher option in the manpage
cipher AES-128-CBC
auth SHA256

# Enable compression on the VPN link and push the
# option to the client (v2.4+ only, for earlier
# versions see below)
;compress lz4-v2
;push "compress lz4-v2"

# For compression compatible with older clients use comp-lzo
# If you enable it here, you must also
# enable it in the client config file.
;comp-lzo

# The maximum number of concurrently connected
# clients we want to allow.
;max-clients 100

# It's a good idea to reduce the OpenVPN
# daemon's privileges after initialization.
#
# You can uncomment this out on
# non-Windows systems.
user nobody
group nogroup

# The persist options will try to avoid
# accessing certain resources on restart
# that may no longer be accessible because
# of the privilege downgrade.
persist-key
persist-tun

# Output a short status file showing
# current connections, truncated
# and rewritten every minute.
status /var/log/openvpn/openvpn-status.log

# By default, log messages will go to the syslog (or
# on Windows, if running as a service, they will go to
# the "Program FilesOpenVPNlog" directory).
# Use log or log-append to override this default.
# "log" will truncate the log file on OpenVPN startup,
# while "log-append" will append to it.  Use one
# or the other (but not both).
;log         /var/log/openvpn/openvpn.log
;log-append  /var/log/openvpn/openvpn.log

# Set the appropriate level of log
# file verbosity.
#
# 0 is silent, except for fatal errors
# 4 is reasonable for general usage
# 5 and 6 can help to debug connection problems
# 9 is extremely verbose
verb 3

# Silence repeating messages.  At most 20
# sequential messages of the same message
# category will be output to the log.
;mute 20

# Notify the client that when the server restarts so it
# can automatically reconnect.
explicit-exit-notify 1

FX-8350 тащит


Аватара пользователя

di_mok

Сообщения: 5440
Зарегистрирован: 27 авг 2016, 19:06
Решено: 32
Откуда: Арзамас
Благодарил (а): 1569 раз
Поблагодарили: 1263 раза
Контактная информация:

Установка OpenVPN Сервера на Ubuntu 18.04

#17

03 дек 2018, 21:42

Я_Максим, systemctl status openvpn@server.service и journalctl -xe покажи

Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)
Изображение


Аватара пользователя

Я_Максим

Сообщения: 207
Зарегистрирован: 10 ноя 2017, 19:25
Решено: 1
Благодарил (а): 32 раза
Контактная информация:

Установка OpenVPN Сервера на Ubuntu 18.04

#18

03 дек 2018, 21:42

di_mok,

Код: Выделить всё

scool11@server:~$ journalctl -xe
-- Subject: Завершена остановка юнита openvpn@server.service.
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- Процесс остановки юнита openvpn@server.service был завершен.
дек 03 23:43:11 server systemd[1]: Starting OpenVPN connection to server...
-- Subject: Начинается запуск юнита openvpn@server.service
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- Начат процесс запуска юнита openvpn@server.service.
дек 03 23:43:11 server ovpn-server[12019]: Options error: --explicit-exit-notify
дек 03 23:43:11 server ovpn-server[12019]: Use --help for more information.
дек 03 23:43:11 server systemd[1]: openvpn@server.service: Main process exited, 
дек 03 23:43:11 server systemd[1]: openvpn@server.service: Failed with result 'e
дек 03 23:43:11 server systemd[1]: Failed to start OpenVPN connection to server.
-- Subject: Ошибка юнита openvpn@server.service
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- Произошел сбой юнита openvpn@server.service.
-- 
-- Результат: RESULT.
lines 3244-3266/3266 (END)

FX-8350 тащит


Аватара пользователя

Я_Максим

Сообщения: 207
Зарегистрирован: 10 ноя 2017, 19:25
Решено: 1
Благодарил (а): 32 раза
Контактная информация:

Установка OpenVPN Сервера на Ubuntu 18.04

#19

03 дек 2018, 21:43

di_mok,

Код: Выделить всё

scool11@server:~$ systemctl status openvpn@server.service
● openvpn@server.service - OpenVPN connection to server
   Loaded: loaded (/lib/systemd/system/openvpn@.service; indirect; vendor preset
   Active: activating (auto-restart) (Result: exit-code) since Mon 2018-12-03 23
     Docs: man:openvpn(8)
           https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
           https://community.openvpn.net/openvpn/wiki/HOWTO
  Process: 12055 ExecStart=/usr/sbin/openvpn --daemon ovpn-server --status /run/
 Main PID: 12055 (code=exited, status=1/FAILURE)
lines 1-8/8 (END)

FX-8350 тащит


Аватара пользователя

di_mok

Сообщения: 5440
Зарегистрирован: 27 авг 2016, 19:06
Решено: 32
Откуда: Арзамас
Благодарил (а): 1569 раз
Поблагодарили: 1263 раза
Контактная информация:

Установка OpenVPN Сервера на Ubuntu 18.04

#20

03 дек 2018, 22:39

Расскомментируй еще в конфиге

Код: Выделить всё

log         /var/log/openvpn/openvpn.log
log-append  /var/log/openvpn/openvpn.log

Запусти опять sudo systemctl start openvpn@server И посмотрим, что там

Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)
Изображение


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

В Ubuntu используется оболочка под названием UFW или  Uncomplicated FireWall. В этой статье мы разберём, как выполняется настройка UFW Ubuntu, а также как пользоваться основными возможностями этой программы.

1. Синтаксис ufw

Для управления возможностями брандмауэра используется одноимённая команда — ufw. Давайте сначала рассмотрим её опции и параметры, а потом перейдём к настройке. Синтаксис команды такой:

$ ufw опции действие параметры

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

Сначала разберём опции утилиты:

  • —version — вывести версию брандмауэра;
  • —dry-run — тестовый запуск, никакие реальные действия не выполняются.

2. Команды UFW

Для выполнения действий с утилитой доступны такие команды:

  • enable — включить фаерволл и добавить его в автозагрузку;
  • disable — отключить фаерволл и удалить его из автозагрузки;
  • reload — перезагрузить файервол;
  • default — задать политику по умолчанию, доступно allow, deny и reject, а также три вида трафика — incoming, outgoing или routed;
  • logging — включить журналирование или изменить уровень подробности;
  • reset — сбросить все настройки до состояния по умолчанию;
  • status — посмотреть состояние фаервола;
  • show — посмотреть один из отчётов о работе;
  • allow — добавить разрешающее правило;
  • deny — добавить запрещающее правило;
  • reject — добавить отбрасывающее правило;
  • limit — добавить лимитирующее правило;
  • delete — удалить правило;
  • insert — вставить правило.

Это были все опции и команды, которые вы можете использовать в ufw. Как видите, их намного меньше, чем в iptables и всё выглядит намного проще, а теперь давайте рассмотрим несколько примеров настройки.

Настройка UFW Ubuntu

1. Как включить UFW

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

sudo ufw status

Если он не включён, то его необходимо включить:

sudo ufw enable

Затем вы можете снова посмотреть состояние:

sudo ufw status

Обратите внимание, что если вы работаете по SSH, то перед тем, как включать брандмауэр, нужно добавить правило, разрешающее работу по SSH, иначе у вас не будет доступа к серверу. Подождите с включением до пункта 3.

2. Политика по умолчанию

Перед тем, как мы перейдём к добавлению правил, необходимо указать политику по умолчанию. Какие действия будут применяться к пакетам, если они не подпадают под созданные правила ufw. Все входящие пакеты будем отклонять:

sudo ufw default deny incoming

А все исходящие разрешим:

sudo ufw default allow outgoing

3. Добавление правил UFW

Чтобы создать разрешающее правило, используется команда allow. Вместо allow могут использоваться и запрещающие правила ufw — deny и reject. Они отличаются тем, что для deny компьютер отсылает отправителю пакет с уведомлением об ошибке, а для reject просто отбрасывает пакет и ничего не отсылает. Для добавления правил можно использовать простой синтаксис:

$ ufw allow имя_службы
$ ufw allow порт
$ ufw allow порт/протокол

Например, чтобы открыть порт ufw для SSH, можно добавить одно из этих правил:

sudo ufw allow OpenSSH
sudo ufw allow 22
sudo ufw allow 22/tcp

Первое и второе правила разрешают входящие и исходящие подключения к порту 22 для любого протокола, третье правило разрешает входящие и исходящие подключения для порта 22 только по протоколу tcp.

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

sudo ufw app list

Можно также указать направление следования трафика с помощью слов out для исходящего и in для входящего.

$ ufw allow направление порт

Например, разрешим только исходящий трафик на порт 80, а входящий запретим:

sudo ufw allow out 80/tcp
sudo ufw deny in 80/tcp

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

$ ufw allow proto протокол from ip_источника to ip_назначения port порт_назначения

В качестве ip_источника может использоваться также и адрес подсети. Например, разрешим доступ со всех IP-адресов для интерфейса eth0 по протоколу tcp к нашему IP-адресу и порту 3318:

sudo ufw allow proto tcp from 0.0.0.0/24 to 192.168.1.5 port 3318

4. Правила limit ufw

С помощью правил limit можно ограничить количество подключений к определённому порту с одного IP-адреса, это может быть полезно для защиты от атак перебора паролей. По умолчанию подключения блокируются, если пользователь пытается создать шесть и больше подключений за 30 секунд:

sudo ufw limit ssh/tcp

К сожалению, настроить время и количество запросов можно только через iptables.

5. Просмотр состояния UFW

Посмотреть состояние и действующие на данный момент правила можно командой status:

sudo ufw status

Чтобы получить более подробную информацию, используйте параметр verbose:

sudo ufw status verbose

С помощью команды show можно посмотреть разные отчеты:

  • raw — все активные правила в формате iptables;
  • builtins — правила, добавленные по умолчанию;
  • before-rules — правила, которые выполняются перед принятием пакета;
  • user-rules — правила, добавленные пользователем;
  • after-rules — правила, которые выполняются после принятия пакета;
  • logging-rules — правила логгирования пакетов;
  • listening — отображает все прослушиваемые порты и правила для них;
  • added — недавно добавленные правила;

Например, посмотрим список всех правил iptables:

sudo ufw show raw

Посмотрим все прослушиваемые порты:

sudo ufw show listening

Или недавно добавленные правила:

sudo ufw show added

6. Удаление правил ufw

Чтобы удалить правило ufw, используется команда delete. Например, удалим ранее созданные правила для порта 80:

sudo ufw delete allow out 80/tcp
sudo ufw delete deny in 80/tcp

7. Логгирование в ufw

Чтобы отлаживать работу ufw, могут понадобится журналы работы брандмауэра. Для включения журналирования используется команда logging:

sudo ufw logging on
sudo ufw logging medium

Также этой командой можно изменить уровень логгирования:

  • low — минимальный, только заблокированные пакеты;
  • medium — средний, заблокированные и разрешённые пакеты;
  • high — высокий.

Лог сохраняется в папке /var/log/ufw. Каждая строчка лога имеет такой синтаксис:

[UFW действие] IN=интерфейс OUT=итерфейс SRC=ip_источника DST=ip_назначения LEN=размер_пакета TOS=0x10 PREC=0x00 TTL=64 ID=728 DF PROTO=протокол SPT=порт_источника DPT=порт назначения LEN=размер_пакета

В качестве действия приводится то, что UFW сделал с пакетом, например ALLOW, BLOCK или AUDIT. Благодаря анализу лога настройка UFW Ubuntu станет гораздо проще.

8. Отключение UFW

Если вы хотите полностью отключить UFW, для этого достаточно использовать команду disable:

sudo ufw disable

Также, если вы что-то испортили в настройках и не знаете как исправить, можно использовать команду reset для сброса настроек до состояния по умолчанию:

sudo ufw reset

Выводы

В этой небольшой статье мы разобрали, как настроить UFW Ubuntu для защиты вашего компьютера от угроз из сети. Это особенно актуально для серверов, потому что они постоянно доступны из интернета.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Время прочтения
8 мин

Просмотры 20K

UFW (Uncomplicated Firewall) – это интерфейс iptables, предназначенный для упрощения процесса настройки брандмауэра. Инструмент iptables надёжный и гибкий, но новичку будет непросто настроить его самостоятельно. Я как раз новичок в этом деле.

По умолчанию в iptables включена политика ACCEPT и выглядет это так:

В нашем примере нет никаких ограничений. Политика по умолчанию — ACCEPT.

INPUT – ВХОДЯЩИЕ СОЕДИНЕНИЯ.
OUTPUT – ИСХОДЯЩИЕ СОЕДИНЕНИЯ.
FORWARD – МАРШРУТИЗАЦИЯ (НАПРИМЕР, НЕОБХОДИМО ПРОПИСАТЬ МАРШРУТ к компьютеру за шлюзом).

Включить ufw можно командой sudo ufw enable
И сразу же после этой команды политика iptables поменяется.
Вот как она выглядит на BigBlueButton после включения ufw:

Chain INPUT (policy DROP)
target     prot opt source               destination
ufw-before-logging-input  all  --  anywhere             anywhere
ufw-before-input  all  --  anywhere             anywhere
ufw-after-input  all  --  anywhere             anywhere
ufw-after-logging-input  all  --  anywhere             anywhere
ufw-reject-input  all  --  anywhere             anywhere
ufw-track-input  all  --  anywhere             anywhere

Chain FORWARD (policy DROP)
target     prot opt source               destination
ufw-before-logging-forward  all  --  anywhere             anywhere
ufw-before-forward  all  --  anywhere             anywhere
ufw-after-forward  all  --  anywhere             anywhere
ufw-after-logging-forward  all  --  anywhere             anywhere
ufw-reject-forward  all  --  anywhere             anywhere
ufw-track-forward  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ufw-before-logging-output  all  --  anywhere             anywhere
ufw-before-output  all  --  anywhere             anywhere
ufw-after-output  all  --  anywhere             anywhere
ufw-after-logging-output  all  --  anywhere             anywhere
ufw-reject-output  all  --  anywhere             anywhere
ufw-track-output  all  --  anywhere             anywhere

Chain ufw-after-forward (1 references)
target     prot opt source               destination

Chain ufw-after-input (1 references)
target     prot opt source               destination
ufw-skip-to-policy-input  udp  --  anywhere             anywhere             udp dpt:netbios-ns
ufw-skip-to-policy-input  udp  --  anywhere             anywhere             udp dpt:netbios-dgm
ufw-skip-to-policy-input  tcp  --  anywhere             anywhere             tcp dpt:netbios-ssn
ufw-skip-to-policy-input  tcp  --  anywhere             anywhere             tcp dpt:microsoft-ds
ufw-skip-to-policy-input  udp  --  anywhere             anywhere             udp dpt:bootps
ufw-skip-to-policy-input  udp  --  anywhere             anywhere             udp dpt:bootpc
ufw-skip-to-policy-input  all  --  anywhere             anywhere             ADDRTYPE match dst-type BROADCAST

Chain ufw-after-logging-forward (1 references)
target     prot opt source               destination
LOG        all  --  anywhere             anywhere             limit: avg 3/min burst 10 LOG level warning prefix "[UFW BLOCK] "

Chain ufw-after-logging-input (1 references)
target     prot opt source               destination
LOG        all  --  anywhere             anywhere             limit: avg 3/min burst 10 LOG level warning prefix "[UFW BLOCK] "

Chain ufw-after-logging-output (1 references)
target     prot opt source               destination

Chain ufw-after-output (1 references)
target     prot opt source               destination

Chain ufw-before-forward (1 references)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere             icmp destination-unreachable
ACCEPT     icmp --  anywhere             anywhere             icmp source-quench
ACCEPT     icmp --  anywhere             anywhere             icmp time-exceeded
ACCEPT     icmp --  anywhere             anywhere             icmp parameter-problem
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
ufw-user-forward  all  --  anywhere             anywhere

Chain ufw-before-input (1 references)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ufw-logging-deny  all  --  anywhere             anywhere             ctstate INVALID
DROP       all  --  anywhere             anywhere             ctstate INVALID
ACCEPT     icmp --  anywhere             anywhere             icmp destination-unreachable
ACCEPT     icmp --  anywhere             anywhere             icmp source-quench
ACCEPT     icmp --  anywhere             anywhere             icmp time-exceeded
ACCEPT     icmp --  anywhere             anywhere             icmp parameter-problem
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
ACCEPT     udp  --  anywhere             anywhere             udp spt:bootps dpt:bootpc
ufw-not-local  all  --  anywhere             anywhere
ACCEPT     udp  --  anywhere             224.0.0.251          udp dpt:mdns
ACCEPT     udp  --  anywhere             239.255.255.250      udp dpt:1900
ufw-user-input  all  --  anywhere             anywhere

Chain ufw-before-logging-forward (1 references)
target     prot opt source               destination

Chain ufw-before-logging-input (1 references)
target     prot opt source               destination

Chain ufw-before-logging-output (1 references)
target     prot opt source               destination

Chain ufw-before-output (1 references)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ufw-user-output  all  --  anywhere             anywhere

Chain ufw-logging-allow (0 references)
target     prot opt source               destination
LOG        all  --  anywhere             anywhere             limit: avg 3/min burst 10 LOG level warning prefix "[UFW ALLOW] "

Chain ufw-logging-deny (2 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere             ctstate INVALID limit: avg 3/min burst 10
LOG        all  --  anywhere             anywhere             limit: avg 3/min burst 10 LOG level warning prefix "[UFW BLOCK] "

Chain ufw-not-local (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere             ADDRTYPE match dst-type LOCAL
RETURN     all  --  anywhere             anywhere             ADDRTYPE match dst-type MULTICAST
RETURN     all  --  anywhere             anywhere             ADDRTYPE match dst-type BROADCAST
ufw-logging-deny  all  --  anywhere             anywhere             limit: avg 3/min burst 10
DROP       all  --  anywhere             anywhere

Chain ufw-reject-forward (1 references)
target     prot opt source               destination

Chain ufw-reject-input (1 references)
target     prot opt source               destination

Chain ufw-reject-output (1 references)
target     prot opt source               destination

Chain ufw-skip-to-policy-forward (0 references)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere

Chain ufw-skip-to-policy-input (7 references)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere

Chain ufw-skip-to-policy-output (0 references)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

Chain ufw-track-forward (1 references)
target     prot opt source               destination

Chain ufw-track-input (1 references)
target     prot opt source               destination

Chain ufw-track-output (1 references)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             ctstate NEW
ACCEPT     udp  --  anywhere             anywhere             ctstate NEW

Chain ufw-user-forward (1 references)
target     prot opt source               destination

Chain ufw-user-input (1 references)
target     prot opt source               destination
<b>ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     udp  --  anywhere             anywhere             udp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:1935
ACCEPT     udp  --  anywhere             anywhere             udp dpt:1935
ACCEPT     udp  --  anywhere             anywhere             multiport dports 16384:32768
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     udp  --  anywhere             anywhere             udp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     udp  --  anywhere             anywhere             udp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:5090
ACCEPT     udp  --  anywhere             anywhere             udp dpt:5090
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:sip
ACCEPT     udp  --  anywhere             anywhere             udp dpt:sip
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:5066
ACCEPT     udp  --  anywhere             anywhere             udp dpt:5066
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:tproxy
ACCEPT     udp  --  anywhere             anywhere             udp dpt:8081
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:8082
ACCEPT     udp  --  anywhere             anywhere             udp dpt:8082
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:3000
ACCEPT     udp  --  anywhere             anywhere             udp dpt:3000
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:2855
ACCEPT     udp  --  anywhere             anywhere             udp dpt:2855
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:2856
ACCEPT     udp  --  anywhere             anywhere             udp dpt:2856</b>

Chain ufw-user-limit (0 references)
target     prot opt source               destination
LOG        all  --  anywhere             anywhere             limit: avg 3/min burst 5 LOG level warning prefix "[UFW LIMIT BLOCK] "
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain ufw-user-limit-accept (0 references)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

Chain ufw-user-logging-forward (0 references)
target     prot opt source               destination

Chain ufw-user-logging-input (0 references)
target     prot opt source               destination

Chain ufw-user-logging-output (0 references)
target     prot opt source               destination

Chain ufw-user-output (1 references)
target     prot opt source               destination

Выделенная область – это место для правил пользователя, они прописываются командами:

Для порта:

sudo ufw allow ssh (по названию порта)
sudo ufw allow 22 (конкретно указать номер порта)
sudo ufw allow 80/udp (конкретно с указанием номера порта и протокола tcp или udp)

Для диапазона портов:

sudo ufw allow 16384:32768/udp

Удаление правил:

sudo ufw delete allow 80

Выкладываю порядок действий по настройке ufw на примере bbb.

Во-первых, смотрим какие сервисы какие порты слушают:

netstat -ntlp | grep LISTEN

tcp 0 0 xxx.xxx.xxx.x:5090 0.0.0.0:* LISTEN 1258/freeswitch
tcp 0 0 127.0.0.1:8100 0.0.0.0:* LISTEN 1720/soffice.bin
tcp 0 0 xxx.xxx.xxx.x:5060 0.0.0.0:* LISTEN 1258/freeswitch
tcp 0 0 127.0.0.1:8101 0.0.0.0:* LISTEN 1766/soffice.bin
tcp 0 0 127.0.0.1:8102 0.0.0.0:* LISTEN 1811/soffice.bin
tcp 0 0 127.0.0.1:8103 0.0.0.0:* LISTEN 1856/soffice.bin
tcp 0 0 xxx.xxx.xxx.x:2855 0.0.0.0:* LISTEN 1258/freeswitch
tcp 0 0 127.0.0.1:8104 0.0.0.0:* LISTEN 1902/soffice.bin
tcp 0 0 xxx.xxx.xxx.x:2856 0.0.0.0:* LISTEN 1258/freeswitch
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 1186/mongod
tcp 0 0 xxx.xxx.xxx.x:5066 0.0.0.0:* LISTEN 1258/freeswitch
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 1227/redis-server 1
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1359/nginx -g daemo
tcp 0 0 xxx.xxx.xxx.x:8081 0.0.0.0:* LISTEN 1258/freeswitch
tcp 0 0 xxx.xxx.xxx.x:8082 0.0.0.0:* LISTEN 1258/freeswitch
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1176/sshd
tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN 1195/node
tcp6 0 0 ::1:5090 :::* LISTEN 1258/freeswitch
tcp6 0 0 ::1:5060 :::* LISTEN 1258/freeswitch
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 1341/java
tcp6 0 0 :::5070 :::* LISTEN 1461/java
tcp6 0 0 :::9999 :::* LISTEN 1461/java
tcp6 0 0 :::1935 :::* LISTEN 1461/java
tcp6 0 0 :::8080 :::* LISTEN 1341/java
tcp6 0 0 :::80 :::* LISTEN 1359/nginx -g daemo
tcp6 0 0 ::1:8081 :::* LISTEN 1258/freeswitch
tcp6 0 0 ::1:8082 :::* LISTEN 1258/freeswitch
tcp6 0 0 :::8021 :::* LISTEN 1258/freeswitch
tcp6 0 0 :::22 :::* LISTEN 1176/sshd
tcp6 0 0 :::5080 :::* LISTEN 1461/java

Нас интересуют строчки с xxx.xxx.xxx.x (xxx.xxx.xxx.x – ip-адрес вашего сервера), так как это указывает что сервис слушает сетевую карту на наличие входящих запросов из всех сетей (0.0.0.0:*). Строчки с 127.0.0.1 нас не интересуют так как это внутренний интерфейс, так же нас интересует сточки с 0.0.0.0 в 4 столбце (выделен жирным), например

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1359/nginx -g daemo

так как это говорит, что 80 порт открыт для всех интерфейсов сервера и принимает запросы со всех сетей.

Итак, согласно этому составляем правила:

sudo ufw allow 22 для ssh
sudo ufw allow 80 для вебсервера nginx или apache

Целый ряд правил для freeswitch:

sudo ufw allow 5060
sudo ufw allow 5090
sudo ufw allow 2855
sudo ufw allow 2856
sudo ufw allow 5066
sudo ufw allow 8081
sudo ufw allow 8082

для сервиса node:

sudo ufw allow 3000
Далее необходимо посмотреть все-таки документацию, в которой мы увидим что необходимо открыть следующие порты:

sudo ufw allow 16384:32768/udp — для работы WebRTC
sudo ufw allow 443
sudo ufw allow 1935

На этом базовая настройка ufw для сервера BigBlueButton 2.0 закончена.

Добавлю только то, что желательно или отключать ssh или менять порт, или разрешить этот порт только для определенной сети, например для сети вашего предприятия.

К примеру, ваш шлюз имеет два сетевых интерфейса один виртуальный (к пользователям) 192.168.3.2, а другой реальный 105.ххх.ххх.ххх (к провайдеру), вот для правила ufw берем реальный ip, а точнее указываем сеть, которой принадлежит этот ip.

Сначала меняем порт в конфигурационном файле SSH сервера, воспользоваться можно любым текстовым редактором:

vim /etc/ssh/sshd_config

Затем удаляем правило, разрешающее 22 порт:

Sudo ufw delete allow 22 – иногда называется OpenSSH.

Создаем правило разрешающее подключение к новому порту только из сети предприятия:

sudo ufw allow from 105.ххх.ххх.ххх/26 to any port 4321

Затем перезагружаем ssh сервис:

/etc/init.d/ssh restart

И смотрим результат

netstat -ntlp | grep LISTEN

tcp   0    0.0.0.0:4321    0.0.0.0:*     listen   5676/sshd

а в правилах ufw увидим, кто имеет доступ к порту:

ufw status

4321      ALLOW       105.xxx.xxx.xxx/26

Уважаемые читатели прошу Вас писать дополнения в комментариях: Как вы считаете, все ли правильно здесь описано, или же необходимо что-то добавить или убрать?

Понравилась статья? Поделить с друзьями:
  • Sudo service apache2 restart error
  • Sudo rmmod r8188eu ko rmmod error module r8188eu is not currently loaded
  • Sudo parse error in etc sudoers near line
  • Sudo mysql error 1045 28000 access denied for user root localhost using password no
  • Sudo error in etc sudo conf line 0 while loading plugin sudoers policy