ServerAdmin.ru
28.9K subscribers
303 photos
35 videos
13 files
2.63K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
Давно уже вынашивал идею сделать какой-нибудь интерактив с вами, моими дорогими читателями. А то я всё пишу, да пишу. На днях пришла идея иногда публиковать интересные и полезные вопросы от вас. Я их постоянно получаю в личку, но чаще всего не отвечаю и даже не читаю, так как нет времени. Мне пишут каждый день незнакомые люди. Погружаться в их тексты нет возможности.

Другое дело, если человек подумает, сформулирует и предложит интересный вопрос, ответ на который может быть полезен не только ему. На такие вопросы я готов потратить своё время, задать дополнительные вопросы и подготовить к публикации, чтобы опытные люди, коих среди читателей много, что-то посоветовали. Это будет полезно не только задающему.

Планирую по 1-2 вопросу в неделю публиковать, если таковые будут. Для отправки вопроса сделал отдельного бота - @srv_admin_vopros_bot При запуске бота будут несколько примеров хороших вопросов, на структуру которых стоит ориентироваться при отправке своего вопроса. Там же есть примеры плохих вопросов, которые точно не будут опубликованы.

Надеюсь, эта идея окажется продуктивной и полезной. Посмотрим. Если наберётся некоторое количество вопросов и содержательных ответов с обсуждениями, то буду оформлять их в отдельные статьи на сайте.

#вопрос_читателя
Стартуем рубрику с вашими вопросами. Начну с одного из первых вопросов. Он короткий, звучит просто и предельно понятно. Ответа лично я не знаю. И даже идей нет, как это сделать, так как не занимался подобным. Но мне показалось, что полезно узнать рабочее решение, если кто-то поделится реализацией.

Задача: настроить теневое копирование рабочих файлов пользователей, которые они хранят локально, на бекап-сервер. Какие могут быть решения с минимумом костылей?

Я единственное, что подумал. А стоит ли вообще решать подобную задачу в лоб? Может лучше воспользоваться каким-то готовым софтом для этого дела?

#вопрос_читателя
Публикую очередной вопрос от читателя, который мне показался интересным, в том числе и мне самому, так как хорошей реализации я не знаю. Текст вопроса я переписал сам, чтобы он был покороче.

Есть на обслуживании около 300 Linux серверов с разными ОС. Встал вопрос о регулярном обновлении этих серверов, с автоматизацией и мониторингом всего процесса. То есть нужно централизованно следить за появлением уязвимостей и так же централизованно их закрывать установкой обновлений в автоматическом или полуавтоматическом режиме.

Опыта работы с подобными решениями нет, поэтому ищется подходящий вариант. Пока смотрели на ManageEngine Vulnerability Manager Plus, Qualys VMDR и Syxsense Secure& Manage, но как-то адекватно оценить их пользу по маркетинговым видосикам сложно.

Хочется получить решение которое позволяет не только отсканировать на недостающие патчи и ошибки в конфигурации, но и позволяет устранять с четким пониманием где?, как?, когда? с каким-то планом отката на случай поломки с принятием рисков по каким-то серверам и нормальным репортингом.

Хотелось бы получить совет на что стоит обратить внимание. Возможно у Вас был опыт в решении подобной задачи.

Я сам не знаю, как красиво и удобно решать подобную задачу. Мне тоже интересно было бы узнать, как всё это делается. Я пробовал прикручивать систему поиска уязвимостей на серверах через Zabbix. Было какое-то решение в виде не то патча, не то отдельного модуля. Он собирал список пакетов с серверов и проверял его по бесплатной публичной базе уязвимостей. Если находил совпадения, присылал алерт. Это даже работало, но в итоге я забросил такое решение, так как привязка к этому модулю не давала спокойно обновляться на новые версии Zabbix Server, так как всё ломалось.

#вопрос_читателя
​​ Продолжаю рубрику с вопросами от читателей, которые поступают регулярно, но большая часть из них не подходит для публикации, так как содержит просьбу разобрать какую-то частную проблему по настройке чего-либо, что актуально только для задающего, но не остальной аудитории. Большинству я даже ответить не могу, так как у них скрыты аккаунты и из сообщения в боте я не могу выяснить, кому писать ответ. Нет контакта для обратной связи.

