По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Линукс - как много в этом слове эмоциональной и смысловой нагрузки. А как много разных дистрибутивов входят в это семейство И частенько требуется понять, какая конкретно версия установлена и этому помогает пакет systemd, который в настоящее время имплементирован во многие дистрибутивы.
Самый простой способ проверить версию Linux это просто использовать hostnamectl команду без каких-либо аргументов. Эта команда возвращает название дистрибутива, версию и кодовое название вместе с конкретной версией ядра.
Довольно распространенной ошибкой является называть все семейство GNU/Linux систем просто Linux-ом. Важный момент в том, что Linux - это только ядро, а GNU - непосредственно сама система в виде набора скомпилированных библиотек и системных инструментов. GNU и Linux должны работать в тандеме для того, чтобы операционная система корректно работала. Так как одно не может существовать без другого, корректнее называть эту связку GNU/Linux или Lignux.
Дополнительные способы определения
Системы управления пакетами в Linux
Если команда выше вам не помогла, следующим шагом будет проверка установленного пакетного менеджера, так как вероятность, что один из трех пакетных менеджеров все-таки установлен крайне высока.
rpm - пакетный менеджер для систем RedHat
dpkg - пакетный менеджер для систем Debian
pacman - пакетный менеджер для систем Arch
Таким образом, если система использует rpm, то скорее всего у вас используется RHEL, CentOS, Fedora и т.д. Если deb, то скорее всего это Ubuntu, Debian, Mint. И соответственно в случае pacman это будет Arch или Manjaro (и им подобные).Для определения пакетного менеджера нужно ввести команду
$ for i in $( echo rpm dpkg pacman ); do which $i; done 2 /dev/null
В случае deb и rpm она вернет следующее: /usr/bin/dpkg и /bin/rpm соответственно.
Проверка версии CentOS/RHEL
Самый простой способ проверки версии CentOS это чтение файла /etc/centos-release с помощью команды cat /etc/centos-release
В свою очередь для RHEL нужно будет прочитать файл /etc/redhat-release
Команду соответственно меняем:
cat /etc/redhat-release
Думаю логика здесь понятна, для Fedora нужно будет поменять команду на fedora-release - проще некуда.
Проверка версии Debian, Mint и Ubuntu
Для Debian - подобных систем нужно прочесть файл /etc/issue:
cat /etc/issue
Проверка версии Arch
Проверять версию Arch не имеет смысла, так как каждый раз при запуске команды pacman -Suy ваша система автоматически обновляется до последней версии.
Проверка системных параметров
Проверка системной архитектуры и версии ядра
Самый простой и популярный способ определения системной архитектуры и версии ядра Linux это использование команды uname с аргументом -a.
То есть команда будет выглядеть следующим образом:
uname - a
В выводе будет указана версия ядра и разрядность архитектуры.
Проверка архитектуры ЦПУ
Самым простым и распространенным способом является команда:
lscpu
Как видно из вывода, вместе с моделью процессора и его частотой также видна его разрядность и еще много различных параметров.
Одной из основных составляющих IP – PBX на базе Asterisk являются SIP – транки в сторону провайдера и оконечные телефонные аппараты, или как их принято называть «пиры» (peers). Сегодня мы расскажем о способе автоматизации мониторинга состояния транков и пиров, с отправлением на почту системного администратора.
Мониторинг пиров
Итак, начнем с мониторинга состояния пиров. Для этого мы напишем небольшой bash – скрипт. Предположим, что у нас есть 3 площадки, А, B и C. АТС Asterisk находится на площадке A. Предварительно, перед началом работы, создадим 2 файлы: первый – для логов нашего скрипта, а второй, будет служебным, и будет использоваться только в рамках исполнения скрипта. Внутри каждого скрипта, мы будем писать комментарии к каждой из его строк.
Скачать скрипт мониторинга пиров вы можете по ссылке ниже:
Скачать скрипт мониторинга пиров
[root@asteriskpbx]# touch /home/admin/log_mail.txt
[root@asteriskpbx]# touch /home/admin/message.txt
Далее, создаем переменные для нашего скрипта:
#!/bin/sh
LOGSIZE=`ls -l /home/admin/log_mail.txt | awk '{ print $5 }'` //проверяем размер файла с логами
problempeers=`/usr/sbin/asterisk -rx 'sip show peers' | grep UNKNOWN` //выводим командой 'sip show peers' через консоль Asterisk, и затем, с помощью команды grep UNKNOWN фильтруем пиры, чтобы отобразить только те, состояние которых является UNKNOWN
GWB=`ping -c4 11.22.33.44 | grep 'received' | awk -F',' '{ print $2}' | awk '{ print $1}'` //по протоколу ICMP, пингуем IP – адрес шлюза на удаленной площадке четырьмя пакетами. Если все ОК, и шлюз доступен, до значение переменной будет равно 4. В противном случае, оно будет равно 0.
GWC=`ping -c4 44.33.22.11 | grep 'received' | awk -F',' '{ print $2}' | awk '{ print $1}'` //аналогичным образом пингуем шлюз на площадке C
ResultB="" //служебная переменная
ResultC="" //служебная переменная
FILENAME=/home/admin/message.txt //записываем в переменную путь к лог- файлам
LOGFILE=/home/admin/log_mail.txt
DATE="`date +%d.%m.%Y" "%H:%M:%S`" //выводим текущую дату и время в формате дд.мм.гггг чч:мм:сс
echo "$problempeers" > /home/admin/message.txt //записываем содержимое переменной problempeers в служебный файл. В этой переменной содержится результат вывода команды по статусу пиров.
FILESIZE=$(stat -c%s "$FILENAME") //проверяем размер служебного файла message.txt. Если в нем есть какая-либо информация, значит есть проблемы с пирами (имеются в статусе UNKNOWN), если он пустой, то все ОК.
На этом этапе, мы сформировали все необходимые переменные и у нас имеются все необходимые для формирования письма (если надо) на email системному администратору. Перейдем к исполнительной части скрипта:
if [ $GWB -eq 0 ]; then //если число ответов шлюза на площадке B на пинг равно 0, то запускаем процесс формирования письма
ResultB ="на площадке B НЕ ДОСТУПЕН!" //формируем часть текста. Мы ее включим в заголовок письма
else
ResultB ="" //если все таки шлюз ответил на пинг, то оставляем переменную пустой
fi
if [ $GWС -eq 0 ]; then //если число ответов шлюза на площадке С на пинг равно 0, то запускаем процесс формирования письма
ResultС="на площадке С НЕ ДОСТУПЕН!" //по аналогии. Указываем в заголовок, что роутер C недоступен
else
ResultС ="" //если все ОК, то оставляем переменную пустой
fi
if [ $FILESIZE -ne 1 ]; then //если наш служебный файл message.txt не пустой, то проверяем следующее условие
if [ $GWB -eq 0 ] || [ $GWC -eq 0 ]; then //если хотябы один из роутеров недоступен по пинг, то переходим к следующему пункту скрипта
echo "$problempeers"| mailx -s "Проблемы с SIP пирами | Роутер $ResultB $ResultC!" -r "info@merionet.ru" youremail@some.ru </home/admin/message.txt && //отправляем на почту письмо, где указываем, что у нас есть проблемы с пирами, и, если какой-то из роутеров не доступен, указываем это. В теле письма мы отправляем вывод недоступных пиров.
echo "FAIL :: $DATE :: Some problems with phones" >> "$LOGFILE" //параллельно с отправкой письма, записываем в лог файл запись, что у нас есть проблемы с пирами (в вывод так же можно добавить с какими именно)
else
echo "$problempeers"| mailx -s "Проблемы с SIP пирами | Роутеры ДОСТУПНЫ!" -r "info@merionet.ru" youremail@some.ru < /home/admin/message.txt && //если оба наших роутера доступны, то мы просто формируем письмо, в котором указываем перечень недоступных пиров.
echo "FAIL :: $DATE :: Some problems with phones" >> "$LOGFILE" //аналогично вносим запись в лог – файл.
fi
else
echo "OK :: $DATE :: all phones are OK" >> "$LOGFILE" //если служебный файл пустой, то мы вносим запись в лог – файл что все хорошо и проверка успешно прошла.
fi
if [ $LOGSIZE -ge 150000 ]; then //елси размер нашего лог – файла больше или равен 150 КБ, то мы очищаем этого (можете подкрутить эту величину, как вам угодно.)
cat /dev/null > /home/admin/log_mail.txt
fi
cat /dev/null > /home/admin/message.txt //на выходе чисти служебный файл message.txt, для последующего использования
Теперь давайте проверим, что приходит нам на почту в случае, если несколько пиров стали недоступны, но все роутеры доступны:
Мониторинг транков
Отлично, перейдем к формированию скрипта по мониторингу транков. Здесь все несколько проще, и мы просто будем сравнивать общее количество транков, и количество зарегистрированных транков:
Скачать сам скрипт можете ниже:
Скачать скрипт мониторинга транков
#!/bin/bash
ALLTRUNKSMINIMUM="`/usr/sbin/asterisk -rx "sip show registry"`" //выводим регистрации по протоколу SIP
ALLTRUNKS=`echo "$ALLTRUNKSMINIMUM" |grep "SIP registrations" |awk '{print $1}'` //численное обозначение всех имеющихся транков
REGTRUNKS=`/usr/sbin/asterisk -rx "sip show registry" |grep Registered |wc -l` //численное обозначение всех зарегистрированных транков
DATE="`date +%d.%m.%Y" "%H:%M:%S`" //формируем текущую дату, для логов
LOGFILE=/home/admin/log_mail.txt //для лог – файла, указываем тот же файл, что и для скрипта по мониторингу пиров
if [ "$REGTRUNKS" -lt "$ALLTRUNKS" ]; then //если число зарегистрированных транков меньше чем число всех транков
sleep 5 //ждем 5 секунд
echo `/usr/sbin/asterisk -rx "sip reload"` \ перезагружаем модуль SIP, в целях перерегистрации. Эта команда автоматически перерегистрирует транк на оборудовании провайдера, после чего, он, зачастую, начинает работать.
sleep 5 //ждем еще 5 секунд
VAR=`/usr/sbin/asterisk -rx "sip show registry"` //после перезагрузки SIP модуля, снова смотрим SIP –регистрации. Если данная команда не дала своих результатов, то в переменной VAR будет записаны не работающие транки. Если она помогла, то на email админу придет рабочий вывод всех зарегистрированных транков. Это весьма удобно.
echo "$VAR"| mailx -s "Мониторинг транков" -r "info@merionet.ru" youremail@some.ru // отправляем письмо на почту системного администратора, с выводом SIP регистраций после перезагрузки модуля
else
echo "OK :: $DATE :: all trunks are OK" >> "$LOGFILE" //если число зарегистрированных транков, равно общему числу, то записываем в лога файл соответствующую запись.
fi
Теперь, когда мы автоматизировали процессы мониторинга состояния на Asterisk, сделаем выполнение этих скриптов регулярным. Сохраним наши скрипты в формате .sh, можно сделать это, например, в Notepad ++. Сделаем выполнение мониторинг транков раз в 2 минуты, а выполнение мониторинга пиров раз в 10 минут. Перед загрузкой скриптов на сервер, дадим им необходимые права и, что очень важно, преобразуем скрипт в Linux формат:
[root@asteriskpbx]# dos2unix peer.sh //преобразуем скрипт для мониторинга пиров
[root@asteriskpbx]# dos2unix trunk.sh //преобразуем скрипт для мониторинга транков
[root@asteriskpbx]# chmod 777 peer.sh //дадим необходимые права обоим скриптам
[root@asteriskpbx]# chmod 777 trunk.sh
[root@asteriskpbx]# crontab -e
В открывшемся cron, задаем задачи для выполнения наших скриптов:
*/10 * * * * /bin/bash /home/peer.sh >/dev/null //исполнять файл раз в 10 минут
*/2 * * * * /bin/bash /home/trunk.sh >/dev/null //исполнять файл раз в 2 минуты
Вот и все. Теперь мы имеет достаточно простой, но порой очень нужный и эффективный мониторинг состояния транков и пиров на нашем Asterisk
PPTP (Point to Point Protocol), или, если дословно перевести, тунельный протокол типа точка-точка, является простым и быстрым решением по предоставлению удаленного доступа для пользователей. Данный протокол нативно поддерживается на операционных системах Windows XP, 7, 8, и так далее, что делает его идеальным решением для большинства офисных работников – он, к тому же, не требует установки никакого дополнительного ПО.
Главное, что нужно понимать: PPTP не обладает сильным шифрованием и прочими «фишками», которые предлагают IPSEC или SSL VPN решения. Несмотря на то, что MPPE (Microsoft Point-to-Point Encryption), поддерживаемый маршрутизаторами Cisco предоставляет довольно высокую степень защищенности, все равно не должен использоваться в сценариях, когда предоставляется доступ к ценной и/или конфиденциальной информации.
Как и в других решениях, предоставляющих удаленный доступ, удаленный пользователь может использовать PPTP для доступа к корпоративной сети и, по сути, он будет подключен прямо к внутренней подсети.
PPTP всегда настраивается между сервером (маршрутизатором Cisco) и клиентом (рабочей станцией Windows). PPTP поддерживается маршрутизаторами Cisco, а МСЭ ASA, в свою очередь, не поддерживают терминирование туннеля на самом фаерволле.
Процесс настройки клиента легко ищется в интернете, данная же статья описывает настройку маршрутизатора.
Сценарий и схема сети
В данной статье у нас предполагается следующий сценарий: к корпоративной сети принадлежит несколько филиалов, соединенных через VPN (к примеру, MPLS VPN, IPSEC VPN и так далее). Главный офис подключен к интернету и мы реализиуем простой и быстрый способ подключения удаленных пользователей к данной сети.
Допустим, интерфейс VLAN 1 (подсеть 10.10.10.0/24) маршрутизируется в основной сети. Если мы «подключим» удаленных пользователей через PPTP туннель к данному VLAN и назначим адрес из диапазона 10.10.10.0/24, то, логично, что у них появится доступ ко всем сетевым ресурсам.
В данном случае аутентификация будет реализована через локальные аккаунты на маршрутизаторе Cisco. Однако, в соответствии с рекомендациями по безопасности, мы рекомендуем использовать внешний RADIUS cервер. Оборудованием в нашем гипотетическом случае является 867VAE-K9 с образом c860vae-advsecurityk9-mz.152-4.M3.bin.
PPTP всегда настраивается между сервером (маршрутизатором Cisco) и клиентом (рабочей станцией Windows). PPTP поддерживается маршрутизаторами Cisco, а МСЭ ASA, в свою очередь, не поддерживают терминирование туннеля на самом фаерволле.
Настройка маршрутизатора
Ниже приведен пример конфига, с комментариями почти после каждой команды.
vpdn enable //Включаем VDPN (Virtual Private Dialup Network)
vpdn source-ip 1.1.1.1 //адрес используемый для входящих подключений
vpdn-group MerioNet //название группы
accept-dialin //разрешает маршрутизатору принимать подключение
protocol pptp //используемый протокол
virtual-template 1 //интерфейс, используемый для доступа
interface Virtual-Template1 //интерфейс используемый для клонирования
!описание PPTP доступа
ip unnumbered Vlan1 //использование адреса, настроенного для VLAN 1
ip virtual-reassembly in
load-interval 30
peer default ip address pool PPTP-Pool //назначение сетевого адреса для клиентов в диапазоне, указанном в PPTP-
no keepalive
ppp encrypt mppe auto //Использование MPPE шифрования с автоматически указанной силой шифрования (40, 56 или 128 бит)
ppp authentication ms-chap ms-chap-v2 //настройка разрешенных способов методов аутентификации
ip local pool PPTP-Pool 10.10.10.90 10.10.10.100 //диапазон IP-адресов, которые могут получать клиенты
username RemoteUserMerionet password merionet //создание локального пароля и логина для подключения.
Далее, обратите внимание на настройку интерфейсов (очевидные и всем известные команды):
interface GigabitEthernet1
description WAN Interface
ip address 1.1.1.1 255.255.255.252
interface Vlan1
description LAN Network
ip address 10.10.10.1 255.255.255.0
Далее, попробуйте подключить какой-нибудь клиент и проверьте работоспособность PPTP командами:
show users
show vpdn