Настройки сервисов
Здесь доступны:
- настройки виртуальной машины и панели в целом, кнопка «Настроить» в строке операций
- настройки отдельных сервисов — открываются по нажатию на название сервиса
- файрвол — одноименная кнопка в строке операций
Настройки сервисов панель предлагает редактировать в двух режимах:
- Базовый. Предлагает несколько настроек в виде форм, в которые можно вносить значения — панель сама преобразует их в нужный для конфигурационного файла вид
- Расширенный. Можно редактировать конфигурационный файл сервиса напрямую. Перед сохранением панель проверит, допущены ли синтаксические ошибки и не даст сохранить файл при их наличии.
Установка
Создать бокс с предустановленной панелью Hestia на базе ОС Ubuntu или Debian можно из Панели управления в пару кликов. Стандартные компоненты панели достаточно требовательны к ресурсам — стоит выбрать бокс с как минимум 1 Гб оперативной памяти.
Для созданных ранее боксов и при использовании другой ОС установка Hestia заключается в скачивании скрипта с сайта разработчика и его выполнении. Чтобы ее начать, подключитесь к боксу .
- Скачайте скрипт установки командой
wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh
- Запустите скрипт. Можно сразу добавить к нему ключ -l, чтобы панель установилась на русском языке, и ключ -о, чтобы установить несколько версий PHP сразу:
bash hst-install.sh -l ru -o yes
- Если при запуске видите ошибку с текстом «Error: group admin exists», повторите запуск с ключом —force:
bash hst-install.sh -l ru -o yes --force
- Ответьте на предварительные вопросы установщикаНачать ли установку:
Would you like to continue with the installation? [Y/N]: Y
Введите адрес администратора. На него придут данные для доступа в панель, когда установка завершится.
Please enter admin email address: your@email.com
Введите hostname бокса (например, домен, который планируете разместить):
Please enter FQDN hostname : yourdomain.ru
После завершения установки ПУ покажет данные для входа:
Admin URL: https://IP_БОКСА:8083 Username: admin Password: wMDfGxVC45wIjB6hb
- И предложит перезапустить бокс, сделайте это:
Do you want to reboot now? [Y/N] Y
Поддержка других входящих соединений
На этом этапе откроем доступ для других входящих соединений, которые сервер должен поддерживать. Мы уже знаем, как создавать правила для разрешения соединений на основе имени и порта сервиса. Мы уже сделали это для SSH на порте 22. Также можно разблокировать:
- HTTP на порте 80, который используется нешифрованными веб-серверами, с помощью или
- HTTPS на порте 443, который используется шифрованными веб-серверами, с помощью или
Помимо определения порта или сервиса есть и другие способы настроить поддержку соединений.
Настройка диапазонов портов
UFW позволяет разрешить трафик для диапазона портов. Некоторые приложения используют не один, а несколько портов.
Например, для разрешения соединений X11, разблокируем порты 6000-6007:
sudo ufw allow 6000:6007/tcp sudo ufw allow 6000:6007/udp
При определении диапазонов портов с помощью UFW, необходимо указать протокол ( или ), к которому будут применяться правила. Это не упоминалось выше, так как если не указывать протокол, оба протокола будут разрешены автоматически, что нормально для большинства сценариев.
Настройка доступа с IP-адреса
Также, UFW позволяет задать источник трафика с помощью IP-адресов. Например, если необходимо разрешить соединения с конкретного IP-адреса, например, с IP-адреса 203.0.113.4 рабочей или домашней зоны, необходимо указать и сам адрес:
sudo ufw allow from 203.0.113.4
Можно указать порт, к которому IP-адрес может подключаться, добавив и номер порта. Например, если адресу 203.0.113.4 нужно разрешить подключиться к порту 22 (SSH), используйте команду:
sudo ufw allow from 203.0.113.4 to any port 22
Настройка доступа из сети
Если необходимо настроить поддержку сети IP-адресов, можно это сделать с помощью нотации CIDR для определения маски подсети. Например, чтобы разрешить трафик от диапазона IP-адресов 203.0.113.1-203.0.113.254 , нужно ввести:
sudo ufw allow from 203.0.113.0/24
Аналогично, можно определить порт, к которому разрешен доступ подсети 203.0.113.0/24. В примере используем порт 22 (SSH):
sudo ufw allow from 203.0.113.0/24 to any port 22
Настройка соединения с определенным сетевым интерфейсом
Если нужно создать правило брандмауэра для конкретного сетевого интерфейса, используйте и название интерфейса сети.
Посмотреть доступные сетевые интерфейсы можно с помощью:
ip addr
В ответе вы увидите имена интерфейсов:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state . . . 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default . . .
Имена интерфейсов обычно имеют названия eth0, enp3s2 и так далее.
Например, для интерфейса можно разблокировать входящие соединения по HTTP (порт 80) с помощью:
sudo ufw allow in on eth0 to any port 80
Теперь сервер сможет получать запросы HTTP из общедоступной части Интернета.
Если же, например, нужно разрешить серверу базы данных MySQL (порт 3306) слушать соединения с сетевого интерфейса , воспользуйтесь командой:
sudo ufw allow in on eth1 to any port 3306
Это позволит другим серверам в частной сети подключиться к базе данных MySQL.
Состояние и правила UFW
Чтобы проверить состояние UFW, введите:
По умолчанию инструмент UFW отключен, потому состояние будет таким:
Если UFW включен, в строке состояния будет active, также на экране появится список установленных правил. К примеру, если брандмауэр разрешает трафик SSH (порт 22), вывод будет иметь такой вид:
Прежде чем приступить к настройке брандмауэра, нужно убедиться, что он поддерживает трафик SSH.
Политика по умолчанию
Начиная настройку брандмауэра, вы должны продумать и определить политику по умолчанию. Эти правила управляют обработкой трафика, который не отвечает другим правилам. По умолчанию UFW сбрасывает все входящие и разрешает все исходящие соединения.
Чтобы вернуться к исходным правилам брандмауэра, введите команды:
Если вы создали пользовательский набор правил, эти команды сбросят его и восстановят исходные правила. Теперь брандмауэр будет сбрасывать все входящие и разрешать исходящие соединения.
Стандартные правила брандмауэра подходят для персональных компьютеров; серверам обычно необходима возможность принимать входящий трафик.
Архивы
Создать архив директории:
tar -cf имя_архива.tar имя_директории
Пример использования:
# Заархивировать директорию /home/u/user/директория_сайта/public_html/media/ # 1.Перейти в каталог, в котором находится директория media: username@server:~$ cd /home/u/user/имя_сайта/public_html/ # 2.Выполнить команду архивации, задав удобное имя архива: username@server:~/имя_сайта/public_html$ tar -cf имя_архива.tar media
Распаковать архив .tar в текущую директорию:
tar -xvf архив.tar
В таких случаях для архивирования в .tar вы можете использовать следующую команду, которая позволит ограничить скорость архивации и снизить использование ресурсов процессора.
tar -cf - имя_директории| pv -L 2M > имя_архива.tar
Для удобства команда может быть расширена, чтобы отобразить в консоли счетчик времени, оставшегося до завершения процесса, и вывести уведомление (END) о его завершении (позволит проконтролировать, что процесс не прервался и был выполнен успешно).
tar -cf - имя_директории | pv -L 2M -cN tar -s $(du -sb имя_директории | grep -o '*') > имя_архива.tar && echo "END"
Для распаковки большого архива .tar можно воспользоваться командой:
pv -L 2M имя_архива.tar | tar xfv - -C ./имя_директории_назначения
Аналогично для распаковки архивов .tar.gz:
pv -L 1M имя_архива.tar.gz | tar zxfv - -C ./имя_директории_назначения
Распаковка .tar.gz с уведомлением о завершении:
pv -L 1M имя_архива.tar.gz | tar zxfv - -C ./имя_директории_назначения && echo "END"
Распаковать архив .rar в текущую директорию:
unrar x архив.rar
Распаковать архив .zip в текущую директорию:
unzip архив.zip
Для распаковки тяжелых .zip-архивов:
pv -L 1M имя_архива.zip | unzip-stream имя_директории_назначения
ORA-01075 you are currently logged on
ERROR: ORA-01075: you are currently logged on
нужно выполнить следующие шаги:
- подключаемся к системе под именем пользователя, от которого запущен Oracle;
- убеждаемся, что нет работающих Oracle-процессов ;
-
выполняем ipcs (должны получить нечто похожее):
$ ipcs ------ Сегменты совм. исп. памяти -------- ключ shmid владелец права байты nattch состояние 0x00000000 7241728 oracle 640 4096 0 0x00000000 7274497 oracle 640 4096 0 0x2683ca7c 7307266 oracle 640 4096 0 ------ Массивы семафоров -------- ключ semid владелец права nsems 0xde840770 14319618 oracle 640 176 0xde840771 14352387 oracle 640 176 0xde840772 14385156 oracle 640 176 0xde840773 14417925 oracle 640 176 0xde840774 14450694 oracle 640 176
-
«убиваем» совместные сегменты памяти и семафоры
-
для сегментов памяти:
ipcrm -m <shmid из предыдущего шага>
-
для семафоров:
ipcrm -s <shmid из предыдущего шага>
-
для сегментов памяти:
- пробуем подключиться.
7: Удаление правил брандмауэра
Существует два способа удалить правило: указать номер правила или само правило.
Удаление правила по его номеру
Для начала просмотрите список существующих правил. Для этого запросите состояние брандмауэра с опцией numbered.
К примеру, чтобы удалить правило 2 (открывающее трафик HTTP), нужно запустить команду:
Программа запросит подтверждения.
Примечание: Если сервер поддерживает IPv6, нужно удалить соответствующее правило и для этого протокола.
Удаление правила
Также можно указать в команде само правило, которое нужно удалить. К примеру, чтобы удалить allow http, нужно запустить:
или
Этот метод работает и для IPv4, и для IPv6.
Типы ресурсных записей (RR)
SOA
SOA запись в файле зоны должна быть только одна. В файле она должна стоять первой.
Запись SOA определяет какой сервер является владельцем зоны и какие на зону установлены параметры.
После записи SOA надо обязательно указать IN NS запись с тем-же сервером, что и в заголовке.
Пример: домен example.com обслуживается серверами ns.example.com и ns.examle.net.
После указания директивы $ORIGIN сервер автоматически допишет за нас все неполные dns имена (таким образом hostmaster читается как hostmaster.example.com). Имя сервера вне зоны пишется полностью.
Пример 2: домен example.com обслуживается двумя серверами вне зоны. Для них указаны полные имена в записях IN NS.
Т.к. домен обслуживается другими серверами никакие A записи не допускаются.
NS
Инфраструктурная запись, указывающая имя сервера имен для данного домена.
Формат
Согласно стандарту, каждый публичный домен должен иметь минимум 2 сервера имен. Частный домен может обслуживаться и одним сервером.
Если NS сервер для нашего домена находится в нашем домене, то мы обязаны указать A-запись для этого сервера (glue-record).
Если NS сервер лежит вне домена — A-запись указывать не нужно.
Пример: NS записи для основного домена и для делегированного поддомена с указанием glue-records.
A, AAAA
A-запись указывает на ip адрес для данного имени хоста. Опционально указать особо ttl.
Пример: различные вариации записи
AAAA-запись используется для IPv6 адресов
Когда одному имени сопоставлено много адресов, в обратной записи для адреса нужно выдрать только одно имя.
MX
Инфраструктурная запись указывающая на имя почтового сервера для домена.
Если имя сервера в этом-же домене — требуется еще А-запись с ip адресом почтового сервера.
Почтовых серверов для домена можно указать несколько с разными приоритетами.
Пример: почтовые сервера для домена и поддомена в одном файле
CNAME
Запись CNAME используется для указания псевдонима или ссылки одного имени на другое.
Если сервер вернул клиенту CNAME в ответ на запрос, то клиенту придется повторно делать запрос на разрешение CNAME.
Используется для удобства администрирования при наличии многих имен у одного сервера.
Примеры различных псевдонимов в домене example.com.:
PTR
Обратная запись указывает на имя по ip адресу. Используется специальный домен .IN-ADDR.ARPA.
Для IPv6 используется другой домен — IP6.ARPA. Поэтому обратные записи необходимо держать в разных файлах для ipv4 и ipv6.
Пример для IPv4:
Пример для IPv6:
Как просмотреть журналы брандмауэра?
По умолчанию все записи UFW хранятся в /var/log/ufw.log :
$ sudo more /var/log/ufw.log
$ sudo tail -f /var/log/ufw.log
1 |
$sudo more/var/log/ufw.log $sudo tail-f/var/log/ufw.log |
Примеры вывода:
<span class=»notranslate»> <small>1 августа 12:09:48 server2 ядро: IN = BR1 OUT = MAC = 00: 25: 90: 4f: b0: 6f: 44: d3: CA: 5F: 89: 40: 08: 00 SRC = 62.210.181.123 DST = 75.xxx.yyy.zzz LEN = 40 TOS = 0x00 = 0x00 PREC TTL = 245 ID = 20343 DF PROTO = TCP SPT = 2328 ПТР = 80 ОКНО = 512 RES = 0x00 SYN URGP = 0</small></span> <small>
</small> <span class=»notranslate»> <small>1 августа 12:09:58 server2 ядро: IN = BR1 OUT = MAC = 00: 25: 90: 4f: b0: 6f: 44: d3: CA: 5F: 89: 40: 08: 00 SRC = 187.134.225.91 DST = 75.xxx.yyy.zzz LEN = 46 TOS = 0x00 = 0x00 PREC TTL = 54 ID = 0 DF PROTO = UDP SPT = 54704 DPT = 53413 LEN = 26</small></span> <small>
</small> <span class=»notranslate»> <small>1 августа 12:09:58 server2 ядро: IN = BR1 OUT = MAC = 00: 25: 90: 4f: b0: 6f: 44: d3: CA: 5F: 89: 40: 08: 00 SRC = 187.134.225.91 DST = 75.xxx.yyy.zzz LEN = 151 TOS = 0x00 = 0x00 PREC TTL = 54 ID = 0 DF PROTO = UDP SPT = 54704 DPT = 53413 LEN = 131</small></span>
1 |
<span class=»notranslate»><small>1августа120948server2ядро+15727,245115UFW BLOCKIN=BR1 OUT=MAC=0025904fb06f44d3CA5F89400800SRC=62.210.181.123DST=75.xxx.yyy.zzzLEN=40TOS=0x00=0x00PREC TTL=245ID=20343DF PROTO=TCP SPT=2328ПТР=80ОКНО=512RES=0x00SYN URGP=</small></span><small> </small><span class=»notranslate»><small>1августа120958server2ядро+15737,485726UFW BLOCKIN=BR1 OUT=MAC=0025904fb06f44d3CA5F89400800SRC=187.134.225.91DST=75.xxx.yyy.zzzLEN=46TOS=0x00=0x00PREC TTL=54ID=DF PROTO=UDP SPT=54704DPT=53413LEN=26</small></span><small> </small><span class=»notranslate»><small>1августа120958server2ядро+15737,486102UFW BLOCKIN=BR1 OUT=MAC=0025904fb06f44d3CA5F89400800SRC=187.134.225.91DST=75.xxx.yyy.zzzLEN=151TOS=0x00=0x00PREC TTL=54ID=DF PROTO=UDP SPT=54704DPT=53413LEN=131</small></span> |
Вы можете искать по файлу журнала с помощью команды grep:
$ sudo grep something /var/log/ufw.log
$ sudo grep ‘187.134.225.91’ /var/log/ufw.log
1 |
$sudo grep something/var/log/ufw.log $sudo grep’187.134.225.91’/var/log/ufw.log |
Шаг 3 — Разрешение подключений SSH
Если мы сейчас активируем брандмауэр UFW, все входящие соединения будут запрещены. Это означает, что нам нужно создать правила, прямо разрешающие легитимные входящие соединения (например, SSH или HTTP), если мы хотим, чтобы сервер отвечал на такие запросы. Если вы используете облачный сервер, вы наверное хотите разрешить входящие соединения SSH, чтобы можно было подключаться к серверу и управлять им.
Чтобы разрешить на сервере входящие соединения SSH, вы можете использовать следующую команду:
Эта команда создаст правила брандмауэра, которые разрешат все соединения на порту , который демон SSH прослушивает по умолчанию. UFW знает, какой порт имеет в виду команда , потому что он указан как услуга в файле .
Однако мы можем записать эквивалентное правило, указав номер порта вместо имени службы. Например, эта команда работает так же, как показанная выше:
Если вы настроили демон SSH для использования другого порта, вам нужно будет указать соответствующий порт. Например, если ваш сервер SSH прослушивает порт , вы можете использовать эту команду, чтобы разрешить соединения с этим портом:
Теперь ваш брандмауэр настроен, чтобы разрешать входящие соединения SSH, и мы можем его активировать.
Шаг 1 — Использование IPv6 с UFW (опционально)
Этот обучающий модуль предусматривает использование протокола IPv4, но подходит и для IPv6, если вы активировали этот протокол. Если на вашем сервере Ubuntu активирован протокол IPv6, настройте UFW для поддержки IPv6, чтобы UFW управлял правилами брандмауэра и для IPv6, и для IPv4. Для этого откройте конфигурацию UFW с помощью или своего предпочитаемого редактора.
Убедитесь, что параметр имеет значение . Конфигурация должна выглядеть следующим образом:
/etc/default/ufw excerpt
Сохраните и закройте файл. После активации UFW будет настроен для записи правил брандмауэра для IPv4 и для IPv6. Однако перед включением UFW нужно убедиться, что ваш брандмауэр настроен для подключения через SSH. Для начала настроим политики по умолчанию.
Параметры командной строки SSH
Давайте рассмотрим некоторые параметры, доступные с помощью команды ssh.
ssh -C
Используйте опцию -C с ssh для запроса сжатия всех данных, полученных или переданных с удаленного сервера. Синтаксис команды ниже
например
ssh -v
Параметр -v используется с командой ssh для отладки ssh-клиента. Ниже приведен синтаксис:
например:
Для отладки ssh-клиента используйте параметр -v
ssh -b
Опция -b используется для привязки IP-адреса к SSH-соединению. IP — адрес будет использоваться в качестве исходного адреса SSH-соединения. Это применяется, когда у клиента более двух IP-адресов, и вы можете не знать, какой IP-адрес используется для создания соединения с сервером SSH.
Например:
Команда свяжет IP-адрес с удаленным сервером. Мы можем проверить это, используя команду для проверки соединения.
Привязка IP-адреса к SSH-соединению
ssh -F
Параметр -F используется вместе с командой ssh для указания конфигурации для каждого пользователя. Файл конфигурации по умолчанию ~/. ssh/config.
Чтобы использовать определенный файл конфигурации, используйте параметр -F следующим образом.
Например:
ssh -L
Опция -L используется для переадресации локальных портов. Переадресация локальных портов позволяет нам перенаправлять трафик с нашего хоста в порт назначения через прокси-сервер.
Основной синтаксис для переадресации локальных портов такой.
Например выполните следующую команду для подключения к удаленному хосту на порт 3306, пользователя kali с IP 192.168.239.134 с локального хоста 192.168.239.133 на порту 3336.
Переадресация локальных портов SSH
ssh -R
Опция -R используется вместе с командой SSH для включения удаленной переадресации портов. Это означает, что вы можете перенаправить порт на удаленном сервере на порт локального компьютера, который затем будет перенаправлен на порт конечного компьютера.
Основной синтаксис для переадресации удаленных портов следующий.
Например:
Команда заставит ssh прослушивать ssh-сервер порт 3336 и перенаправлять весь трафик на порт 3000.
Синтаксис для переадресации удаленных портов SSH
ssh -C -D
Опция -D включает динамическую переадресацию портов. Обычный порт SOCKS-1001, однако можно использовать любой номер порта; тем не менее, некоторые программы будут работать только на порту 1001.
Основной синтаксис динамической пересылки выглядит следующим образом.
Например
Параметр -D указывает динамическую переадресацию портов на 1001 порт, а опция -C включает сжатие.
Динамическая переадресация портов SSH
ssh -X
Опция -X используется вместе с ssh для пересылки X11. Ниже приведен синтаксис для пересылки X11.
Используйте следующую команду, чтобы включить переадресацию X11 для пользователя kali с IP-адресом 192.168.239.134.
SSH -Y
Параметр -Y используется вместе с ssh для доверенной переадресации X11. Это означает, что удаленный X11 будет иметь полный доступ к исходному дисплею X11.
Используйте следующую команду, чтобы включить доверенную переадресацию. X11 для пользователя kali с IP-адресом 192.168.239.134.
Параметр -Y для доверенной переадресации X11 SSH
ssh -o
Параметр -o можно использовать с другими параметрами.
Например:
Если вы используете ssh -o «batchmode=yes», команда успешно выполнится на удаленной машине, если включено подключение без пароля, в противном случае команда вернет ошибку.
ssh -o «batchmode=yes»
Некоторые из наиболее важных параметров командной строки показаны в следующей таблице.
SSH Параметр (опция) | Описание |
-А | Позволяет перенаправлять соединение агента аутентификации. |
-а | Этот параметр отключает перенаправляемое соединение агента аутентификации. |
-b | Параметр используется для привязки адресов источников. |
-С | Этот параметр используется для сжатия данных. |
-c cipher_spec | Параметр выбирает спецификацию шифра для шифрования сеанса. |
-d | Эта опция отвечает за динамическую переадресацию портов на уровне приложений. |
-E log_file | Параметр добавляет журналы отладки в файл log_file вместо стандартной ошибки. |
-F config file | Этот параметр указывает файл конфигурации для каждого пользователя. |
-g | Эта опция позволяет удаленным хостам подключаться к локальным перенаправленным портам. |
-i identity_file | Опция считывает закрытый ключ для аутентификации с открытым ключом. |
-j | Параметр определяет директиву конфигурации ProxyJump. |
-l login_name | В этом параметре указывается пользователь для входа на удаленный компьютер. |
-p port | Параметр используется для указания порта для подключения к удаленному хосту. |
-q | Это тихий режим. |
-V | Подробный режим. |
-Х | Параметр позволяет переадресовать X11 |
-Y | Эта опция обеспечивает надежную переадресацию X11 |
Выполнение агентов на cron
Уведомление: Замечание: Агенты выполняются на хитах, рекомендуется перенести их выполнение на cron
Это замечание некритично. В Битрикс предусмотрен внутренний планировщик задач (агентов). Данное замечание влияет на то, насколько точно по времени сработают запланированные задачи. Грубо говоря, скрипты сайта выполняются, только когда его страницы кто-то посещает. Если нет посещений, то и таймер работать не будет. Cron позволяет полностью решить проблему с планированием задач.
Решение:
Чтобы перенести работу непериодических агентов (и передачу почты) на Сron, необходимо установить константу BX_CRONTAB_SUPPORT.
Для этого добавьте в файл /public_html/bitrix/php_interface/dbconn.php строку:
define('BX_CRONTAB_SUPPORT', true);
1. В разделе Crontab нажмите «Добавить новую задачу» и задайте удобное имя для задачи.
2. В пункте «Исполнитель» выберите «Исполняемый бинарный файл».
3. В пункте «Путь до файла» укажите команду следующего вида:
/opt/php72/bin/php -f /home/u/user/site.ru/public_html/bitrix/modules/main/tools/cron_events.php
- В /opt/php72/bin/php укажите ту версию php, которую использует сайт. Например, /opt/php74/bin/php (или /opt/php7.4/bin/php).
- Вместо /home/u/user/site.ru/public_html укажите корректный путь до папки сайта и замените u и user на первую букву вашего логина и сам логин.
4. В пункте «Периодичность» выберите «Каждую минуту».
Уведомление: Ошибка! Не настроен запуск cron_events.php на cron
Эта ошибка может возникнуть, если в пункте выше вы только добавили константу, но не добавили задачу cron. Без настройки задачи в crontab будет остановлена часть агентов, в том числе с сайта перестанет отправляться почта. Письма будут накапливаться в очередь и отправляться по частям после устранения ошибки.
Решение:
Выполните приведенную выше инструкцию по добавлению задачи cron, и ошибка будет устранена.
Шаг 3 — Разрешение подключений SSH
Если мы сейчас активируем брандмауэр UFW, все входящие соединения будут запрещены. Это означает, что нам нужно создать правила, прямо разрешающие легитимные входящие соединения (например, SSH или HTTP), если мы хотим, чтобы сервер отвечал на такие запросы. Если вы используете облачный сервер, вы наверное хотите разрешить входящие соединения SSH, чтобы можно было подключаться к серверу и управлять им.
Чтобы разрешить на сервере входящие соединения SSH, вы можете использовать следующую команду:
Эта команда создаст правила брандмауэра, которые разрешат все соединения на порту , который демон SSH прослушивает по умолчанию. UFW знает, какой порт имеет в виду команда , потому что он указан как услуга в файле .
Однако мы можем записать эквивалентное правило, указав номер порта вместо имени службы. Например, эта команда работает так же, как показанная выше:
Если вы настроили демон SSH для использования другого порта, вам нужно будет указать соответствующий порт. Например, если ваш сервер SSH прослушивает порт , вы можете использовать эту команду, чтобы разрешить соединения с этим портом:
Теперь ваш брандмауэр настроен, чтобы разрешать входящие соединения SSH, и мы можем его активировать.
Запрет доступа к порту (с IP и блока IP-адресов)
Синтаксис выглядит следующим образом, чтобы запретить доступ (т.е. просто игнорируя доступ к порту 443) к порту TCP — порт 443:
$ sudo ufw deny 443/tcp
1 | $sudo ufw deny443/tcp |
Запретить все соединения с IP-адреса 1.2.3.4, введите следующую команду:
$ sudo ufw deny from 1.2.3.4
1 | $sudo ufw deny from1.2.3.4 |
Запретить все соединения подсети 123.45.67.89/24, введите следующую команду:
$ sudo ufw deny from 123.45.67.89/24
1 | $sudo ufw deny from123.45.67.89/24 |
Запретить доступ с 1.2.3.4 на порт 22:
$ sudo ufw deny from 1.2.3.4 to any port 22 proto tcp
1 | $sudo ufw deny from1.2.3.4toany port22proto tcp |
Настройка соединений SSH
Если включить UFW сейчас, он заблокирует все входящие соединения. Потому нужно создать правила, которые разрешат входящий трафик заведомо безопасных сервисов (например, SSH и HTTP). Обязательно нужно разрешить трафик SSH на облачном сервере, так как этот протокол позволяет вам подключаться к серверу.
Чтобы разблокировать соединения SSH, введите:
Это правило разрешит входящие соединения порта 22 (порт SSH по умолчанию). UFW знает имена некоторых сервисов (в том числе и SSH). Все эти сервисы перечислены в файле /etc/services.
Вместо названия сервиса в правиле можно указать порт. Например:
Если вы изменили порт SSH по умолчанию, укажите правильный номер порта в команде. К примеру, если вы заменили 22 номером 2222, команда будет выглядеть так:
Проблемы с external job (sjsec 6a)
В какой-то момент стал получать ошибку:
ORA-27370: job slave failed to launch a job of type EXECUTABLE ORA-27300: OS system dependent operation:accessing job scheduler service failed with status: 2 ORA-27301: OS failure message: The system cannot find the file specified. ORA-27302: failure occurred at: sjsec 6a ORA-27303: additional information: The system cannot find the file specified. ORA-06512: at "SYS.DBMS_ISCHED", line 196 ORA-06512: at "SYS.DBMS_SCHEDULER", line 486 ORA-06512: at line 1
Это происходило в Oracle, установленном на сервер под управлением Windows.
Решение — убедитесь и при необходимости запустите сервис OracleJobScheduler<SID>. Где SID — SID вашего экземпляра БД.
Результаты netstat -tuple на каждом сервере
Рабочий сервер
Проблема заключалась в том, что сервер слушал только внутренне.
Удаление строки из решило проблему.
Более новые версии Ubuntu (≥16.04) могут иметь эту строку в .
Мое предложение, если вы уверены, что порты закрыты (я нахожу странным, что VPS закрывает этот порт) заключается в изменении файла конфигурации MySQL для использования другого.
Просто откройте файл конфигурации в терминале , и найдите раздел . Найдите в нем строку . Измените его на другой неиспользуемый порт и сохраните файл.
Затем просто перезапустите VPS или перезапустите службу, например .
Просто обратите внимание, что если файл не находится в том, что я упомянул выше, он может быть в других местах:
И если служба не работает, сделайте следующее:
Если проблема сохраняется, тогда в моем случае я бы проверил iptables (я бы фактически удалил все в iptables, чтобы начать заново, если бы это мог быть вариант) или любой другой вариант с включенным брандмауэром.
Поскольку они являются VPS , Я бы также проверил панель управления VPS, чтобы узнать, есть ли в ней какая-либо опция, которая может блокировать порты.
Кроме того, я бы запустил на VPS чтобы увидеть, какие порты вы открыли. Вам нужно запустить его извне VPS, чтобы увидеть, какие порты они открыли.
— также хорошая идея, чтобы увидеть, какие открытые порты у вас есть на сервере и какие находятся в режиме LISTEN.
Мое предложение, если вы уверены, что порты закрыты (я нахожу это странным для VPS закрыть этот порт) означает изменить файл конфигурации MySQL для использования другого.
Просто откройте файл конфигурации в терминале и найдите раздел . Найдите в нем строку . Измените его на другой неиспользуемый порт и сохраните файл.
Затем просто перезапустите VPS или перезапустите службу, например .
Просто обратите внимание, что если файл не находится в том, что я упомянул выше, он может быть в других местах:
И если служба не работает, сделайте следующее:
Если проблема сохраняется, тогда в моем случае я бы проверил iptables (я бы фактически удалил все в iptables, чтобы начать заново, если бы это мог быть вариант) или любой другой вариант с включенным брандмауэром.
Поскольку они являются VPS , Я бы также проверил панель управления VPS, чтобы узнать, есть ли в ней какая-либо опция, которая может блокировать порты.
Кроме того, я бы запустил на VPS чтобы увидеть, какие порты вы открыли. Вам нужно запустить его извне VPS, чтобы увидеть, какие порты они открыли.
— также хорошая идея, чтобы увидеть, какие открытые порты у вас есть на сервере и какие из них находятся в режиме LISTEN.
Я использую этот метод:
Нет необходимости изменять другие файлы конфигурации и не открывать дополнительные порты по умолчанию.
Я использую этот метод:
Нет необходимости изменять другие файлы конфигурации и не открывать дополнительные порты по умолчанию.
Я исправил это, изменив на в (чтобы MySQL прослушивал все порты).
Кроме того, я установил пользователя mysql учетная запись для удаленного использования (см. https://stackoverflow.com/a/24171107/132374).
Я исправил это, изменив на в (чтобы MySQL прослушивал все порты).
Кроме того, я установил Учетная запись пользователя mysql для удаленного использования (см. https://stackoverflow.com/a/24171107/132374).
Может случиться так, что ваша конфигурация находится в каталоге , убедитесь, что это не так.
Может случиться так, что ваша конфигурация находится в каталоге , убедитесь, что это не так.
Установка MariaDB
- в Debian 9;
- в Ubuntu 18.04;
- в Ubuntu 16.04;
- в CentOS 7.
Установка в Debian 9
Произведем базовую установку MariaDB 10.3, рекомендованную поставщиком для Debian 9 Stretch:
sudo apt-get install -y software-properties-common dirmngr sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8 sudo add-apt-repository 'deb http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.3/debian stretch main' sudo apt update sudo apt install -y mariadb-server
Проверьте корректность установки, соединившись с MariaDB с помощью клиента командной строки:
mysql -uroot -e 'SELECT version();' +---------------------------------------------+ | version() | +---------------------------------------------+ | 10.3.13-MariaDB-1:10.3.13+maria~stretch-log | +---------------------------------------------+
Соединение работает, если вы получили вывод похожий на приведенный выше. Теперь, когда установка MariaDB завершена, можно к настройке кластера.
Установка в Ubuntu 18.04
Произведем базовую установку MariaDB 10.3, рекомендованную поставщиком для Ubuntu Linux 18.04:
sudo apt-get install software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 sudo add-apt-repository 'deb http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.3/ubuntu bionic main' sudo apt update sudo apt install -y mariadb-server
Проверьте корректность установки, соединившись с MariaDB с помощью клиента командной строки:
mysql -uroot -e 'SELECT version();' +--------------------------------------------+ | version() | +--------------------------------------------+ | 10.3.13-MariaDB-1:10.3.13+maria~bionic-log | +--------------------------------------------+
Соединение работает, если вы получили вывод похожий на приведенный выше. Теперь, когда установка MariaDB завершена, можно к настройке кластера.
Установка в Ubuntu 16.04
Произведем базовую установку MariaDB 10.3, рекомендованную поставщиком для Ubuntu Linux 16.04:
sudo apt-get install software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 sudo add-apt-repository 'deb http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.3/ubuntu xenial main' sudo apt update sudo apt install -y mariadb-server
Проверьте корректность установки, соединившись с MariaDB с помощью клиента командной строки:
mysql -uroot -e 'SELECT version();' +--------------------------------------------+ | version() | +--------------------------------------------+ | 10.3.13-MariaDB-1:10.3.13+maria~xenial-log | +--------------------------------------------+
Соединение работает, если вы получили вывод похожий на приведенный выше. Теперь, когда установка MariaDB завершена, можно к настройке кластера.
Установка в CentOS 7
Произведем базовую установку MariaDB 10.3, рекомендованную поставщиком для CentOS 7. Сначала необходимо добавить репозиторий пакетов MariaDB 10.3 в Yum:
sudo nano /etc/yum.repos.d/mariadb.repo
со следующим содержимым:
# MariaDB 10.3 CentOS repository list - created 2019-03-28 19:13 UTC # http://downloads.mariadb.org/mariadb/repositories/ name = MariaDB baseurl = http://yum.mariadb.org/10.3/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
Теперь можно выполнить установку пакетов:
sudo yum install -y MariaDB-server MariaDB-client && sudo systemctl enable mariadb && sudo systemctl start mariadb
Проверьте корректность установки, соединившись с MariaDB с помощью клиента командной строки:
mysql -uroot -e 'SELECT version();' +-----------------+ | version() | +-----------------+ | 10.3.13-MariaDB | +-----------------+
Соединение работает, если вы получили вывод похожий на приведенный выше. Теперь, когда установка MariaDB завершена, можно к настройке кластера.