Добрый день. Столкнулся с проблемой передачи паролей от уч. записей домена удаленным пользователям, а именно идентификация пользователя. С сотрудниками, работающими в головном офисе все просто: показали паспорт - получили пароль от своей уч. записи. С пользователями, находящимися в других регионах все сложнее. Может кто-то внедрял систему идентификации удалённых пользователей и передачи им паролей или еще как-то решали данную проблему? Передавать пароль по открытым каналам связи не хочется, товарищ майор слушает. Спасибо, коллеги.

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

Задать свой вопрос к аудитории можно через бота - @srv_admin_vopros_bot

#вопрос_читателя #security
Вчера поступил интересный вопрос, который я решил опубликовать, предложить своё решение и спросить, как поступаете вы в такой ситуации. Тема актуальная для администрирования, особенно сейчас, когда все по удалёнкам чалятся.

Добрый день. Такой вопрос: как лучше всего организовать доступ к конфигурации различных устройств в сети, с разным типом конфигурации: http, ssh, telnet и прочее? Несколько админов, разный уровень доступа, необходимо ввести аудит (кто, когда, что), недоступность конфигурации пользователям. Просто кинуть админки в vlan не подходит, админы перемещаются, плюс некоторые на удалёнке. Виртуальная машина с доступом пока кажется самым логичным, но может ещё что то есть?
Как лучше всего безопасно организовать доступ в админку либо cli для пары десятков активных устройств нескольким (до 10) админам с разными правами?

Подобную задачу можно решить либо с помощью банального jump host, но нужно будет продумать все ограничения и запреты. Если протоколов много, то может быть сложно, либо вообще что-то не получится реализовать.

Второй способ, использовать готовое приложение для этого. Как вариант: Apache Guacamole или Trasa. Единственное, тут http протокол идёт мимо, так как предложенные мной решения, если не ошибаюсь, с ним не работают. Но для него можно отдельно какую-то прокси сделать, например на nginx (proxy_pass), со своей авторизацией или подцепить весь предложенный софт к AD.

А как вы бы решали подобную задачу?
Задать свой вопрос - @srv_admin_vopros_bot

#вопрос_читателя #security
Ко мне поступил вопрос от читателя, который я решил опубликовать, так как тема, как мне кажется, важная и полезная для многих IT трудяг.

Вопрос (орфография автора):

Здравствуйте уважаемые. 
Прошу помощи советами, как определить дальнейшее развитие в сфере администрирования. 

Мне 31, работаю 6 лет в хорошей компании в МСК. 
В мои обязанности входит в основном it саппорт юзеров (я в единственном лице), немного администрирую winSRV для 1с, простую сеть на оборудовании юнифай, ростелекомосвкую облачную атс. В общем я менеджер - эникей. Не могу сказать что у меня глубокие какие-то знания по технологиям. Немного знаю сети, английский хуже среднего, но тех доки с переводчиком могу читать. 

Очень устал от такой рутины, не знаю куда дальше развиваться. Самые сильные мои скилы - общение с людьми, организационная деятельность, взаимодействие и контроль с подрядчиками. 

Прошу дать советы куда развиваться ? какие навыки прокачать ? Может дальше углубляться в администрирование ? Или девопс, или тестировщиком ? Как лучше курсы проходить ? 

Полная каша в голове, ведь it cфера просто огромная.

Как мне показалось, ситуация типовая и я много встречал людей в подобной ситуации. Что посоветовал бы лично я:

1️⃣ Определиться, хочется ли реально развиваться дальше, расти, чего-то достигать. С учётом того, что уже 31 год, а развития даже в обычного сисадмина нет, мне кажется, что реального желания трудиться и развиваться нет. Возможно просто надоело текущее место работы, так как есть раздражители. Можно попробовать сменить место работы на более комфортное. Я знаю людей, которые очень долго работают в похожей ситуации и их всё устраивает. На работе есть свободное время, где-то подрабатывают на тех же простых задачах типа удалённой настройки и поддержки 1С на Win серверах и т.д. Суммарных доход выходит в среднем по больнице для обычного админа.

