Files
Ubuntu_docs/Ubuntu.md
2025-06-13 14:34:58 +05:00

2867 lines
130 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

****************************************************************************************************
Настройка времени и NTP сервера
Устанавливаем зону
```sh
sudo timedatectl set-timezone Asia/Almaty
```
```conf
sudo date --set="2025-01-07 21:05:00.000"
sudo timedatectl set-ntp on
sudo apt install ntp
ntpq -p
```
****************************************************************************************************
Добавляем нового пользователя
```sh
sudo adduser sabyrzhan
```
```sh
sudo usermod -aG sudo имя_пользователя
```
****************************************************************************************************
Установка cinamon на Ubuntu 22.04 и 24/04:
```sh
sudo apt update && sudo apt upgrade -y
sudo apt install cinnamon -y
sudo reboot
```
Настройка клавиатуры в cinamon удаляем: ibus
```sh
sudo apt-get remove ibus
```
Добавить в конец файла: sudo mcedit /etc/fstab
/media/sf_O_DRIVE /mnt/O_DRIVE none bind 0 0
/media/sf_D_DRIVE /mnt/D_DRIVE none bind 0 0
sudo chmod 777 /mnt/O_DRIVE
sudo usermod -aG vboxsf $USER
****************************************************************************************************
Для монтирования O_DRIVE в VitrualBox прописывать точку монтирования: /mnt/O_DRIVE
****************************************************************************************************
Авторизация на базе ключей SSH https://selectel.ru/blog/ssh-authentication/
****************************************************************************************************
Для добавления ярлыка в меню пуск создав файл *.desktop
```sh
cd /usr/share/applications
sudo tee IDEA_JEE.desktop > /dev/null <<'EOF'
[Desktop Entry]
Encoding=UTF-8
Name=IDEA_JEE
Exec=/opt/idea-IU-221.5787.30/bin/idea.sh
Icon=/opt/idea-IU-221.5787.30/bin/idea.svg
Type=Application
Categories=TextEditor;Development;IDE;
MimeType=text/html
Comment=Java development
Keywords=java;development;
EOF
```
****************************************************************************************************
Linux в Windows https://winitpro.ru/index.php/2020/07/13/zapusk-linux-v-windows-wsl-2/
wsl --list --online
wsl --install -d Ubuntu
После чего установится Ubuntu, перезагрузил, создал пользователя igor и задал простой пароль
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install mc
****************************************************************************************************
Меняем временую зону Ubuntu
sudo timedatectl set-timezone UTC
****************************************************************************************************
Убрать звуковые щелчки при работе в Ubuntu которые появляются из-за режима энергосбережения:
Отключить режим низкого энергопотребления для зуковой карты sound
sudo su
echo '0' > /sys/module/snd_hda_intel/parameters/power_save
Фаил авто выполнения скрипта при загрузки:
sudo mcedit /etc/rc.local
В начале файла поставить: #!/bin/bash
sudo chmod +x /etc/rc.local
sudo mcedit /etc/systemd/system/rc-local.service
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
sudo systemctl enable rc-local
sudo systemctl status rc-local
****************************************************************************************************
Для того чтобы консоль бястро не отключалась добавить в конец файла: sudo mcedit /etc/sysctl.conf
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 10
net.ipv4.tcp_keepalive_probes = 6
Перезагрузить:
sysctl -p
Проверить:
cat /proc/sys/net/ipv4/tcp_keepalive_time
****************************************************************************************************
Обновить ядро Ubuntu на самое новое:
uname -r
Выдало:
4.15.0-167-generic
5.4.0-99-generic
Пытаюсь поменять на 5.13.0 или 5.16.10 ищем ядро:
sudo apt-cache search linux-image | more
Устанавливаем ядро:
sudo apt-get install linux-image-5.13.0-1029-oem
sudo apt install gdebi
****************************************************************************************************
Тест памяти Ubuntu:
Объем оперативной памяти:
free -h
sudo apt install memtester
Для примера запустим проверку блока ОЗУ, размером в 100 мегабайт состоящую из двух циклов:
sudo memtester 100M 2
Для более тщательного тестирования памяти можно воспользоваться утилитой memtest86+ из меню загрузчика Grub.
****************************************************************************************************
Если grub загрузчик установился на флешку то так можно установать на нужный диск
sudo fdisk -l
sudo grub-install --root-directory=/ /dev/sda
В Ubuntu server при неправильном выключениии высвечивается меню grub без времени чтобы его отключить:
Для поиска Windows если он исчез:
sudo os-prober
sudo update-grub
Или так:
sudo mcedit /etc/default/grub
GRUB_DISABLE_OS_PROBER=true
Или так:
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt update
sudo apt install -y boot-repair && boot-repair
****************************************************************************************************
Установка и добавление себя в sudo
su -c "apt-get update"
su -c "apt-get -y install sudo"
su -c "addgroup ваш_логин sudo"
****************************************************************************************************
Установка сервиса времени и часовой пояс
apt-get -y install ntp
dpkg-reconfigure tzdata
****************************************************************************************************
0) Для того чтобы архивировать и извлечь каталог:
tar -cvf istransit.tar /opt/www/istransit.kz
tar -xvf /opt/www/istransit.tar -C /opt/www
0)Выключить комп:
shutdown -h now
1)Список процессов
top или лучше установить htop
Монтирование образа CD
mount -o loop /some.iso /mnt/point
mount -o loop -t iso9660 <isofilename> <mountpoint>
umount DIRECTORY
umount DEVICE_NAME
Посмотреть точки монтирования дисков:
sudo fdisk -l
3.1) Посмотреть мак адрес по адресу /etc/udev/rules.d/z25_persistent-net.rules
4)DNS сервера в ubuntu прописываються в /etc/resolv.conf (теперь в другом месте см. инет)
nameserver 212.19.149.53
nameserver 212.19.149.54
5)Список репозиториев в ubuntu расположен в nano /etc/apt/sources.list
apt-get update
apt-get install mc
apt-get remove mc
Если mc не найден то добавить в репозитории nano /etc/apt/sources.list эту строку:
deb http://archive.ubuntu.com/ubuntu/ jaunty universe
6)Переменные окружения
export PATH=$PATH:/usr/local/bin:/usr/local/sbin
alias mc='mc -c'
mc
7)Отобразить переменные окружения: export
8)Настройка PPPoE соединения комманда: pppoeconf
Соединятся командой: sudo pon dsl-provider
Завершить соединение: sudo poff dsl-provider
****************************************************************************************************
Выполнение скрипта
sh Check.sh
****************************************************************************************************
Символическая ссылка Symbolic
ссылка на папку:
ln -s /mnt/data/ftp /var/www/html/upload
********** Настраиваю прокси сервер **********
sudo mcedit /etc/environment
И в заголовок пишу:
http_proxy=http://192.168.1.89:8888
https_proxy=http://192.168.1.89:8888
или
http_proxy=http://192.168.0.170:7777
****************************************************************************************************
Для того чтобы посмотреть размер файлов:
ncdu
Для определения сколько свободного места выполнить:
df -h
****************************************************************************************************
Чтобы вывести информацию по ОЗУ (ram) выполните команду:
sudo lshw -C memory
****************************************************************************************************
Установка компилятора для разработки на c++ gcc
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get install perl -y
sudo apt-get install build-essential
Для компиляции по 32 битный Linux (В еклипсе прописать g++ -m32 а также gcc -m32 а также g++ -m32):
sudo apt-get install gcc-multilib
sudo apt-get install g++-multilib
Для eclipse установить:
sudo apt install default-jre
****************************************************************************************************
Установка кросс-компилятора Cross Compilers для Raspberry Pi на Ubuntu: https://github.com/raspberrypi/tools
sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
Note: if building for Pi0/1 using --with-arch=armv6 --with-float=hard --with-fpu=vfp is recommended (and matches the default flags of the toolchains included here).
/home/igor/toolchain/gcc-linaro-4.9-2016.02-x86_64_arm-linux-gnueabihf
****************************************************************************************************
записать информацию о расположении загрузчика системы в фаил
[root]# dd if=/dev/hda3 of=/mnt/floppy/bootsect.lnx bs=512 count=1
****************************************************************************************************
Компиляция WIFI драйвера
Для того чтобы узнать версию ядра "4.15.0-23-generic":
uname -r
Внмание: исходники ядра должны быть той же версии что и сейчас работают в системе!
Вывести информацию о USB устройствах:
lsusb -v
У меня выдало:
Для того чтобы посмотреть что подсоединено к pci:
lspci -v
Minipcie
Для того чтобы посмотреть всех устройств:
lsdev -v
И так у меня RTL8821AE пробую скачать драйвер отсюда:
Загрузка и проверка модулей:
lsmod
****************************************************************************************************
Подключение к wifi
Настраиваемрегион командой: iw reg set CN
То что мы живём в китае а то 5G WIFI не работает
sudo -i
echo "options cfg80211 ieee80211_regdom=CN" > /etc/modprobe.d/cfg80211.conf
exit
sudo ifconfig wlan0 up
$ sudo iwconfig wlan0 essid Node5
$ sudo dhclient -v wlan0
http://help.ubuntu.ru/wiki/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D1%81%D0%B5%D1%82%D0%B8_%D0%B2%D1%80%D1%83%D1%87%D0%BD%D1%83%D1%8E#%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_wifi
****************************************************************************************************
Активация DHCP клиента:
****************************************************************************************************
Создание нового пользователя с домашней дерикторией:
sudo useradd igor -g www-data
Задаём пароль:
sudo passwd igor
Добавляем пользователя в дополнительную группу (группы через запятую):
sudo usermod -a -G www-data administrator
sudo usermod -a -G tomcat administrator
sudo usermod -a -G sudo igor
Разрешить доступ к последовательному порту Для этого помещаем себя в группу dialout
sudo usermod -a -G dialout igor
Для проверки настроек:
id igor
groups igor
Назначить sudo привилегии пользователю:
mcedit /etc/sudoers
igor ALL=(ALL:ALL) ALL
Рекурсивно назначить вледельца папки:
sudo chown tomcat:tomcat -R /opt/tomcat/geoserver/ROOT/data
sudo chown tomcat:tomcat ~/CCALM.war
sudo chown tomcat:tomcat ~/SoilScience.war
sudo chown <your username>:<your usergroup> -R <path to>/.blabla
Выставляем права на папку:
sudo chmod -R 774 /var/www/
Для удаления пользователя c домашней и mail директорией выполнить:
userdel -r igor
****************************************************************************************************
Монтирование USB Flash
mount -t vfat /dev/sda1 /flash
umount /flash
Автомонтирование USB при запуске системы http://www.fight.org.ua/hdddrives/linux_disk_mount_fstab.html http://help.ubuntu.ru/wiki/fstab:
Выполнить команду: sudo blkid
Найти строку:
/dev/sdb1: LABEL="IGOR_8GB" UUID="94D2-1374" TYPE="vfat"
/dev/sdb1: LABEL="SSD_2_5" UUID="14A3BBD52CB2F1C3" TYPE="ntfs" PARTUUID="56c83443-01"
/dev/sdb5: UUID="17C59CBD70BFFBA5" TYPE="ntfs" PARTUUID="f9aec734-05"
Добавить в sudo mcedit /etc/fstab следующее:
UUID=94D2-1374 /media/usb vfat rw,auto,user,exec,async 0 0
UUID=7086E7317C4E478E /mnt/O_DRIVE ntfs-3g defaults 0 0
/dev/sda3 /mnt/ssd ntfs-3g rw,auto,user,exec,async 0 0
/dev/sda3 /mnt/windows ntfs-3g defaults 0 0
Монтирование сетевой файловой системы:
mount -t cifs //192.168.0.11/o /mnt/smb -o username=igor,password=1245,iocharset=utf8,codepage=cp866
Для автоматического монтирования в /etc/fstab записать: //192.168.0.11/o /mnt/smb cifs username=igor,password=1245,rw,auto,noexec,iocharset=utf8,codepage=cp866,uid=1000,gid=100 0 0
****************************************************************************************************
Перенос системы на другой жеский диск (также можно делать недельные бакапы системы, на атоме установленна)
Создаём копию системы на флешку:
sudo tar cvpzf /media/usb/backup.tgz --exclude=/var/www --exclude=/etc/fstab --exclude=/boot/grub/grub.cfg --exclude=/mnt --exclude=/media --exclude=/proc --exclude=/lost+found --exclude=/sys /
Потом извлекаем на новую установленную систему командой: sudo tar xvpfz /backup.tgz -C /
Можно также скопировав с диска на диск без синхронизации:
****************************************************************************************************
Измененние раздела без перезагрузки сервера после увеличения размера жеского диска (на основе: https://serverspace.ru/support/help/uvelichenie-diskovogo-prostranstva-ubuntu-18/)
ТОЛЬКО ДЛЯ РАЗДЕЛОВ LVM
Посмотреть список дисков:
df -h
lsblk
Выполняем сканирование конфигурации и передачу данных ядру ОС:
echo 1 > /sys/block/sda/device/rescan
Запускаем утилиту:
parted
Выводим таблицу разделов:
p
Результат такой (для запоминания):
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 537GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 2097kB 1049kB bios_grub
2 2097kB 215GB 215GB ext4
Запускаем процедуру слияния:
(parted) resizepart 2
Где «2» означает номер тома, на котором происходит изменение дискового пространства, вбиваю нужный размер:
537GB
Потом:
quit
Информируем OC об изменениях:
pvresize /dev/sda2
Меняем значение тома командой:
lvextend -r -l +100%FREE /dev/mapper/vgroup1-root
Проверяем результат:
df h
----------------------------------------
Вариант для не виртуальной файловой системы (https://habr.com/ru/post/450444/):
Проверяем размер:
sudo fdisk -l
Выдало:
Disk /dev/sda: 500 GiB, 536870912000 bytes, 1048576000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 955FD603-437A-4A80-B5F6-90F1C2CCD1D0
Device Start End Sectors Size Type
/dev/sda1 2048 4095 2048 1M BIOS boot
/dev/sda2 4096 419921875 419917780 200,2G Linux filesystem
Удаляем раздел и создаём новый командами:
sudo fdisk /dev/sda
p
d
n (Метку файловой системы не удаляем)
Обновляем:
sudo partprobe /dev/sda
Перезаписываем метаданные файловой системы:
sudo resize2fs /dev/sda2
Проверяем:
sudo fdisk -l
****************************************************************************************************
Добавление нового пользователя см. cat /etc/passwd и cat /etc/group
sudo useradd tester -d /var/www/www.dirt.kz -g 33 -s /usr/sbin/nologin
sudo passwd tester
sudo userdel tester
****************************************************************************************************
Настройка rsync для резервного копирования файлов в отдельную папку http://ashep.org/2010/backup-v-linux-nastraivaem-rsync-server/#.VPrB0_mQCNY
1 й командой на флешку: rsync -rlvt --modify-window=1 --delete /var/www /media/usb
Меняем редактор по умолчанию на тот который от MC:
export EDITOR=mcedit
Для добавления в cron для дневной синхронизации:
crontab -e
И добавляем строчку чтоб это происходило в 3 часа ночи:
0 3 * * * rsync -rlvt --modify-window=1 --delete /var/www /media/usb
****************************************************************************************************
Настройка cron:
sudo update-alternatives --config editor
update-alternatives --config editor
export EDITOR=mcedit
Или записать в "sudo mcedit /etc/environment" строку "EDITOR=mcedit"
sudo crontab -e
sudo crontab -e -u www-data
sudo crontab -e -u tomcat
В файле прописать:
*/5 * * * * wget -O /dev/null -q 'http://www.bigfoottrade.kz/cashier/work.php'
*/2 * * * * wget -O /dev/null -q 'http://uspdmanager.istt.kz/engine/globalstar.php'
10 0 * * * wget -O /dev/null -q 'http://www.bigfoottrade.kz/sitemap.php'
0 * * * * wget -O /dev/null -q 'http://www.bigfoottrade.kz/shop/tree.php?fn=0&name=test_tree.js'
*/30 * * * * /usr/bin/php5 /var/www/update_ip.php
*/1 * * * * wget -O /dev/null -q 'http://uspdmanager.istt.kz/engine/work.php'
0 3 * * * wget -O /dev/null -q 'http://uspdmanager.istt.kz/get/list.php'
*/1 * * * * wget -O /dev/null -q 'http://uspdmanager.istt.kz/engine/mail.php'
*/1 * * * * wget -O /dev/null -q 'http://uspdmanager.istt.kz/engine/iridium.php'
*/2 * * * * wget -O /dev/null -q 'http://uspdmanager.istt.kz/engine/globalstar.php'
0 6 * * * wget -O /dev/null -q 'http://locust.kz/DownloadWeather?forecast=000'
0 7 * * * wget -O /dev/null -q 'http://locust.kz/DownloadWeather?forecast=048'
1 1 1 * * wget -O /dev/null -q 'http://locust.kz/SendMail'
0 1 * * * wget -O /dev/null -q 'http://locust.kz/get/list.php'
0 1 * * * /opt/backups/backup.sh
Проверяю таблицу:
sudo crontab -l -u www-data
****************************************************************************************************
Установка MongoDB на Ubuntu https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-18-04-ru
sudo apt update
sudo apt install mongodb-server
sudo systemctl status mongodb
****************************************************************************************************
Установка MySQL на Ubuntu 22.04
apt-get update
sudo apt-get install mysql-server
Удаление MySQL
sudo systemctl stop mysql
sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt autoremove
sudo apt autoclean
Меняем пароль через SQL:
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newIg@rR0';
SELECT user,authentication_string,plugin,host FROM mysql.user;
SHOW GRANTS FOR 'root'@'localhost';
Также настроить чтобы он был не регистрозависемым в файле /etc/mysql/mysql.conf.d/mysqld.cnf в секции [mysqld] добавить строку:
lower_case_table_names = 1
Для возможность удаленого подключения через внешку создаём спец пользователя, это я сделал через dbForge создав там пользователя root@192.168.0.%.
sudo mysql -u root -pnewIg@rR0
CREATE USER 'root'@'192.168.0.%' IDENTIFIED WITH mysql_native_password BY 'newIg@rR0';
ALTER USER 'begaikin'@'192.168.0.%' IDENTIFIED BY 'Begaikin@2';
Проверить: GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.0.%';
GRANT ALL PRIVILEGES ON `%`.* TO 'root'@'192.168.0.%';
SHOW GRANTS FOR 'root'@'192.168.0.%';
А также для удалёного подключения закоментить параметр "bind-address = 127.0.0.1" в файле настроек mcedit /etc/mysql/mysql.conf.d/mysqld.cnf
Перезагружаем MySQL:
sudo service mysql restart
База MySQL: db1109882_locust
Логин: u1109882_root
Пароль: root123456
mysqldump -uu1109882_root -proot123456 -h127.0.0.1 db1109882_locust > /root/db1109882_locust2.sql
****************************************************************************************************
Установка MySQL для разработчика:
sudo apt-get update
sudo apt-get install libmysqld-dev
****************************************************************************************************
Установка Apache и PHP (на посл версии Ubuntu php7):
Подключаемся к серверу:
```sh
ssh administrator@10.101.1.3
```
Устанавливаем:
```sh
sudo apt-get update &&
sudo apt-get install apache2 php -y &&
sudo apt-get install php libapache2-mod-php -y &&
sudo apt-get install php gettext -y &&
sudo apt-get install php php-gd -y &&
sudo apt-get install php php-pgsql -y &&
sudo apt-get install php php-mysql -y &&
sudo apt-get install php php-mysqli -y &&
sudo apt-get install php-imap -y &&
sudo apt-get install php-mbstring -y &&
sudo apt-get install php-curl -y &&
sudo apt-get install php-xml -y &&
sudo apt-get install php-soap -y
```
Включаем модули:
```sh
sudo phpenmod imap
sudo phpenmod mbstring
sudo a2enmod rewrite
```
В /etc/apache2/apache2.conf ставим AllowOverride All командой
```sh
sudo sed -i 's/AllowOverride None/AllowOverride All/g' /etc/apache2/apache2.conf
```
Проверяем файл:
```sh
sudo mcedit /etc/apache2/apache2.conf
```
```sh
sudo a2enmod php8.0
sudo a2enmod ssl #Так как в последнее время делаю через haproxy то SSL в апачи не использую
sudo a2enmod headers
sudo a2enmod expires
sudo a2enmod passenger #Для redmine
sudo a2enmod fastcgi #Для redmine
sudo a2dismod info #Чтобы не светить статистикой в сеть
sudo a2dismod status #Чтобы не светить статистикой в сеть
```
Также добавляем обработку раширения .xyz как .php файл.
Настраиваем PHP /etc/php/8.3/apache2/php.ini:
max_execution_time = 60
max_input_time = 120
short_open_tag = On
display_errors = On
post_max_size = 20M
upload_max_filesize = 20M
session.gc_maxlifetime = 14400 #Увеличиваем время жизнисесии до 4 часов
Если выдаёт такое:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Настройка Apache:
httpd - запустить Apache
Перезапустить Apache
```sh
sudo systemctl restart apache2
```
********** Установка Composer для php **********
Скачиваю в домашнюю папку пользователя
curl -sS https://getcomposer.org/installer -o composer-setup.php
Выполняем загрузку и установку:
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Потом можно будет переходить в папку с сайтом и выполнять
composer require mpdf/mpdf
********** Настройка laravel под Windows php фреймворк **********
https://www.tutorialspoint.com/laravel/laravel_installation.htm
После установки композера раскоментить расширение ;extension=fileinfo и выполнить команду:
composer create-project laravel/laravel rigor --prefer-dist
Потом можно запустить сервер зайдя в созданную папку:
php artisan serve
********** Настройка https ssl для apache под Windows **********
https://apache-windows.ru/apache-ssl-переход-apache-на-https/
********** Настройка https ssl для apache под Linux **********
Создаём ключ командой:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt
На вопрос пароля написал "test!irigm"
Снимаем пароль с ключа:
cp server.key{,.orig}
openssl rsa -in server.key.orig -out server.key
rm server.key.orig
Скопируем их в /etc/ssl и назначим файлу ключа права чтения только администратору:
sudo cp server.crt /etc/ssl/certs/
sudo cp server.key /etc/ssl/private/
sudo chmod 0600 /etc/ssl/private/geovizor_com.key
Для начала необходимо активировать mod_ssl:
sudo a2enmod ssl
Содержание файла виртуального хоста:
<VirtualHost *:443>
ServerAdmin info@geovizor.com
ServerName geovizor.com
ServerAlias www.geovizor.com
DocumentRoot /var/www/geovizor.com
DirectoryIndex index.html index.php index.xyz
AddType application/x-httpd-php .php .xyz
SSLEngine on
SSLCertificateFile /etc/ssl/certs/geovizor_com.crt
SSLCertificateChainFile /etc/ssl/certs/geovizor_com.ca-bundle
SSLCertificateKeyFile /etc/ssl/private/geovizor_com.key
</VirtualHost>
sudo a2ensite bigfoottrade.kz.ssl.conf
sudo a2ensite bigfoottrade.kz.conf
sudo a2ensite zatochnik.pro.conf
sudo a2ensite zatochnik.pro.ssl.conf
sudo a2ensite elektronnaya-ochered.kz.conf
sudo a2ensite elektronnaya-ochered.kz.conf
sudo a2ensite transit.istt.kz.conf
sudo a2ensite geovizor.com.ssl.conf
sudo a2ensite mqtt.kz.ssl.conf
sudo a2ensite stations.istt.kz.ssl.conf
sudo a2ensite stations.istt.kz.conf
sudo a2ensite uspdmanager.istt.kz.conf
sudo a2ensite msp.istt.kz.conf
sudo a2ensite mog.istt.kz.conf
sudo a2ensite mqtt.kz.conf
sudo a2ensite data.ccalm.org
sudo a2ensite rigor.kz.conf
sudo a2ensite 000-default.conf
sudo a2ensite transit.istt.kz.conf
sudo a2ensite aistransit.kz.conf
sudo a2ensite jwt.local.conf
sudo a2ensite jwt2.local.conf
sudo a2ensite transit_gpti_kg.conf
Посмотреть все разрешонные сайты:
a2query -s
sudo a2dissite bigfoottrade.kz.conf
sudo a2dissite zatochnik.pro.ssl.conf
sudo a2dissite zatochnik.pro.conf
sudo a2dissite geovizor.com.ssl.conf
sudo a2dissite transit.istt.kz.conf
sudo a2dissite 000-default.conf
sudo a2dissite default-ssl.conf
sudo a2dissite msp.istt.kz.ssl.conf
sudo a2dissite mqtt.kz.ssl.conf
sudo a2dissite transit.istt.kz.conf
sudo a2dissite istransit.kz.conf
sudo a2dissite jwt2.local.conf
sudo a2dissite jwt.local.conf
http://aistransit.kz/
Для проверки файла ключа:
openssl x509 -noout -modulus -in /etc/ssl/certs/geovizor_com.crt
openssl x509 -noout -modulus -in /etc/ssl/private/server.key
openssl pkcs7 -print_certs -in /etc/ssl/certs/geovizor_com.crt -out /etc/ssl/certs/geovizor_com.pem
Проверяем настройки командой:
/usr/sbin/apache2 -S
***** Настраивем виртуальный хост *****
Копируем файлик примера:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/test.istt.kz.conf
sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/msp.istt.kz.ssl.conf
В файлике настраиваю ServerAdmin и DocumentRoot :
<VirtualHost *:80>
ServerAdmin ivanov.i@istt.kz
ServerName transit.istt.kz
ServerAlias transit2.istt.kz
DocumentRoot /var/www/transit.istt.kz
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Активируем:
sudo a2ensite bigfoottrade.kz.conf
sudo a2ensite bigfoottrade.kz.ssl.conf
sudo a2ensite uspdmanager.istt.kz.conf
sudo a2ensite uspdmanager.istt.kz.ssl.conf
sudo a2ensite msp.istt.kz.ssl.conf
sudo a2ensite daloradius.istt.kz.conf
sudo a2ensite stations.istt.kz
sudo a2ensite zatochnik.pro
sudo a2ensite elektronnaya-ochered.kz.conf
sudo a2ensite integration-gateway.org.conf
sudo a2ensite integration-gateway.org.ssl.conf
sudo a2ensite motion-engine.ru.conf
sudo a2ensite motion-engine.kz.conf
sudo a2ensite motion-engine.com.conf
sudo a2ensite observer.kz.conf
sudo a2ensite transit.istt.kz.ssl.conf
sudo a2ensite transit.istt.kz.conf
sudo a2ensite geovizor_local.conf
Или деактивируем
sudo a2dissite 000-default.conf
sudo a2dissite msp.istt.kz.ssl.conf
sudo a2dissite bigfoottrade.kz.conf
sudo a2dissite uspdmanager.istt.kz.conf
sudo a2dissite earth.kz.conf
sudo a2dissite integration-gateway.org.conf
sudo a2dissite observer.kz.conf
Перезагружаем
sudo service apache2 restart
****************************************************************************************************
Настройка SSH:
sudo apt-get install openssh-server
Поменять порт можно в настройках:
sudo mcedit /etc/ssh/sshd_config
Port 2222
Для рестарта: sudo /etc/init.d/ssh stop/start/restart
Для подключения через Linux: ssh administrator@192.168.0.83 -p 2222
Для винды есть PUTTY.EXE настроить кодировку на utf-8
****************************************************************************************************
Подключение к последовательному порту ttyUSB через Minicom
sudo apt-get install minicom
sudo minicom -s
После настройки зайти так
sudo minicom
****************************************************************************************************
********** Устанавливаю и настраиваю FreeRadius **********
Настройка rlm_perl для FreeRadius: http://abills.net.ua/wiki/doku.php/abills:docs:rlm_perl:ru подсказки в http://www.m-200.com/base/index.php/%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA_FREERADIUS._%D0%A7%D0%B0%D1%81%D1%82%D1%8C_3
Для того, чтобы использовать встроенный perl необходимо:
1. В файле modules/perl раскомментировать строку 'func_authorize = authorize'.
2. В файле radiusd.conf добавить:
authorize {
preprocess
files
perl
}
По инсткукции из http://ittraveler.org/ustanovka-i-nastrojka-radius-servera-na-ubuntu-s-veb-interfejsom/
Устанавливаем FreeRadius и пакеты
sudo apt-get install freeradius
sudo apt-get install freeradius-mysql
sudo apt-get install freeradius-utils
sudo apt-get install freeradius-perl
sudo apt-get install freeradius-python
Подключаемся к серверу Mysql
mysql -u root -p
Далее создаем базу данных radius
create database radius;
Назначим полные права пользователю radius
grant all on radius.* to radius@localhost identified by "WP@$$w0rd";
Отключаемся от Mysql
exit
Импортируем таблицы в базу данных radius
#mysql -u root -p radius < /etc/freeradius/sql/mysql/schema.sql
#mysql -u root -p radius < /etc/freeradius/sql/mysql/nas.sql
Для проверки добавим тестовые значения в таблицу radcheck
#mysql -u root -p
#mysql> use radius;
#mysql> INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('sqltest', 'Password', 'testpwd');
#mysql> exit
Открываем файл настроек Freeradius для MySQL расположение файла — /etc/freeradius/sql.conf
Редактируем строки до такого вида:
database = mysql
server = "localhost"
port = 3306
login = radius
password = "WP@$$w0rd"
radius_db = "radius"
readclients = yes
Далее открываем файл сайта Freeradius
Расположение файла — /etc/freeradius/sites-enabled/default
Приводим следующие строки к виду:
Uncomment sql on authorize{}
# See “Authorization Queries” in sql.conf
sql
...
Uncomment sql on accounting{}
# See “Accounting queries” in sql.conf
sql
...
Uncomment sql on session{}
# See “Simultaneous Use Checking Queries” in sql.conf
sql
...
Uncomment sql on post-auth{}
# See “Authentication Logging Queries” in sql.conf
sql
Далее правим основной конфигурационный файл Freeradius и включаем поддержку Mysql расскоментировав строку.
Расположение файла — /etc/freeradius/radiusd.conf
$INCLUDE sql.conf
Теперь протестируем настройки сервера.
Откройте 2 ssh окна терминала.
В первом окне остановим сервис Freeradius
sudo service freeradius stop
И запустим сервис в режиме debug
sudo freeradius -X - debug mode
Теперь открываем второе окно терминала и вводим запрос
radtest sqltest testpwd localhost 18128 testing123
Если вывод команды такой:
Sending Access-Request of id 68 to 127.0.0.1 port 1812
User-Name = "sqltest"
User-Password = "testpwd"
NAS-IP-Address = 127.0.1.1
NAS-Port = 18128
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=68, length=20
То все впорядке.
Теперь нужно добавить Radius клиентов в файл /etc/freeradius/clients.conf
Пример добавления:
client 192.168.1.0/16 {
secret = secretpass
shortname = testclient
nastype= testdevice
}
****************************************************************************************************
Проверить версию OpenSSL: openssl version -v
Устанавливаю из исходников:
wget https://www.openssl.org/source/openssl-3.0.1.tar.gz
tar xzvf openssl-3.0.1.tar.gz
cd openssl-3.0.1
./config
make
sudo make install
ln -s libssl.so.3 libssl.so
sudo ldconfig
openssl version -a
Если выдало что не можжет найти: openssl: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or director
Для этого добавить путь к каталогу библиотек: sudo mcedit /etc/ld.so.conf.d/libc.conf и вставить: /usr/local/lib64 и запустить sudo ldconfig
Также нужно добавить путь при компиляции: sudo export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib64/pkgconfig
Проверить путь:
pkg-config --cflags openssl
pkg-config --variable pc_path pkg-config
Не знал как указать путь на /usr/local/lib64/pkgconfig поэтому скопировал в /usr/local/lib/pkgconfig
Если нужно установить OpenSSL для разработчика из репозитория (но там старая нужна > 3.0):
apt-get update
sudo apt-get install libssl-dev
****************************************************************************************************
Установить ProFTPD для доступа через FTPS с сохранением пользователей в PostgreSQL по подсказки нейросети
sudo apt-get update
sudo apt-get install proftpd-basic proftpd-mod-pgsql proftpd-mod-crypto postgresql postgresql-contrib openssl
Создание сертификата TLS:
sudo mkdir /etc/proftpd/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/proftpd/ssl/proftpd.key -out /etc/proftpd/ssl/proftpd.crt
Включаем модуль в:
sudo nano /etc/proftpd/modules.conf
Раскоментив строку:
LoadModule mod_tls.c
Настройка ProFTPD для использования TLS:
sudo mcedit /etc/proftpd/tls.conf
Добавьте или измените следующие строки:
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.crt
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key
TLSOptions NoCertRequest
TLSVerifyClient off
TLSRequired on
TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3
</IfModule>
Включение TLS в основной конфигурации ProFTPD:
sudo mcedit /etc/proftpd/proftpd.conf
Добавьте или измените следующие строки:
Include /etc/proftpd/tls.conf
Создаём и меняем базу данных
CREATE DATABASE ftpusers;
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(30) NOT NULL UNIQUE,
password VARCHAR(128) NOT NULL,
uid INT NOT NULL,
gid INT NOT NULL,
homedir VARCHAR(255) NOT NULL,
shell VARCHAR(255) NOT NULL
);
INSERT INTO users (name, password, uid, gid, homedir, shell) VALUES ('<username>', MD5('<password>'), 1001, 1001, '/home/<username>', '/bin/false');
INSERT INTO users (name, password, uid, gid, homedir, shell) VALUES ('administrator', MD5('administrator'), 1001, 1001, '/home/administrator', '/bin/false');
CREATE USER proftpd WITH PASSWORD 'ReULkD8M';
GRANT ALL PRIVILEGES ON DATABASE ftpusers TO proftpd;
Включаем модуль в:
sudo nano /etc/proftpd/modules.conf
Раскоментив строку:
LoadModule mod_sql.c
LoadModule mod_sql_postgres.c
LoadModule mod_sql_passwd.c
Редактируем:
sudo nano /etc/proftpd/pgsql.conf
Настройка ProFTPD для использования PostgreSQL:
sudo mcedit /etc/proftpd/pgsql.conf
Вставить следующий код:
<IfModule mod_sql.c>
SQLEngine on
SQLBackend pgsql
SQLAuthenticate users
SQLConnectInfo ftpusers@10.101.1.6:5432 proftpd ReULkD8M
SQLUserInfo users name password uid gid homedir shell
# Логирование SQL-запросов
SQLLogFile /var/log/proftpd/sql.log
SQLLog ALL
# Указание на использование открытых паролей
SQLAuthTypes OpenPlaintext
</IfModule>
Добавляем ссылку на созданную настройку:
sudo nano /etc/proftpd/proftpd.conf
Добавилв следующее содержимое:
Include /etc/proftpd/pgsql.conf
Теперь можно перезапустить proftpd:
sudo systemctl restart proftpd
Проверяем что пользователи успешно считались из базы даныз командой:
sudo mcedit -f /var/log/proftpd/sql.log
****************************************************************************************************
Установить ProFTPD http://sys-admin.kz/os/nix/539-centod-install-proftpd.html для доступа через FTPS
Настраиваем для пользователя www-data
sudo apt-get install proftpd-basic openssl
Проверить какие модули установленны:
proftpd -vv
sudo apt-get remove --purge proftpd-basic
В настройках mcedit /etc/proftpd/proftpd.conf изменить:
UseIPv6 off
DefaultRoot ~
ServerIdent on "FTP Server ready."
RequireValidShell off
AuthUserFile /etc/proftpd/ftpd.passwd
Для создания нового виртуального пользователя "tester" "firsttester" в файле выполнить комманду (uid и gid должны быть как у пользователя www-data смотри: cat /etc/passwd и cat /etc/group)
sudo ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=tester --uid=33 --gid=33 --home=/var/www/www.dirt.kz --shell=/bin/false
sudo ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=ftpzhol --uid=33 --gid=33 --home=/mnt/ssd/ftp --shell=/bin/false
sudo ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=zatochnik --uid=33 --gid=33 --home=/var/www/www.zatochnik.pro --shell=/bin/false
sudo ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=evak --uid=33 --gid=33 --home=/var/www/evak --shell=/bin/false
sudo ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=apk --uid=33 --gid=33 --home=/var/www/istransit.kz/apk --shell=/bin/false
sudo ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=rebezov.a --uid=33 --gid=33 --home=/var/www/test2.istransit.kz --shell=/bin/false
sudo ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=rebezov.a --uid=33 --gid=33 --home=/opt/www/istransit.kz --shell=/bin/false
sudo ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=jointech --uid=33 --gid=33 --home=/opt/SServerJointech/ftp --shell=/bin/false
Задал пароль для apk пользователя: vooOtKBb7bckcNh
Задал пароль для rebezov.a : BU39kb2
Задал пароль для jointech : jointech
задал пароль:
zoto!23+
Назначить права на файл:
sudo chown proftpd:nogroup /etc/proftpd/ftpd.passwd
Сменить пароль: ftpasswd --passwd --name=tester --change-password
Перезапустить: /etc/init.d/proftpd restart
Задать права на папку: sudo chown -R 33:33 /var/www
Задать права на папку: sudo chown -R 33:33 /opt/www
******************************************************
Для настройки SSL для proftpd Выполнить в консоли:
Включаем модуль в:
sudo mcedit /etc/proftpd/modules.conf
Раскоментив строку:
LoadModule mod_tls.c
Проверить какие модули установленны, если нет tls то дальше не выполнять:
proftpd -vv
sudo mkdir /etc/proftpd/ssl
sudo openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem
sudo chown -R proftpd:nogroup /etc/proftpd/ssl
Потом в /etc/proftpd/proftpd.conf раскоментируем строку Include /etc/proftpd/tls.conf
И откоректируем этот файл так:
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23 TLSv1
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
TLSOptions NoCertRequest
TLSVerifyClient off
TLSRequired on
Перезапустить: /etc/init.d/proftpd restart
****************************************************************************************************
На Ubuntu включить файрвол брандмауэр firewall:
http://help.ubuntu.ru/wiki/%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_ubuntu_server/%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C/firewall
Желательно сменить порт для ssh допустим на 2222
sudo ufw allow ssh
sudo ufw enable
sudo ufw allow 80/tcp
sudo ufw allow 8080/tcp
sudo ufw allow 443/tcp
sudo ufw allow 10050/tcp
sudo ufw allow 50000:50010/tcp
sudo ufw allow 5432/tcp
sudo ufw allow 3219/tcp
sudo ufw allow 3221/tcp
Эти настройки были до переустановки сервера
443/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
10000/tcp ALLOW 192.168.0.0/24
3306/tcp ALLOW 192.168.0.0/24
10050/tcp ALLOW 192.168.0.0/24
10051/tcp ALLOW 192.168.0.0/24
2222/tcp ALLOW Anywhere
8080/tcp ALLOW Anywhere
5432/tcp ALLOW Anywhere
1812/udp ALLOW Anywhere
1813/udp ALLOW Anywhere
3799/udp ALLOW Anywhere
Эти порты для терминалов:
3211/tcp ALLOW Anywhere
3212/tcp ALLOW Anywhere
3213/tcp ALLOW Anywhere
3214/tcp ALLOW Anywhere
3215/tcp ALLOW Anywhere
3216/tcp ALLOW Anywhere
3217/tcp ALLOW Anywhere
3218/tcp ALLOW Anywhere
3219/tcp ALLOW Anywhere
3220/tcp ALLOW Anywhere
3221/tcp ALLOW Anywhere
Для freeredius:
sudo ufw allow 1812/udp
sudo ufw allow 1813/udp
sudo ufw allow 3799/udp
sudo ufw deny ftps
sudo ufw delete
deny 80/tcp
sudo ufw allow from 192.168.0.89 to any port 3306
sudo ufw allow from 192.168.0.0/24 to any port 2222 proto tcp
sudo ufw delete from 192.168.0.0/24 to any port 5432 proto tcp
Для отключения:
sudo ufw disable
Для получения списка включнных
sudo ufw status
****************************************************************************************************
https://pro-gram.ru/bridge-utils-ubuntu-server-18-04.html
Устанавливаю ПО для сетевого моста:
sudo apt install bridge-utils
Смотрим интерфейсы:
ifconfig -a
Открываю: sudo nano /etc/netplan/50-cloud-init.yaml
Файлик для жолака есть в папке "Заливка"
****************************************************************************************************
Отключить IP v6: http://www.linuxrussia.com/2013/05/disable-ipv6-ubuntu.html
****************************************************************************************************
Установка sendmail для почты на php
sudo apt-get install php-mail
sudo apt-get install sendmail
sudo sendmailconfig
Проверить доменное имя:
sudo mcedit /etc/hosts
Настраиваем PHP:
sudo mcedit /etc/php/8.1/apache2/php.ini
Прописав:
sendmail_path = /usr/sbin/sendmail -t -i
Или если используем ssmtp то (ниже есть настройка для внешнего почтового сервера):
sendmail_path = /usr/sbin/ssmtp -t
Перезагружаем апач:
sudo service apache2 restart
****************************************************************************************************
Настройка переадресации почты:
sudo apt-get install postfix
В файл /etc/postfix/main.cf
recipient_bcc_maps = hash:/etc/postfix/virtual
В файл /etc/postfix/virtual записать:
@bigfoottrade.kz irigm@mail.ru
@bigfoottrade.kz instruments@asia.com
поле чего:
postmap /etc/postfix/virtual
postfix reload
Также добавить в фаирволл:
sudo ufw allow Postfix
sudo ufw allow 'Postfix SMTPS'
sudo ufw deny Postfix
sudo ufw deny 'Postfix SMTPS'
****************************************************************************************************
Использование для почты внешнего сервера например mail.ru (в php и других программах)
sudo apt-get install mailutils
sudo apt-get install ssmtp
Потом заходим в настройки и меняем параметры
sudo mcedit /etc/ssmtp/ssmtp.conf
Для yandex.ru должно быть такое:
root=no_reply@bigfoottrade.kz
mailhub=smtp.yandex.ru:465
#hostname=localhost
UseTLS=YES
AuthUser=no_reply@bigfoottrade.kz
AuthPass=Rp1ZB1nB340kSQAoPor3
FromLineOverride=YES
Debug=NO
Для локального сервера istt.kz должно быть такое:
root=no-reply@istt.kz
mailhub=mail.istt.kz:465
#hostname=localhost
UseTLS=YES
AuthUser=no-reply@istt.kz
AuthPass=je6&HHCEmJ
FromLineOverride=YES
Debug=NO
А в файле sudo mcedit /etc/ssmtp/revaliases прописать:
administrator:no_reply@bigfoottrade.kz:smtp.yandex.ru:465
www-data:no_reply@bigfoottrade.kz:smtp.yandex.ru:465
igor:no_reply@bigfoottrade.kz:smtp.yandex.ru:465
root:no_reply@bigfoottrade.kz:smtp.yandex.ru:465
zabbix:no_reply@bigfoottrade.kz:smtp.yandex.ru:465
Тестируем отправку в консоли:
echo test_message | ssmtp irigm@mail.ru
Логи находятся в папке sudo mcedit /var/log/maillog
****************************************************************************************************
Старую версию агента/сервера из репазитория можно установить так:
cd /usr/src
wget http://repo.zabbix.com/zabbix/2.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_2.2-1+trusty_all.deb
sudo dpkg -i zabbix-release_2.2-1+trusty_all.deb
sudo apt-get update
sudo apt-get install zabbix-agent
service zabbix-agent start
****************************************************************************************************
Устанавливаю zabbix сервер 5.2 https://techexpert.tips/zabbix/zabbix-5-install-ubuntu-linux/ на Ubuntu 18.04
sudo apt update && sudo apt upgrade
sudo apt install apache2
sudo apt install php php-cli php-common php-pgsql
Скачиваю настройки репозитория для zabbix для Ubuntu server 18.04 bionic x64:
wget -P ~ https://repo.zabbix.com/zabbix/5.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.2-1%2Bubuntu18.04_all.deb
Добавляю репозиторий заббикса:
sudo dpkg -i ./zabbix-release_5.2-1+ubuntu18.04_all.deb
Устанавливаю необходимые пакеты:
sudo apt update
sudo apt install zabbix-server-pgsql zabbix-frontend-php zabbix-apache-conf zabbix-agent zabbix-get
Создаю начальную базу, через WEB интерфейс, название базы: zabbix пароль z123456
CREATE DATABASE transit
WITH OWNER = postgres
TEMPLATE = template0
ENCODING = 'UTF8'
TABLESPACE = pg_default
LC_COLLATE = 'ru_RU.UTF-8'
LC_CTYPE = 'ru_RU.UTF-8'
CONNECTION LIMIT = -1;
Импортируем изначальную схему и данные:
zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix
Настраиваем логин пароль:
mcedit /etc/zabbix/zabbix_server.conf
Прописываем:
DBPassword=z123456
Проверяю настройку PHP: mcedit /etc/php/7.2/apache2/php.ini
date.timezone = Asia/Almaty
Затем:
sudo service apache2 restart
Запускаем процессы сервера и агента
sudo service zabbix-server start
sudo update-rc.d zabbix-server enable
sudo systemctl restart zabbix-server zabbix-agent apache2
sudo systemctl enable zabbix-server zabbix-agent apache2
Логи при такой установке в:
/var/log/zabbix
Пробуем зайти
http://94.247.128.218/zabbix
Проходимся по WEB настройке и авторизуемся: Admin с паролем zabbix там создаём узел сети и добавляем нужные шаблоны.
Поменял пароль на: ze0bra
Настройка E-mail для оповещений при помощи скрипта http://efsol-it.blogspot.com/2014/05/zabbix-email.html:
Узнаём куда нужно ложить скрипты:
cat /etc/zabbix/zabbix_server.conf | grep alertscripts
Выдало:
# AlertScriptsPath=/usr/lib/zabbix/alertscripts
Записал туда этот путь: /usr/local/etc/zabbix/alertscripts
Скрипт для отправки почты (закинул в 2 пуми в alertscripts и externalscripts):
#!/bin/bash
to="$1"
subject="$2"
body="$3"
echo $body | mail -s $subject $to
exit 0
Прописываем права для скрипта:
chown zabbix.zabbix /usr/local/etc/zabbix/alertscripts/email.sh
chmod +x /usr/local/etc/zabbix/alertscripts/email.sh
Потом внастройках Администрирование -> Способы оповещений -> Создать способ оповещения
После того как создали в настройках пользователя присваиваем оповещение.
Потом активируем действия в "Настройка -> действия"
Перезапускаем
sudo service zabbix-server restart
****************************************************************************************************
Для копирования библиотек запустить:
mvn dependency:copy-dependencies -DoutputDirectory=${project.build.directory}/libs
Потом эти библиотеки хранить рядом с jar
Скомпилировать в "IntelliJ IDEA -> Maven -> package" создастца TransitToRabbitMQ-1.0-SNAPSHOT.jar
Используем команду "-cp" а не "-jar" так как в манифесте нет описания главного класса:
/usr/bin/java -jar /opt/TransitToRabbitMQ.jar
/usr/bin/java -cp /opt/TransitToRabbitMQ.jar kz.istt.app.Forwarding
Для создания сервиса для запуска .jar необходимо создать файл Transit_RabbitMQ_Forwarding.service:
[Unit]
Description=Forwarding RabbitMQ DATA
After=syslog.target
[Service]
WorkingDirectory=/opt/
ExecStart=/usr/bin/java -cp /opt/TransitToRabbitMQ.jar kz.istt.app.Forwarding
User=tomcat
Group=tomcat
UMask=0007
RestartSec=120
Restart=always
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
[Journal]
SystemMaxUse=64M
Устанавливаем владельца:
sudo chown tomcat:tomcat -R /opt/
Смотрим что выдаёт:
sudo journalctl -e -u Transit_RabbitMQ_Forwarding
****************************************************************************************************
Установка GeoServer на Tomcat
Скачиваем WAR с сайта http://geoserver.org/release/stable/
cd /tmp
curl -O https://nav.dl.sourceforge.net/project/geoserver/GeoServer/2.23.2/geoserver-2.23.2-war.zip
Извлекаю tomcat:
sudo mkdir /opt/tomcat/geoserver
sudo apt-get install unzip
sudo unzip geoserver-2*war.zip
mv geoserver.war ROOT.war
cp ROOT.war /opt/tomcat/geoserver
sudo chown tomcat:tomcat -R /opt/tomcat/geoserver
Добавляем в sudo mcedit /opt/tomcat/conf/server.xml перед <Host name="localhost" appBase="webapps" следующий текст:
<Host name="geoserver2.locust.kz" appBase="geoserver" unpackWARs="true" autoDeploy="true">
<Alias>geoserver2.ccalm.org</Alias>
</Host>
Стандартные логин и пароль администратора admin и geoserver (поменял на geoserver1)
Мастер пароль поменял с geoserver на geoserver1 http://uspdmanager.istt.kz:8080/geoserver
Разрешаем запись для генерации тайлов:
При переносе на другой сервер скопировать папку /opt/tomcat/webapps/geoserver/data
Расширения такие как gs-web-wps-2.11.0.jar закинуть в папку: /opt/tomcat/webapps/geoserver/WEB-INF/lib
Если перенаправлять через HAProxy с HTTPS на HTTTP то GeoServer будет глючить так как на строне клиента пытается подстраиваться под протокол, поэтому нужно включать HTTPS и на Tomcat!
****************************************************************************************************
***** Настройка https ssl для tomcat *****
Купил SSL сертификат в www.gogetssl.com сгенерировав на сайте SHA-256 CSR and Private Key.
Подтвердил владение, выслали 2 файла в архиве: integration-gateway_org.ca-bundle, integration-gateway_org.crt
Переписал Private ключ в текстовый файл locust_kz.key
Также прислали сертификаты на почту: "Sectigo RSA Domain Validation Secure Server CA", "USERTrust RSA Certification Authority", "AAA Certificate Services" и использую CA сертификат.
Либо при помощи самоподписанного сертификата, генерим с алиасом geoserver и паролем qw0qw1qw2:
keytool -genkey -keyalg RSA -alias geoserver -keystore /opt/tomcat/conf/ssl/keystore.jks -storepass qw0qw1qw2 -validity 3650 -keysize 2048
Проверяем что ключь создан корректно:
keytool -list -keystore /opt/tomcat/conf/ssl/keystore.jks -storepass qw0qw1qw2
Преобразую в хранилище pkcs12:
openssl pkcs12 -export -in [my_certificate.crt] -inkey [my_key.key] -out [keystore.p12] -name [new_alias] -CAfile [my_ca_bundle.crt] -caname root
openssl pkcs12 -export -in integration-gateway_org.crt -inkey integration-gateway_org.key -out keystore.p12 -name new_alias -CAfile integration-gateway_org.ca-bundle -caname root
openssl pkcs12 -export -in locust_kz.crt -inkey locust_kz.key -out keystore.p12 -name new_alias -CAfile locust_kz.ca-bundle -caname root
openssl pkcs12 -export -in ccalm_org.crt -inkey ccalm_org.key -out ccalm_org.p12 -name ccalm_org -CAfile ccalm_org.ca-bundle -caname root
Задал пароль: qw0qw1qw2 для хранилища ключей
Преобразую в хранилище java:
keytool -importkeystore -deststorepass [new_keystore_pass] -destkeypass [new_key_pass] -destkeystore [keystore.jks] -srckeystore [keystore.p12] -srcstoretype PKCS12 -srcstorepass [pass_used_in_p12_keystore] -alias [alias_used_in_p12_keystore]
keytool -importkeystore -deststorepass qw0qw1qw2 -destkeypass qw0qw1qw2 -destkeystore keystore.jks -srckeystore keystore.p12 -srcstoretype PKCS12 -srcstorepass qw0qw1qw2 -alias new_alias
keytool -importkeystore -deststorepass qw0qw1qw2 -destkeypass qw0qw1qw2 -destkeystore ccalm_org.jks -srckeystore ccalm_org.p12 -srcstoretype PKCS12 -srcstorepass qw0qw1qw2 -alias ccalm_org
Импорт ключа в хранилище (теперь в нём 2 ключа для locust.kz и для ccalm.org):
keytool -importkeystore -srckeystore ccalm_org.p12 -destkeystore keystore.jks -srcstoretype pkcs12 -alias ccalm_org
keytool -list -v -keystore keystore.jks
Настроить томкат, добавив текст который ниже в: sudo mcedit /opt/tomcat/conf/server.xml
<Connector port="443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
sslImplementationName="org.apache.tomcat.util.net.jsse.JSSEImplementation"
maxThreads="150"
SSLEnabled="true"
scheme="https"
secure="true"
defaultSSLHostConfigName="locust.kz">
<SSLHostConfig hostName="locust.kz">
<Certificate certificateKeystoreFile="conf/keystore.jks"
certificateKeystorePassword="qw0qw1qw2"
certificateKeyAlias="new_alias"
type="RSA" />
</SSLHostConfig>
<SSLHostConfig hostName="ccalm.org">
<Certificate certificateKeystoreFile="conf/keystore.jks"
certificateKeystorePassword="qw0qw1qw2"
certificateKeyAlias="ccalm_org"
type="RSA" />
</SSLHostConfig>
</Connector>
Также при помощи authbind разрешить не-root программе быть назначенными младшим портам:
sudo apt-get install authbind
sudo touch /etc/authbind/byport/443
sudo chmod 500 /etc/authbind/byport/443
sudo chown tomcat /etc/authbind/byport/443
****************************************************************************************************
Для создания сервиса создайте service-файл /etc/systemd/system/zholak_gps.service (замените poc-smsc на имя вашего сервиса):
sudo touch /etc/systemd/system/PServerARNAVI.service
sudo chmod 664 /etc/systemd/system/PServerARNAVI.service
sudo mcedit /etc/systemd/system/PServerARNAVI.service
И пишем в этот файл следующий текст:
[Unit]
Description=zholak_ftp
[Service]
WorkingDirectory=/var/opt/servers/arnavi/
ExecStart=/var/opt/servers/arnavi/PServerARNAVI PServerARNAVI.ini
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
Для перепрочтения настроек выполнить:
sudo systemctl daemon-reload
Затем можно выполнять команды:
sudo systemctl start geoserver2
sudo systemctl start SServerWialonIPS_transit
sudo systemctl start PServerWialonIPS_transit_u
sudo systemctl start PServerWialonIPS
sudo systemctl start SServerARNAVI
sudo systemctl start SServerWialonIPS
sudo systemctl start PServerARNAVI
sudo systemctl start PServerEGTS_transit
sudo systemctl start PServerARNAVI_STATIONS_TEST
sudo systemctl start SServerTKSTAR_STATIONS
sudo systemctl start PServerTKSTAR_STATIONS
sudo systemctl start SServerMQTT
sudo systemctl start PServerMQTT
sudo systemctl start SServerEGTS_transit
sudo systemctl start SServerEGTS_transit_3241
sudo systemctl start Transit_RabbitMQ_Forwarding
sudo systemctl start Transit_RabbitMQ_Forwarding_RUS
sudo systemctl start Transit_RabbitMQ_Read
sudo systemctl start SServerMT300_msp
sudo systemctl start PServerMT300_msp
sudo systemctl start SServerTeltonika
sudo systemctl start PServerTeltonika
sudo systemctl start SServerJointech
sudo systemctl start PServerJointech
sudo systemctl stop SServerEGTS_transit
sudo systemctl stop SServerARNAVI_STATIONS_TEST
sudo systemctl stop zholak_ftp
sudo systemctl stop geoserver2
sudo systemctl stop Transit_RabbitMQ_Forwarding_RUS
sudo systemctl stop SServerJointech
sudo systemctl stop PServerJointech
sudo systemctl stop PServerWialonIPS_transit
sudo systemctl restart SServerWialonIPS_transit
sudo systemctl restart zholak_ftp
sudo systemctl restart PServerARNAVI
sudo systemctl restart PServerARNAVI_TEST
sudo systemctl restart PServerMT300_msp
sudo systemctl restart SServerTeltonika
sudo systemctl restart PServerTeltonika
sudo systemctl restart Transit_RabbitMQ_Forwarding
sudo systemctl restart Transit_RabbitMQ_Forwarding_RUS
sudo systemctl restart Transit_RabbitMQ_Read
sudo systemctl restart SServerJointech
systemctl status geoserver2
systemctl status PServerARNAVI
systemctl status SServerARNAVI_STATIONS
systemctl status Virtuasudo systemctl start PServerWialonIPS_transitlTerminal
systemctl status SServerARNAVI_STATIONS_TEST
systemctl status SServerTKSTAR_STATIONS
systemctl status PServerTKSTAR_STATIONS
systemctl status SServerARNAVI
systemctl status SServerWialonIPS
systemctl status PServerEGTS_transit
systemctl status PServerARNAVI
systemctl status PServerWialonIPS
systemctl status SServerMQTT
systemctl status PServerMQTT
systemctl status SServerEGTS_transit
systemctl status SServerEGTS_transit_3241
systemctl status SServerWialonIPS_transit
systemctl status PServerWialonIPS_transit
systemctl status PServerWialonIPS_transit_u
systemctl status Transit_RabbitMQ_Forwarding
systemctl status Transit_RabbitMQ_Forwarding_RUS
systemctl status Transit_RabbitMQ_Read
systemctl status SServerMT300_msp
systemctl status PServerMT300_msp
systemctl status SServerTeltonika
systemctl status PServerTeltonika
systemctl status SServerJointech
systemctl status PServerJointech
Чтобы добавить сервис в автозагрузку, необходимо активировать его:
sudo systemctl enable geoserver2
sudo systemctl enable SServerEGTS_transit
sudo systemctl enable SServerEGTS_transit_3241
sudo systemctl enable PServerEGTS_transit
sudo systemctl enable SServerWialonIPS_transit
sudo systemctl enable PServerWialonIPS_transit_u
sudo systemctl enable VirtualTerminal
sudo systemctl enable SServerARNAVI_STATIONS
sudo systemctl enable PServerARNAVI_STATIONS
sudo systemctl enable PServerARNAVI_STATIONS_TEST
sudo systemctl enable SServerTKSTAR_STATIONS
sudo systemctl enable PServerTKSTAR_STATIONS
sudo systemctl enable SServerMQTT
sudo systemctl enable PServerMQTT
sudo systemctl enable SServerMT300_msp
sudo systemctl enable PServerMT300_msp
sudo systemctl enable Transit_RabbitMQ_Forwarding
sudo systemctl enable Transit_RabbitMQ_Forwarding_RUS
sudo systemctl enable Transit_RabbitMQ_Read
sudo systemctl enable SServerJointech
sudo systemctl enable PServerJointech
systemctl enable SServerARNAVI
systemctl enable SServerWialonIPS
systemctl enable PServerARNAVI
systemctl enable PServerWialonIPS
Чтобы проверить логи сервиса, выполните:
journalctl -u zholak_gps
journalctl -u SServerWialonIPS_transit
journalctl -u PServerWialonIPS_transit
journalctl -u geoserver2
****************************************************************************************************
Команды Linux
pwd - получить имя текущей директории
cd - изменить текущую директорию
ls - распечатать информацию о файлах или директориях
cat - слить или вывести файлы-аргументы на стандартный вывод
cp - копировать файлы
mv - переместить (переименовать) файлы
ln - создать ссылку на файл
rm - удалить файлы
rmdir - удалить директорию
mkdir - создать директорию
echo - вывести аргументы командной строки на стандартный вывод
ps - узнать номера выполняемых процессов
kill - "убить" выполняемый процес по его номеру
man - выдать справку об использовании и ключах команды
****************************************************************************************************
Удалённая отладка c++ приложения на Ubuntu при помощи GDB-gdbserver debug
Устанавливаем на удалённой машине:
sudo apt install gdbserver
Для того чтобы не писать каждый раз пароль авторизуемся по ключю
Для этого генерим ключик локально:
ssh-keygen -t rsa -b 2048
Значения по умолчанию оставил пустыми, сгенерился в /home/username/.ssh/id_rsa
Копируем ключик на нужную машину командай:
ssh-copy-id -p 22 administrator@10.101.1.3
Для копирования и запуска программы на целевую машину создаём скрипт копирования и запуска:
#!/bin/bash
echo "*** copy file to server ***"
#scp -P 2222 /mnt/O_DRIVE/projects/Workspace_C++/GServer/Debug/GServer administrator@192.168.0.83:/var/www/server
scp -P 2222 /mnt/O_DRIVE/projects/Workspace_C++/MServer/Debug/MServer administrator@192.168.0.83:/var/www/server
#scp /mnt/O_DRIVE/projects/Workspace_C++/VTerminal/Debug/VTerminal administrator@192.168.0.83:/var/www/uspdmanager.istt.kz
echo "*** exec program on server ***"
#ssh -p 2222 administrator@192.168.0.83 gdbserver 192.168.0.83:10000 /var/www/server/GServer
ssh -p 2222 administrator@192.168.0.83 gdbserver 192.168.0.83:10000 /var/www/server/MServer
#ssh administrator@192.168.0.83 gdbserver 192.168.0.83:10000 /var/www/uspdmanager.istt.kz/VTerminal e101
Скрипт можно не делать так как в Eclipse это можно автоматизировать при помощи "C/C++ Remote Application".
****************************************************************************************************
Настройка kannel для отправки SMS через SMPP (http://alexkorvin.blogspot.com/2011/05/sms-kannel-centos-55.html)
Устанавливаю kannel
sudo apt-get install kannel
bearerbox главный демон, который держит связь по SMPP в качестве клиента, работает с 3g-донглами, слушает порт для подключения других демонов.
opensmppbox демон, который работает как SMPP сервер для подключения других клиентов. Тоже подключается к bearerbox и работает через него.
sudo mcedit /etc/kannel/kannel.conf
Скрипт автостарта в ubuntu
Автор: Zeboton
Иногда нужно чтобы при загрузке Ubuntu выполнила какие-либо действия (к примеру, запустила какую-нибудь программу). Как же это сделать?
Всё просто как 3 копейки!
1. Нужно создать файл с командами, которые нужно выполнить при старте системе:
view source
print
?
1.
sudo nano /etc/init.d/autostart.script
Как понятно, autostart.script это название файла в котором будут записаны команды и оно может быть любым, но не должно совпадать с именами уже существующих файлов в папке /etc/init.d/.
В первой строке файла должно быть указано какая оболочка или интерпретатор будет выполнять команды в файле. Если вы хотите использовать те же команды, что и в терминале, то файл должен начинаться со строки:
view source
print
?
1.
#!/bin/bash
2. Нужно разрешить файлу выполняться:
view source
print
?
1.
sudo chmod +x /etc/init.d/autostart.script
3. Рассказываем системе что этот файл нужно исполнять при старте системы:
view source
print
?
1.
sudo update-rc.d autostart.script defaults 95
Где 95 это порядок в очереди исполнения. Подробнее можно узнать из
view source
print
?
1.
man update-rc.d
Перезапускаем систему и радуемся результату
P.S.
Для удаления из автостарта нужно выполнить:
view source
print
?
1.
sudo update-rc.d autostart.script remove
****************************************************************************************************
Подключение стронних SSL сертификатов, допустим с gogetssl.com
После покупки сертификата в .pem файл нужно переписать такие ключи и сертификаты как:
1) PrivateKey
2) Сертификат (Certificate) Использую только bigfoottrade_kz.crt
3) Цепочка сертификатов (Chain of Trust)
Сертификат для подписи приватного ключа (Certificate Signing Request(CSR)) использовать не надо, он больше не нужен.
Пробую собрать pem файл из того что скачал с сайта gogetssl.com (зайдя в раздел подробннее о сертификате)
cat istransit_kz.key istransit_kz.crt istransit_kz.ca> istransit_kz.pem
Потом зайти проверить через mcedit что символы перехода не из вины
****************************************************************************************************
Устанавливаю python на Ubuntu 18.04
sudo apt update
sudo apt-get install build-essential python3-all-dev
sudo apt-get install libhdf5-dev
sudo apt-get install gdal-bin
sudo apt-get install python3-gdal
sudo apt-get install python3-h5py
sudo apt-get install python3-requests
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip
sudo pip3 install requests
pip install --upgrade requests
sudo pip3 install ease_grid
****************************************************************************************************
Настраиваю статический сетевой IP адрес в Ubuntu 22.04:
Для этого открываем: sudo mcedit /etc/netplan/00-installer-config.yaml
И меняем:
network:
ethernets:
enp0s3:
dhcp4: true
version: 2
На:
network:
ethernets:
enp0s3:
dhcp4: no
addresses:
- 192.168.0.138/24
gateway4: 192.168.0.253
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
version: 2
****************************************************************************************************
В старой ubuntu 16.04 IP настраивались так: sudo nano /etc/network/interfaces
iface eth0 inet static
address 192.168.200.57
netmask 255.255.255.0
gateway 192.168.200.1
auto eth0
Или так для DHCP
iface eth0 inet dhcp
auto eth0
Обновляю интерфейс не перезагружая:
sudo systemctl restart networking
Для ubuntu 18.04 20.04 и далее настройки в etc\netplan
Для ЖОЛАК настраивал мост так:
network:
ethernets:
enp1s0:
addresses: []
dhcp4: true
dhcp6: false
optional: true
enp2s0:
addresses: []
dhcp4: false
dhcp6: false
optional: true
enp3s0:
addresses: []
dhcp4: false
dhcp6: false
optional: true
enp4s0:
addresses: []
dhcp4: false
dhcp6: false
optional: true
bridges:
br0:
interfaces: [enp2s0,enp3s0,enp4s0]
addresses: [192.168.1.10/24]
dhcp4: false
dhcp6: false
optional: true
version: 2
Применение конфигурации:
sudo netplan apply
****************************************************************************************************
--sudo apt update
--sudo apt install libosmocore
Устанавливаю библиотеку OpenBSC:
sudo apt update
sudo apt install libosmocore-dev
sudo apt-get install build-essential libtool libtalloc-dev shtool autoconf automake git-core pkg-config make gcc libpcsclite-dev
----------------------------------------
https://security-bits.de/research/cellular/lab_setup
Установка SimpleHLR согласно: https://osmocom.org/projects/osmonitb/wiki/Simplehlr
sudo apt install php php-sqlite3
https://osmocom.org/projects/osmo-hlr/wiki/OsmoHLR
Пробую скомпилить: https://github.com/moiji-mobile/hlr эти исходники по 32 битную версию Линукса (На форумах говорят проблемы были по 64 битную версию поэтому автор и сделал по 32 бита)
Снадеждой что тут поддерживает TCAP/MAP так как: OsmoHLR does not support the classic TCAP/MAP protocol but rather implements the more light-weight GSUP protocol.
sudo apt-get install git-all
sudo apt-get install libtalloc-dev
sudo apt-get install libusb-dev
sudo apt-get install libusb-1.0-0-dev
sudo apt-get install libmnl-dev
sudo apt-get install libsctp-dev
git clone https://github.com/moiji-mobile/hlr
Потом запустил SH файл, скомпилилась libosmocore и что? Она типа с TCAP/MAP?
Узнаём версию библиотеки:
----------------------------------------
Установка libosmoabis https://osmocom.org/projects/libosmo-abis/wiki/Libosmo-abis
Это библиотека, содержащая общий / разделяемый код, относящийся к интерфейсу A-bis между BTS и BSC. Он реализует драйверы для карт E1 на основе mISDN и DAHDI, а также для некоторых диалектов A-bis / IP.
sudo apt-get install libortp-dev
git clone git://git.osmocom.org/libosmo-abis.git
cd libosmo-abis/
autoreconf -i
./configure
make
sudo make install
sudo ldconfig -i
cd ..
----------------------------------------
Установка libosmo-abis (libosmoabis)
sudo apt-get install libortp-dev
sudo apt-get install -y dahdi-linux
sudo apt-get install dahdi
git clone git://git.osmocom.org/libosmo-abis.git
cd libosmo-abis/
autoreconf -i
./configure
make
sudo make install
sudo ldconfig -i
cd ..
----------------------------------------
Пробую установить: git://git.osmocom.org/osmo-hlr это тот который не работает через TCAP/MAP а только через GSUP
sudo apt-get install libpcsclite-dev
sudo apt-get install build-essential libtool libtalloc-dev libsctp-dev shtool autoconf automake git-core pkg-config make gcc python-minimal
sudo apt-get install libpcsclite-dev
git clone git://git.osmocom.org/osmo-hlr
autoreconf -i
./configure
make
make install
----------------------------------------
Настройка osmo-hlr согласно: https://nickvsnetworking.com/gsm-with-osmocom-part-7-the-hlr-home-location-register-and-friends/
Как установили то запускаем сервис:
systemctl start osmo-hlr
Подключается через telnet и продолжаем настройку
telnet localhost 4258
----------------------------------------
Установка libtasn1 версии 4.9
wget https://ftp.gnu.org/gnu/libtasn1/libtasn1-4.9.tar.gz
tar xvf libtasn1-4.9.tar.gz
cd libtasn1-4.9
./configure --prefix=/usr/local/libtasn1/4_9
make
make check
make install
----------------------------------------
Устанавливаю gnutls по инструкции https://noknow.info/it/os/install_gnutls_from_source:
sudo apt-get install -y libtasn1-bin (У меня показало 4.13-2 а затребовало 4.9)
sudo apt-get install -y nettle-dev (У меня показало что установленна версия: 3.4-1 поэтому ставлю версию gnutls-3.5.19.tar.xz)
wget https://www.gnupg.org/ftp/gcrypt/gnutls/v3.4/gnutls-3.4.17.tar.xz
wget https://www.gnupg.org/ftp/gcrypt/gnutls/v3.5/gnutls-3.5.19.tar.xz
wget https://www.gnupg.org/ftp/gcrypt/gnutls/v3.5/gnutls-3.5.19.tar.xz
wget https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/gnutls-3.6.9.tar.xz
wget https://www.gnupg.org/ftp/gcrypt/gnutls/v3.7/gnutls-3.7.0.tar.xz
tar xvf gnutls-3.6.9.tar.xz
cd gnutls-3.6.9
./configure --prefix=/usr/local/gnutls/3_6_9
make
make check
make install
----------------------------------------------------------------
Проверяем установлен ли libosmocore
dpkg -L libosmocore
Для установки версии разработчика libosmocore из репозитория:
sudo apt-get install libosmocore-dev
Для удаления libosmocore
sudo apt-get remove libosmocore
Либо с удалением зависимостей: sudo apt-get remove --auto-remove libosmocore
Либо для полного удаления включая зависемости и конфигурационные файлы: sudo apt-get purge libosmocore
Пробую откомпилить и установить: libosmocore из исходников (версия: 1.4.0.326-8c33d)
sudo apt-get install git build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls28-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev libpam0g-dev ntp
sudo apt-get install synaptic
sudo apt install libgnutls-dev
sudo apt-get install -y doxygen
sudo apt-get install -y libmnl-dev
git clone git://git.osmocom.org/libosmocore.git
cd libosmocore/
autoreconf -i
./configure
make
sudo make install
sudo ldconfig -i
****************************************************************************************************
Настройка IPSEC VPN тунель IKEv2 PSK на Ubuntu с использование StrongSwan: https://www.digitalocean.com/community/tutorials/how-to-set-up-an-ikev2-vpn-server-with-strongswan-on-ubuntu-22-04
Генерим секретный ключь
openssl rand -hex 32
Выдаст примерно такое:
23fa1e30aa1623371253e84e7d0dad9d33b1e8fc69253c247cf0297c009e5a9e
Подключиться можно так:
https://thesafety.us/vpn-setup-ikev2-ubuntu21
****************************************************************************************************
Установка и настройка openvpn на Ubuntu 16.04 согласно документу: https://timeweb.com/ru/community/articles/openvpn-na-ubuntu-16-04-ustanovka-1 https://www.digitalocean.com/community/tutorials/openvpn-ubuntu-16-04-ru
Устанавливаем утилиту для синхронизации времени:
apt-get install chrony
systemctl enable chrony --now
cp /usr/share/zoneinfo/Asia/Almaty /etc/localtime
Установка OpenVPN:
sudo apt-get install openvpn easy-rsa unzip
Настройка центра сертификации easy-rsa
Копируем шаблонную директорию в нужное нам место
make-cadir ~/openvpn-ca
Дальше заходим в созданную папку и редактируем файл vars
mcedit vars
И в нем поменять значения в конце файла на свои, пример:
export KEY_COUNTRY="US"
export KEY_PROVINCE="NY"
export KEY_CITY="New York City"
export KEY_ORG="DigitalOcean"
export KEY_EMAIL="admin@example.com"
export KEY_OU="Community"
export KEY_NAME="server"
Создание центра сертификации:
Убедитесь что вы в папке openvpn-ca и выполните команду:
source vars
Теперь нужно удалить все ненужные данные для того, чтобы почистить рабочую среду:
./clean-all
Переходим к построению корня центра сертификации:
./build-ca
Создаём сертификаты:
./build-key-server server
./build-dh
openvpn --genkey --secret keys/ta.key
Создание сертификата клиента и пары ключей (для каждого подключаемого клиента нужно повторить генерацию)
Для того чтобы создался файл без пароля:
source vars
./build-key client1
****************************************************************************************************
BananaPI SSH создать директорию в: /var/run/sshd и перезагрузить SSH или ОС также нужно подправить файл /usr/lib/tmpfiles.d/sshd.confи удалив /var из строки: d /var/run/sshd 0755
service ssh start
/usr/lib/tmpfiles.d/sshd.conf
d /var/run/sshd 0755 root root
BananaPI WIFI: sudo nmtui и выбрать подходящую точку доступа для подключения
****************************************************************************************************
Компиляция DAHDI Asterisk http://linux.mixed-spb.ru/asterisk/install_dahdi.php
git clone -b next git://git.asterisk.org/dahdi/linux dahdi-linux
cd dahdi-linux
make
make install
****************************************************************************************************
Настройка TLS для Mosquitto MQTT брокера на windows (команды ниже выполнять в LINUX) https://mcuoneclipse.com/2017/04/14/enable-secure-communication-with-tls-and-the-mosquitto-broker/
1) Создаю CA пару ключей
openssl genrsa -des3 -out m2mqtt_ca.key 2048
Задал пароль: q123456
2) Создаю сертификат для ключа m2mqtt_ca.key
openssl req -new -x509 -days 3650 -key m2mqtt_ca.key -out m2mqtt_ca.crt
Если выдаст: Unable to load config info from /usr/local/ssl/openssl.cnf то добавить переменную окружения OPENSSL_CONF со значением C:\Program Files\OpenSSL\openssl.cnf
set OPENSSL_CONF=o:\projects\Workspace_PHP\Apache24\conf\openssl.cnf
3) Create Mosquitto Broker Key Pair
openssl genrsa -out m2mqtt_srv.key 2048
4) Create Certificate Request from CA
openssl req -new -out m2mqtt_srv.csr -key m2mqtt_srv.key
5) Verify and Sign the Certificate Request
openssl x509 -req -in m2mqtt_srv.csr -CA m2mqtt_ca.crt -CAkey m2mqtt_ca.key -CAcreateserial -out m2mqtt_srv.crt -days 3650
Дальше копируем файлы в папку mosquitto
<mosquitto>/certs/m2mqtt_ca.crt
<mosquitto>/certs/m2mqtt_srv.crt
<mosquitto>/certs/m2mqtt_srv.key
Далее открываем <mosquitto>/mosquitto.conf и
listener 1883 0.0.0.0
listener 8883 0.0.0.0
cafile C:\Program Files\mosquitto\certs\m2mqtt_ca.crt
certfile C:\Program Files\mosquitto\certs\m2mqtt_srv.crt
keyfile C:\Program Files\mosquitto\certs\m2mqtt_srv.key
Дальше перезапускаем mosquitto
Проверить кто занял порт:
netstat -ab
Для получения отпечастка сертификата выполнить:
openssl x509 -in m2mqtt_srv.crt -noout -fingerprint -sha1 -inform pem
Для преобразования в pem файл выполнить:
openssl rsa -in m2mqtt_srv.key -text > m2mqtt_srv.key.pem
openssl x509 -inform PEM -in m2mqtt_srv.crt > m2mqtt_srv.crt.pem
****************************************************************************************************
Установка home-assistanto c Supervisor на Ubuntu Server 20.04, Linux Mint(и малинки) по мативам https://pikabu.ru/story/ustanovka_home_assistant_supervised_v_docker_na_ubuntu_2004_na_besplatnom_vps_servere_ot_oracle_testovaya_sistema_umnogo_doma_7980354
sudo apt-get update
sudo apt-get upgrade -y
sudo apt autoremove -y
sudo apt-get install -y software-properties-common apparmor-utils apt-transport-https avahi-daemon ca-certificates curl dbus jq network-manager socat
Деактивируем и отключаем ModemManager:
sudo systemctl disable ModemManager
sudo systemctl stop ModemManager
На всякий случай перезагружаем систему
reboot
Устанавливаем Docker:
curl -fsSL get.docker.com | sudo sh
Загружаем скрипт "supervised-installer":
curl -Lo installer.sh https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh
И запускаем установку одним из способов:
- установщик сам выбирает директории (папки установки): sudo bash installer.sh
- мы выбираем директории (папки установки - нужно сначала создать)***: sudo bash installer.sh -p /home -d $PREFIX/hassio (это пример, подробнее на фото)
Разварачивание HA может занять 5 минут
****************************************************************************************************
Установка Docker на Ubuntu 22.04 по мотивам: https://infoit.com.ua/linux/kak-ustanovit-docker-na-linux-mint-20/
Обновляем и устанавливаем зависимости:
sudo apt update
sudo apt install curl software-properties-common ca-certificates apt-transport-https -y
wget -O- https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor | sudo tee /etc/apt/keyrings/docker.gpg > /dev/null
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable"| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce -y
sudo systemctl status docker
Устанавливаем Docker Compose с сервера:
Так старая версия установится: sudo apt-get install docker-compose
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
После установки будет создана группа докеров. Добавьте своего пользователя в группу, которая будет запускать команды докеров:
sudo usermod -aG docker $USER
После этого проверьте установку Docker, используя следующую команд
sudo docker --version
docker compose version
**********PORTAINER**********
Также можно установить удобный интерфейс для управления докер контейнерами PORTAINER по документации из: https://timeweb.cloud/tutorials/docker/ustanovka-i-ispolzovanie-portainer и видео: https://www.youtube.com/watch?v=EmtNCo7SGbQ
cd /opt
sudo mkdir portainer
cd ./portainer
sudo mcedit docker-compose.yml
И прописываем в файл:
version: "3.3"
services:
twportainer:
image: portainer/portainer-ce:latest
container_name: portainer
environment:
- TZ=Europe/Moscow
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /opt/portainer/portainer_data:/data
ports:
- "8000:8000"
- "9443:9443"
restart: always
version: "3.3": Указывает версию Docker-compose, которую вы используете. Версия 3.3 подходит для большинства современных приложений.
services: В этой секции описываются запускаемые сервисы.
twportainer: Имя сервиса. Используется в качестве идентификатора.
image: portainer/portainer-ce:latest: Определяет образ, который будет использоваться. Здесь используется последняя версия Community Edition.
container_name: twportainer: Назначает имя контейнера, чтобы было легче его идентифицировать.
environment: Позволяет задать переменные окружения. Например, - TZ=Europe/Moscow устанавливает временную зону контейнера.
volumes:
/var/run/docker.sock:/var/run/docker.sock позволяет Portainer взаимодействовать с Docker на вашем хосте;
/opt/twportainer/portainer_data:/data создает постоянное хранилище данных.
ports:
"8000:8000" и "9443:9443" открывают соответствующие порты для доступа к Portainer. 9443 используется для HTTPS подключения.
restart: always: Гарантирует, что контейнер будет автоматически перезапускаться при необходимости, например, после перезагрузки сервера.
Разрешаем пользователю запускать докер:
sudo usermod -aG docker $USER
Теперь можно запустить конфигурацию командой:
sudo docker-compose up -d
Открываем: https://127.0.0.1:9443
После предложения задания пароля для пользователя admin задал такой пароль на дом компе: &b2C6nyN2,qUNM]
****************************************************************************************************
Установка wxWidgets на Linux mint, скачал 3.0.5 по инструкции из https://www.binarytides.com/install-wxwidgets-ubuntu/
sudo apt-get install libgtk-3-dev build-essential checkinstall
mkdir gtk-build
cd gtk-build
../configure --disable-shared --enable-unicode
make
sudo make install
sudo ldconfig
sudo checkinstall
****************************************************************************************************
Wildfly (JBoss) https://helpingbox.net/ru/установите-и-настройте-wildfly-jboss-в-ubuntu-18-04-lts
****************************************************************************************************
Установка Redmine на Ubuntu 22.04 по https://www.redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_50x_on_Ubuntu_2004_with_Apache2
Потом скопировать и подправить на PostgreSQL
admin admin поменял на admin deSert!123
Готово теперь можно авторизоваться через WEB интерфейс
Username: admin
Password: admin
****************************************************************************************************
Установка расширения https://github.com/michelp/pgjwt на ubuntu сервер
Для компиляции устанавливаю (На тестовую машину, не боевую):
sudo apt-get update
sudo apt-get install postgresql-server-dev-14
apt install ca-certificates curl gnupg lsb-release
Остановился на том что потребовало установить докер при компиляции: https://www.cherryservers.com/blog/how-to-install-and-use-docker-compose-on-ubuntu-20-04
sudo apt-get install docker-compose-plugin
sudo apt-get install docker-compose-plugin
Клонирую репозиторий:
sudo apt install git
git clone https://github.com/michelp/pgjwt.git
Потом
make
Ошибка на мейке...
install
****************************************************************************************************
Install Redis по мативам: https://timeweb.cloud/tutorials/redis/ustanovka-i-nastrojka-redis-dlya-raznyh-os
sudo apt-get update
sudo apt install redis
redis-cli --version
sudo systemctl status redis
Config:
sudo mcedit /etc/redis/redis.conf
И меняем в конфигурации на: supervised systemd
Также желательно проверить настройку чтобы слушался только IP: 127.0.0.1
bind 0.0.0.0
Также в поле SECURITY нужно установить пароль, сгенерированный при помощи:
openssl rand 25 | openssl base64 -A
Примерно такой должен быть получиться:
requirepass 9F3/NKWeOjd815vkadT2DcgVHf6fEpVQXw==
Перезагружаем:
sudo systemctl restart redis-server
Проверяем Redis:
redis-cli
Или так проверяем:
redis-cli -h 127.0.0.1 -p 6379 -a 9F3/NKWeOjd815vkadT2DcgVHf6fEpVQXw==
И пишем: ping
Проверяем какие порты прослушиваются на компе:
sudo netstat -lnp | grep redis
****************************************************************************************************
Для настройки локального сервера имен DNS сервер в место Bind9 теперь Dnsmasq так как он проще, понадобилось для haproxy
sudo apt-get install dnsmasq
sudo apt-get install resolvconf
sudo apt-get install net-tools
sudo apt-get install net-tools
На ошибку "failed to create listening socket for port 53: Address already in use" не обрашаем внимания это норма.
Настраиваем пакеты:
sudo mcedit /etc/dnsmasq.conf
Там будет всё закоментированно, добавляем это:
no-resolv
server=8.8.8.8
listen-address=127.0.0.1
bind-interfaces
Далее добавляем пути в /etc/hosts пример
127.0.0.1 jwt.local
Перезагружаеи
sudo /etc/init.d/dnsmasq restart
Проверяем:
telnet 127.0.0.1 53
dig @127.0.0.1 -p 53 jwt.local
****************************************************************************************************
Установка GitLab на Ubuntu сервер по https://itslinuxfoss.com/install-gitlab-ubuntu-22-04/
sudo apt update && sudo apt upgrade -y
sudo apt install tzdata curl ca-certificates openssh-server
sudo apt install curl debian-archive-keyring lsb-release ca-certificates apt-transport-https software-properties-common -y
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt install gitlab-ce
Также для CI/CD устанавливаем runner, выполняет команды из .gitlab-ci.yml описание: https://habr.com/ru/companies/slurm/articles/306596/
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
sudo apt-get install gitlab-runner
Редактируем имя хоста:
sudo mcedit /etc/gitlab/gitlab.rb
И прописываем туда
external_url 'http://gitlab.local:8081'
Затем:
sudo gitlab-ctl reconfigure
Как завершиться, проверяем:
sudo gitlab-ctl status
Должно выдать быть что-то в роде:
run: alertmanager: (pid 92581) 18s; run: log: (pid 92343) 80s
run: gitaly: (pid 92590) 18s; run: log: (pid 91561) 189s
run: gitlab-exporter: (pid 92551) 20s; run: log: (pid 92078) 98s
run: gitlab-kas: (pid 92520) 22s; run: log: (pid 91845) 175s
run: gitlab-workhorse: (pid 92531) 21s; run: log: (pid 91985) 117s
run: grafana: (pid 92610) 17s; run: log: (pid 92471) 38s
run: logrotate: (pid 91486) 202s; run: log: (pid 91494) 201s
run: nginx: (pid 91993) 114s; run: log: (pid 92013) 110s
run: node-exporter: (pid 92540) 21s; run: log: (pid 92049) 104s
run: postgres-exporter: (pid 92601) 18s; run: log: (pid 92367) 76s
run: postgresql: (pid 91693) 184s; run: log: (pid 91704) 183s
run: prometheus: (pid 92560) 20s; run: log: (pid 92297) 88s
run: puma: (pid 91904) 132s; run: log: (pid 91917) 129s
run: redis: (pid 91521) 196s; run: log: (pid 91538) 193s
run: redis-exporter: (pid 92553) 20s; run: log: (pid 92217) 94s
run: sidekiq: (pid 91922) 126s; run: log: (pid 91934) 122s
Теперь можно задать логин пользователя (команда долго инициализируется)
sudo gitlab-rake "gitlab:password:reset"
Пользователь: root пароль: q12!qwW@ww
Пробуем зайти по http://gitlab.local:8081 прописав домен в hosts
Для настройки непрерывного развёртывания испотльзовать инструкцию: https://serverspace.ru/support/help/nastrojka-konvejera-nepreryvnogo-razvertyvaniya--gitlab-ubuntu-20-22/?utm_source=google.com&utm_medium=organic&utm_campaign=google.com&utm_referrer=google.com
Клонирование через токен так:
https://oauth2:PERSONAL_ACCESS_TOKEN@git.istt.kz/locust/org.ccalm.jwt.git
https://oauth2:glpat-MCMi4iPS8GQzUusT3XUC@git.istt.kz/locust/org.ccalm.jwt.git
https://oauth2:glpat-fseNuqu3Ftb7zwjv-kbT@git.istt.kz/locust/org.ccalm.dbms.git
https://oauth2:glpat-5fJzjVymFqVumq6FC1yq@git.istt.kz/locust/org.ccalm.main
https://oauth2:glpat-sKQh2x88gsmZbBCz4SfJ@git.istt.kz/transit/dispatcher/kz.istransit.dispatcher
****************************************************************************************************
Как установить и настроить Elasticsearch, Logstash, Kibana (ELK Stack) на Ubuntu, Debian, Centos: https://portforwarded.com/install-elastic-elk-stack-8-x-on-ubuntu-22-04-lts/ или https://serveradmin.ru/ustanovka-i-nastroyka-elasticsearch-logstash-kibana-elk-stack/
sudo apt update && sudo apt upgrade -y
Установи java как это делается смотри выше
sudo apt-get install nginx curl gnupg2 wget -y
sudo wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
sudo apt-get install apt-transport-httpssudo
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
sudo apt update
sudo apt-get install elasticsearch
Если не удалось подключить ключи к репозиторию то скачиваем deb пакет в ручную:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.13.2-amd64.deb
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
sudo mcedit /etc/elasticsearch/elasticsearch.yml
И там раскоментить и прописать строку: network.host: 0.0.0.0
Также там поправить на: xpack.security.enabled: false
sudo systemctl restart elasticsearch
Проверяю версию Elasticsearch
sudo ufw allow 9200/tcp
curl -X GET "http://localhost:9200/"
У меня выдало:
{
"name" : "igor-System-Version",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "Li0_4xz2QTuy8ET7qRLTgg",
"version" : {
"number" : "8.13.2",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "16cc90cd2d08a3147ce02b07e50894bc060a4cbf",
"build_date" : "2024-04-05T14:45:26.420424304Z",
"build_snapshot" : false,
"lucene_version" : "9.10.0",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}
**********Теперь устанавливаем Kibana**********
sudo apt-get install kibana -y
sudo systemctl start kibana
sudo systemctl enable kibana
Создаём административного пользователя:
sudo su
echo "admin:`openssl passwd -apr1`" | tee -a /etc/nginx/htpasswd.users
Выдало:
Дома: admin:$apr1$sFyWSvZH$E8tL1Zbo.i8q2vSsVy1HK/
На в виртуалке работа пароль 123456 выдало: admin:$apr1$/n5ACpeE$WZBtYrZOgZ10GfdT4YFD31
Далее создаём в Nginx виртуальный хост, создав конфигурационный файл для сервиса кибаны:
sudo mcedit /etc/nginx/sites-available/kibana
server {
listen 80;
server_name kibana.example.com;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;
location / {
proxy_pass http://localhost:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Разрешаем виртуальный хост для проксирования:
sudo ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
sudo systemctl restart nginx
sudo systemctl status nginx
Теперь кибана должна открыться по адресу: kibana.example.com если не открылась перезагружаем комп
*********Устанавливаю logstash**********
sudo apt install logstash
sudo systemctl restart logstash.service
sudo systemctl enable logstash.service
sudo systemctl status logstash.service
По документу из: https://habr.com/ru/articles/236341/ и из https://coderlessons.com/tutorials/devops/uznaite-logstash/logstash-kratkoe-rukovodstvo
Настраиваю logstash открываю потр для отправки логов из Java приложения log4j:
Так как установили через репозиторий то для включения плагина Log4j он включается командой:
sudo su
/usr/share/logstash/bin/logstash-plugin install logstash-input-log4j
Так как logstash загрузает все конфигурации из деректории то создаю новый файл для log4j
mcedit /etc/logstash/conf.d/log4j.conf
И теперь можно настроить для приёма log4j логов:
input {
log4j {
mode => server
host => "0.0.0.0"
port => 5044
type => "log4j"
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "igor-%{+YYYY.MM.dd}"
#index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
#user => "elastic"
#password => "changeme"
}
}
Затем нужно перезагрузить:
sudo systemctl restart logstash.service
*********Устанавливаю filebeat**********
apt install filebeat
****************************************************************************************************
**********Устанавливаю Loki в месте с Grafana и другими компонентами (Promtail)**********
Согласно документации из: https://grafana.com/docs/loki/latest/get-started/quick-start/ Для Лва: https://www.youtube.com/watch?v=PBfKDyNPBug
Создаём директорию в:
cd /opt
mkdir loki
cd loki
wget https://raw.githubusercontent.com/grafana/loki/main/examples/getting-started/loki-config.yaml -O loki-config.yaml
wget https://raw.githubusercontent.com/grafana/loki/main/examples/getting-started/promtail-local-config.yaml -O promtail-local-config.yaml
wget https://raw.githubusercontent.com/grafana/loki/main/examples/getting-started/docker-compose.yaml -O docker-compose.yaml
Меням настройки, прописав в самый конец файла: loki-config.yaml следующее:
auth_enabled: false
Запускаем:
sudo docker compose up -d
Если нужно то для остановки можно выполнить следующую команду:
sudo docker compose down
Пробуем открыть графану:
http://127.0.0.1:3000/ Логин: admin и пароль admin потом сгенерил пароль: gL%$FXVUrjP7zFf
Теперь можно отправить тестовую строку в логи label “foo=bar2” and a single log line “fizzbuzz”:
curl -H "Content-Type: application/json" \
-s -X POST "http://127.0.0.1:3100/loki/api/v1/push" \
--data-raw '{"streams": [{ "stream": { "foo": "bar2" }, "values": [ [ "1717279123945000000", "fizzbuzz" ] ] }]}'
**********Устанавливаю Promtail**********
По мотивам: https://tech.pansolusi.com/2023/08/04/installing-promtail-on-ubuntu/
cd /opt
mkdir promtail
cd promtail
curl -O -L "https://github.com/grafana/loki/releases/download/v2.9.7/promtail-linux-amd64.zip"
unzip "promtail-linux-amd64.zip"
promtail -version
sudo mcedit /opt/promtail/promtail-local-config.yaml
И записываем в файл:
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: 'http://localhost:3100/loki/api/v1/push'
basic_auth:
username: alexander
password: eakrdutpnhjaE2EFrAoi
scrape_configs:
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: varlogs
__path__: /var/log/*log
- targets:
- localhost
labels:
job: nginx
__path__: /var/log/nginx/*log
Создаём сервис для запуска Promtail
sudo mcedit /etc/systemd/system/promtail.service
И записываем:
[Unit]
Description=Promtail client for sending logs to Loki
After=network.target
[Service]
ExecStart=/opt/promtail/promtail -config.file=/opt/promtail/promtail-local-config.yaml
Restart=always
TimeoutStopSec=3
[Install]
WantedBy=multi-user.target
Запускаем:
sudo service promtail start
sudo service promtail stop
sudo service promtail restart
sudo service promtail status
sudo systemctl enable promtail
Смотрим логи:
sudo journalctl -u promtail.service
Теперь можно смотреть в графане логи: http://127.0.0.1:3000/ с label = file
Также можно взглянуть на простой WEB интерфейс promtail: http://127.0.0.1:9080
**********Устанавливаю Prometheus согласно инструкции из https://ruvds.com/ru/helpcenter/kak-ustanovit-prometheus-na-ubuntu/ **********
Установка Prometheus
sudo apt update &&
sudo apt upgrade -y &&
sudo useradd --no-create-home --shell /bin/false prometheus &&
sudo mkdir /etc/prometheus &&
sudo mkdir /var/lib/prometheus &&
sudo chown prometheus:prometheus /etc/prometheus &&
sudo chown prometheus:prometheus /var/lib/prometheus &&
cd /tmp &&
wget https://github.com/prometheus/prometheus/releases/download/v3.1.0/prometheus-3.1.0.linux-amd64.tar.gz &&
tar xvf prometheus-3.1.0.linux-amd64.tar.gz &&
sudo cp prometheus-3.1.0.linux-amd64/prometheus /usr/local/bin/ &&
sudo cp prometheus-3.1.0.linux-amd64/promtool /usr/local/bin/ &&
sudo chown prometheus:prometheus /usr/local/bin/prometheus &&
sudo chown prometheus:prometheus /usr/local/bin/promtool &&
rm -rf prometheus-3.1.0.linux-amd64.tar.gz prometheus-3.1.0.linux-amd64
Настройка Prometheus
Создайте файл конфигурации prometheus.yml:
sudo mcedit /etc/prometheus/prometheus.yml
Прописал туда настройки:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
Созданём systemd-сервис:
sudo mcedit /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/
[Install]
WantedBy=multi-user.target
Запускаю сервис:
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus
sudo systemctl status prometheus
```sh
sudo systemctl restart prometheus
```
Пробуем открыть по адресу:
http://192.168.200.84:9090
Теперь настраиваем сбор логов при помощи node exporter (по мотивам из https://it-dev-journal.ru/articles/monitoring-linux-servera-s-prometheus-node-exporter):
Последний билд: https://github.com/prometheus/node_exporter/releases
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz
tar xf node_exporter-*.tar.gz
cd node_exporter-1.8.2.linux-amd64
sudo cp node_exporter /usr/local/bin
sudo useradd --no-create-home --home-dir / --shell /bin/false node_exporter
Создаём сервис:
sudo mcedit /etc/systemd/system/node_exporter.service
[Unit]
Description=Prometheus Node Exporter
After=network.target
[Service]
Type=simple
User=node_exporter
Group=node_exporter
ExecStart=/usr/local/bin/node_exporter
SyslogIdentifier=node_exporter
Restart=always
PrivateTmp=yes
ProtectHome=yes
NoNewPrivileges=yes
ProtectSystem=strict
ProtectControlGroups=true
ProtectKernelModules=true
ProtectKernelTunables=yes
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporter
sudo systemctl status node_exporter
Теперь Node exporter будет выдавать метрики по адресу
wget http://localhost:9100/metrics -O -
wget --user=prometheus --password=PUaAMOhUEOmDmcsJDFWA https://geoserver2.ccalm.org/metrics -O -
Настраиваем HAProxy и basic авторизацию (если писать: insecure-password то пароль не захеширован если написать password то должен быть в md5 лил SHA-*):
userlist prometheus_list
user prometheus insecure-password PUaAMOhUEOmDmcsJDFWA
acl v_metrics path_beg /metrics
acl v_basic_auth http_auth(prometheus)
http-request auth realm Metrics if v_metrics !v_basic_auth
use_backend metrics if v_metrics
backend metrics
balance roundrobin
server web1 127.0.0.1:9100 check
option httpchk
Теперь нужно отредактировать файл sudo mcedit /etc/prometheus/prometheus.yml, добавив новый job_name в scrape_configs с этим адресом.
- job_name: 'node_exporter_metrics'
scrape_interval: 10s
static_configs:
- targets: ['localhost:9100']
Перезагружаем prometheus чтобы он начал собирать метрики
```sh
sudo systemctl restart prometheus
```
Смотрим:
http://192.168.200.84:9090/targets
Далее устанавливаем графану и добавляем графики для мониторинга
sudo apt-get install -y software-properties-common
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
sudo apt-get install -y gnupg
sudo apt-get install -y apt-transport-https
sudo wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install grafana
Запустите и включите сервис Grafana:
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
Проверьте статус:
sudo systemctl status grafana-server
Открываем:
http://192.168.200.84:3000 Логин: admin Пароль: admin
Заходим в: Home->Connections->Data sources->Add data source
Для Node Exporter есть шаблоны:
Node Exporter Full (ID: 1860) — Полный дашборд для мониторинга серверов с использованием Node Exporter.
Prometheus (ID: 10991) — Дашборд для мониторинга самого Prometheus.
Linux Server Monitoring (ID: 10244) — Дополнительный дашборд для мониторинга серверов на Linux.
Если вам нужно больше вариантов, вы всегда можете найти готовые дашборды на официальном сайте https://grafana.com/grafana/dashboards/
Заходим в графану и в правом верхенем углу жмём + потом Import Dashboard
**********Если нужно то Grafana может быть установленна отдельно **********
Установка GrafanaLoki через Docker Engine и Docker Compose на Ubuntu 24.04
Для установки графаны через докер:
cd /opt
sudo mkdir grafana
cd ./grafana
sudo mcedit docker-compose.yml
И прописываем в файл:
version: "3.3"
services:
grafana:
image: grafana/grafana-enterprise
container_name: grafana
restart: unless-stopped
ports:
- '3000:3000'
loki:
image: grafana/loki:latest
container_name: loki
restart: unless-stopped
ports:
- "3100:3100"
Затем для запуска контейнера выполняем:
sudo docker-compose up -d
Если нужно то для остановки можно выполнить следующую команду:
sudo docker-compose down
Пробуем открыть графану:
http://127.0.0.1:3000/ Логин: admin и пароль admin потом сгенерил пароль: gL%$FXVUrjP7zFf
****************************************************************************************************
Настраиваю Promtail agent для винды для сбора логов c Windows:
Скачал: https://github.com/grafana/loki/releases в разделе Assets файл promtail-windows-386.exe.zip
Переместите файл promtail.exe в каталог, например, C:\Program Files\promtail
Добавьте этот каталог в PATH, чтобы можно было запускать Promtail из командной строки.
Создаём файл конфигурации в C:\Program Files\promtail promtail-config.yaml со следующим содержимым:
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: C:\Program Files\promtail\positions.yaml
clients:
- url: http://192.168.200.106:3100/loki/api/v1/push
scrape_configs:
- job_name: dbms_logs
static_configs:
- targets:
- localhost
labels:
job: dbms_logs
__path__: O:\MyDocuments\projects\Workspace_JavaWin\com.geovizor.dbms\logs\kz_mcp_dbms.log
- job_name: jwt_logs
static_configs:
- targets:
- localhost
labels:
job: jwt_logs
__path__: O:\MyDocuments\projects\Workspace_JavaWin\com.geovizor.jwt\logs\kz_mcp_jwt.log
Замените C:\path\to\positions.yaml и C:\path\to\log\files\*.log на соответствующие вашему окружению пути.
promtail.exe --config.file=promtail-config.yaml
****************************************************************************************************
Установка графаны через докер Grafana в Docker, по мотивам нейросети DeepSeek:
Установка Docker:
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
Установка Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Добавляем текущему пользователю группу чтобы он мог работать с докером:
sudo usermod -aG docker $USER
Проверка установки:
docker --version
docker-compose --version
Создайте директорию, где будут храниться данные Grafana:
sudo mkdir /opt/grafana
sudo mkdir /opt/grafana/data
sudo mkdir /opt/grafana/data/grafana-storage
sudo mkdir /opt/grafana/config
sudo chown -R 472:472 /opt/grafana/data/grafana-storage
sudo chmod -R 775 /opt/grafana/data/grafana-storage
cd /opt/grafana
mcedit docker-compose.yml
И записываем в него такие настройки:
services:
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- /opt/grafana/data/grafana-storage:/var/lib/grafana # Монтируем директорию хоста в контейнер
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=admin
Запускаем графану с логами для тестов:
docker-compose -f /opt/grafana/docker-compose.yml up
Теперь запускае в фоновом режиме:
docker-compose -f /opt/grafana/docker-compose.yml up -d
docker-compose -f /opt/grafana/docker-compose.yml down
Проверяем работу:
docker-compose -f /opt/grafana/docker-compose.yml ps
****************************************************************************************************
Устанавливаю Gitea по мативам: https://linuxize.com/post/how-to-install-gitea-on-ubuntu-20-04/
sudo apt update
sudo apt install sqlite3
sudo apt install git
git --version
sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git
VERSION=1.22
sudo wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
sudo mv /tmp/gitea /usr/local/bin
sudo chmod +x /usr/local/bin/gitea
Создаём директории для хранения данных:
sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo chown -R git:git /var/lib/gitea/
sudo chmod -R 750 /var/lib/gitea/
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea
sudo wget https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/systemd/gitea.service -P /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now gitea
sudo systemctl status gitea
Отобразило что можно зайти по: http://localhost:3000/
Выбираем Database Type: SQLite3 остальные настройки можно оставить по умолчанию
Установил и задал логин: irigm@mail.ru пароль: PF"Ey7#7]mUZ49s
Устанавливаем параметры только чтение:
sudo chmod 750 /etc/gitea
sudo chmod 640 /etc/gitea/app.ini
По мотивам на сайте ещё описывается как сделать проксирование через nginx
А также как сделать отправку почты
А также как обновит если что
**********CI/CD**********
Устанавливаю по инструкции из: https://gitea.com/gitea/act_runner
Скачиваю act_runner с https://about.gitea.com/products/runner/ в директорию: /usr/local/bin
Задаём права:
sudo chown root:root /usr/local/bin/act_runner
Проверяю версию:
act_runner --version
Выдало: v0.2.6
Записываем в конец файла /etc/gitea/app.ini следующие настройки:
[actions]
ENABLED=true
Потом:
sudo systemctl restart gitea
Далее переходим в настройки проекта в пункт "Действия": "Создать новый раннер"
Там был токен: CIaWAmzI4jYUCRnQcUCdBFPkg4FPGspnjdpqiqXl
Создаю каталог:
/etc/act_runner
Генерю конфиг по умолчанию:
act_runner generate-config > config.yaml
Регистрирую новый runner
act_runner register
В WEB интерфейсе gitea появится но похоже от туда можно только удалить.
Можно попробовать запустить runner:
act_runner daemon
Регистрация с конфигурационным файлом:
act_runner -c config.yaml register
Запуск с конфигурационным файлом
act_runner -c config.yaml daemon
Можно запустить act_runner как сервис, создав файл: sudo mcedit /etc/systemd/system/act_runner.service но нужно создать ползоветеля без привилений, такого: act_runner
Но у меня почему то не запустилось...
Так:
sudo adduser --disabled-password act_runner
sudo passwd act_runner
su act_runner
Давать права не обязательно: sudo chown root:root /usr/local/bin/act_runner
[Unit]
Description=Gitea Actions runner
Documentation=https://gitea.com/gitea/act_runner
After=docker.service
[Service]
ExecStart=/usr/local/bin/act_runner daemon --config /etc/act_runner/config.yaml
ExecReload=/bin/kill -s HUP $MAINPID
WorkingDirectory=/var/lib/act_runner
TimeoutSec=0
RestartSec=10
Restart=always
User=act_runner
[Install]
WantedBy=multi-user.target
Запускаем как сервис:
sudo systemctl daemon-reload
sudo systemctl enable act_runner
sudo systemctl restart act_runner
sudo systemctl stop act_runner
sudo systemctl start act_runner
sudo systemctl status act_runner
Посмотреть на лог:
grep "act_runner" /var/log/syslog
# .gitea/workflows/publish.yml
on:
push:
branches:
- main
workflow_dispatch:
jobs:
run_pull:
name: run pull
runs-on: igor
steps:
- name: CreateDate
run: touch /home/igor/runner/$(date +"%Y-%m-%d_%H-%M-%S").txt
****************************************************************************************************
Устанавливаю из Node.js из не стандартного репозитория так как там v12.22.9 а нужно >= 18 версия
Удаляем старое:
sudo apt-get remove nodejs npm
Устанавливаем новое:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v
npm -v
****************************************************************************************************
LDAP — легковесный протокол доступа к каталогам (Для адрестной книги)
sudo apt install slapd ldap-utils
sudo dpkg-reconfigure slapd
Настраиваем в файле: /etc/ldap/ldap.conf
BASE dc=domain,dc=com
URI ldap://ldap01.domain.com
****************************************************************************************************
Простой инструмент для мониторинга ресурсов сервера:
sudo apt install netdata
systemctl restart netdata
sudo mcedit /etc/netdata/netdata.conf
# bind socket to IP = 127.0.0.1
bind socket to IP = 0.0.0.0
systemctl restart netdata
Можно открывать по адресу:
http://10.101.1.3:19999/
http://10.101.1.6:19999/
****************************************************************************************************
Install .NET SDK or .NET Runtime on Ubuntu
sudo apt-get update
sudo apt-get install -y dotnet-sdk-8.0
sudo apt-get install -y aspnetcore-runtime-8.0
sudo apt-get install -y dotnet-runtime-8.0
sudo apt install zlib1g
Теперь можно запустить C# ASP.NET Core
****************************************************************************************************
ssl genkeypair spring boot java
Генерим самоподписанный SSL сертификат:
keytool -genkeypair -alias weather -keyalg RSA -keystore keystore.jks -keysize 2048 -validity 3650
Потом прописать настройки:
server:
port: 8081
ssl:
key-store: classpath:keystore.jks
key-store-password: QyKtWPZB
key-store-type: JKS
key-alias: weather
****************************************************************************************************
Для разрешения поиска через Samba и NetBIOS:
sudo apt update
sudo apt install samba
sudo systemctl restart smbd
sudo systemctl enable smbd