bash.im ithappens.me zadolba.li

Серверы

9188

Со служебного входа

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

Сперва попробовал типичный DDoS. Десять компов завалили линию на 1 Гб/с запросами, ещё один вёл работу. Всё время вёл, по отдельной сетевой. Сервак справился.

Попробовал пошалить с буферами — отправлять слишком длинные запросы. Сервак проглотил запросы на гигабайт и не поперхнулся.

Попытался пройти без авторизации — сервер на фиг послал. Ладно, думаю, будем ломать.

Написал простой прокси-сниффер, сохраняющий всю историю запросов-ответов. Посмотрел, что шлётся. Много-много повтыкал в экран, понял, по какому принципу формируются коды запросов, и написал клиент, который будет слать нестандартные коды. И — хопа! — сервак помахал ручкой и выключился.

Довольный, иду к разрабам, говорю:

— Вот по этому коду сервер ложится.

Программист смотрит на хексы, совершает перевод в инты, смотрит на другую бумажку:

— Слушай, это код выключения сервера. Доступен только для админа и только внутри нашей локалки. Давай мы тебя в
правах понизим, а?

9174

Фейловер по Врунгелю

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

Три аплинка от трёх разных провайдеров с каналами шириной в десятки Мбит/с у каждого.

Авторская система резервирования питания в «серверной», благодаря которой по ночам и выходным с периодичностью два-три раза в месяц прокси, DNS и веб-сервер крепко ложатся, оставляя всех без проводного интернета и доступа в домен, однако при этом VoIP и Wi-Fi нагло продолжают работать, потому что рутятся через какое-то другое место, которое не обесточивается.

При падении одного конкретного аплинка DNS перестаёт работать вообще и в проводной сети, и на Wi-Fi, однако VoIP таки нагло продолжает работать, потому что рутится через какое-то место местного провайдера, которому посрать на эти DNS и на упавший аплинк конкурента.

Перекидывание на живой канал осуществляется в ручном режиме за время от четырёх часов до двух рабочих дней в зависимости от темпов понимания работниками IT-отдела причин пропажи интернета.

Перезапуск обесточенных ночью прокси, DNS и веб-серверов осуществляется в ручном режиме на следующий рабочий день по приходе на работу первого сотрудника IT-отдела. То есть если упало в пятницу вечером, поднимется к полудню понедельника. Есть подозрение, что это как-то завязано на открывание дверей.

В общем, как у «Победы»/«Беды» из «Приключений капитана Врунгеля», от фейловера в нашем случае остался только фейл.

9121

Всё правильно сделали

Сетевой администратор всё правильно сделал: управляемые свитчи, пропускающие трафик только после успешного получения адреса по DHCP.

Системный архитектор всё правильно сделал, установив в серверной два DHCP-сервера и затребовав ввод электропитания от двух подстанций и автомат включения резерва.

Электрики всё правильно сделали, подключив вместо сгоревшего кабеля на 10 кВ другой кабель от другой подстанции.

Но при работах на подстанции питание пропало на какие-то секунды. Автомат включения резерва переключился на другой ввод, но подсоединился ко второму вводу раньше, чем отключился от первого. Раньше фазы были в одинаковом порядке, так что ничего особенного не случалось. В этот раз они оказались в другом. Тем временем подключился обратно первый ввод. 380 вольт оказались закорочены. Оба 100-амперных автомата вводов выключились, и серверная (в том числе кондиционер) жила на источнике бесперебойного питания, о чём слала слёзные SMS администраторам. Но кто их читает среди ночи?

К утру заряд ИБП кончился, DHCP-серверы отключились. Затем истекло время аренды, и умные свитчи заблокировали все порты. Сеть была парализована полностью.

9108

Предпервомайские передряги

Я системный инженер в головной компании холдинга. Одна из наших фирм арендует цеха и помещения у научно-исследовательского института за городом. Основной штат — рабочие и несколько человек за компьютерами. Своих бухгалтеров у фирмы нет, по совместительству работают бухгалтеры соседней фирмы. В бухгалтерии — два компьютера нашей фирмы и один — этой соседней. Компьютеры входят в локальную сеть НИИ, имеют доступ через неё в Интернет. Директор фирмы сидит в другом корпусе, локальной сети у него нет. 1С работает на обычном компьютере с Windows 7 SP1 x64 на Intel i3-2100, 8 ГБ RAM и парой полутерабайтников в зеркале на ICHR.

Мой начальник ставит мне задачу: дать удалённый доступ к 1С директору, вынести наши компьютеры в отдельную сеть, при этом третий (не наш) должен иметь доступ к 1С.

