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

🔗 it.mxav.ru
Download Telegram
Как в Cisco по ip адресу узнать mac устройства

Иногда в Cisco бывает нужно быстро найти mac по IP. Сделать это достаточно просто. Смотрим arp таблицу и фильтруем по известному ip через include
sh ip arp | i 10.111.222.111

#cisco@itmxav
#сети@itmxav

🔗 На сайте
👍2
GitLab не обновляет сертификат Let's Encrypt после своего upgrade

Спустя несколько месяцев после upgrade, GitLab начал выдавать ошибку, что не смог обновить сертификат от Let's Encrypt. При обновлении вручную через
gitlab-ctl renew-le-certs

сертификат тоже не хотел обновляться.
Помогла реконфигурация, в процессе которой GitLab запросил новый сертификат и нормально всё обновил.
gitlab-ctl reconfigure


#linux@itmxav

🔗 На сайте
Как заблокировать трафик от определенного MAC на Cisco

Иногда надо заблокировать трафик от определенного MAC на Сisco, особенно если там DHCP крутится.
Можно сделать это следующим образом:
1. Переходим в нужный режим на Cisco и создаем ACL с указанием MAC
conf t
mac access-list extended MACL
deny any host FFFF.FFFF.FFFF
permit any
exit

2. Вешаем ACL на нужный порт
interface fastEthernet 0/1
mac access-group MACL in


#сети@itmxav
#cisco@itmxav

🔗 На сайте
Ошибка 500 при применении параметра Repository by URL в GitLab

Столкнулся недавно с ситуацией, что при применении Repository by URL в GitLab в разделе
Admin area -> setting ->  Import and export settings -> Repository by URL

