cisco catalist password reset

Процедура сброса пароля на маршрутизаторах и коммутаторах cisco отличается. Как обычно — необходим физический доступ к оборудованию и подключение к консоли.

Чтобы начать восстановление нужно выключить коммутатор, затем включить его с зажатой кнопкой mode. Так мы прерываем штатную загрузку.

Loading "flash:/c2960-lanbase-mz.122-25.FX.bin"…
#
Boot process terminated.
switch

Теперь вводим команды flash_init и load_helper. После из успешного выполнения становится доступным содержимое нашей flash памяти. Посмотреть его можно командой — dir flash: (двоеточие в конце команды)

switch: flash_init
Initializing Flash…
flashfs[0]: 3 files, 0 directories
flashfs[0]: 0 orphaned files, 0 orphaned directories
flashfs[0]: Total bytes: 64016384
flashfs[0]: Bytes used: 3059643
flashfs[0]: Bytes available: 60956741
flashfs[0]: flashfs fsck took 1 seconds.
…done Initializing Flash.
switch: load_helper
switch: dir flash:
Directory of flash:/
1 -rw- 3058048 c2950-i6q4l2-mz.121-22.EA4.bin
3 -rw- 979 config.text
2 -rw- 616 vlan.dat
60956741 bytes available (3059643 bytes used)

Интересует файл config.text — это и есть стартап-конфиг коммутатора. Чтобы коммутатор загрузился без него — его нужно переименовать, например так — rename flash:config.old flash:config.text.
Теперь коммутатор нужно перезагрузить в нормальном режиме — он загрузится без конфигурации. Если не стоит задача — сохранить старый конфиг — то на этом все.

Если старый конфиг сохранить нужно, то содержимое переименованного файла конфига нужно загрузить в running-config, добавить пользователя и сохранить конфигурацию.

Switch>en
Switch#rename flash:config.old flash:config.text
Switch#copy flash:config.text system:running-config

Теперь после того как конфиг загружен мы можем задать новый пароль

Switch1#conf t
Switch1(config)#enable secret NewPassword
Switch1(config)#enable password NewPassword
Switch1 (config)#line vty 0 4
Switch1 (config-line)#password NewPassword
Switch1 (config-line)#login
Switch1 (config-line)#exit
Switch1 (config)#line console 0
Switch1 (config-line)#password NewPassword
Switch1 (config-line)#login

И сохраняем новую конфигурацию.

Switch1#copy running-config startup-config

Теперь после перезагрузки коммутатор будет загружать файл с измененным паролем.

apcupsd

Установка apcupsd тривиальна.

yum -y install apcupsd

Включить, выключить, добавить в автозагрузку

systemctl start apcupsd
systemctl stop apcupsd
systemctl enable apcupsd

Конфиг. В случае подключения по usb — можно оставить по умолчанию. Логи

vi /etc/apcupsd/apcupsd.conf

tail -f /etc/apcupsd/apcupsd.events

В результате появилась служба которая поддерживает связь с ИБП и команда

apcaccess status

solaris 10 syslog-ng

Появилась рабочая необходимость собрать логи с ряда сетевых устройств в замкнутой системе. Свой ноут подключить в сеть нельзя. Все компы и сервера в системе на solaris 10 update 10. Так как задачу приходилось решать не один раз — запишу последовательность действий. Чтобы в следующий раз не тупить.

Для начала необходимо убедится что установлены все необходимые пакеты.

SUNWPython (The Python interpreter, libraries and utilities)
SUNWPython-devel (The Python interpreter, libraries and utilities, platform dependent developer files, stored in /usr)
SUNWPython-share (The Python interpreter, libraries and utilities, platform independent shared files, stored in /usr/sfw/share)

проверять командой pkginfo

pkginfo |grep SUNWPython

Если все пакеты присутствуют, следует приступать к установке собственно syslog-ng сервера. Есть два варианта — собирать из исходных кодов, или установить готовый пакет. Я без труда нашел скомпилированный пакет, поэтому буду устанавливать syslogng-1.6.11-sol10-x86-local.

pkgadd -d ./syslogng-1.6.11-sol10-x86-local
mkdir /usr/local/etc
mkdir /usr/local/etc/syslog-ng
cp /usr/local/doc/syslog-ng/doc/syslog-ng.conf.solaris /usr/local/etc/syslog-ng/syslog-ng.con

Далее нужно выключить стандартный syslog сервер соляриса. Затем проверить что он выключен. (возможно впоследствии его потребуется включить)

Выключить
svcadm disable svc:/system/system-log:default
svcadm disable svc:/network/shell:defaul

Проверить
svcs svc:/system/system-log:default
svcs svc:/network/shell:default

Включить
svcadm enable svc:/system/system-log:default
svcadm enable svc:/network/shell:default

Теперь необходимо создать скрипт запуска /lib/svc/method/svc-syslog-ng