Телефонисты НИИ связь SHDSL-модемами по телефону внутри НИИ делать отказались, поэтому я пришёл к следующему решению. Наши компьютеры повесить на отдельный коммутатор, поставить в «сервер» ещё две сетевые карты, поставить на нём Windows Server 2008 R2 SP1 с 1С и терминалами, поднять в ней Hyper-V, там в такой же ОС поднять Kerio Control, подключить свой интернет со статическим IP, поднять на шлюзе VPN средствами RRAS. Разграничить доступ между нашей сетью, сетью НИИ и нашим интернетом Kerio. Подключить второй Интернет директору и паре работников, что сидят рядом с ним, настроить им доступ по VPN в первую сеть.

Я сказал, мне надо по крайней мере два дня. Начальник согласился.

В среду 2 мая у меня начинается отпуск. Куплены билеты на поезд к родителям и обратно. Тянул начальник с директором фирмы, тянул, наконец поставил выполнение в субботу 28 апреля (рабочую) и понедельник 30 апреля. 1 мая — выходной. Как раз два дня до отпуска.

Нужное оборудование закупили. Приехали в субботу в 10. Директор фирмы ошарашивает:

— А мы в понедельник не работаем.
— Э-э-э?
— Окей, если надо, выйдем посидим.

Хорошо. Работаю. Не спеша, обстоятельно, по разработанному плану. Поставил в сервер две сетевые карты. Забэкапил саму 1С и базы. Cнёс Windows 7 с сервера 1С, поставил 2008-й, драйверы. Поднял сервер терминалов и лицензий, создал пользователей. Обновил ОС. Скопировал обратно 1С. Подключил первый модем. Обнаружил проблемы с линией, пообщался с поддержкой — проблема осталась, дорешивать надо потом. Отключил сервер и два компьютера фирмы от коммутатора НИИ, включил в приобретённый. Поднял роль Hyper-V, создал виртуальные сети, назначил серверу 1С (одна сетевая) адрес в отдельной сети.

Итого: бухгалтеры доступа к 1С уже не имеют, интернета через сеть НИИ уже не получают, со своим интернетом проблемы, да и шлюз ещё не создан. Единственный компьютер из сети НИИ, который должен иметь доступ к 1С, тоже доступа не имеет — разные несоединённые коммутаторы. В 2008 с поднятым Hyper-V картой что-то странное, разобраться ещё не успел: пингуется, но по RDP не зайти, как будто сервера вообще нет, при этом телнетом на 3389 — пожалуйста.

14:30. Приходит главбухша: «А вы знаете, что в 15:30 здание обесточивается до среды?»

В общем, едва успел вернуть всё, как было, разве что теперь 2008-й с терминалами, но принтеры настроить на сервере терминалов не успел — в прошлый раз в «семёрке» много времени потратил, были проблемы, а тут чуть ли не выгоняли — нам здание закрывать надо, нам не платят за то, что мы вас ждём. А принтеры нужны, чтобы накладные печатать.

За это ещё и получил от начальника:

— А почему ты бэкап «семёрки» с принтерами не сделал? Так бы вернул назад.
— Зачем? 1С забэкапил, а больше там ничего не было.
— А вот на такой случай.

А я бы спросил: «Почему ты так запланировал — между праздниками перед отпуском — и не уточнил, как НИИ работает?»

Решил: схожу в среду, сделаю принтеры (надеюсь), к родителям уеду на два дня позже. Завтра пойду сдавать билеты.

Никогда не планируйте дела на последний день!

8909

S как T9

Пятница, вечер. В конторе все разошлись по домам. Гаснет свет. Бесперебойник даёт серверу прокричать админу и секретарше о данном событии и вырубиться.

Когда свет включается, устаревший UPS не заводится — требуется нажать на кнопочку. Есть охранник, можно попросить ткнуть кнопочку и его. Но надо набрать пароль: на сервере работает какая-то программка, для которой надо войти в систему.

Тут уже варианты. Секрктарша звонит админу — сможет ли он подойти и включить? Увы, админ уже на шашлыках, вечер пятницы всё же. Секретарша тоже уже очень далеко от города — едет на дачу. Находится дежурный водитель фирмы и отправляется в офис. Он приезжает, с трудом, под диктовку действий секретаршей, нажимает кнопочку на UPS.

Объяснение было в следующем стиле: «Там такой небольшой серенький блок стоит с двумя кнопками, одна побольше, а вторая притоплена. Вот ты на большую жми. Так, запищал, помигал лампочками? Щёлкнул, больше не щёлкает и не пищит? Хорошо, теперь включаем сервер. Видишь, телевизор такой рядом с коробкой высокой? Ищи на телевизоре большую кнопку, жми на неё. Так, загорелась лампочка на телевизоре, показалась какая-то надпись? Хорошо, так и должно быть. Теперь ищи рядом высокий такой. Да-да, такой серый, с большой кнопкой спереди. Вот на неё нажми. Что, что-то начало писать на телевизоре? Погас и загорелся синим фоном? Все нормально, ждём. Так, что-то написано? Что, не можешь прочитать? Возьми клавиатуру. Да, это та, что с кучей кнопочек. Нажми одновременно Ctrl+Alt+Del. Что, не можешь найти? Ну, контрол — там на кнопочке написано слово, первая буква, как наша С; альт — там на кнопке три буквы, первая, как наша А; делит — там тоже слово написано, первая буква, как наша Д письменная. Так, что-то написала? Там сверху написано Administrator, а ниже мигает такая палочка? Да, всё нормально. Набираем пароль. … Что, не знаешь английских букв?»