2️⃣ Если же реально хочется ударно потрудиться хотя бы год-два, существенно повысить скилы и получить другую должность и место работы, то с учётом вводных (общение с людьми, организационная деятельность, взаимодействие и контроль с подрядчиками) я бы двигался в сторону DevOps. Там как раз всё это нужно, а если организаторская деятельность реально на уровне, то можно двигаться выше в сторону тимлида девопсов или техдира.

3️⃣ По поводу курсов я бы не стал советовать что-то конкретное на начальном этапе. Сначала надо прощупать почву и понять, хочется ли реально всем этим заниматься. Первое и основное - изучать Linux. Материалов в сети огромное количество, от базы и далее. За основу можно взять плейлисты Кирилла Семаева - LPIC, Мануалы. Там база по Linux, которая не поменялась с момента записи этих видео. Если будет интерес и желание изучать всё это, то дальше можно будет подбирать курсы. Из того, что мне кажется максимально эффективным - курсы Rebrain, Слёрм. Стоят хороших денег, но экономят время. Если нет денег, но есть время, можно обойтись без них. Если наоборот, то можно покупать и учиться.

Если рассказать о себе, то я как раз примерно в это время (31-32 года, не помню точно) уволился с насиженного места, где проработал где-то те же 6-7 лет и круто изменил свою деятельность, да и жизнь. Тоже очень задолбала рутина и отсутствие перспектив. Так что всё реально. Главное:
a) найти себя и понять, что нравится, поставить цель
б) упорно трудиться изо дня в день, двигаться к цели

Лучше сделать и пожалеть, чем не сделать. Задолбавшая рутина никуда не уйдёт и будет долбить на психику всё сильнее и сильнее. Нужно что-то менять.

#вопрос_читателя
Ко мне поступил любопытный вопрос, который описывает типовую ситуацию для сисадмина небольшой компании с несколькими филиалами. Я решил сам на него ответить и вынести в обсуждение. Думаю, эта информация будет полезна многим сисадминам с похожими задачами.

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

Здравствуйте, коллеги. Устроился в новую организацию. Имею:
- два офиса и склад в одном городе
- один офис в другом городе
- всего 50-60 человек с Windows 10 и несколько MacBook

Управлял всем аутсорс, который сейчас потихоньку передаёт полномочия. В каждом офисе стоит pfSense. На них настроены vlan и VPN (точно для банков и, как я понял, для взаимодействия между pfSense). Построена единая сеть, но без доступа к устройствам филиалов между собой.

Есть пара серверов, на которых и ведётся основная работа. Доступ к серверу осуществляется через RDP с пробросом портов. Понимаю, что это не совсем безопасно, но компания не большая и работают так уже давно. В RDP работают в 1С и офисных программах.

Подскажите вариант как можно всё красиво организовать? Была мысль закупиться микротами и связать их через VPN + OSPF, так как с ними хотя бы есть опыт работы. А для удаленки настроить на их устройствах VPN. Либо всё это организовывать на том оборудовании, которое уже есть - на pfSense. 

Также хотел узнать, как сейчас обстоит вопрос с не лицензированным ПО? Как быть, когда сотрудники просят "крякнуть" ПО? На примере того же офиса. Купить его сейчас невозможно. Есть аналоги, наподобие МойОфис, но всех пересадить не получится. У клиентов будет другое ПО и в итоге будут проблемы с совместимостью.  У руководителей нет особой позиции по этому поводу, лишь бы всё работало и это правильно. Но спокойно могут сказать, что сейчас всё равно ничего не купить, поэтому ставь крякнутое. Но ответственность в итоге будет и на мне тоже. Были у вас такие ситуации? И как вы с ними справлялись? 

#вопрос_читателя
Поступил любопытный вопрос от читателя, который хотел бы вынести на обсуждение, так как есть над чем подумать. Есть много вариантов реализаций задачи. Вопрос даю в своём сокращении, чтобы сэкономить ваше время.