vi /lib/svc/method/svc-syslog-ng
#!/bin/sh
. /lib/svc/share/smf_include.sh
Start processes required for syslog-ng
Required for certain libgcc and eventlog libraries
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/sfw/lib
export LD_LIBRARY_PATH
if [ -x /usr/local/sbin/syslog-ng ]; then
/usr/local/sbin/syslog-ng
else
echo "syslog-ng is missing or not executable."
exit $SMF_EXIT_ERR_CONFIG
fi
exit $SMF_EXIT_OK

Задать для него владельца и права.

chown root:bin /lib/svc/method/svc-syslog-ng
chmod 755 /lib/svc/method/svc-syslog-ng

Далее необходимо создать файл SMF манифеста /var/svc/manifest/system/syslog-ng.xml

vi /var/svc/manifest/system/syslog-ng.xml
<create_default_instance enabled='false' />
<single_instance/>
<dependency name='milestone' grouping='require_all' restart_on='none' type='service'>
<service_fmri value='svc:/milestone/sysconfig' />
</dependency>
<dependency name='filesystem' grouping='require_all' restart_on='none' type='service'>
<service_fmri value='svc:/system/filesystem/local' />
</dependency>
<dependency name='autofs' grouping='optional_all' restart_on='none' type='service'>
<service_fmri value='svc:/system/filesystem/autofs' /> </dependency>
<dependency name='name-services' grouping='require_all' restart_on='none' type='service'>
<service_fmri value='svc:/milestone/name-services' />
</dependency>
<dependent name='syslog-ng_single-user' grouping='optional_all' restart_on='none'>
<service_fmri value='svc:/milestone/multi-user' />
</dependent>
<exec_method type='method' name='start' exec='/lib/svc/method/svc-syslog-ng' timeout_seconds='60' />
<exec_method type='method' name='stop' exec=':kill' timeout_seconds='60' />
<exec_method type='method' name='refresh' exec=':kill -HUP' timeout_seconds='60' />
<property_group name='general' type='framework'>
<!-- to start stop syslog daemon -->
<propval name='action_authorization' type='astring' value='solaris.smf.manage.syslog-ng' />
</property_group>
<stability value='Unstable' />
<template>
<common_name>
<loctext xml:lang='C'> syslog-ng </loctext>
</common_name>
<documentation>
<manpage title='syslog-ng' section='1M' manpath='/usr/share/man' /> </documentation>
</template>

Задать для манифеста владельца и права

chown root:sys /var/svc/manifest/system/syslog-ng.xml
chmod 444 /var/svc/manifest/system/syslog-ng.xml

Далее нужно проверить созданный манифест

svccfg validate /var/svc/manifest/system/syslog-ng.xml

Если ошибок нет — импортировать манифест в SMF

svccfg import /var/svc/manifest/system/syslog-ng.xml

Проверить что сервис появился в SMF базе

svcs syslog-ng

Включить/выключить сервис

svcadm disable syslog-ng
svcadm enable syslog-ng

Если включатся не хочет, вместо online выпадает в статус maintenence — нужно смотреть лог-файл службы

tail /var/svc/log/system-syslog-ng:default.log

Чтобы сконфигурировать сервис нужно редактировать конфиг по адресу /usr/local/etc/syslog-ng.conf Приведу пример примитивного конфига, который слушает 514й порт и записывает все что на него прилетает в файл /var/log/remote/cisco.log

vi /usr/local/etc/syslog-ng.conf

source s_udp { udp (ip ("0.0.0.0") port (514)); };
destination d_cisco { file("/var/log/remote/cisco.log"); };
log { source(s_udp); destination(d_cisco); };

Или чуть сложнее - с фильтром по адресу сети источника
source s_udp { udp (ip ("0.0.0.0") port (514)); };
destination d_cisco { file("/var/log/remote/cisco.log"); };
filter f_cisco { netmask("192.168.55.0/255.255.255.0"); };
log { source(s_udp); filter(f_cisco); destination(d_cisco); };

cisco isr password reset

Чтобы сбросить пароль на маршрутизаторах ISR cisco необходимо подключение консольным кабелем. Далее reload (или физически передернуть кабель питаний) — при загрузке [Ctrl]+[Break] — так, чтобы появилось приглашение rommon> (режим ROM monitor).

Если терминал не позволяет передать [Ctrl]+[Break] можно просто вытащить из роутера флеш-карту и загрузить без нее.

Из режима rommon> нужно изменить конфигурацию реестра командой confreg 0x2142. После чего сделать reset

Теперь маршрутизатор загрузится без конфига. Можно настраивать новый конфиг — если план был такой. Если-же нужен старый конфиг — то необходимо из привилегированного режима сделать copy startup-config running-config.
После этой команды применится старый конфиг, но привилегированный режим позволит создать в нем новую учетную запись и/или изменить любые другие настройки.

