Цель: Установка и настройка ОС для установки и работы АТС Asterisk Инструкция написана 01/09/2024 После установки ОС CentOS 7.9.2009 https://ftp.jaist.ac.jp/pub/Linux/CentOS-vault/7.9.2009/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso Начальная настройка CentOS 7 и 8 (Нас, ну меня, интересует 7.9.2009) Всё, ну или почти всё взято из статьй: https://serveradmin.ru/centos-nastroyka-servera/#Celi_stati 1. Меняем настройки репозитория. Справка, команды редактора vi https://neoserver.ru/help/osnovnie-komandi-redaktora-vi-vim # vi /etc/yum.repos.d/CentOS-Base.repo <--- Начало файла [base] name=CentOS-$releasever - Base baseurl=http://vault.centos.org/7.9.2009/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [updates] name=CentOS-$releasever - Updates baseurl=http://vault.centos.org/7.9.2009/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [extras] name=CentOS-$releasever - Extras baseurl=http://vault.centos.org/7.9.2009/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [centosplus] name=CentOS-$releasever - Plus baseurl=http://vault.centos.org/7.9.2009/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 ---> Конец файла При необходимости выполните следующие действия: # yum clean all Теперь репозиторий работает. 2. Обновляем систему # yum update 3. Для удобства администрирования я всегда устанавливаю Midnight Commander, и текстовый редактор nano (поддеживает вставку из буфера обмена Windows нажатием правой кнопкой мыши, а это удобно): Текстовый редактор nano, команды: https://wirenboard.com/wiki/Nano # yum install mc # yum install nano И сразу же для Midnight Commander включаю подсветку синтаксиса всех файлов, которые не обозначены явно в файле /usr/share/mc/syntax/Syntax синтаксисом для sh и bash скриптов. Этот универсальный синтаксис нормально подходит для конфигурационных файлов, с которыми чаще всего приходится работать на сервере. Перезаписываем файл unknown.syntax. Именно этот шаблон будет применяться к .conf и .cf файлам, так как к ним явно не привязано никакого синтаксиса. # cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntax 4.Cетевые утилиты Вместо ifconfig в CentOS теперь утилита ip. Это относится не только к центос. Такая картина почти во всех популярных современных дистрибутивах Linux. Я с давних времен привык к ifconfig, хотя последнее время практически не пользуюсь. Мне всегда нравилось, что в различных дистрибутивах линукс все примерно одинаковое. С помощью ifconfig можно настроить сеть не только в linux, но и в freebsd. Это удобно. А когда в каждом дистрибутиве свой инструмент это не удобно. Если вам нужен ifconfig, то можете установить пакет net-tools, в который она входит: # yum install net-tools 5.Отключить SELinux (Фаервол, брендмауер, защитник сетевого трафика) Отключаем SELinux. Его использование и настройка отдельный разговор. Сейчас я не буду этим заниматься. Так что отключаем: # mcedit /etc/sysconfig/selinux меняем значение (ВАЖНО! это не последняя запись, не прояби!) SELINUX=disabled Чтобы изменения вступили в силу, можно перезагрузиться: # reboot А если хотите без перезагрузки применить отключение SELinux, то выполните команду: # setenforce 0 6.Указываем сетевые параметры (У меня не заработало) Продолжаем базовую настройку centos после установки. Теперь произведем настройку сети (https://serveradmin.ru/nastroyka-seti-v-centos/), если по какой-то причине не сделали это во время установки, либо если вам надо их изменить. В общем случае, сеть в Centos настраивается с помощью NetworkManager и его консольной утилиты nmtui. Она идет в базовой устновке системы. Там простой и понятный графический интерфейс, так что рассказывать нечего. Я больше привык настраивать сеть через конфигурационные файлы network-scripts. В centos 7-й версии они есть из коробки, в 8-й версии их убрали. Чтобы воспользоваться ими для настройки сети, надо отдельно установить пакет network-scripts. # yum install network-scripts Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile No package network-scripts available. Error: Nothing to do о как... 7.Настраиваем firewall (останавливаем и отключаем) # systemctl stop firewalld # systemctl disable firewalld 7.Настраиваем время Узнать, какое время настроено на сервере centos можно с помощью команды date: # date В CentOS есть утилита для синхронизации времени chrony. В стандартной установке она должна быть установлена в системе, в минимальной ее нет. Если у вас она не стоит, как и у меня, что видно по скриншоту, то установим и настроим вручную: # yum install chrony Запускаем chrony и добавляем в автозагрузку: # systemctl start chronyd # systemctl enable chronyd Проверяем, нормально ли запустился: # systemctl status chronyd ● chronyd.service - NTP client/server Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2024-09-01 01:15:22 MSK; 3min 40s ago Docs: man:chronyd(8) man:chrony.conf(5) Main PID: 65115 (chronyd) CGroup: /system.slice/chronyd.service └─65115 /usr/sbin/chronyd Sep 01 01:15:22 Asterisk systemd[1]: Starting NTP client/server... Sep 01 01:15:22 Asterisk chronyd[65115]: chronyd version 3.4 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +SECHASH +IPV6 +DEBUG) Sep 01 01:15:22 Asterisk systemd[1]: Started NTP client/server. Sep 01 01:15:29 Asterisk chronyd[65115]: Selected source 192.36.143.130 Sep 01 01:15:29 Asterisk chronyd[65115]: System clock wrong by 24.081057 seconds, adjustment started Sep 01 01:15:53 Asterisk chronyd[65115]: System clock was stepped by 24.081057 seconds Sep 01 01:18:04 Asterisk chronyd[65115]: Source 193.192.36.3 replaced with 185.217.199.21 8.Отключаем флуд сообщений в /var/log/messages Продолжая настройку centos, исправим одно небольшое неудобство. В дефолтной установке системы 7-й версии, весь ваш системный лог /var/log/messages через некоторое время работы сервера будет забит не значащими записями. В Centos 8 я (автор статьи) их не заметил, поэтому там ничего делать не надо. Никакой практической пользы сообщения не несут, поэтому отключим их. Для этого создадим отдельное правило для rsyslog, где перечислим все шаблоны сообщений, которые будем вырезать. Разместим это правило в отдельном файле /etc/rsyslog.d/ignore-systemd-session-slice.conf # cd /etc/rsyslog.d && nano ignore-systemd-session-slice.conf Сохраняем файл и перезапускаем rsyslog для применения настроек. # systemctl restart rsyslog Необходимо понимать, что в данном случае мы отключаем флуд в лог файл только на локальном сервере. Если вы храните логи на удаленном syslog сервере, то данное правило нужно будет настраивать именно на нем. (у меня нет такого сервера, а наверное хорошая идея, уже не впервый раз встречаю такую оговорку) 9.Несколько нужных и полезных программ Рекомендую еще установить несколько нужных и полезных программ, которые часто необходимы, но отсутствуют в минимальной установке - wget, bzip2, traceroute, gdisk. # yum install wget # yum install bzip2 # yum install traceroute # yum install gdisk Если при перезагрузке у тебя такая вот хрень failed to "load selinux policy freezing" и не включается, то ты таки проебал в пункте 5.Отключить SELinux то как запустить машину смотри тут https://www.youtube.com/watch?v=YO3Vp8dZIyo и ВНЕМАТОЧНО читай пункт 5 10. Asterisk Методом научного тыка с сайта https://downloads.asterisk.org/pub/telephony/asterisk/ выбрал 18й релиз asterisk-18.24.2 качаем как правильные линуксоиды в каталог /usr/src/ # cd /usr/src/ # wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18.24.2.tar.gz разархивируем #tar xf asterisk-18.24.2.tar.gz установим компилятор с++ (gcc) # yum install gcc-c++ далее нужно пропатчить чёта (pjsip в данном случае) # yum install patch обновляем libedit (не понял но надо, если написать yum install libedit без звёздочки, то говорит, что и так всё збс, таки надо со звёздочкой) много ошибок разобрано тут: http://linux.mixed-spb.ru/asterisk/install_troubles.php (поиск: Ctrl + f) # yum install libedit* # yum install libuuid-devel # yum install libjansson # yum install https://disweb.ru/files/rpm/jansson-2.11-2.2.x86_64.rpm https://disweb.ru/files/rpm/jansson-devel-2.11-2.2.x86_64.rpm # yum -y install libxml2-devel # yum -y install sqlite-devel проверяем, всё ли ок для компиляции Астериска # ./configure если результатом получил такое .$$$$$$$$$$$$$$$=.. .$7$7.. .7$$7:. .$$:. ,$7.7 .$7. 7$$$$ .$$77 ..$$. $$$$$ .$$$7 ..7$ .?. $$$$$ .?. 7$$$. $.$. .$$$7. $$$$7 .7$$$. .$$$. .777. .$$$$$$77$$$77$$$$$7. $$$, $$$~ .7$$$$$$$$$$$$$7. .$$$. .$$7 .7$$$$$$$7: ?$$$. $$$ ?7$$$$$$$$$$I .$$$7 $$$ .7$$$$$$$$$$$$$$$$ :$$$. $$$ $$$$$$7$$$$$$$$$$$$ .$$$. $$$ $$$ 7$$$7 .$$$ .$$$. $$$$ $$$$7 .$$$. 7$$$7 7$$$$ 7$$$ $$$$$ $$$ $$$$7. $$ (TM) $$$$$$$. .7$$$$$$ $$ $$$$$$$$$$$$7$$$$$$$$$.$$$$$$ $$$$$$$$$$$$$$$$. то пряздрявляю, все ок, а если нет то рой дальше, пока не получишь такую загогулину. 11. Сборка Asterisk # make (компилирует Asterisk) # make install (Ну устанавливает откомпилиный Asterisk) # make samples (делает дефолтные коныиги Asterisk-а) # make config (делает автозапуск Asterisk-а в Линухе) 12.Запускаем Asterisk # asterisk -vvvvr (можно asterisk -r) 13.Настройка Asterisk Asterisk - SIP АТС для офиса, пошаговая инструкция по настройке с нуля https://serveradmin.ru/nastroyka-servera-telefonii-asterisk-s-nulya/ Команды описаны тут: http://www.asterisk.ru/knowledgebase/Asterisk+Starting+and+Stopping#:~:text=%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D0%B9%D1%82%D0%B5%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%83%20stop%20now%2C%20%D0%B4%D0%BB%D1%8F%20%D0%B7%D0%B0%D0%B2%D0%B5%D1%80%D1%88%D0%B5%D0%BD%D0%B8%D1%8F%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B%20%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0%20Asterisk. Создание дефолтных конфигов # make samples Запуск с удалённой консоли (что бы это не значило). Если не работает читай тут https://docs.asterisk.org/Deployment/Troubleshooting/Unable-to-connect-to-remote-Asterisk/ # /usr/sbin/asterisk -r как вариант создать файл /var/run/asterisk/asterisk.ctl # nano /var/run/asterisk/asterisk.ctl Запуск с локальной консоли (что бы это не значило) # /usr/sbin/asterisk -c Остановка из самого Asterisk-а # Asterisk*CLI> core stop now Остановка системы (выключить комп под управлением Unix) # Halt КОНЕЦ ФАЙЛА 01/09/2024