Ответы пользователя по тегу Системное администрирование
  • Как настроить web rdp?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Guacamole
    https://guacamole.apache.org/
    Более активно развивается, разворачивается на Linux или Docker.
    Документация: https://guacamole.apache.org/doc/gug/

    Myrtille
    https://cedrozor.github.io/myrtille/
    Сейчас мало развивается, разворачивается на Windows и IIS.
    Документация: https://github.com/cedrozor/myrtille/blob/master/D...

    Оба являются веб-шлюзом для RDP и SSH. Не важно, на какой платформе он будет развёрнут, пользователи смогут подключаться через него к RDP-серверам, используя только браузер.
    Ответ написан
  • Что использовать для установки IRC сервера?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    UnrealIRCd (очень распространён, стабилен)
    или InspIRCd (больше встроенных фич вне спецификации, активнее разработка)

    Поддержка NickServ и ChanServ появится с подключением Anope.
    Ответ написан
  • Проблема с SSL, фаерфокс периодически выдает SSL_ERROR_ILLEGAL_PARAMETER_ALERT. Что делать?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Вы не указали адрес сайта, а ошибка довольно расплывчата, поэтому здесь можно только гадать.

    Если хотите проверить самостоятельно:
    ssllabs.com
    Покажет проблемы с настройками Вашего веб-сервера в контексте SSL и HTTPS.

    UPD:
    Браузер может испытывать проблемы с загрузкой страницы из-за неправильных/небезопасных параметров ssl_ciphers.

    server {
        listen 80 default_server;
        listen [::]:80 default_server;
    
        # Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
        return 301 https://$host$request_uri;
    }
    
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
    
        # certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
        ssl_certificate /path/to/signed_cert_plus_intermediates;
        ssl_certificate_key /path/to/private_key;
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50m;
        ssl_session_tickets off;
    
        # Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
        ssl_dhparam /path/to/dhparam.pem;
    
        # intermediate configuration. tweak to your needs.
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
        ssl_prefer_server_ciphers on;
    
        # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
        add_header Strict-Transport-Security max-age=15768000;
    
        # OCSP Stapling ---
        # fetch OCSP records from URL in ssl_certificate and cache them
        ssl_stapling on;
        ssl_stapling_verify on;
    
        ## verify chain of trust of OCSP response using Root CA and Intermediate certs
        ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
    
        resolver <IP DNS resolver>;
    
        ....
    }


    Сгенерирован этим инструментом по best practice от Mozilla по настройке SSL на nginx: https://mozilla.github.io/server-side-tls/ssl-conf...
    https://wiki.mozilla.org/Security/Server_Side_TLS
    (выбран Intermediate, отличается от Modern набором поддерживаемых браузеров на случай, если нужна совсем уж далёкая совместимость со старыми многолетними браузерами)

    Только поменяйте путь до ssl_dhparam /path/to/dhparam.pem;, предварительно сгенерировав его вот так:
    openssl dhparam -out /etc/ssl/dhparams.pem 2048

    Хотя, на самом деле, я не смог воспроизвести у себя в FF ошибку загрузки страницы.
    Но соблюсти эти практики всё-равно нужно.
    Ответ написан
  • Насколько оправданно держать OpenVZ контейнеры на одинаковом шаблоне ОС?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Чем больше RAM потребляют одинаковые процессы (включая системные) между контейнерами и чем больше таких контейнеров, тем выше будет плотность.

    Если говорить о чистом OpenVZ, без Virtuozzo, то технология называется KSM (Kernel samepage merging). Доступа в ядре с версии 2.6.32. По умолчанию выключена.
    Её можно использовать не только для OpenVZ.

    Включить на гипервизоре можно через:
    echo 1 > /sys/kernel/mm/ksm/run

    Посмотреть эффективность:
    cat /sys/kernel/mm/KSM/pages_sharing

    Документация в контексте OpenVZ:
    https://wiki.openvz.org/KSM_(kernel_same-page_merging)
    Ответ написан
  • Как вынести большую таблицу из базы и сделать её общей?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Если самоцель такого выноса - прекратить влияние дампов на доступность чтения с БД, то, при условии, что ваши таблицы в InnoDB и у вас включён binlog, вы можете снимать копии БД с помощью xtrabackup (innobackupex), не останавливая службу и не прерывая доступ к таблицам.
    Изменения, произошедшие с момента старта бекапа, "доедут" из бинлога на завершении процесса.
    Снимать копии можно как на тот же сервер, так и стримить их (без использования локального диска) на другой.

    Если таблицы в MyISAM, можно настроить SLAVE-сервер и снимать дампы с него, не влияя на доступность основного.

    Это практика.

    Правда из контекста не совсем ясно - это некие регулярные дампы данных для резервирования, или это ручные дампы для разработчиков, которые они могут спонтанно снять в любое время через phpmyadmin?
    Если второе, то это не исправить изменением архитектуры. Для чего dev'ы дампят базу с логами? Почему они не могут задампить только нужные мелковесящие таблицы, или даже ограничиться их структурой, чтобы не задевать другие таблицы?
    Если для разработки необходим весь снэпшот базы, я бы сделал его снятие регулярным с xtrabackup и публиковал разработчикам для скачивания по сети из одного конкретного места, чтобы никто больше не подключался к продакшену и не делал никаких дампов с продакшена.
    Ответ написан
  • Что дает такая разница в подходах к адресации поддоменов?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Предположу причины, почему Яндекс делает catch-all:
    • Это универсальная заглушка на уже неиспользуемые исторические субдомены или отменённые продукты/проекты, к которым не было создано редиректов.
    • Это способ не терять трафик даже в случае чьей-либо ошибки в написании адреса или некорректном URL на форуме/чате/медиа.
    • Это ещё один источник сбора футпринтов (улучшать таргетинг для Яндекс.Директа) для каждого зашедшего на ресурсы Яндекса, даже если URL устарел и более не используется.
    • Это позволяет привлечь фидбэк пользователей для решения отдельных ошибок 404, когда URL оказался недоступен непреднамеренно. Пользователь может нажать "сообщите нам, если ошибка появилась по нашей вине", т.е. даже в случае, если мониторинг Яндекса это прошляпил, о проблеме смогут сказать пользователи.
    • Это продвижение других сервисов Яндекса, которые могут заинтересовать зашедшего даже не смотря на то, что он ничего не нашёл по этому URL.
    • Это возможность перехватить дальнейший сёрфинг пользователя. Он продолжит его через поиск Яндекса.
    • Это возможность промониторить, как часто заходили на конкретный несуществующий поддомен, чтобы понять спрос к какому-либо продукту или какой-либо медийный бум, связанный с Яндексом, но с использованием неправильного URL.
    • Это возможность отслеживать, как часто пользователи заходят на legacy-поддомены, и к каким из них есть смысл создавать форварды на другие продукты.


    Почему так не делает Google, я не знаю.
    Ответ написан
  • Как в HAProxy указать чтобы он использовал все процессоры?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Использовать "все" процессоры самостоятельно он не может.

    Можно автоматизировать определение кол-ва процессоров и их внесение в конфиг HAproxy с последующим рестартом службы в систему управления конфигурациями, вроде SaltStack или Ansible. Если при очередном state.highstate (в случае SaltStack) агент увидит, что кол-во процессоров изменилось, он внесёт правку в конфиг и перезапустит службу.

    Можно сделать процесс скейлинга частью процесса SaltStack (он умеет управлять AWS, если речь о нём; хотя его умеют и другие решения), и в момент скейлинга переопределять кол-во процессоров в конфиге.
    Ответ написан
  • Как в консоли (CMD) узнать, было ли инициировано завершение работы системы?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Простого API для получения такой информации не существует.

    -- Можно узнать, что в системе запущен отложенный shutdown/restart:
    EventLog ID 1074 (STATUS_SHUTDOWN_CLEAN) - событие о плановом рестарте (включая отложенные)
    EventLog ID 1074 (WARNING_ISSE_SHUTDOWN_CANCELLED) - событие об отмене рестарта (включая отложенные)

    Откладывание рестарта через shutdown /t время вызывает процесс wlmdr.exe, который рисует бабл про "Ваш сеанс работы будет прекращен. Работа Windows будет завершена через 111 мин".

    Наличие свежего EventLog по ID 1074 и наличие wlmdr.exe в процессах может указывать на запланированный shutdown/restart. На этих двух условиях можно построить триггер.

    -- Можно узнать, что именно будет запущено:
    EventLog ID 1074 содержит строчку "Тип выключения" (Shutdown Type), в которой будет "Перезапустить" или "Выключение питания" (на англ.: reboot или shutdown).

    -- Низкоуровневый способ узнать и состояние и время:
    Можно проверять состояние "ShutdownInProgress" и "ShutdownTime" отладчиком, подключившись к winlogon.exe.

    https://blogs.msdn.microsoft.com/ntdebugging/2007/...

    Конечно это значительно более тяжёлый путь, который не очень подходит для массового выполнения заббиксом на рабочих станциях сотрудников.
    Ответ написан
  • Что делать, если Memcached уходит в своп?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Что делать, если Memcached уходит в своп?

    • Снизить swapiness.
    • Отключить swap.


    Предсказуемо управлять тем, когда приложение уйдёт в своп, невозможно, поэтому на серверах, где такое нежелательно, своп проще выключить. Разумеется планируя и мониторя RAM других приложений, чтобы они не крэшились.
    Ответ написан
  • Превенция наблюдения за компьютером в домене?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Возможно в сети вашего предприятия есть проблемы с безопасностью (некомпетентность или ошибка при настройке прав доступа), из-за которой возможностью несанкционированного подключения к другим сотрудникам располагает не только IT-отдел.
    Ответ написан
  • Какие перспективы развития у системного администратора с приходом обачных технологий?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Ничего не изменилось.
    Всё зависит от задач компании.

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