Были планы купить готовое железо под файловое хранилище, но сейчас нет такой возможности. Есть 4 обычных сервера на SSD дисках. На каждом нужно организовать максимально быстрое и надёжное локальное файловое хранилище под разные нужды. Каким образом это реализовать? Думал одно время о создании LVM на каждом сервере, выделении LV под каждую задачу, затем конфигурации NFS, SMB. Посоветуйте, пожалуйста, что лучше: собирать вручную raid+LVM+xfs+nfs/smb. Или лучше поставить FreeNAS, или что то ещё?

Я бы в этом случае сделал RAID10 из SSD дисков. Если сервера с нормальными рейд контроллерами, то на их базе, если нет, то на базе MDADM. Дальше отталкиваться от конкретных задач и решать, будет там LVM или нет, какую файловую систему использовать. Вот заметка про разницу между EXT4 и XFS.

Уверен, кто-то посоветует настроить ZFS. Я бы в прод её не ставил без опыта эксплуатации. Судя по тому, какой вопрос задан, я вижу, что у задающего явно нет опыта в этом деле. Я бы не рисковал. Либо поставил только на один сервер и потренировался.

Если есть возможность спокойно поучиться и погонять тесты, есть вариант развернуть там CEPH, при условии, что есть сетевые карты 10G. Тогда можно сделать общее отказоустойчивое файловое хранилище на всех серверах. 4 штуки как раз хорошо подходят под такую задачу. Если что, вот статья по настройке ceph. Установить и настроить не сложно, но для эксплуатации нужен опыт, поэтому сначала изучение, всевозможные тесты и только потом внедрение.

Готовые сборки типа FreeNAS я бы сразу отметал. Это ещё подходит в формате домашнего NAS или одиночного где-то в небольшой компании. Ставить Freenas на 4 сервера в прод я бы не стал. Лучше всё внимательно вручную настроить. Работать будет надёжнее, заодно приобретётся опыт и развитие. Freenas и им подобное это тупиковый путь развития админа. Я бы не шёл по нему.

А вы что посоветуете? Возможно автор появится в комментариях и даст дополнения к своему вопросу.

#вопрос_читателя
Ко мне поступил интересный вопрос от читателя, который я решил вынести на публичное обсуждение и прокомментировать, так как будет полезно многим администраторам.

"Есть компьютер с CentOS 5.8 (дистрибутив FreePBX) на борту, выполняющий роль шлюза и сервера Asterisk. Есть необходимость сделать полный бэкап диска/системы, чтобы потом, в случае какой-то глобальной проблемы, восстановить всё на другом железе (время бэкапа/восстановления особой роли не играет). Нюанс в том, что так как эта система выполняет роль шлюза, то останавливать её нельзя. Поэтому единственный вариант - делать бэкап по сети.

Подскажите, пожалуйста, какие могут быть варианты решения вопроса."

В этом вопросе наглядно продемонстрирован ответ на вопрос - зачем нужна виртуализация. Удивительно, но до сих пор есть люди, которые сомневаются, ставить им гипервизор или разворачивать всё на железе. Я рекомендую всегда всё разворачивать в виртуальных машинах, кроме каких-то редких, специфичных случаев. Это нужно в первую очередь для того, чтобы не иметь привязки к железу. VM можно быстро и легко забэкапить или перенести.

В данном случае вижу несколько вариантов решения задачи:

1️⃣ Воспользоваться готовым решением в виде бесплатного Veeam Agent for Linux. Он без остановки машины может снять образ системы. Единственный нюанс, система очень старая. Я не уверен, что Veeam заработает на ней. Надо пробовать и подбирать какую-то старую версию.

2️⃣ Наиболее надёжный вариант. Найти всё-таки время в ночи, загрузиться с Live CD и снять образ диска. Например, с помощью CloneZilla.