Когда все пароли изменены/восстановлены — необходимо перевести конфигурационный регистр в нормальное состояние. config-register 0x2102

linux запись cd/dvd дисков

Говорят что диски свое отжили, но в большинстве рабочих компьютеров dvd-rom по прежнему есть. Иногда возникают ситуации, когда воспользоваться им — наиболее удобное решение.

Для того чтобы записать в centos 7 произвольные файлы на диск нужно сформировать iso

mkisofs -joliet-long -r -o /home/pakege/temp/hpz420.iso /home/pakege/distrs/Z420

и прожечь болванку

cdrecord -v speed=0 dev=ATAPI:0,0,0 /home/pakege/temp/hpz420.iso

чтобы узнать адрес DVD-RW нужен вывод команды

cdrecord -scanbus dev=ATAPI
Cdrecord-Clone 2.01.01a01 (i686-pc-linux-gnu) Copyright (C) 1995-2004 Joerg Schilling
'@(#)scsitransp.c 1.91 04/06/17 Copyright 1988,1995,2000-2004 J. Schilling').scsibus0:
0,0,0 0) '_NEC ' 'DVD_RW ND-3550A ' '1.05' Removable CD-ROM

0,1,0 1) *
0,2,0 2) *
0,3,0 3) *
0,4,0 4) *
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *

Если нужных команд в дистрибутиве нет — необходимо установить пакет wodim

yum install wodim


LVM pvmove

Сначала в компьютере был один HDD на 1Tb. На нем был установлен centos 7.5 с автоматической разбивкой диска. Т.е. использовался LVM который в centos опция по умолчанию. под root раздел автомат выделяет 50Гб — остальное — boot, swap, home.

Потом появился ssd но маленький — всего на 60Gb. поскольку оперативы много и заботится о производительности свапа смысла нет, было решено перенести на ssd только root раздел.

LVM позволяет сделать это всего несколькими командами.

Раздел на новом диске я создал с помощью gparted.

[root@adminhp ~]# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0 931,5G  0 disk
├─sda1            8:1    0   200M  0 part /boot/efi
├─sda2            8:2    0     1G  0 part /boot
└─sda3            8:3    0 930,3G  0 part
 ├─centos-root 253:0    0    50G  0 lvm  /
 ├─centos-swap 253:1    0   7,6G  0 lvm [SWAP]
 └─centos-home 253:2    0 872,7G  0 lvm /home
sdb               8:16   0 55,9G  0 disk
└─sdb1            8:17   0 47,9G  0 part

далее нужно создать Physical volume

pvcreate /dev/sdb1

далее расширить Volume group centos на новый PV

vgextend centos /dev/sdb1

после чего можно запускать сам перенос раздела

pvmove -n root /dev/sda3 /dev/sdb1

 

 

centos 7 syslog-ng

Часто возникает необходимость организовать сбор логов по сети. Для этого прекрасно подходят линукс пакеты rsyslog или syslog-ng. Т.к. я использую последний — про него и расскажу. Все это происходит в centos 7.6

установка тривиальная

yum install -y syslog-ng

главный конфиг. еще можно докладывать свои отдельные конфиги в ./conf.d

/etc/syslog-ng/syslog-ng.conf

Чтобы собрать логи по сети нужно определить в конфиге

источник
source s_udp { udp (ip ("0.0.0.0") port (514)); };

затем создать файл лога

mkdir /var/log/remote
touch /var/log/remote/diamond.log

и определить в конфиге

destination — назначение, ранее созданный лог файл
filter — фильтр входящего потока. обычно ip адрес
log — определяет откуда брать логи, чем фильтровать и куда записывать результат.

destination d_diamond { file("/var/log/remote/diamond.log"); };
filter f_diamond { netmask("192.9.200.71/255.255.255.255"); };
log { source(s_udp); filter(f_diamond); destination(d_diamond); };

 

KVM manual cloning vm

Появилась необходимость склонировать вм и запустить ее на соседнем гипервизоре. Есть несколько вариантов это сделать, я буду использовать ручной. вм источник — uvd1. склонировать нужно в uvd2.

virsh shutdown uvd1

cp /home/vm/{uvd1,uvd2}.qcow2

virsh dumpxml uvd1 > /tmp/uvd2-template.xml

sed -i /uuid/d /tmp/uvd2-template.xml
sed -i '/mac address/d' /tmp/uvd2-template.xml
sed -i s/uvd1/uvd2/ /tmp/uvd2-template.xml

srv1
virsh define /tmp/uvd2-template.xml

так как запустить ее надо на соседнем гипервизоре - копирую ее
scp ./uvd2.qcow2 192.9.30.202://home/vm/
scp /tmp/uvd2-template.xml 192.9.30.202:/root/


после чего запускаю на 
srv2
virsh define /root/uvd2-template.xml