Новости:

SMF - Just Installed!

Главное меню

Последние сообщения

#11
Узнать текущую версию из командной строки ESXi (предварительно нужно разрешить SSH доступ к хосту ESXi):

Код: bash
vmware -v

VMware ESXi 8.0.2 build-22380479
получить номер билда esxi

В нашем примере на хосте установлена версий ESXi 8.0 Update2.

Датe установки (обновления) образа ESXi можно узнать командой:

Код: bash
esxcli software vib list | grep 'Install\|esx-base'

esxcli дата обновления образа esxi

Вы можете получить обновлений для хоста VMware ESXi двумя способами:

Онлайн установка обновления на хосте ESXi
Сначала рассмотрим онлайн обновление ESXi. Подключить к консоли ESXi и проверьте версию используемого профиля.

Код: bash
esxcli software profile get

В нашем примере используется кастомный дистрибутив ESXi 8.0.2 от HPE (HPE-Custom-AddOn_802.0.0.11.5.0-6).

esxcli узнать текущий профиль образа esxi

Разрешите ESXi хосту доступ в Интернет, открыв правило в файероле:

Код: bash
esxcli network firewall ruleset set -e true -r httpClient

Выведите список доступных образов в VMware online depot:

Код: bash
esxcli software sources profile list --depot=https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml

спосок обновлений в online depot vmware esxi

В данном случае последняя доступный образа для нашей версии ESXi — ESXi-8.0U2b-23305546-standard.

Переведите хост в режим обслуживания:

Код: bash
esxcli system maintenanceMode set --enable=true
Запустите онлайн обновление вашего образа ESXi до указанного билда:

Код: bash
esxcli software profile update -p ESXi-8.0U2b-23305546-standard -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml

В моем случае появилось предупреждение:

Hardware precheck of profile ESXi-8.0U2b-23305546-standard failed with warnings: <CPU_SUPPORT OVERRIDEWARNING: The CPUs on this host are not supported by ESXi 8.0.2. You can override and force install, but it is not officially supported nor recommended. Please refer to KB 82794 for more details.
esxcli обновления ошибка hardware The CPUs on this host are not supported

В данном случае версия CPU на хосте не поддерживается в новом билде. Чтобы игнорировать это предупреждение, нужно добавить параметр —no-hardware-warning в предыдущую команду.

После окончания обновления образа ESXi появится сообщение:

The update completed successfully, but the system needs to be rebooted for the changes to be effective.
А также список установленных пакетов VIB.

Отключите HTTP доступ в интернет:

Код: bash
esxcli network firewall ruleset set -e false -r httpClient

Перезагрузите ESXi сервер:

Код: bash
Reboot

Отключите режим обслуживания:

Код: bash
esxcli system maintenanceMode set --enable=false

Проверьте, что версия ESXi была обновлена:

Код: bash
esxcli software profile get

образ esxi обновлен

Если онлайн обновление ESXi невозможно, или при обновлении из командной строки появляется ошибка Got no data from process: LANG=en_US.UTF-8, нужно выполнить офлайн установку обновления.
#12
Вот полный текст ошибки:
A general system error occurred: Download patch definitions task failed while syncing depots. Error: 'integrity.fault.MetadataDownloadFailure: Cannot download patch definition

Надоела она мне в какой-то момент, и я начал шерстить интернет. На оф сайте нашел:

Процесс сброса базы данных VMware Update Manager на VCSA 6.5, 6.7, 7.0 или 8.0:
Внимание: Сброс базы данных Update Manager является разрушительной задачей. Пользовательские базовые параметры (но не кластерные), пользовательские настройки загрузки и импортированные вручную исправления/ISO будут удалены, и их необходимо будет повторно установить после сброса.
Перед выполнением описанных ниже действий, пожалуйста, сделайте резервную копию или автономный снимок (в выключенном состоянии) серверного устройства vCenter. Если vCenter является частью настройки репликации в связанном режиме, пожалуйста, сделайте резервную копию/снимок всех реплицирующихся узлов.
Кроме того, пожалуйста, обратите внимание на все пользовательские настройки в диспетчере обновлений, такие как настройки прокси-сервера, сторонние URL-адреса для загрузки, настраиваемые базовые параметры и т.д., прежде чем продолжить.
 

 Подключитесь к серверу vCenter Server Appliance 6.5/6.7/7.0/8.0 через SSH с правами root
 Запустите команду shell, чтобы переключиться на оболочку BASH:

 
Код: bash
shell

 Остановите службу VMware Update Manager:

 
Код: bash
service-control --stop vmware-updatemgr

