Большие проблемы маленьких серверовКрис Касперски Хакер, номер #112, стр. 112-146-1 Из личного опыта администрирования домашнего сервераДомашние ftp/http сервера сейчас воздвигают многие хакеры, совершенно не представляя, во что они ввязываются. Работать с такими серверами безумно интересно, но проблемы остаются проблемами. Они растут и накапливаются, словно снежный ком, с которым уже не справиться, если только заранее не продумать концепцию сервера вплоть до мелочей. Мыщъх делится своим многолетним опытом воздвижения, администрирования и эксплуатации малых ftp/http/dns/smtp/pop3-серверов. Своя рубашка ближе к телуЗачем воздвигать свой собственный сервер, когда коммерческий хостинг стоит копейки (costs next to nothing – выражаясь на английский манер), избавляя нас от головной боли и кучи сопутствующих проблем? Однако, вопреки всему, количество «домашних» серверов не только не сокращается, но даже увеличивается, причем лавинообразно. Почему? Начнем с того, что, во-первых, рулить собственным сервером – это невероятно интересно и увлекательно, к тому же всякий начинающий администратор просто обязан попрактиковаться на «кошках», потому как экспериментировать с промышленными серверами ему не дадут (ошибки конфигурации обходятся весьма недешево). Так почему бы не получить боевой опыт малой кровью, тренируясь на своей собственной тачке? Во-вторых, сейчас очень трудно найти коммерческого хостера, «крышующего» хакерский контент или, например, коллекцию электронных книг (музыки, фильмов). Бесплатные же хостеры уничтожают такие аккаунты по первой жалобе, даже если она поступает от Васи Пупкина, а не от правообладателя контента (чье право на собственность еще необходимо доказать, а доказывается оно в суде и никак иначе). В-третьих, открыть доступ к своему хранилищу дистрибутивов (аудио, видеофайлов), добавив пару строк в конфигурационный файл домашнего сервера, намного проще, чем заливать эти же файлы на обменники с низкой скоростью и кучей тупых ограничений. Гораздо практичнее обмениваться файлами не через ненавистную рапидшару, а через домашние сервера. В-четвертых, глюки у хостеров (даже коммерческих) случаются регулярно, и web-мастера вынуждены тратить огромное количество времени на общение со службой поддержки, не желающей признавать очевидное. Опять-таки, где гарантия, что хостер следит за безопасностью: своевременно накладывает заплатки, резервирует данные и делает еще кучу сопроводительных вещей? В-пятых, установка собственного smtp/pop3-сервера заставляет забыть о письмах, порезанных спам-фильтрами (во всяком случае, на нашей стороне). Собственный DNS, напрямую обращающийся к корневым доменным серверам по TCP-протоколу, не только работает быстрее и надежнее глючных DNS-серверов, предоставленных провайдером, но и практически не поддается атакам, в отличие от провайдерских DNS, по умолчанию работающих по UDP. В-шестых, мы получаем полную статистику посещений, и все счетчики (работающие по туманным алгоритмам) идут лесом. А статистика посещаемости – великая вещь! Добавим сюда немаловажную возможность «банов» некоторых враждебных пользователей. Даже если не пытаться определить их паспортные данные по IP, все равно – собственный сервер позволяет намного более оперативно реагировать на хакерские атаки и набеги всяких вандалов. Другими словами, домашний сервер – незаменимая в хозяйстве вещь! Что нам понадобитсяПриобретать дополнительный компьютер для воздвижения сервера совершенно необязательно, вполне подойдет и основная машина. Правда, учитывая, что сервер должен (в идеале) работать круглосуточно и как можно реже перезагружаться, имеет смысл остановить свой выбор на маломощном (а, следовательно, малошумном) компьютере, полностью переведенном на пассивное охлаждение и оснащенном тихими дисками типа Seagate Barracuda. Еще нам понадобится канал связи с внешним миром и тариф, позволяющий сидеть в Сети неограниченное время и не платить за исходящий трафик. В идеале, конечно, это ADSL со статическим IP-адресом, на который можно «навесить» бесплатное доменное имя типа nezumi.org.ru. Операционная система может быть любой: с точки зрения безопасности предпочтительнее OpenBSD, но вполне сойдет и Win2k/Win2k3 (XP Home имеет лимит на количество устанавливаемых соединений и прочие вредные ограничения, а потому от ее использования лучше сразу отказаться). Выбор серверного программного обеспечения – сложная задача, к которой предъявляются достаточно жесткие требования: бесплатность (в идеале), хорошая родословная (без длинного списка наспех затыкаемых дыр), отсутствие ограничений на количество подключений, гибкие настройки, позволяющие управлять скоростью отдачи (с учетом многопоточных качалок), автоматическая блокировка нарушителей, а также хронология подробных логов, полезных не только для сбора статистики, но и «разбора полетов», если сервер работает неправильно или был злостно атакован воинствующими варварами. При работе под Windows понадобится сниффер и брандмауэр (в xBSD и Linux они входят изначально). Windows Firewall ни на что серьезное неспособен, а утилиты типа tcpdump в NT как не было, так и нет, хотя она нужна, чтобы, например, выявить источник необычной сетевой активности. Перепробовав огромное количество продуктов, мыщъх остановился на следующей комбинации: WAR-FTP (ftp-сервер), SMALL HTTP (http/ftp/dns/smtp/pop3-сервер в одном флаконе) и SyGate Personal Firewall (брандмауэр плюс сниффер). Все это хозяйство абсолютно бесплатно, за исключением SyGate, из последних халявных версий которого вырезали сниффер. Закладываем фундаментУпомянутое серверное обеспечение может запускаться как обычный прикладной процесс, так и выступать в роли службы. Мыщъх настоятельно рекомендует использовать первый путь. Сервер, запущенный от имени специального пользователя, которому видны только «публичные» файлы, даже будучи атакованным, существенно озадачивает хакера. В противном случае достаточно просто подобрать пароль администратора и переконфигурировать сервер, разрешив ему доступ ко всем файлам, какие только есть, причем не только на чтение, но и на запись – плакали наши данные. Если же сервер запущен как процесс от имени ограниченного пользователя, то правами файлового доступа ведает сама система. При условии, что эти права настроены правильно, хакеру придется, как минимум, атаковать саму ось. Сделать это намного сложнее, особенно, когда администратор не забывает своевременно обновляться. Теперь поговорим о важнейших настройках, имеющих отношение как к безопасности, так и к нашему собственному комфорту (ведь иначе юзеры полностью забьют сетевой канал, не оставив нам никакой пропускной способности).
Журнальные свиткиСервер должен вести логи. Это закон. И эти логи нужно читать, чтобы исправлять свои ляпы (например, битые ссылки), а также профилировать общую пользовательскую активность. Больше всего раздражают дятлы, которые любят настойчиво «долбить», пытаясь скачать несуществующие или уже удаленные файлы в бесконечном цикле с очень короткой задержкой, в результате чего мы имеем большой объем входящего трафика (расходующегося на запросы к серверу), который обычно платный. WAR-FTP умеет автоматически выставлять временные баны, но некоторые личности и узлы заслуживают пожизненной кары. Если они имеют статический IP (например, принадлежащий шлюзу организации, где они работают, или это поисковик какой), достаточно занести его адрес в black list. Такие листы поддерживают и WAR-FTP, и SMALL HTTP, но пользоваться ими не рекомендуется по той простой причине, что оверхэд (то есть накладные расходы) весьма велик, и лучше вести блокировку непосредственно на брандмауэре (SyGate Firewall это позволяет – да и по удобству управления черными списками превосходит как WAR-FTP, так и SMALL HTTP). Борьба с поисковикамиВ то время как дизайнеры стремятся накрутить рейтинги популярности своих сайтов, попав в первые строки поисковых машин, владельцы домашних серверов борются с ними со страшной силой. Прежде всего, поисковые роботы существенно напрягают канал, поскольку скачивают все, что только можно скачать (нормальные пользователи обычно качают лишь то, что им действительно нужно), причем этих поисковых роботов много, очень много, и далеко не все они прислушиваются к файлу robots.txt, который специально для них и был узаконен. К тому же, как только содержимое домашнего сервера проиндексировано, на него начинают ломиться все, кому не лень, и, что самое неприятное, наш privacy можно запалить простым поисковым запросом. Что делать? Методично «отстреливать» всех поисковых роботов, занося их IP-адреса, доменные имена (с вилдкардами) и даже целые подсети в black list'ы. О том, что это робот, а не что-то иное, можно догадаться по заголовку запроса (большинство роботов не скрывают своей машинной сущности), а также по доменному имени, принадлежащему известным поисковикам. ЗаключениеМыщъх описывал свой собственный опыт и личные предпочтения. Политика доступа к домашним серверам диктуется исключительно волей их владельцев, очень многие из которых устанавливают драконические ограничения, за несоблюдение которых автоматом влепляют бан. Что поделаешь… домашний сервер – он дохода не приносит, и потому всех, кто их воздвигает, можно только поприветствовать. INFOПоследняя версия WAR-FTP, датированная серединой 2006 года, вместе с обновлением лежит на www.warftp.org в разделе Download и, хотя некоторые считают ее устаревшей – это хороший выбор для начинающих администраторов, проверенный временем, простой в управлении и к тому же бесплатный. SMALL HTTP – невероятно компактный «швейцарский нож», включающий в себя кучу различных служб с гибкой системой настройки. Последняя версия, занимающая чуть больше 100 Кб, вместе с документацией выложена на smallsrv.com и для жителей СНГ бесплатна. Отлично подойдет для тех, кто уже освоил WAR-FTP и теперь хочет почувствовать себя настоящим администратором. SyGate Personal Firewall скуплен корпорацией Symantec и прекратил свое развитие в том виде, в котором был представлен изначально – однако, мыщъх'а он вполне устраивает. |