субота, 21 січня 2012 р.

Чорний екран Ubuntu через KVM-перемикач: історичне налаштування Xorg

Під час роботи із серверами через апаратний KVM-перемикач у нашій конфігурації Ubuntu вибирала завелику роздільну здатність і частоту 100 Гц. KVM не показував зображення, а за відсутності мережевого доступу це ускладнювало керування сервером. Тут KVM означає перемикання клавіатури, відео та миші, а не технологію віртуалізації Linux.

Приклад конфігурації Xorg

У системі не було файла /etc/X11/xorg.conf. Для цього випадку ми створили його й задали параметри дисплея вручну. Нижче збережено приклад із первинної публікації:

Section "Monitor"
Identifier  "My Monitor"
HorizSync   31.5 - 50.0
VertRefresh 40-90
EndSection

Section "Screen"
Identifier    "Default Screen"
Monitor     "My Monitor"
DefaultDepth 24
Subsection "Display"
Depth       24
Modes "1024x768"
ViewPort 0 0
EndSubsection
EndSection

Частоти монітора та передавання DDC

Значення HorizSync та VertRefresh стосуються конкретної конфігурації й не є універсальними межами для будь-якого монітора. Їх потрібно брати з характеристик обладнання та враховувати можливості KVM. Перед змінами збережіть попередню конфігурацію й спосіб повернутися до робочого відеорежиму.

Відсутність xorg.conf сама по собі не є помилкою: Xorg підтримує автоматичне визначення обладнання. Його офіційна довідка окремо згадує KVM, які не передають інформацію DDC. Описаний приклад належить до історичного середовища Xorg і не переноситься безпосередньо на всі сучасні графічні сеанси.

Графічне віддалене адміністрування Ubuntu: x11vnc і віртуальні сеанси

Сервер Linux можна адмініструвати через текстовий термінал за SSH або через графічний сеанс. Для графічного доступу важливо спочатку визначити завдання: працювати з уже відкритим робочим столом чи створити окремий сеанс.

Дві програми, які я використовував

Для графічного адміністрування я використовував два серверні застосунки з різним призначенням:

  • x11vnc дає доступ до наявного X-дисплея. Це зручно, коли потрібно бачити той самий робочий стіл, що й локальний користувач.
  • vnc4server у описаній старій конфігурації використовувався для окремих віртуальних робочих столів. Такий сеанс не слід плутати з екраном фізичного монітора.

Як визначити потрібний дисплей

Позначення :0 часто відповідає першому локальному X-дисплею, проте номер сам по собі не гарантує, що це саме поточний монітор. Потрібно перевіряти, який X-сервер і сеанс обслуговує конкретний процес.

Нотатка стосується історичного налаштування Ubuntu з X11. Наявність пакета vnc4server та спосіб запуску залежать від випуску дистрибутива; опис не є універсальною інструкцією для Wayland. Призначення x11vnc пояснено в офіційному репозиторії проєкту.

Сканування шляхів phpMyAdmin: що показує журнал Nginx 2011 року

У нотатці, опублікованій у січні 2012 року, я навів серію підозрілих HTTP-запитів до нашого сервера. Самі записи датовано 30 серпня 2011 року. Усі вони звертаються до різних можливих каталогів phpMyAdmin та файла scripts/setup.php.

Фрагмент журналу

Нижче збережено всі 45 записів із початкової публікації. Вони охоплюють проміжок від 08:44:26 до 08:44:49 за вказаним у журналі часовим поясом +0300.

72.55.148.21 - - [30/Aug/2011:08:44:26 +0300] "GET //admdb/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:26 +0300] "GET //!mysql/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:27 +0300] "GET //phpma1/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:27 +0300] "GET //adminsql/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:27 +0300] "GET //madm/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:28 +0300] "GET //ladminadminl/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:29 +0300] "GET //myad/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:32 +0300] "GET //PmA/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:33 +0300] "GET //phpMyAdmin-2.11.5.1-all-languages/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:33 +0300] "GET //phpmyadmin_2.10/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:33 +0300] "GET //phpmyadmin2011/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:33 +0300] "GET //phpmyadmin211/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:37 +0300] "GET //phpMyAdmin211/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:37 +0300] "GET //pma2011/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:37 +0300] "GET //pma211/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:38 +0300] "GET //db2011/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:38 +0300] "GET //db211/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:38 +0300] "GET //dbadmin2011/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:41 +0300] "GET //php2011/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:42 +0300] "GET //php211/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:42 +0300] "GET //_sql/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:42 +0300] "GET //sql2011/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:43 +0300] "GET //sql211/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:43 +0300] "GET //phpadmin2011/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:43 +0300] "GET //phpadmin211/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:43 +0300] "GET //mysql2011/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:44 +0300] "GET //mysql211/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:44 +0300] "GET //phpM/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:44 +0300] "GET //phpMyAdmin.life/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:45 +0300] "GET //pma_2/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:45 +0300] "GET //phpMyAdmini/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:45 +0300] "GET //phpmysql/sql/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:45 +0300] "GET //pma_ai/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:46 +0300] "GET //mygoodadmin/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:46 +0300] "GET //wp-pma-mod/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:46 +0300] "GET //phpMyAdmin-old/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:47 +0300] "GET //phpma/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:47 +0300] "GET //madm/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:47 +0300] "GET //php_jibin/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:47 +0300] "GET //db_my/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:48 +0300] "GET //data_admin/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:48 +0300] "GET //phpMyAdmin-2.11.1/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:48 +0300] "GET //rootsql/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:48 +0300] "GET //rcsu_mydb/scripts/setup.php HTTP/1.1" 403 169 "-" "-"
72.55.148.21 - - [30/Aug/2011:08:44:49 +0300] "GET //phpMyAdmin-2.11.9.6/scripts/setup.php HTTP/1.1" 403 169 "-" "-"

