Удаление эксплоита с Ubiquiti устройств

Заметил однажды распространение вируса/эксплоита в сети с устройствами Ubiquiti. Эксплоит используя уязвимость в старых версиях прошивок копировал себя на другие устройства и с них же атаковал следующие.

Читать далее «Удаление эксплоита с Ubiquiti устройств»

Ограничение доступа к Ubiquiti по IP используя Firewall

Для теста возьму секторную антенну airMAX Rocket M5 в режиме бриджа и клиентскую airMAX NanoBeam M5 в режиме роутера.

Ограничим доступ сначала на клиентской.
Предположим что она подключена к секторной и имеет IP адрес 192.168.110.40 который смотрит в интернет (получен по DHCP).
IP администратора который должен иметь доступ к ней дистанционно — 10.10.10.5, остальным его необходимо заблокировать.

И так, зайдем в web интерфейс airMAX NanoBeam M5, откроем вкладку «NETWORK», напротив «Configuration Mode:» выберем «Advanced», после этого появится больше настроек.
Внизу где «Firewall» поставим галочку на «Enable».

Чуть ниже добавим правило, указав:
Target: DROP
Interface: WLAN0
IP Type: TCP
Source: 10.10.10.5 (IP с какого разрешено подключаться, а также обязательно поставим галочку перед ним под знаком восклицания)
Port: оставим пустым
Destination: 192.168.110.40 (IP антенны который смотрит наружу)
Port: 22 (это порт SSH, аналогично создаются другие правила для ограничения доступа к HTTP порт — TCP 80, HTTPS — TCP 443, Telnet — TCP 23, SNMP — UDP 161, Discovery — UDP 10001)

Как видим это правило блокирует все TCP соединения к порту 22 интерфейса WLAN0 на IP 192.168.110.40, а поставленная галочка на ! перед Source: 10.10.10.5 означает что блокируется все кроме этого IP.

Жмем «Add», потом «Change» внизу и вверху «Apply» чтобы применить изменения, после этого антенна перезапустится.

Чтобы ограничить доступ на секторной антенне которая настроена бриджом, добавим эти же правила, только где Interface: укажем ANY (ВСЕ).

Готово.

После добавления правил и подключения к устройству по SSH в конфигурации можно увидеть следующее:

ebtables.status=enabled
ebtables.1.status=enabled
ebtables.1.cmd=-A FIREWALL -p 0x0800 --ip-protocol 6 --ip-src ! 10.10.10.5/32 --ip-dst 192.168.110.40/32 --ip-dport 22 -j DROP
ebtables.1.comment=
ebtables.2.status=enabled
ebtables.2.cmd=-A FIREWALL -p 0x0800 --ip-protocol 6 --ip-src ! 10.10.10.5/32 --ip-dst 192.168.110.40/32 --ip-dport 80 -j DROP
ebtables.2.comment=
ebtables.3.status=enabled
ebtables.3.cmd=-A FIREWALL -p 0x0800 --ip-protocol 6 --ip-src ! 10.10.10.5/32 --ip-dst 192.168.110.40/32 --ip-dport 443 -j DROP
ebtables.3.comment=
ebtables.4.status=enabled
ebtables.4.cmd=-A FIREWALL -p 0x0800 --ip-protocol 17 --ip-src ! 10.10.10.5/32 --ip-dst 192.168.110.40/32 --ip-dport 161 -j DROP
ebtables.4.comment=

Смотрите также мою статью:
Управление оборудованием Ubiquiti по SSH

Директории с большим количеством файлов

Получилась однажды интересная ситуация, в одной директории оказались миллионы файлов.
Причем часть из них — нужные.

При попытке посмотреть список файлов естественно получится ступор на длительное время.
Как вариант их можно посмотреть через FTP, у которого за частую стандартный лимит на количество отображаемых файлов 10 000, например FTP клиентом FileZilla удобно перемещать файлы по директориям, но этот вариант длительный, из-за того что время еще тратится на FTP запросы, нагрузка на диск при этом низкая.

Если файлы не нужные, их можно удалить командой (с запросом подтверждения на удаление):

rm -r /dir/

Или удалить все без запроса вместе с директорией:

rm -rf /dir/

В моем случае не нужными были мелкие файлы, по этому перейдя в нужную директорию, удалил командой ниже все что меньше указанного размера:

cd /dir/
find -size -2 -type f -print -delete

Перед удалением можно посмотреть количество таких файлов и общее количество, однако это тоже длительные процесс:

find -maxdepth 1 -size -2 -type f -print | wc -l
find -maxdepth 1 -type f -print | wc -l

Если вместо -2 указать 0, то будут удаляться файлы с нулевым размером, то есть пустые.

Если нужно отсортировать файлы по директориям, перейдем в директорию с файлами, создадим нужные директории, например по датам и переместим файлы по шаблону (все у которых название начинается на 2017, -maxdepth 1 указывает что не нужно искать файлы в поддиректориях):

cd /dir/
mkdir 2017
find -maxdepth 1 -type f -name '2017*' -exec mv -vn -t /dir/2017 {} \+

Результат выполнения можно записывать в файл добавив к команде «> файл», например:

find -maxdepth 1 -type f -name '2017*' -exec mv -vn -t /dir/2017 {} \+ > /dir/dir/file.log

Обновление прошивки SJCAM SJ5000x Elite

На тесте обновлю прошивку камеры SJCAM SJ5000x Elite с версии 1.4.8 на 1.4.9.

Опишу по пунктам процедуру обновления:

Читать далее «Обновление прошивки SJCAM SJ5000x Elite»

Перенос работающей системы Ubuntu на другой диск

На тесте использую систему Ubuntu Server 14.04.5 LTS.

И так, на работающей системе переключимся на root пользователя:

Читать далее «Перенос работающей системы Ubuntu на другой диск»

Резервное копирование Linux в архив и восстановление из него

На тесте приведу пример примитивного копирования Ubuntu Server системы в архив и восстановление на той же системе либо на чистой новой.

Читать далее «Резервное копирование Linux в архив и восстановление из него»

Список SNMP OID для iLO4

Делал сегодня шаблон под Zabbix для мониторинга iLO 4 на сервере HP DL380p G8 и пришлось исследовать несколько OID.

Проверить OID из Linux можно командой:
snmpwalk 192.168.1.5 -c КОМЬЮНИТИ -v 2c OID

Приведу ниже список и описание для OID куллеров, процессоров, датчиков температуры, логических дисков (RAID), жестких дисков, сетевого контроллера iLO, оперативной памяти.

