ИТ-заметки: субъективно
56 subscribers
23 photos
203 links
ИТ заметки по Network, Ops, DevOps

🔗 it.mxav.ru
Download Telegram
С днем бэкапа! 🥳

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

#разное@itmxav
👍1
Как отписаться от компаний на Хабре?

Мне надо было отписаться от некоторых компаний на Хабре, которые перестали активничать и убрали записи. Сделать это можно через настройки подписок, но почему-то странно вынесена кнопка настройки подписок. Она находится в разделе «Моя лента → Подписки», хотя мне казалось, что она должна находиться в профиле. Либо можно перейти прямо по ссылке https://habr.com/ru/feed/settings/

#разное@itmxav

🔗 На сайте
Драйвера для Xerox WorkCenter M115 и Ubuntu

Столкнулся с проблемой и простым её решением. Если есть Xerox WorkCenter M115 или схожие модели, то хочется поставить правильные драйвера под эту модель, иначе нормально печатать ничего не будет. Найдя специальный драйвер под конкретно этот Xerox, неожиданно, ничего не заработало. Т. е. как нормально не печатало, так и не печатает, хотя начал показываться уровень чернил.
Если же поставить просто «Generic PCL Laser Printer», то всё нормально начало отрабатывать и показывать уровень чернил.

#linux@itmxav
#разное@itmxav

🔗 На сайте
Как подключиться по OpenVPN через терминал на Linux не вводя логин и пароль?

Здесь нет информации по настройке VPN для обхода блокировок 😊
Иногда хочется пропустить момент с вводом пароля при установлении соединения к компьютерной сети по OpenVPN через терминал для решения своих рабочих задач. Вариант решения может быть такой:
1. Создается текстовый файл под нужным пользователем
touch passw

и в него записываются в каждой строке
Login
Password

2. Файлу выставляются права только на чтения
chmod 400 passw

3. В файле .ovpn устанавливаются нужны параметры. Добавляем или изменяем параметр auth-user-pass и указываем путь к файлу:
auth-user-pass /path/to/file/passw

Пишут, что можно ещё вот такую конструкцию добавить, но не проверял
<auth-user-pass>
Login
Password
</auth-user-pass>

4. Далее через терминал осуществляется установка соединения
sudo openvpn --config YOUR_FILE.ovpn


#linux@itmxav

🔗 На сайте
👍1
Ошибка %ETHPORT-4-IF_SFP_WARNING: Interface EthernetX/X, Low Voltage на Cisco Nexus

Ошибка %ETHPORT-4-IF_SFP_WARNING: Interface EthernetХ/Х, Low Voltage Warning cleared на коммутаторе Cisco Nexus указывает на то, что c модулем SFP или QSFP на интерфейсе EthernetX/X были проблемы с напряжением (оно было низким), но потом они решились.

Если подробнее посмотреть на сообщение то:
%ETHPORT-4-IF_SFP_WARNING - код ошибки и уровень важности. Уровень 4 обычно означает предупреждение (warning);
Interface EthernetХ/Х - указывает на конкретный интерфейс, где произошла проблема;
Low Voltage Warning cleared - означает, что предупреждение о низком напряжении было снято, т.е. ситуация нормализовалась.

В любом случае сообщение говорит о том, что модуль SFP/QSFP может работать некорректно при низком напряжении. Причины могут быть разные:
- модуль SFP/QSFP неправильно подключен или поврежден;
- проблемы с питанием на самом коммутаторе;
- проблемы с кабелем или соединением.

Т.к. проблема была снята (судя по сообщению), то это была временная проблема. Если такое повторяется, то необходимо дополнительно понаблюдать за тем что происходило в этот период времени. Варианты проверок:
- проверить, что модуль правильно подключен и не поврежден;
- попробовать заменить модуль на новый, чтобы исключить его как источник проблемы;
- проверьте физическое подключение (вдруг кто-то криворукий подключал): проверить, что кабель правильно подключен и не поврежден; проверьте состояние соседнего порта, если оно есть;
- посмотреть логи и статус интерфейса :
show interface EthernetХ/Х -  информации о состоянии интерфейса;
show logging - просмотре всех логов;
show interface transceiver detail - состояние SFP/QSFP