Запрос подвисает и в логах пишет
/var/log/gitlab/puma/puma_stderr.log:source=rack-timeout id=.... timeout=60000ms service=60000ms state=timed_out at=error
/var/log/gitlab/gitlab-rails/production_json.log:{"method":"PATCH","path":"/admin/application_settings/general","format":"html","controller":"Admin::ApplicationSettingsController","action":"general","status":500.....{"key":"authenticity_token","value":"[FILTERED]....


Оказалось, что при применении этого параметра идет запрос в DNS. Решилась проблема просто добавлением нужных правил:
iptables -I INPUT -s IP_DNS/32 -p udp -m udp --sport 53 -j ACCEPT
iptables -I INPUT -s IP_DNS_2/32 -p udp -m udp --sport 53 -j ACCEPT


#linux@itmxav

🔗 На сайте
Как вывести виртуальную машину Proxmox из error state?

Из-за различный ситуаций виртуальная машина, которая находится в общей HA-группе или нет, может улететь в ошибку. Чтобы изменить её состояние можно на узле сделать:
ha-manager set vm:<VMID> --state disabled


#proxmox@itmxav

🔗 На сайте
Как перейти в chroot и запустить инициализацию Linux?

Когда ломается система на Linux и она зависает при загрузке, то иногда полезно попробовать запуститься через chroot и посмотреть на каком шаге всё ломается при загрузке.
1. Запускаемся с Live-CD сервер.
2. Монтируем нужный раздел, посмотрев всё предварительно через blkid, fdisk -l. Например, sda2
mount /dev/sda2 /путь/к/точке/монтирования

2. Создаем временную папку, которая будет новым корнем и заходим в нее
# mkdir /путь/к/новому/корню; cd /путь/к/новому/корню

3. Мониторуем каталоги для chroot
# mount -t proc proc proc/
# mount -t sysfs /sys sys/
# mount --rbind /dev dev/

Дополнительная информация:
Если нужен раздел run, то можно примонтировать вот так
mount --rbind /run run/

Если у есть UEFI, то надо примонтировать ещё
mount --rbind /sys/firmware/efi/efivars sys/firmware/efi/efivars/

Для работы по сети копируем resolv.conf
cp /etc/resolv.conf etc/resolv.conf

4. Пробуем зайти в оболочку
chroot /путь/к/новому/корню /bin/bash

5. Запускаем инициализацию/
make-initrd

или
make-initrd --kernel=`uname -r`

или можно полный путь указать к ядру вместо uname -r.

Чтобы всё размонтировать
umount --recursive /путь/к/новому/корню


#linux@itmxav

🔗 На сайте
Как включить fast boot при загрузке в Linux?

Иногда бывают ситуации, когда при загрузке нужно быстрее передать управление ОС. Например, проигнорировать тестирование разных устройств перед загрузкой. Это можно сделать добавив в GRUB параметр fastboot.
1. В процессе загрузки GRUB нажимает e
2. Ищем строчку наподобие
linux  /boot/vmlinuz root=UUID=..... panic=30 splash

3. В конце через пробел добавляем fastboot
linux  /boot/vmlinuz root=UUID=..... panic=30 splash fastboot 

4. Загружаемся

#linux@itmxav

🔗 На сайте
Не открываются настройки на Ubuntu или can't load libspa-support

После одного из обновления на Ubuntu поймал ошибку, когда при нажитии на "настройки" эти настройки системы не открывались.

При вызове gnome-control-center вылетела ошибка
can't load /usr/lib/x86_64-linux-gnu/spa/support/libspa-support.so: /usr/lib/x86_64-linux-gnu/spa/support/libspa-support.so: cannot open shared object file: No such file or directory
Segmentation fault (core dumped)


Нечто похожее нашел bugs.launchpad.net
Помогла установка pipewire, в которой и был нужный файл.
apt install pipewire 


#linux@itmxav

🔗 На сайте
Из списка мэйнтейнеров ядра Linux удалено 11 участников, которые предположительно из РФ [Новости]

Наверно, многим известно уже про эту новость. В какой-то момент при обсуждении ситуации появился Линус. И вот что отметил в одном из писем
I'm Finnish. Did you think I'd be *supporting* Russian aggression? Apparently it's not just lack of real news, it's lack of history knowledge too.

На это прекрасное знание истории ему ответил Ivan Epifanov
As an avid history lover, you've seem to forgot, that Finland fought on Nazi side.
So yeah, we're well aware you don't like Russians, unless they're in concentration camps.
Which is exactly what you do now: segragate, based on nationality. Strip of credits and names.

Наверно, понятно, что аполитичности сообщества ядра нет. Политика там идет в полный рост. Можно, конечно, поразмышлять или пофантазировать кто на кого влияет и что будет в дальнейшем, но что-то мне подсказывает, что в ближайшем будущем будет много интересного в мире ИТ.

Разгонять политику не хочется, но не отметить эту ситуацию тоже нельзя, т.к., на мой взгляд, это важный момент в "жизни" ядра и всех дистрибутивов, использующих Linux.

#разное@itmxav

🔗 На сайте
Как посмотреть загрузку процессора (CPU) на Cisco?

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

# sh processes cpu | exclude 0.00


Выводим весь список процессов и убираем тех, кто потребляет 0.

#cisco@itmxav

🔗 На сайте
1
Как настроить chroot для sftp (OpenSSH)?

Часто может требоваться настроить доступ так, чтобы пользователь не мог ходить по всей системе при подключении по sftp. Также возможность подключения по ssh для этого пользователя может не требоваться.

Для того чтобы настроить chroot надо сделать следующее :
1. Открываем /etc/ssh/sshd_conf
nano /etc/ssh/sshd_conf 

2. Найти строчку относительно sftp. Закомментировать её и добавить ниже новую, чтобы использовался встроенный sftp-сервер
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp -f AUTH -l VERBOSE

3. Переходим в конец файла и добавляем
Match user usertest
ChrootDirectory /home
ForceCommand internal-sftp -d /usertest
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no

В случаем подключения пользователя usertest попадаем в домашнюю папку /home/usertest.
На всякий случай можно отключить переадресацию агентов (AllowAgentForwarding), портов SSH (AllowTcpForwarding), возможность графических интерфейсов X11 программ (X11Forwarding) и возможности туннелирования (PermitTunnel), если глобально что-то включено. ForceCommand internal-sftp говорит о том, что можно использовать только встроенный sftp.
В ChrootDirectory можно указывать не только конкретный каталог, но переменную %h (home directory).
Если же необходимо на группу пользователей сделать, то
Match group ugroupsftp
ChrootDirectory /home
ForceCommand internal-sftp -d %u
AllowTcpForwarding no
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no

Вместо пользователя указываем нужную группу и папку для ChrootDirectory, в данном случае home. %u - параметр для папки пользователя, если она совпадает с именем.
Т. е. сначала идет подключение в ChrootDirectory, а потом автоматический переход в папку пользователя /home/usertest

4. Важный момент! Чтобы всё работало необходимо установить правильные права на папки:

/home и ветка выше, если не home, должна принадлежать пользователю root и группе root.
/home/usertest должна принадлежать пользователю usertest и группе usertest, а также установлены права "drwxr-x---" или более низкие. Это для того, чтобы другие пользователи не заходили в домашнюю папку, если их нет в группе конкретного пользователя.

5. Далее проверяем конфигурацию
sshd -t 

Если всё хорошо, то вывода не будет. Если что-то не так, то будет написано где ошибка в конфигурации. Если ошибок нет и не удается подключиться, то надо смотреть логи.

6. Перечитываем конфигурацию sshd
systemctl reload sshd


#linux@itmxav

🔗 На сайте
Как отправить логи с Cisco Nexus на сервер логирования?

Система NXOS отличается от IOS. Настройка отправки логов на сервер логирования в Cisco Nexus происходит иначе:

1. Указываем, что надо отправлять логи на сервер
logging server 192.168.0.1 6 use-vrf default facility syslog


192.168.0.1 - пример IP-адреса сервера логирования.
6 - это уровень логов, которые надо отправлять
use-vrf default - VRF по умолчанию. Если вы на Nexus настраивали что-то с VRF, то надо это учитывать.
facility syslog - объект, который будет использоваться для отправки логов.

2. Указываем через какой интерфейс (например, 1/16) будут отправляться логи:
logging source-interface Ethernet1/16

3. Дополнительная конфигурация. Устанавливаем отправку команд в aaa на уровне 6, чтобы записи отправлялись на сервер логирования:
logging level aaa 6

4. Проверяем логи на сервере логирования через систему логирования и tcpdump/wireshark, что логи доходят. Сохраняем текущий конфиг в startup-config:
copy running-config startup-config


#cisco@itmxav
#сети@itmxav

🔗 На сайте

📝 Другие заметки по Cisco Nexus:
- Как задать часовой пояс в Cisco Nexus?
- Ошибка Oxidized "Timeout::Error with msg execution expired" и Cisco Nexus
Как решить проблему multiline при отправке логов со Squid в Graylog?

Иногда бывает, что при отправки логов со Squid прилетает множество строчек пачкой, хотя должно было прилетать и обрабатываться по одной строчке. Такое возникает когда пытаются настроить отправку по UDP. Если же настроить отправку по TCP, то проблема множеством строк пропадает.

Вариант настройки может быть такой:
1. Раскомментируем или создаем, например, вот такой формат логов:
logformat squid %{%Y.%m.%d/%H:%M:%S}tl %ts.%03tu %6tr %>a:%>p %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a:%<p %mt %<Hs

2. Указываем как и куда отправлять логи:
access_log tcp://192.168.0.1:19302 squid

Здесь мы указываем, что надо отправлять логи в формате squid по TCP на сервер 192.168.0.1 на порт 19302.

3. Проверяем конфиг Squid
clear;squid -k parse

4. Если всё нормально, что перечитываем конфиг
systemctl reload squid.service

5. На сервере с Graylog проверяем при помощи tcpdump/wireshark, что пакеты с логами доходят.

6. Настраиваем альтернативный вариант Input для 19302 с указанием, что это Raw/Plaintext TCP. Проверяем, что логи обрабатываются Graylog'ом.

#graylog@itmxav
#мониторинг@itmxav

🔗 На сайте

📝 Другие заметки по Graylog:
- Как установить Graylog 5.2?
- Как настроить Syslog на Cisco ASA 5500 серии?
- Zelax не отправляет логи в Graylog
Как проверить конфигурацию ProFTPD?

Краткая заметка. Чтобы проверить конфигурационный файл ProFTPD на ошибки можно запустить команду:
proftpd -td5

или
$ sudo proftpd -t


#linux@itmxav

🔗 На сайте
Некорректное отображение файлов и папок при подключении по ftp/sftp к ProFTPD

Если у вас некорректно отображаются файлов и папки при подключении по ftp/sftp к ProFTPD. Т.е. в названии папок и файлов дата+само название, то необходимо прописать в конфиге /etc/proftpd/proftpd.conf в самом начале переменную:
Unsetenv LANG

Проверить конфиг
$ sudo proftpd -t

и перечитать конфиг. Если ubuntu, то например
$ sudo service proftpd reload


#linux@itmxav

🔗 На сайте
🎄С наступающим 2025 годом! 🎄

В наступающем году желаю разумных решений, достижения своих целей, побольше интересных проектов, беспроблемных апгрейдов и поменьше "мутной" бюрократии! 😁

Успехов и отличного настроения! 🎅
Как настроить ProFTPD для подключения SSHFS по ключам?

Бывает возникают ситуации, что необходимо настроить ProFTPD только к определенной области каталогов пользователю для sshfs по ключам. Основную настройку ProFTPD не будет описавать, т.к. она стандартная. Отмечу только некоторые моменты:
0. Некоторые моменты:
Пример chroot-папки для конкретного пользователя
DefaultRoot     /home/user123 user123

Хорошо бы чтобы были ограничения по пользователям
<Limit LOGIN>
DenyALL
AllowUser user123
</Limit>


1. Далее настраиваем sftp
<IfModule mod_sftp.c>
SFTPEngine on
SFTPHostKey /etc/ssh/ssh_host_dsa_key
SFTPHostKey /etc/ssh/ssh_host_rsa_key
SFTPLog /var/log/proftpd/sftp.log
SFTPCompression delayed
SFTPAuthMethods password publickey #способ проверки по пароли, по ключам
SFTPAuthorizedUserKeys file:/etc/proftpd/authorized_keys/%u
</IfModule>

Да, в параметре SFTPAuthorizedUserKeys надо указать переменную %u. Это надо для проверки ключа конкретного пользователя через его имя.

2. В директории /etc/proftpd/authorized_keys/ создаем файл с именем пользователя, например, при помощи редактора nano, и закидываем туда публичный ключ
cd /etc/proftpd/authorized_keys/
nano user123

Ключ в виде
---- BEGIN SSH2 PUBLIC KEY ----
AA...
...
...
---- END SSH2 PUBLIC KEY ----

3. Проверяем конфиг и если всё нормально, то перечитываем конфигурацию proftpd.
proftpd -td5
systemctl reload proftpd.service

4. Пробуем подключиться
sshfs user123@IP-address-server:/ /куда/примонтировать

Отмонтироваться можно так
fusermount -u /куда/примонтировали


#linux@itmxav

🔗 На сайте

📝 Другие заметки по ProFTPD:
- Как проверить конфигурацию ProFTPD?
- Некорректное отображение файлов и папок при подключении по ftp/sftp к ProFTPD
Как установить терминальный сервер X2Go на Debian?

Для работы с терминальным сервером необходимо на серверной стороне устновить среду и серверную часть x2go. В качестве среды будет использоваться XFCE:

1. Можно установить базовый набор пакетов:
sudo apt-get install xfce4

Или полный набор (включает текстовый редактор, веб-браузер и т.д.)
sudo apt-get install task-xfce-desktop

2. Далее ставим X2Go:
sudo apt-get install x2goserver x2goserver-xsession

Базовых параметров достаточно.
3. Переходим на клиентскую машину. В качестве примера машина с дистрибутивом debian-base
sudo apt-get install x2goclient

Подробнее про клиента можно почитать в документации.
4. Запускаем клиент. Создаем новую сессию, вводим адрес сервера, имя пользователя, порт SSH, указываем в типе сессии XFCE и подключаемся.
При успешном подключении откроется рабочий стол.
Далее в клиенте, в настройке сессии, можно подобрать вручную настройки для более удобной работы, если это необходимо.

Посмотреть:
🎬 На Youtube
🎬 На Rutube

#linux@itmxav
#fasthowto@itmxav

🔗 На сайте
С днем бэкапа! 🥳

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

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

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

#разное@itmxav

🔗 На сайте