3️⃣ Подготовить где-то идентичное железо или VM и сделать полную копию дисков с помощью dd и сразу же отправить по ssh. Примерно так:
# dd bs=1M if=/dev/sda | ssh root@restoresrv "dd bs=1M of=/dev/sda"
На практике я такое не делал, но не вижу особых проблем, почему это может не сработать. Метод стоит отработать где-то на тестовом стенде, а потом снять копию с боевого сервера. Вместо целого диска sda можно по разделам копировать: sda1, sda2 и т.д. Можно просто скопировать образ в файл, а потом уже развернуть из него систему:
# dd bs=1M if=/dev/sda of=/mnt/backup/sda.img
DD популярный инструмент, без проблем гуглится подходящее решение.

Как бы вы решали эту задачу?

#вопрос_читателя
Некоторое время назад ко мне поступил вопрос, который заинтересовал, потому что сам думал над этим ранее. Ответа я не знаю, так что прокомментировать не смогу. Будет интересно услышать ваши советы.

Есть крупный сайт на php в стандартной сваязке mysql/nginx/memcache на Дебиан. И как обычно у всех проектов такого рода логины и пароли доступа к базе данных хранятся в самих php файлах конфигурации.

Смотрю на другие php движки (wordpress, symfony), они не видят в этом проблему, но я вижу с точки зрения ИБ. Сам код сайта мало интересен хакеру, важнее данные в базе данных, логины, имейлы, платежи, транзакции и тд. Через вебшелл если хакер получил доступ к файлам сайта, также он и получил логины и пароли к базе.

Отсюда 2 вопроса:
1) возможно ли изолировать файлы конфигурации от приложения и захватившего его хакера?
2) возможно ли изолировать персональные данные пользователей в БД тоже от приложения?)

У Bitrix тоже доступ к базе в открытом виде хранится, а там есть конфигурации, к примеру, для записи в медицинские учреждения. И всё это доступно через сайт. Люди при онлайн записи оставляют персональные данные, причём в большом количестве. Залив shell на сайт, можно получить доступ к БД и всем пользовательским данным.

Я понимаю, что это можно решить как-то архитектурно, если сервис пишется с нуля. А если он на популярных движках, типа Wordpress или Bitrix, есть какие-то варианты защитить доступ к базе? Мне что-то в голову ничего не приходит. По-моему это невозможно, потому что сайту нужен доступ к базе. Как его ограничить?

#вопрос_читателя
Ко мне поступил вопрос, ответ на который я знаю. Более того, он реализован в виде статьи, по которой можно решить похожие задачи по аналогии. Я не буду копировать вопрос слово в слово, сокращу, оставив суть.

Zabbix мониторит инфраструктуру, метрики собираются, триггеры работают. Но хочется получать больше фактической информации в момент срабатывания триггера. Например, при срабатывании триггера на нехватку места на диске, сразу же пройтись по серверу командой:
find -type f -exec du -Sh {} + | sort -rh | head -n 10
И результат отправить в уведомление или где-то сохранить для просмотра.

Желание понятное. Я сам одно время задумался над такой же задачей и реализовал её в лоб. Мне захотелось, чтобы вместе с оповещением триггера о том, что высокая нагрузка на CPU, мне сразу же прилетела информация о топ 10 самых нагруженных процессов.

У Zabbix нет готовых инструментов для реализации такой задачи. Я реализовал следующим образом:

1️⃣ Добавляю в стандартный шаблон новый айтем типа Zabbix Trapper.

2️⃣ Разрешаю на zabbix agent запуск внешних команд.

3️⃣ Настраиваю на Zabbix Server действие при срабатывании одного из нужных мне триггеров. В действии указываю выполнение команды на целевом сервере, которая сформирует список процессов и отправит его на сервер мониторинга с помощью zabbix-sender.

В моём случае я отправлял результат работы команды:
# ps aux --sort=-pcpu,+pmem | awk 'NR<=10'
По аналогии решается любая похожая задача.

Подробности рассказывать здесь не буду, так как всё это наглядно по шагам описано в статье:
https://serveradmin.ru/monitoring-spiska-zapushhennyh-proczessov-v-zabbix/

#вопрос_читателя #zabbix