- проверить блоки питания коммутатора. Вдруг какой-то вышел из строя.

#cisco@itmxav

🔗 На сайте

📝 Другие заметки по Cisco:
- Ошибка %ADJ-3-RESOLVE_REQ на Cisco 3560-X
- Как отправить логи с Cisco Nexus на сервер логирования?
- Как посмотреть информацию о critical на Cisco ASR1001?
- Как посмотреть загрузку процессора (CPU) на Cisco?
Как конвертировать публичный ключ SSH в формат RFC4716?

Иногда бывает нужно перевести публичный ключ SSH в формат RFC4716 (например, для ProFTPD). Сделать это можно следующим образом:
ssh-keygen -ef ~/.ssh/id_rsa.pub > ~/path/to/file/id_rsa.pub


#devops@itmxav

🔗 На сайте

📝 Другие заметки по ProFTPD:
- Как проверить конфигурацию ProFTPD?
- Некорректное отображение файлов и папок при подключении по ftp/sftp к ProFTPD
Как отключить уведомление "Вы должны войти в эту сеть перед тем как сможете получить доступ в Интернет" (отключение поддержки Captive portal) в Mozilla Firefox?

Это сообщения является частью механизма Captive portal. Если оно мешает, то его можно отключить следующим способом:

1. В адресной строке браузера надо прописать about:config и нажать "Принять риск".
2. Находим параметр network.captive-portal-service.enabled и меняем его значение на false.

После этого сообщение не будет появляться.

#разное@itmxav

🔗 На сайте
Баг или фича c localhost при скачивании файлов в RocketChat (snap)

Наткнулся на странный баг или фичу в RocketChat после очередного обновления через snap. Плюс на входе nginx, который проксирует запросы. Можно было бы через docker всё поднять, но пока что через snap развернуто всё. После того как RocketChat перезапустился, то он просит, после входа в систему, изменить или подтвердить данные по адресу (домену). Нажимаю кнопку чтобы была привязка к домену, как и было. В итоге подключиться можно, но если попытать скачать файл, то вместо домена подсовывается localhost. Если скопировать ссылку, закинуть её в браузер и поменять localhost на нужный домен, то файл скачивается. После пары экспериментов нашел вывел алгоритм действия:
0. Создать отдельного пользователя с правами админа Workspace'a.
1. Через браузер заходим в RocketChat под пользователем с правами админа.
2. Нажимаем "update config" в появившемся окне.
3. В новом появившемся окне выбираем кнопку для изменения параметров и указываем нужный адрес (домен).
4. В новом окне кнопку "upgrade config" не трогаем и выходим из системы.

Есть ещё интересный момент. Если после входа в RocketChat под админом перекидывает на страницу с мастером настройки, то пару раз нажимаем Backspace и оказывается уже в самом RocketChat. Возможно, это приколы только в варианте со snap, но всё же.

#devops@itmxav

🔗 На сайте

📝 Другие заметки по RocketChat:
- Как исправить apparmor DENIED в snap.rocketchat-server.rocketchat-mongo?
- Как сделать резервное копирование данных rocketchat server?
- Как обновить Rocket.chat через snap?
- Как сбросить пароль RocketChat (admin) SNAP?
Как перенести (backup and restore) Pritunl?

Здесь нет информации по настройке VPN для обхода блокировок 😊
Иногда требуется сделать резервную копию Pritunl и быстро восстановить/поднять в новом месте, чтобы рабочие процессы не простаивали. Лучше чтобы версия ПО была одинакова на всех серверах, чтобы уменьшить возникновение ошибок.

Бэкап:
1. Бэкапим нужную базу через mongodump
mongodump --db=pritunl