Вот тут, без клавиатуры под рукой, я бы сдался. Но наша секретарша оказалась на высоте. «Так, смотри на кнопки телефона. Видишь там буковки около цифр? Хорошо. Найди на клавиатуре букву, такую же, что на кнопке 3, вторая по счёту. Так, шифт… Ну да, слева на клавиатуре такая кнопочка со стрелкой вверх и словом на буковку, что на цифре 5 третья. Теперь нажми на энтер — да, такая изогнутая большая кнопка».

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

8896

Будьте как дома

3 апреля 2012, 12:45

Разрабатывая очередной сайт (юзая CGIC, кто плавал — знает), разумеется, не хочется делать это в консоли. А в Notepad++ тоже не покомпилируешь на удалённом сервере. Захожу PuTTY на сервер, подключаю блокнот к FTP, правлю, Alt+Tab, gcc project.c, Enter. Проверяю — нету изменений. Что не так? Закешировалось? Чищу кеш в браузере, кеш на прокси. До сих пор ничего нет. Начинаю верить в мистику, но…

Есть у меня два подконтрольных сервера с одинаковой системой и почти одинаковой настройкой. Один — домашний, выполняющий роль тестовой площадки, второй — продакшн, на котором висит некоторое количество моих проектов. Для удобства контроля над ними пароли от аккаунтов одинаковые. Более того, одинаковы и SSH-ключи для доступа. Крон автоматически выкачивает с домашнего сервера файлы на продакшн прямо в папку профиля — этакий бэкап. Так что подмену я заметил только когда посмотрел, к какому серверу подключился. Редактировал я файл на продакшне, а компилировать пытался на домашнем, который об изменениях не знал и знать не хотел.

8881

Мальчики — налево, девочки — направо

Случился этот факап лет десять назад. Я тогда только начал работать и был эникейщиком в госконторе. Компы, понятно, были не ахти какие, это касалось и серверной. Всего в конторе было штук 200–300 пользовательских машин. И вот как-то раз шеф подумал вслух, что основной DNS не справляется с нагрузкой, а второй, соответственно, простаивает. И что с этим делать, как распределить пользователей равномерно по серверам, непонятно.

Внезапно мне пришла в голову светлая мысль: а что, если те компы, IP-адрес которых оканчивается нечётным числом, будут пользоваться первым DNS, а с чётным окончанием — вторым? Сказано — сделано. Не спеша и не напрягая понапрасну пользователей, за несколько месяцев я обновил свойства сетевых соединений.

Где-то год-два всё работало как часы, шеф ходил довольный. А однажды утром обрушился на нас шквал звонков: «У меня интернет не работает». Оказывается, лёг один из DNS, и половина машин осталась без инета. Ну, не знал я тогда, что нужно прописывать оба адреса…

8713

Так и тянет

11 марта 2012, 11:00

FTP-сервер провайдера, каталог /pub со срезами репозиториев, в нём первой стоит папка /!. Ты заходишь в неё и видишь интересный файл с именем do_not_load_or_banned.html. Решаешь посмотреть, а что же там нельзя загружать такого…

Результат закономерен. И говори после этого, что ты не робот.

8632

И звать тебя никак

29 февраля 2012, 11:00

Припёрся в офис с жуткого бодуна. Суббота, вообще-то, но начальству пофиг — сервер лежит.

Походкой пингвина подхожу к серверной и понимаю, что ключи я забыл дома. Надеясь на чудо, сажусь за ближайший комп (даже не удивишись тому, что он включён) и пингую сервак. Ура — есть отклик! Значит, сервер не лежит, а только от внешки отрубился. Пытаюсь подключиться к нему — не пускает.

Пробую ещё.
Ещё.
И ещё.

Через минуту до меня доходит: что-то тут не так. Вспоминаю, что комп был уже включён. Эврика!

Похмелье — штука тонкая, поэтому вместо «whoami» я набираю в консоли «who am i?». Угу, с вопросительным знаком. И ещё минут пять медитирую на ответ злобной железки:

nobody

Ну, потом я, конечно, понял, что вместо whoami мне ответил who из пакета nettools, но это было сильно потом.