В зависимости от версии vCenter, выполните одну из следующих команд, чтобы сбросить базу данных VMware Update Manager:
 В vCenter Server Appliance 6.5:

Код: bash
/usr/lib/vmware-updatemgr/bin/updatemgr-util reset-db

 В vCenter Server Appliance 6.7/7.0/8.0:

Код: bash
python /usr/lib/vmware-updatemgr/bin/updatemgr-utility.py reset-db

 Выполните следующую команду, чтобы удалить содержимое хранилища исправлений VMware Update Manager:

Код: bash
rm -rf /storage/updatemgr/patch-store/*

 Запустите службу VMware Update Manager.:

Код: bash
service-control --start vmware-updatemgr

Примечание: Для просмотра изменений в среде может потребоваться выход из системы и повторный доступ к веб-клиенту vSphere.

Примечание: Для сред vSAN это также приведет к удалению базовых параметров vSAN по умолчанию. Эти базовые параметры создаются автоматически при изменении конфигурации vSAN, например, при добавлении/удалении хоста/диска или обновлении базы данных HCL. Кластер vSAN все еще можно обновлять без базовых параметров vSAN по умолчанию.
#13
VMWARE всё о виртуализации, тонкий тюнинг / Обновление VCSA
Последний ответ от George - Март 13, 2025, 12:24
Доброго дня, уважаемые подписчики и читатели. Решил обновить vcenter с 7 на 8 версию, пошарил по паутине, нашел, обновил, и зашел в appliance managment (https://ip_of_your_vcenter:5480) (этот адрес нам еще понадобится). Проверил обновления, попробовал установить.. (vcenter был отправлен через vpn, только скорость этого vpn 1 mbit) 2 дня висел мой vcenter на 22 % скачки и мне это надоело. Начал искать варианты offline обновления, нашел. Скачал и iso и depot.zip. Поиски в интернете подсказали варианты, и я, как обычно собрал их в правильном порядке, после пары дней попыток.
Первое. Установочный iso нужной версии нам не подходит от слова совсем. С него нельзя обновиться никак. Даже запустив install с него, падает в самом начале, говоря, что нельзя обновиться с 8 на 8 версию, эта установка только для обновления с 6.7 и 7 версии
Второе. Обновиться через web сервер мне не удалось, но, после того, как я скачал .iso обновления (да, для обновления свой .iso), и наконец попробовал с него - также получал ошибку (как таковой ошибки не было, просто первая команда тихо прекращала работать, а через ui не проходил pre-check по таймауту, также, как и при попытке обновления с web сервера). Помогла банальная перезагрузка

итак, нам надо залить .iso с обновлением на datastore (доступный для виртуалки с vcenter), далее в свойствах виртуального cd указываем datastore file и выбираем закачанный нами файл, ставил галочку connect.

подключаемся по ssh к vcenter, и набираем команду:

Код: bash
software-packages stage --iso --acceptEulas

без --acceptEulas начнет отображать соглашение, которое надо листать нажимая enter, и в конце, как было в одной из инструкций, набрать yes.
Дальше в интернете предлагается набрать

Код: bash
software-packages list --staged

типа покажет, что запланировало, но никакой нужной инфы там нет
И команда установки

Код: bash
software-packages install --staged

У меня пока еще идет установка) Результат напишу
#14
Командой interface print получаем список сетевых интерфейсов, чтобы убедиться что они определились в системе.
Код: bash
interface print
ЦитироватьFlags: D - dynamic, X - disabled, R - running, S - slave
# NAME TYPE MTU
0 R ether1 ether 1500

Активируем интерфейс
Код: bash
interface enable 0

Затем непосредственно вводим параметры IP конфигурации для каждого интерфейса. У нас имя интерфейса ether1
Вводим IP адрес, маску подсети и указываем имя интерфейса
Адрес сети и broadcast рассчитывается автоматически.


Код: bash
ip address add address=192.168.0.1/24 interface=ether1
Код: bash
ip address print
ЦитироватьFlags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK BROADCAST INTERFACE
0 192.168.0.1/24 192.168.0.0 192.168.0.255 ether1

Добавим шлюз по умолчанию
Код: bash
ip route add gateway=192.168.1.1
Тут нужно предположить что у нас два интерфейса на котором настроен адрес из подсети 192.168.1.1

Еще можно сразу настроить DNS
Код: bash
ip dns set primary-dns=192.168.1.1 secondary-dns=192.168.1.5
Код: bash
allow-remote-requests=yes


Еще хочу остановиться на том, что желательно сменить учетную запись admin на какую-то свою. Тем более это нужно сделать если у вас поднят SSH наружу.
Создадим нового пользователя
Код: bash
user add name=crash password=G@1NiW@ group=full
#15
Сетевое оборудование / Настройки DHCP-сервера на Mikr...
Последний ответ от George - Март 13, 2025, 12:21
Для настройки DHCP-сервера на MikroTik из командной строки можно использовать следующий пример:

Создать пул адресов, из которого будут раздаваться адреса в аренду. Для этого нужно ввести команду
Код: bash
/ip pool add name=dhcp-pool1 ranges=192.168.15.101-192.168.15.200
. 1
Создать DHCP-сервер. Для этого нужно ввести команду
Код: bash
/ip dhcp-server add address-pool=dhcp-pool1 disabled=no interface=ether1-LAN1 lease-time=3d name=dhcp-server1
. 1
Задать настройки, которые должен раздавать DHCP-сервер: шлюз, DNS и WINS-серверы. Для этого нужно ввести команду
Код: bash
/ip dhcp-server network add address=192.168.15.0/24 dns-server=192.168.15.10 gateway=192.168.15.1 netmask=24 wins-server=192.168.15.10
. 1
Перед использованием команд необходимо изменить адреса и названия интерфейсов на нужные. 2

Для проверки работоспособности DHCP-сервера нужно подключиться компьютером к заданному интерфейсу, выставить в его настройках получение IP-адреса с помощью DHCP-сервера и проверить, получены ли заданные настройки.
#16
mikroTik / Настройка VRRP MikroTik
Последний ответ от George - Март 25, 2024, 05:33
Я настраивал эту схему дня два, как обычно перекопав кучу интернета)) Оставлял открытыми вкладки с разными статьями, чтоб потом собрать рабочую инструкцию, поскольку обычно что-то все равно надо доделывать, или собирать из разных мест. Но я заболел, к инету не подходил и, в итоге, попробую объяснить на пальцах, просто сделав экспорт своей конфигурации..

У меня 2 интерфейса, на одном физическом, просто 1 в "native vlan" а второй тегированный

1. Создаем бриджи
Код: bash
/interface bridge
add arp=proxy-arp name=bridge-LAN port-cost-mode=short
add arp=proxy-arp name=bridge-vlan5

2. Назовем интерфейсы понятно
Код: bash
/interface ethernet
set [ find default-name=ether2 ] name=LAN
set [ find default-name=ether4 ] name=WAN

3. Собственно сами vrrp, на 2 разные подсети, одна из которых скрыта в 5 vlan, со скриптами, первый из которых (on backup) гасит WAN интерфейс и понижает приоритет vlan5 интерфейсу, при переходе в бэкап, чтобы и этот интерфейс перехватился вторым роутером, при проблемах с основным. On-master, т.е. при возвращении "главенствующей" роли, запускается скрипт, отдельный, который включает обратно WAN и отправляет письмо о смене главного роутера
Код: bash
/interface vrrp
add arp=proxy-arp interface=bridge-vlan5 name=vrrp-cloud priority=20 vrid=6
add interface=bridge-LAN name=vrrp10 on-backup=\
    "interface disable WAN\r\
    \ninterface vrrp set vrrp-cloud priority=10;" on-master="system script run\
    \_Send_vrrp;\r\
    \ninterface vrrp set vrrp-cloud priority=20;" priority=200

4. Настройка vlan
Код: bash
/interface vlan
add interface=bridge-LAN name=vlan5 vlan-id=5

5. Блокируем DHCP между мостами))
Код: bash
/interface bridge filter
add action=drop chain=forward dst-port=67-68 ip-protocol=udp mac-protocol=ip \
    out-bridge=bridge-vlan5
add action=drop chain=forward dst-port=67-68 ip-protocol=udp mac-protocol=ip \
    out-bridge=bridge-LAN

6. Оставшаяся часть настройки vlan
Код: bash
/interface bridge port
add bridge=bridge-LAN interface=LAN internal-path-cost=10 path-cost=10
add bridge=bridge-vlan5 interface=vlan5
/interface bridge vlan
add bridge=bridge-LAN untagged=LAN vlan-ids=1
add bridge=bridge-LAN tagged=LAN vlan-ids=5

Ну и скрипт Send_vrrp, который, как я уже говорил, включает WAN и отправляет письмо, в котором понятно, какой из микротов сейчас стал главный

Код: bash
/system script
add dont-require-permissions=no name=email_config owner=admin policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\
    export file=full_config show-sensitive\
    \n/tool e-mail send to=\"admin@yourdomain.com\" subject=\"\$[/system ide\
    ntity get name] export\" body=\"\$[/system clock get date] config file\" f\
    ile=full_config.rsc"
add dont-require-permissions=no name=Send_vrrp owner=admin policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\
    interface enable WAN;\
    \n#:delay 10s;\
    \n/tool e-mail send to=\"admin@yourdomain.com\" \\\
    \n subject=\"\$[/system identity get name] VRRP status \$[/system clock ge\
    t date] \$[/system clock get time]\" \\\
    \n body=\"\$[/system clock get date] VRRP status changed! Main system now \
    is \$[/system identity get name]\""

Это настройка первого роутера. В принципе, настройка второго отличается только тем, что у него другие параметры приоритета vrrp, вот скрипт для второго:

Код: bash
/interface vrrp
add arp=proxy-arp interface=bridge-vlan5 name=vrrp-cloud priority=11 vrid=6
add interface=bridge-LAN name=vrrp10 on-backup=\
    "interface disable WAN;\r\
    \ninterface vrrp set vrrp-cloud priority=11;" on-master="system script run\
    \_Send_vrrp;\r\
    \ninterface vrrp set vrrp-cloud priority=21;" priority=110
#17
mikroTik / Защита от DDOS MikroTik
Последний ответ от George - Март 25, 2024, 03:40
Добрый день, уважаемые читатели!
Собственно скрипт, копируем, вставляем в блокнот, сохраняем как ddos.rsc, закидываем через winbox и импортируем

Код: bash
/import file-name=ddos.rsc

Код: bash
/ip firewall address-list
add list=ddos-attackers
add list=ddos-target
/ip settings set tcp-syncookies=yes
/ip firewall filter
add chain=forward connection-state=new action=jump jump-target=detect-ddos
add action=return chain=detect-ddos dst-limit=32,32,src-and-dst-addresses/10s
add action=return chain=detect-ddos dst-limit=32,32,src-and-dst-addresses/10s protocol=tcp tcp-flags=syn,ack
add action=add-dst-to-address-list address-list=ddos-target address-list-timeout=10m chain=detect-ddos
add action=add-src-to-address-list address-list=ddos-attackers address-list-timeout=10m chain=detect-ddos
/ip firewall raw
add action=drop chain=prerouting dst-address-list=ddos-target src-address-list=ddos-attackers
1-3 создаем два списка адресов, в которые будут попадать спамеры и жертвы (ведь спам может быть направлен и не на вас, а на сторонний ресурс).

4 включаем кэш для отслеживания SYN-ACK пакетов.

5-10 правила определяющие кто и как часто пытается нас или через нас спамить кого-либо малыми пакетами. Если это не спам, то пакетик считается легитимным и продолжает обрабатываться в обычном режиме.

11-12 отдельная цепочка прероутинга, в которой спам начинает отбрасываться.
#18
Настройки *nix (почта, web, система etc) / fastpanel смена ip
Последний ответ от George - Март 14, 2024, 05:11


Есть такая панель управления как FastPanel, есть необходимость сменить основной или другие айпи сервера.

 

    это меняем в конфигах

Код: bash
egrep -rl "10.10.10.10" /etc/ | xargs -i sed -r -i 's/10.10.10.10/20.20.20.20/g' '{}'
2. далее нужно сменить в базе sqllite , но самое простое это с помощью встроенной утилиты:
Код: bash
mogwai change_ip --from=10.10.10.10 --to=20.20.20.20
проверяем конфиги и ребутим

#19
mikroTik / Синхронизация настроек mikroti...
Последний ответ от George - Март 12, 2024, 06:55
Постановка задачи

Есть два роутера mikrotik сконфигурированных в отказоустойчивой конфигурации при помощи VRRP. Необходимо синхронизировать конфигурацию Firewall с мастера на slave.
Решение

На мастере будет запускаться (через sheduler) скрипт, который будет делать экспорт конфигурации в файл и затем будет заливать его на slave по ftp.

На slave будет запускаться скрипт, который импортирует конфигурацию из залитого с мастера файла.

Для проверки синхронизации в разделе /ip firewall address-list будет создаваться фиктивный лист с названием sync_timestamp (в состоянии disabled). Во время экспорта в комментарий к указанному листу будет добавлена дата и время экспорта. Таким образом по этому листу можно сверять версии конфигурации.

Скрипт export_firewall_to_slave на мастере:

Код: bash
:local ftpuser "user"
:local ftppassword "password"
:local ftphost "192.168..."
:local config "master"

# set timestamp for monitoring
:if ( [:len [/ip firewall address-list find where list=sync_timestamp address="0.0.0.0"  disabled=yes]] = 0 )   do={
    /ip firewall address-list add  list=sync_timestamp address="0.0.0.0"  disabled=yes
}
:local date [/system clock get date]
:local time  [/system clock get time]
:local timestamp "$date_$time"
/ip firewall address-list set [/ip firewall address-list find where list=sync_timestamp  address="0.0.0.0"   disabled=yes] comment="timestamp: $timestamp"

#export config
/ip firewall
export file="$config"
/

# put config to slave
tool fetch address=$ftphost user=$ftpuser password=$ftppassword mode=ftp src-path=($config.".rsc") dst-path=($config.".rsc")  upload=yes;

Скрипт apply_master_config на slave:

Код: bash
:local config "master.rsc"

:if ([:len [/file find name=$config]] > 0) do={
  :put "Found config from master!"
  /ip firewall filter remove  [/ip firewall filter find dynamic=no]
  /ip firewall nat remove  [/ip firewall nat find dynamic=no]
  /ip firewall raw remove  [/ip firewall raw find dynamic=no]
  /ip firewall mangle remove  [/ip firewall mangle find dynamic=no]
  /ip firewall address-list remove  [/ip firewall address-list find dynamic=no]
  /ip firewall layer7-protocol remove [/ip firewall layer7-protocol find]
  /import $config
  /file remove $config
} else { :put "Config form master ($config) not found" }

На slave нужно создать пользователя с разрешением на ftp, и добавить скрипты в sheduler (на мастер можно раз в сутки, на slave раз в час).

Эта инструкция была найдена на просторах интернета
Ну и как обычно, скрипт приема пришлось дорабатывать. Я выложил уже доработанную версию, в оригинале не очищало 2 таблицы, и импорт падал с ошибкой параметр существует. При этом остальные правила оказывались удаленными
#20
mikroTik / От: Настройка Firewall Mikroti...
Последний ответ от George - Март 11, 2024, 01:05
Входим в редактирование FW
Код: bash
/ip firewall filter
Пакеты проходят по списку правил по порядку, сверху вниз. Если пакет соответствует какому-то правилу, то он прекращает движение по цепочке. Из этого следует важный вывод - первыми в цепочке должны быть правила, которые охватывают максимальный объем трафика, чтобы он дальше не обрабатывался устройством. Примером такого правила является разрешение пакетов уже установленных (established) или связанных (related) соединений, которые ранее были разрешены каким-то правилом. Повторно проверять по всем правилам их не нужно. Сделаем такое правило для цепочки input - входящие соединения роутера.
Код: bash
add action=accept chain=input comment="accept establish & related" connection-state=established,related
Отбрасываем все неверные (Invalid) пакеты
Код: bash
add action=drop chain=input comment="drop invalid" connection-state=invalid
Разрешаем ICMP (ping). У меня он обычно закрыт (drop)
Код: bash
add action=accept chain=input comment="accept ICMP" protocol=icmp
Создаем заключительное правило для цепочки input, которое будет блокировать все запросы, пришедшие не из локальной сети. В моем примере у меня локальная сеть подключена к бриджу bridge1-lan. В него входят все порты, подключенные в локалку.
Код: bash
add action=drop chain=input comment="drop all not from lan" in-interface=!bridge1-lan
На текущий момент мы запретили все запросы из вне к роутеру, кроме пингов. При этом доступ из локальной сети полный. Настроим теперь правила для транзитного трафика цепочки forward. Здесь по аналогии с input первыми идут правила для established, related, invalid пакетов.
Код: bash
add action=accept chain=forward comment="accept established,related" connection-state=established,related
Код: bash
add action=drop chain=forward comment="drop invalid" connection-state=invalid
Теперь запретим все запросы из внешней сети, связь с которой через интерфейс ether1-wan к локальной сети. dstnat это проброс портов, о нем отдельная тема.
Код: bash
add action=drop chain=forward comment="drop all from WAN to LAN" connection-nat-state=!dstnat connection-state=new in-interface=ether1-wan
Разрешаем 80 и 443 порты из локальной сети:
Код: bash
add action=accept chain=forward comment="accept http & https from LAN" dst-port=80,443 in-interface=bridge1-lan out-interface=ether1-wan protocol=tcp
И разрешаем 53 (DNS) порт
Код: bash
add action=accept chain=forward comment="accept dns from LAN" dst-port=53 in-interface=bridge1-lan out-interface=ether1-wan protocol=udp
Все остальное отбрасываем
Код: bash
add action=drop chain=forward comment="drop all from LAN to WAN" in-interface=bridge1-lan out-interface=ether1-wan
🡱 🡳

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