2. Архивируем
tar cf pritunldb.tar dump

3. Перекидываем на нужный сервер любым удобным способом

Восстановление:
1. Заходим в mongosh и смотрим базу, если она есть
mongosh
show dbs

2. Если есть, то удаляем
use pritunl
db.dropDatabase()

3. Распаковываем архив
tar xf pritunldb.tar

4. Восстанавливаем забэкапенную базу из папки
mongorestore --db=pritunl pritunl

5. Заходим в WEB-интерфейс, правим IP-адреса, если нужно, и проверяем работу.

#devops@itmxav

🔗 На сайте
Certbot. Как удалить ненужный сертификат от Let's Encrypt на Linux?

Удалить информацию с серверов Let's Encrypt:
certbot revoke --cert-path /etc/letsencrypt/live/CERTNAME/cert.pem

Удалить сертификаты и все симлинки на локальном сервере:
certbot delete --cert-name example.com

Если скачанный certbot, то в папке certbot:
./certbot-auto revoke --cert-path /etc/letsencrypt/live/CERTNAME/cert.pem
./certbot-auto delete --cert-name example.com


#devops@itmxav

🔗 На сайте
Как изменить корень сайта (webroot) без запроса нового SSL Let’s Encrypt? [Certbot, Linux]

Для того чтобы изменить пути к файлам сайта (например, переименовали корневой каталог сайта) необходимо перейти в каталог renewal:
$ cd /etc/letsencrypt/renewal

Отредактировать конфигурационный файл соответствующий вашему сайту:
$ sudo editor нужный_файл

В разделе webroot_map ставим нужные пути к файлам сайта
[[webroot_map]]
домен1 = /абсолютный/путь/к/файлам/сайта
www.домен1 = /абсолютный/путь/к/файлам/сайта

Сохраняем и выходим из редактора.
Теперь при автоматическом пере запросе SSL ссылаться Certbot будет на новый webroot.

#devops@itmxav

🔗 На сайте

📝 Другие заметки по Сertbot:
- Certbot. Как удалить ненужный сертификат от Let's Encrypt?
Как обновить сертификат Let's Encrypt через DNS Challenge Сertbot на Linux?

Иногда бывают ситуации, что необходимо получить или обновить сертификат для конкретного веб-сайта, но проверку надо пройти через DNS.
Пройти проверку можно следующим образом:
1. Делаем запрос через certbot с указанием email для уведомлений, соглашения с условиями, ручного запуска проверки для конкретного сайта с адресом example.org:
certbot --text --agree-tos --email user@example.org -d test.example.org --manual --preferred-challenges dns --expand certonly

2. После запуска будет получен текст и куда его надо разместить. Главное не нажимать ничего пока TXT-запись не будет внесена в DNS. Пример записи в части example.org:
_acme-challenge.test IN TXT "Полученный_текст"

3. После внесения записи и её проверки можно нажимать Enter, чтобы пройти DNS Challenge.
4. Если всё успешно прошло, то будут получены нужные файлы.

#devops@itmxav

🔗 На сайте

📝 Другие заметки по Сertbot:
- Certbot. Как удалить ненужный сертификат от Let's Encrypt?
- Как изменить корень сайта webroot без запроса нового SSL Let’s Encrypt? [Certbot]
Как обновить сертификат Let's Encrypt через Webroot Challenge Сertbot на Linux?

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

1. Лучше всего чтобы, при проверке, сайт отвечал по 80 порту без редиректов в период обновления или запроса сертификата.
2. Делаем запрос через certbot с указанием email для уведомлений, соглашения с условиями, ручного запуска проверки для конкретного сайта с адресом example.org и указанием расположения корня сайта:
certbot certonly --webroot --agree-tos --email user@example.org  -w /var/www/example.org -d example.org

3. В процессе проверки будут создан временный файл с текстом, чтобы валидировать сервер и запрос. После подтверждения или неудачного подтверждения файл будет удален.
4. Если всё успешно прошло, то будут получены нужные файлы и указано куда они скачались.