Fans:
.1.3.6.1.4.1.232.6.2.6.7.1.2.0 (Fan Index)
.1.3.6.1.4.1.232.6.2.6.7.1.3.0 (Fan Locale (1=other, 2=unknown, 3=system, 4=systemBoard, 5=ioBoard, 6=cpu, 7=memory, 8=storage, 9=removable media, 10=power supply, 11=ambent, 12=chassis, 13=bridge card, 14=management board, 15=backplane, 16=network slot, 17=blade slot, 18=virtual)
.1.3.6.1.4.1.232.6.2.6.7.1.4.0 (Fan Present (1=other, 2=absent, 3=present)
.1.3.6.1.4.1.232.6.2.6.7.1.5.0 (Fan Present (1=other, 2=tachOutput, 3=spinDetect)
.1.3.6.1.4.1.232.6.2.6.7.1.6.0 (Fan Speed (1=other, 2=normal, 3=high)
.1.3.6.1.4.1.232.6.2.6.7.1.9.0 (Fan Condition (1=other, 2=ok, 3=degraded, 4=failed)

Temperature:
.1.3.6.1.4.1.232.6.2.6.8.1.2.0 (Temperature Sensor Index)
.1.3.6.1.4.1.232.6.2.6.8.1.3.0 (Temperature Sensor Locale (1=other, 2=unknown, 3=system, 4=systemBoard, 5=ioBoard, 6=cpu, 7=memory, 8=storage, 9=removable media, 10=power supply, 11=ambent, 12=chassis, 13=bridge card)
.1.3.6.1.4.1.232.6.2.6.8.1.7.0 (Threshold Type (1=other, 5=blowout, 9=caution, 15=critical, 16=noreaction)
.1.3.6.1.4.1.232.6.2.6.8.1.4.0 (Temperature Celsius)
.1.3.6.1.4.1.232.6.2.6.8.1.5.0 (TemperatureThreshold)
.1.3.6.1.4.1.232.6.2.6.8.1.6.0 (TemperatureCondition)

CPU:
.1.3.6.1.4.1.232.1.2.2.1.1.1 (CPU Index)
.1.3.6.1.4.1.232.1.2.2.1.1.3 (CPU Name)
.1.3.6.1.4.1.232.1.2.2.1.1.4 (CPU Speed in MHz)
.1.3.6.1.4.1.232.1.2.2.1.1.5 (CPU Step)
.1.3.6.1.4.1.232.1.2.2.1.1.6 (CPU status (1=unknown, 2=ok, 3=degraded, 4=failed, 5=disabled)
.1.3.6.1.4.1.232.1.2.2.1.1.15 (Number of enabled CPU cores)
.1.3.6.1.4.1.232.1.2.2.1.1.25 (Number of available CPU threads)
.1.3.6.1.4.1.232.1.2.2.1.1.26 (CPU power status (1=unknown, 2=Low Powered, 3=Normal Powered, 4=High Powered)

Logical Drives:
.1.3.6.1.4.1.232.3.2.3.1.1.2.0 (Logical Drive Index)
.1.3.6.1.4.1.232.3.2.3.1.1.1.0 (Logical Drive Controller)
.1.3.6.1.4.1.232.3.2.3.1.1.3.0 (Logical Drive Fault Tolerance (1=other, 2=none, 3=RAID 1/RAID 1+0 (Mirroring), 4=RAID 4 (Data Guard), 5=RAID 5 (Distributed Data Guard), 7=RAID 6 (Advanced Data Guarding), 8=RAID 50, 9=RAID 60, 10=RAID 1 ADM (Advanced Data Mirroring), 11=RAID 10 ADM (Advanced Data Mirroring with Striping))
.1.3.6.1.4.1.232.3.2.3.1.1.9.0 (Logical Drive Size in Mb)
.1.3.6.1.4.1.232.3.2.3.1.1.4.0 (Logical Drive Status (1=other, 2=ok, 3=Failed, 4=Unconfigured, 5=Recovering, 6=Ready Rebuild, 7=Rebuilding, 8=Wrong Drive, 9=Bad Connect, 10=Overheating, 11=Shutdown, 12=Expanding, 13=Not Available, 14=Queued For Expansion, 15=Multi-path Access Degraded, 16=Erasing, 17=Predictive Spare Rebuild Ready, 18=Rapid Parity Initialization In Progress, 19=Rapid Parity Initialization Pending, 20=No Access — Encrypted with No Controller Key, 21=Unencrypted to Encrypted Transformation in Progress, 22=New Logical Drive Key Rekey in Progress, 23=No Access — Encrypted with Controller Encryption Not Enabled, 24=Unencrypted To Encrypted Transformation Not Started, 25=New Logical Drive Key Rekey Request Received)
.1.3.6.1.4.1.232.3.2.3.1.1.11.0 (Logical Drive Condition (1=other, 2=ok, 3=degraded, 4=failed)

Drives:
.1.3.6.1.4.1.232.3.2.5.1.1.2.0 (Drive Index)
.1.3.6.1.4.1.232.3.2.5.1.1.5.0 (Drive Bay)
.1.3.6.1.4.1.232.3.2.5.1.1.64.0 (Drive Location)
.1.3.6.1.4.1.232.3.2.5.1.1.3.0 (Drive Vendor)
.1.3.6.1.4.1.232.3.2.5.1.1.51.0 (Drive Serial Number)
.1.3.6.1.4.1.232.3.2.5.1.1.45.0 (Drive Size in Mb)
.1.3.6.1.4.1.232.3.2.5.1.1.65.0 (Drive Link Rate (1=other, 2=1.5Gbps, 3=3.0Gbps, 4=6.0Gbps, 5=12.0Gbps))
.1.3.6.1.4.1.232.3.2.5.1.1.70.0 (Drive Current Temperature)
.1.3.6.1.4.1.232.3.2.5.1.1.71.0 (Drive Temperature Threshold)
.1.3.6.1.4.1.232.3.2.5.1.1.72.0 (Drive Maximum Temperature)
.1.3.6.1.4.1.232.3.2.5.1.1.6.0 (Drive Status (1=Other, 2=Ok, 3=Failed, 4=Predictive Failure, 5=Erasing, 6=Erase Done, 7=Erase Queued, 8=SSD Wear Out, 9=Not Authenticated)
.1.3.6.1.4.1.232.3.2.5.1.1.37.0 (Drive Condition (1=other, 2=ok, 3=degraded, 4=failed)
.1.3.6.1.4.1.232.3.2.5.1.1.9.0 (Drive Reference Time in hours)

iLO NIC:
.1.3.6.1.4.1.232.9.2.5.2.1.1 (iLO location)
.1.3.6.1.4.1.232.9.2.5.1.1.2 (iLO NIC model)
.1.3.6.1.4.1.232.9.2.5.1.1.4 (iLO NIC MAC)
.1.3.6.1.4.1.232.9.2.5.1.1.5 (iLO NIC IPv4)
.1.3.6.1.4.1.232.9.2.5.1.1.9 (iLO NIC speed)
.1.3.6.1.4.1.232.9.2.5.1.1.14 (iLO NIC FQDN)
.1.3.6.1.4.1.232.9.2.5.2.1.2 (Tx bytes)
.1.3.6.1.4.1.232.9.2.5.2.1.3 (Tx packets)
.1.3.6.1.4.1.232.9.2.5.2.1.6 (Tx discard packets)
.1.3.6.1.4.1.232.9.2.5.2.1.7 (Tx error packets)
.1.3.6.1.4.1.232.9.2.5.2.1.9 (Rx bytes)
.1.3.6.1.4.1.232.9.2.5.2.1.10 (Rx packets)
.1.3.6.1.4.1.232.9.2.5.2.1.13 (Rx discard packets)
.1.3.6.1.4.1.232.9.2.5.2.1.14 (Rx error packets)
.1.3.6.1.4.1.232.9.2.5.2.1.15 (Rx unknown packets)

Memory:
.1.3.6.1.4.1.232.6.2.14.13.1.1 (Memory Index)
.1.3.6.1.4.1.232.6.2.14.13.1.13 (Location)
.1.3.6.1.4.1.232.6.2.14.13.1.9 (Manufacturer)
.1.3.6.1.4.1.232.6.2.14.13.1.10 (Part Number)
.1.3.6.1.4.1.232.6.2.14.13.1.6 (Size in Kbytes)
.1.3.6.1.4.1.232.6.2.14.13.1.8 (Memory Technology)
.1.3.6.1.4.1.232.6.2.14.13.1.7 (Memory Type)
.1.3.6.1.4.1.232.6.2.14.13.1.19 (Memory status (1=other, 2=notPresent, 3=present, 4=good, 5=add, 6=upgrade, 7=missing, 8=doesNotMatch, 9=notSupported, 10=badConfig, 11=degraded, 12=spare, 13=partial)
.1.3.6.1.4.1.232.6.2.14.13.1.20 (Memory condition (1=other, 2=ok, 3=degraded, 4=degradedModuleIndexUnknown)

Обновление прошивки iLO 4 на HP серверах

На тесте обновлю iLO4 на сервере HP ProLiant DL380p G8 с iLO версией 1.13 (Nov 08 2012), а также на нескольких других серверах, ProLiant DL360p Gen8, ProLiant DL320e Gen8 v2 и т.д..
Для обновления iLO, нет необходимости перезагружать сервер.

Читать далее «Обновление прошивки iLO 4 на HP серверах»

Изоляция портов на коммутаторе ZyXEL MES-3528

На тесте изолирую порты друг от друга, разрешив хождение трафика только на uplink (порт с которого приходит интернет), у меня он 25.

Подключимся к коммутатору и посмотрим текущую конфигурацию:

show running-config

Перейдем в режим конфигурирования:

configure

Изолируем необходимые порты, кроме uplink порта:

interface port-channel 1-24,26-28
vlan1q port-isolation
exit
exit

Сохраним конфигурацию:

write memory

Порты на которых прописана команда vlan1q port-isolation не видят другие порты с этой же командой, но видят порты без неё и CPU коммутатора. Порты без команды vlan1q port-isolation видят порты с ней и без неё.

Смотрите также:
Изоляция портов на коммутаторах Huawei
Настройка Protected Ports на Cisco

Решение ошибки 1918 при установке MySQL ODBC Driver

Обнаружил однажды при установке MySQL ODBC Driver 5.3.7 следующую ошибку:

Читать далее «Решение ошибки 1918 при установке MySQL ODBC Driver»