Що можна встановити

Видно послідовні GET-запити з однієї записаної IP-адреси до багатьох варіантів шляху інсталяційного скрипта. Така послідовність схожа на автоматизований пошук доступного phpMyAdmin. Це висновок із наведеного фрагмента, а не встановлення особи чи намірів власника адреси.

В усіх записах сервер повернув 403. За HTTP-семантикою це відмова виконати запит. Вона не доводить ані існування конкретного файла, ані успішного доступу до нього. Поля журналу залежать від налаштованого формату access_log Nginx.

Чому «брутфорс» був неточною назвою

Початковий заголовок називав подію спробою злому брутфорсом. Однак у цьому фрагменті немає доказів перебору паролів: видно перебір URL. Також ці записи самі собою не підтверджують злам, виконання шкідливого коду чи відмову сервера.

Великий потік запитів може створювати навантаження, але для оцінки наслідків потрібні ширший журнал, частота запитів, час обробки та метрики ресурсів. З наведених 45 рядків не можна зробити висновок, що база даних або вебсервер припинили роботу.

Практичний висновок для адміністратора

Перевірте, які адміністративні й інсталяційні інтерфейси справді доступні з мережі та кому вони потрібні. Перегляньте суміжні записи, налаштування доступу й актуальність установлених компонентів. Історична IP-адреса не є підставою для висновків про її поточного користувача.

Команда phpMyAdmin радить стежити за оновленнями безпеки, використовувати HTTPS і обмежувати доступ до службових ресурсів. Реальний захист визначають налаштування сервера та застосунку; robots.txt не є механізмом авторизації.

Ammyy Admin: історичний досвід вибору засобу віддаленого доступу

Пошук зручного засобу віддаленого доступу

Під час пошуку зручного інструмента віддаленого адміністрування я випробував VNC, Radmin, CrossLoop, TeamViewer і передавання екрана через Skype. У моїх тодішніх умовах жоден варіант повністю не задовольняв потреб: відрізнялися мережеві налаштування, набір функцій, стабільність і умови використання.

У моїй роботі через Skype додатковою умовою була наявність самого Skype, а сеанси здавалися нестабільними. CrossLoop тоді не вистачало потрібних мені функцій порівняно з TeamViewer; у TeamViewer мене вже не влаштовували умови використання.

Що мені сподобалося в Ammyy Admin

Зрештою звернув увагу на Ammyy Admin. У початковій публікації я відзначав такі переваги:

  • підключення за ідентифікатором без публічної IP-адреси на кожному кінці;
  • прийнятну для моїх завдань роботу як у швидких, так і в повільних мережах;
  • передавання файлів;
  • простий інтерфейс і запуск невеликого виконуваного файла без звичайної процедури встановлення.

Мережеві умови підключення

Підключення через NAT, файловий менеджер і роботу без встановлення також описує розробник. Водночас працездатність залежить від мережі, політик доступу й конкретної версії програми; вислів «працює через будь-який брандмауер» був би надмірним узагальненням.

Для прямого VNC-з’єднання потрібен мережевий шлях до сервера, але це не означає обов’язкову публічну IP-адресу на кожному пристрої. Так само умови ліцензування TeamViewer не можна зводити до твердження «став платним» без уточнення редакції та виду використання.

Після підключення VPN зникає інтернет: перевірка шлюзу та маршрутів

Якщо після встановлення VPN-з’єднання перестають відкриватися зовнішні сайти, причиною може бути зміна маршруту за замовчуванням. Частина VPN-профілів спрямовує весь трафік через віддалену мережу, де вихід в інтернет має бути налаштований окремо.

Варіант для старого інтерфейсу Windows

У початковій нотатці допомогла така зміна: властивості VPN-з’єднання → «Мережа» → властивості TCP/IP → «Додатково» → зняти прапорець «Використовувати основний шлюз у віддаленій мережі» (Use default gateway on remote network).

Це один зі способів розділити маршрути: зовнішній трафік іде через локальне підключення, а потрібні корпоративні підмережі — через VPN. Для віддалених ресурсів необхідні відповідні маршрути; саме зняття прапорця не налаштовує їх автоматично. Назви й доступність пунктів залежать від версії Windows та VPN-клієнта.

Застосовуйте таку зміну лише для профілю, де дозволена роздільна маршрутизація. Якщо організація вимагає передавати весь трафік через VPN, адміністратор має перевірити вихід в інтернет на стороні віддаленої мережі. Також варто відрізняти проблему маршрутів від збою DNS — одна зміна шлюзу не усуває всі можливі причини.

Опис цього випадку та налаштування клієнта: Microsoft Learn, KB 317025.

Навантажувальне тестування K2 ERP: що перевірити до пікової зміни

Демонстраційна база швидко відкривається, презентація переконлива, а справжня перевірка починається перед відправленням машин: склад проводи...