#devops@itmxav

🔗 На сайте

📝 Другие заметки по Сertbot:
- Certbot. Как удалить ненужный сертификат от Let's Encrypt?
- Как изменить корень сайта webroot без запроса нового SSL Let’s Encrypt? [Certbot]
- Как обновить сертификат Let's Encrypt через DNS Challenge Сertbot на Linux?
Сравнение Youtube и Rutube

Много раз слышал, что, даже после замедлений, люди на Youtube больше смотрят видео, чем на Rutube. Решил глянуть аналитику по каналам, чтобы понять есть ли разница, т.к. заливал видео, и туда, и туда. Т.к. направление "Network, Ops, DevOps" не очень популярно относительно веселого контент, то, конечно, просмотры маленькие, но всё же.
Самое популярное видео на Youtube (1к) -
Как установить статический IP-адрес на Debian? [FastHowTo].
На Rutube (336) - Как скопировать файл на Linux через Remmina? [FastHowTo].
По аналитике получалось, что на Yotube суммарно в ~4.1 раз больше просмотров (~7к), чем на Rutube (~1.7к) за всё время. Интересный разрыв. Если смотреть по поисковикам, то Яндекс выдает видео, которые на Rutube, а Google выдает видео, которые на Youtube. Так же заметил, что видео тупо забирают, или с одной площадки на другую, или просто копируют всё подряд в рамках площадки. Сложно понять как это работает. Заметно, потому что, например, видео "Как установить статический IP-адрес на Debian? [FastHowTo] " в Яндексе, на данный момент, есть на левом канале и это видео появляется выше, чем оригинальное. Скорее всего из-за того, что на Rutube позже начал заливать видео, а кто-то с Youtube скопировал раньше. По просмотрам тоже есть такой момент, что если бы изначально всё одновременно закидывал, то разрыв по просмотрам, возможно, был бы меньше.
Пока что как-то так 😊

#разное@itmxav

🎬 Youtube
🎬 Rutube
Проблемы обновления RocketChat c 6.13.0 на 7.5.0 через snap

При обновлении через snap с 6 на 7 версию ловил ошибки по работе с базой данных. Пример ошибки:

/snap/rocketchat-server/1634/helpers/mongo.sh: line 50: ((: {"t":{"$date":"2025-04-28T11:26:41.300Z"},"s":"I",  "c":"NETWORK",  "id":5693100, "ctx":"js","msg":"Asio socket.set_option failed with std::system_error","attr":{"note":"connect (sync) TCP fast open","option":{"level":6,"name":30,"data":"01 00 00 00"},"error":{"what":"set_option: Protocol not available","message":"Protocol not available","category":"asio.system","value":92}}}
1 : syntax error: operand expected (error token is "{"t":{"$date":"2025-04-28T11:26:41.300Z"},"s":"I", "c":"NETWORK", "id":5693100, "ctx":"js","msg":"Asio socket.set_option failed with std::system_error","attr":{"note":"connect (sync) TCP fast open","option":{"level":6,"name":30,"data":"01 00 00 00"},"error":{"what":"set_option: Protocol not available","message":"Protocol not available","category":"asio.system","value":92}}}


В интернетах ничего внятного не нашел, хотя люди сталкивались с подобным именно при переходе с 6 на 7. Может быть плохо искал решение, но всё же разрулил ситуацию с обновлением.

Перед обновлением лучше все забэкапить данные и на всякий случай всю папку RocketChat'а тоже скопировать.
Обновить удалось следующим образом:
1. Останавливаем RocketChat
snap stop rocketchat-server

2. Бэкапим папку
 cp -r /var/snap/rocketchat-server/common /path/to/backup/rocketchat-backup

3. Бэкапим данные
snap run rocketchat-server.backupdb

4. Переносим забэкапленные данные в другое своем место через cp.

Далее

5. Удаляем RocketChat
snap remove rocketchat-server

6. Ставим последнюю версию
snap install rocketchat-server --channel=latest/stable

7. Далее копируем забэкапленные данные в папку для бэкапов RocketChat'a, иначе ошибка будет появляться.
cp -r /path/to/backup/rocketchat-backup /var/snap/rocketchat-server/common 

8. Восстанавливаем данные
snap run rocketchat-server.restoredb /var/snap/rocketchat-server/common/rocketchat_backup.tgz

9. В процессе предложит удалить старую базу. Соглашаемся и ждем завершения.
10. Запускаем RocketChat и ждем пока все нужные данные подтянутся, посматривая в журнал с логами.

#devops@itmxav

🔗 На сайте

📝 Другие заметки по RocketChat:
- Как исправить apparmor DENIED в snap.rocketchat-server.rocketchat-mongo?
- Как сделать резервное копирование данных rocketchat server?
- Как обновить Rocket.chat через snap?
- Как сбросить пароль RocketChat (admin) SNAP?
Скрытие версии и нумерации пользователей WordPress

После установки WordPress забывают почистить лишнее в целях дополнительной безопасности:
1. Убрать/перенести файлы. Идем от корня сайта:
license.txt
readme.html
wp-config-sample.php
wp-admin/install.php

2. Отключить нумерацию пользователей в wp-includes/functions.php
function my_r_username(){
if (is_author()){
wp_redirect( home_url() ); exit;
}
}
add_action('template_redirect', 'my_r_username');

3. Удаляем имя пользователя из css. Для этого в wp-includes/functions.php
function remove_c_author( $classes ) {
foreach( $classes as $key =&amp;amp;amp;amp;amp;gt; $class ) {
if(strstr($class, "comment-author-")) {
unset( $classes[$key] );
}
}
return $classes;
}
add_filter( 'comment_class' , 'remove_c_author' );

4. Удалить ?ver из скриптов и стилей. В wp-includes/functions.php прописываем
function _remove_script_version($src){
$parts = explode('?', $src);
return $parts[0];
}
add_filter('script_loader_src','_remove_script_version',15,1);
add_filter('style_loader_src','_remove_script_version',15,1);

5. Удалить версию WordPress. Для этого в wp-includes/functions.php
function remove_version_info() {
return '';
}
add_filter('the_generator', 'remove_version_info');


Источник и дополнительная информация — artemsannikov.ru

#devops@itmxav

🔗 На сайте

📝 Другие заметки по WordPress:
- Как установить WordPress на Debian?
Как обновить IOS на Cisco?

Иногда бывает, что необходимо обновить IOS Cisco вручную. Для этого:
1. Подключаем флешку с IOS. Если флешка не видится, но выдает ошибки, то лучше её отформатировать прямо на Cisco и потом закинуть на неё IOS:
format usbflash0:

2. Далее смотрим, что IOS есть и закидываем его на flash Cisco:
dir usbflash0:
copy usbflash0:cXXXX-adventerprisek9-mz.124-12.bin flash:

3. Далее в конфиге указывает что именно надо грузить, сохраняем и перезагружаемся
conf t
boot system flash:cXXXX-adventerprisek9-mz.124-12.bin
!если есть выше другие загрузки, то удаляем или ставим ниже через команды no boot/boot
write memory
reload


Если всё нормально, то IOS должен обновиться.

#сети@itmxav
#cisco@itmxav

🔗 На сайте

📝 Другие заметки по Cisco:
- Как отправить логи с Cisco Nexus на сервер логирования?
- Как посмотреть загрузку процессора (CPU) на Cisco?
- Как заблокировать трафик от определенного MAC на Cisco
- Как в Cisco по ip адресу узнать mac устройства
- Как настроить Syslog на Cisco ASA 5500 серии?
- Ошибка %ADJ-3-RESOLVE_REQ на Cisco 3560-X
Проблемы обновления сертификатов Let's Encrypt через certbot на AltLinux при проверки через webroot

Неожиданно столкнулся с проблемой, что сертификаты Let's Encrypt не обновляются через certbot на AltLinux. Ошибка такая:
All renewal attempts failed. The following certs could not be renewed:
/etc/letsencrypt/live/domain_name/fullchain.pem (failure)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1 renew failure(s), 0 parse failure(s)

IMPORTANT NOTES:
- The following errors were reported by the server:

Domain: domain_name
Type: unauthorized
Detail: IP_address: Invalid response from
http://domain_name/.well-known/acme-challenge/234desfsfsdfs:
404

Редиректов нет. Тестовый файл по адресу http://domain_name/.well-known/acme-challenge/1 открылся нормально, но при renew выдает, что не может найти проверочный файл. По правам на папки тоже всё нормально, т.е. создаваться всё может в этой папке без проблем. Решить удалось только когда вручную был создан запрос и указан путь к корню сайта:
certbot certonly --email pochta@example.org --webroot -w /var/www/site/ -d domain_name


#devops@itmxav

🔗 На сайте

📝 Другие заметки по Сertbot:
- Certbot. Как удалить ненужный сертификат от Let's Encrypt?
- Как изменить корень сайта webroot без запроса нового SSL Let’s Encrypt? [Certbot]
- Как обновить сертификат Let's Encrypt через DNS Challenge Сertbot на Linux?
Как проверить конфигурацию SSH?

Иногда бывает нужно проверить конфиг SSH. Сделать это можно так:
sshd -t

Если ошибок нет, то ничего не выдаст.

#linux@itmxav
#devops@itmxav

🔗 На сайте

📝 Другие заметки по SSH:
- Как настроить chroot для sftp (OpenSSH)?
- Выполнение удаленных команд по паролю через SSH в Unix/Linux
- Как конвертировать публичный ключ SSH в формат RFC4716?
Arcconf не видит контроллер на примере Adaptec SmartRAID 3152-8i

После очередного обновления ОС arcconf перестал видеть контроллер:
# arcconf LIST
Controllers found: 0

Command completed successfully.

Хотя всё видно и загружено через
# cat /proc/scsi/scsi
# lsscsi -v
# dmesg | grep -i smartpqi

С большой вероятностью надо более новую версию скачать с download.adaptec.com, закинуть в правильное место и сделать символьную ссылку на бинарник.
1. Создаем папку
# mkdir -p /opt/arcconf

2. Копируем бинарник, даем права, делаем ссылку с перезаписью, если там есть уже файл
# cp /путь/к/бинарнику/arcconf/linux_x64/arcconf /opt/arcconf/
# chmod +x /opt/arcconf/arcconf
# chmod -R 755 /opt/arcconf
# ln -sf /opt/arcconf/arcconf /usr/local/bin/arcconf


Проверить работу можно через
which arcconf
arcconf getconfig 1


#linux@itmxav

🔗 На сайте

📝 Другие заметки по дискам:
- Как включить JBOD MegaRAID через megacli на Linux Debian?
- Как добавить новый диск и увелисть объем LVM?
- Как перенести диск в Proxmox с Ceph?
Как узнать IP, зная MAC адрес на порту CISCO?

Иногда бывают ситуации когда надо определить IP, зная MAC и порт Cisco. Сделать это можно так

1. Смотрим какие MAC есть на интересующем порту
# sh mac-address table int GiX/X/X

или
# sh mac address-table int GiX/X/X

2. Определяем IP по MAC-таблице
# sh ip arp xxxx.xxxx.xxxx


#сети@itmxav
#cisco@itmxav

🔗 На сайте

📝 Другие заметки по Cisco:
- Как отправить логи с Cisco Nexus на сервер логирования?
- Как посмотреть загрузку процессора (CPU) на Cisco?
- Как заблокировать трафик от определенного MAC на Cisco
- Как в Cisco по ip адресу узнать mac устройства
- Как настроить Syslog на Cisco ASA 5500 серии?
- Как обновить IOS на Cisco?