Недавно арендовал VPS на linode.com ... (раньше всегда пользовался обычным хостингом от it-patrol). Установил CentOS, панель управления ISP Manager lite... Теперь (на будущее) думаю над тем, как защитить сервер от взлома и пр... Какими средствами пользуетесь? Что предприняли для повышения безопасности? Как часто приходится сталкиваться с попытками взлома? Заранее спасибо за советы!
Комментарии
паролем пользуюсь )
надо почитать вики для isp, правда я сам не читал, просто придумал очень длинный и сложный пароль.
важный вопрос.
А по мне вопрос вот такой:
-У вас блохи есть?
-Есть!
-А чем вы их лечите?
-А они у меня не болеют!
коли уж боитесь взломов, то для начала было бы неплохо снести на фиг всякие там isp, phpmyadmin и т.д - чем больше дверей в дом, тем больше шансов что одна из них поддастся, кроме того, на продакшене они не сдались, ftp с доступом к сайту так же может оказаться неплохой дырой. Остается только надлежащим образом защитить оставшиеся открытые порты.
хотя бы порт SSH смените на другой, неочевидный
SSH защищаю посредством утилиты fail2ban . Сейчас думаю над тем, какие порты совсем закрыть, какие оставить частично открытыми... и для каких ip... Что посоветуете?
Поменяйте порт у ssh. Заливайте файлы по sftp (авторзация по ключам), ftp отключите вообще.
а разве через isp не надежно? по идее разработчик хороший и защита наверняка постоянно мониторится.
и часто Вы её мониторите? не забываете ли Вы мониторить защиту всех используемых у Вас приложений с внешним доступом? А если Вас сломают, как долго будете определять через что именно сломали? На сколько будет обидно, если после бессонной недели проверок всех Ваших isp и прочих ворот после взлома, что Вас взломали, например, через бэкдор в каком-нибудь nginx, взятом с какого-нибудь "ускоренныйэнжинксскачатьбезвирусовблябуду.рф"?
Помню на патруле какую-то из версий того же phpmyadmin сворачивали на фиг из-за найденной дыры в безопасности, они её нашли и устранили, однако, будете ли Вы так же днем и ночью следить за безопасностью всего Вашего зоопарка? Оно Вам надо каждый раз перед сном заходить на сайты производителей всего Вашего софта и мониторить обновления безопасности? Могу поспорить, и друпал то не своевременно обновлять будете
Это конечно все гиппер пессимизм и параноя, но сама тема такая.
Ставить вручную LAMP и настраивать iptables.
Остальное отрубать всё нафиг, в том числе ftp, phpmyadmin...
Кто-нибудь может предложить какую-нибудь стандартную подборку правил iptables?.. Ну этакую идеальную коллекцию, в которой бы всё учитывалось и подходило каждому... ну или что-то приближающиеся к идеалу?.. Какой подборкой правил пользуетесь вы? Очень интересно...
И ещё... кто-нибудь использует mod_security, suhosin, rkhunter? Если не используете, то почему? А если используете, то как их настроили?.. ))
лично я не изобретаю велосипед - isp + бекап + хранение бекапа на google диске. Все просто без заморочек. Хотя если уметь работать с консолью, то да, но мне некогда учиться да и некому научить, плюс лень.
А какая посещаемость у сайта(-ов), если не секрет? Просто интересно...
Посещаемость небольшая наверно поэтому нет смысла заморачиваться. Но я так размышляю - захотят украсть контент - это не имеет смысла. Если какаято крутая самописка - тогда возможно, а если на друпале то наверно не стоит и заморачиваться.
А кому сдался чужой говнокод?) Ломают не для этого.
Думаю что последствия взлома могут сказываться не сразу... Допустим каким-нибудь ёб_ным хакером в систему был "без палева" загружен какой-нибудь скрипт, ворующий пароли учётных записей пользователей и, к примеру, отсылающий их на какую-нибудь электронную почту... или сохраняющий их в какой-нибудь файл на сервере, к которому хакер может сделать себе доступ... И узнать о краже паролей может получиться далеко не сразу... возможно только после того, как сами пользователи начнут жаловаться, что от ихнего имени на ихних аккаунтах что-то происходит... или после того, как начнутся массовые удаления этих взломанных аккаунтов... В данном случае этот загруженный хакером скрипт может попасть в бэкап... или какой-нибудь существующий файл на сервере может быть модифицирован... тогда определить в чём дело вообще может быть сложно...
Должна быть нечто, отслеживающее вторжения в систему... контролирующее её целостность... А если сайт был взломан, значит восстановление из бэкапа может не помочь, так как изъяны в безопасности уже кем-то обнаружены... и восстановленный из бэкапа сайт может быть взломан тем-же уже проверенным кем-то способом...
Конечно возможно всё это из области фантастики... Просто хочется постараться заранее продумать все вот такие вот моменты...
Да но сомневаюсь что ради спама кто-то будет ломать тот же isp.
Я тоже раньше думал, что ломать соц сети смысла никакого...
И что в итоге?..
Автор наверно не имеет ввиду соцсеть, где у пользователя может быть группа на пол миллиона юзеров, естественно ... Но это уже криминал.
Ну я как раз таки веду разговор не о статичных сайтах... а о сайтах с системой регистрации и пр...
В итоге так почти никто и не поделился опытом обеспечения безопасности у себя на сервере... Может быть на этом форуме мало кто пользуется VPS и выделенными серверами...
Кто-нибудь использует mod_security, suhosin, rkhunter, snort??? Отзовитесь )) Хотелось бы увидеть ваши отзывы ))
И это нормально, с кем делиться то?
Или ты хотел ликбез по системной безопасности?
Увы, но эта тема в паре-тройке постов не раскрывается.
Единственно что тебе можно посоветовать - оценивай свои риски адекватно.
Калькулируй стоимость затрат на реабилитацию после успешных враждебных акций,
и исходя из этого думай сколько может стоить твой спец по системной безопасности.
p.s.
а для пущей паранойи читай багтрак три раза в день))
Обрубите все лишние порты, а за темы что активные следите в оба и постоянно ;), при аномальной активности принимайте меры, но на моей практике (у нас нет на сервере сайтов правительства и других потенциально интересных для взлома) пару раз в моей жизни какие-то жулики пытались брутить порты, а так в целом вопросы такого рода из рубрики паранойи ) Вам видимо нужно пройти где-то курс молодого бойца по таким темам.
но проще всего
В итоге ломали один раз меня и несколько раз знакомых, после чего занимались активным спамом. Это про соц сети. Если у вас сайт с более или менее вменяемой посещаемостью, то есть смысл сломать ради распространения ботнета на ваших посетителей, а про вывод конкурента из игры вообще молчу.
И да. На одном из подопечных сайтов при взломе есть риск почти полного уничтожения бизнеса, вот тут действительно не до паранои, но таких сайтов обычно по пальцам пересчитать.
Попробуй shorewall вместо iptables
Fail2ban обязательно. Остальное остальное имхо лишнее
Хотя был и модуль и сторонний скрипт для анализа разницы файлов
Почему лишнее? Наверное потому, что на самом деле пакостников (хакеров) в мире не так уж и много?.. Взламывали ли у тебя когда-нибудь сайт? Какая у него посещаемость?
Интересно просто узнать при какой посещаемости сайта нужно начинать задумываться о его безопасности... И как бы не упустить момент... как бы не стало поздно...
Дубль
В 7 работает из коробке, несколько фейлов - бан на несколько минут. Сам об этом только недавно узнал.
Подпишусь, интересно.
Решил для авторизации по SSH использовать SSL-сертификаты. Авторизацию по логину и паролю вообще отключил. Теперь интересно можно ли реализовать авторизацию в панель ISPmanager по сертификату... Кажется так было бы гораздо надёжнее... ! ))
А на кой Вам вообще ISP сдалась, если не секрет?
так виртуальные хосты можно мышкой создавать же
ставить эту х
уорошую вещь и открывать лишнюю точку входа, только ради того, что бы 1 раз задать хост?день фейспалмов.
Один путает серверное ПО с защитой семёрки от брута.
Другой SSL-сертификаты с ключами для SSH.
Набезопасите вы так, ога
Чтобы нормально защищать сервер, надо хорошо разбераться в администрировании. Это огромная куча знаний, не связанных напрямую с разработкой. И научиться этому куда сложнее, чем например научиться писать на php...
Самый полезный и короткий совет будет звучать - наймите опытного администратора.
Остальные будут мало полезны, т.к. кроме краткого списка софта и мер, которые надо предпринять, надо ещё рассказать, как настроить соответствующий софт и что надо делать в сотне разных случаев, а это в формат форума или даже здоровенной статьи не войдёт, даже в рамках книги это описать сложно... Потребуется масса знаний, и опыт, для их правильного применения.
Несколько советов, часть из которых звучали выше, несколько подробнее:
-Вам не нужна панель. Она нужна, если вы предоставляете услуги хостинга клиентам. В противном случае, она только мешает, и создаёт дополнительную угрозу безопасности.
-Текже, крайне не рекомендую phpmyadmin - его неоднократно серьёзно ломали. Вместо него лучше использовать десктопные клиенты, раотающие через ssh, например heidisql. И не ставьте всякие сипекс дампер и.т.п. мусор, работающий в виртуалхосте сайта. Они практически никогда реально не нужны, и часто опасны.
-Вообще возьмите за правило ставить только тот софт, что вам необходим. Например, лучше не ставить ftp сервер. Дело даже не в том, что ftp менее безопасный протокол, просто он вам не нужен, учитывая наличие sftp "из коробки", а лишнюю потенциальную дыру вы откроете.
-Если вы можете использовать для чего-то внешние сервисы используйте - это экономия и в производительности и в обслуживании. Например, используйте сторонний сервис для почты, если укладываетесь в его лимиты.
-Fail2ban или аналогичный софт, поможет вам защититься от брутфорса паролей(не только ssh, между прочем). А смена портов на нестандартные, на самом деле, нет - она бесполезна чуть более, чем совсем...
-Авторизация по ключам в ssh безопаснее, чем паролем. Доступ под рутом лучше закрыть совсем, а если это невозможно по каким-то причинам, сделать только по ключу. ssh и sftp умеют работать в chroot, что может быть весьма полезным. Если ssh определённому пользователю не нужен, а нужен только sftp, то работу в shell можно и нужно запретить.
-Фаерволом закрывается всё, кроме нужных портов. В идеале в обе стороны.
-mod_security, snort и.т.п. довольно-таки ресурсоёмкие, и не очень-то простые вещи. Тут вам решать, насколько вы готовы тратить ресурсы и их изучать. В большинстве случаев, на мой взгляд, их использование не оправданно. К тому же, со стандартными правилами они довольно бесполезны, а иногда больше мешают рабоать, чем помогают защититься. Suhosin может быть довольно полезен, но только в случае понимания, как его настраивать.
-Читайте и анализируйте логи. Внимательно слеите за ресурсами, будте в курсе, что у вас творится. Сервер настроенный и забытый мечта хакера. Ещё большая, конечно, не настроенный и забытый.
-Следите за белютенями безопасности, не забываейте _своевременно_ обновляться. Это касается и OS и сайта.
-Освойте систему прав Unix. Владельцем всего, кроме загрузок и кеша должен быть не тот же пользователь, из под которого запускаются скрипты, это заметно усложнит жизнь тому, кто найдёт уязвимость в скриптах.
-Выполняйте скрипты разных виртуальных хостов из под разных пользователей, тут вам поможет, например php-fpm или apache mpm itk. В идеале, выполнять скрипты стоит в изолированном окружении (chroot). Это можно сделать, опять же, с помощью php-fpm.
-Бекапы. БЕКАПЫ! Бекапы регулярные, на внешний ресурс, и не забывайте проверять возможность восстановления. Это ОЧЕНЬ важно.
-Определите разумные лимиты на запросы с одного ip и подобные вещи - серьёзный DDoS пержить не поможет, а массу проблем от школохакеров снимет. С учётом того, что их большинство, весьма разумная вещь.
В том посте речь как раз про сам друпал, а именно о том, что защита от брута в нем уже есть и изобретать её не нужно.
Многие рекомендуют отключать "потенциально опасные" функции php... Вот такой список нашёл:
disable_functions = exec, passthru, shell_exec, system, proc_open, popen, curl_exec, curl_multi_exec, posix_uname, fileowner, filegroup, parse_ini_file, get_current_user, getmyuid, getmypid, posix_getgrgid, posix_getpwuid, openlog, syslog, ini_restore, ini_get_all
Как думаете, стоит ли что-то убрать или наоборот добавить?
Это выполнение запросов curl, их часто по ошибке запрещают. Их в этом списке быть не должно, как и некоторых других...
А части функций не хватает.
Там где вычитали это, больше не читайте.
Лучше почитайте внимательно описание этих функций. И поймите, что всю информацию надо фильтровать и разбераться, что и зачем делается.
bsyomov, а не подскажите каким списком пользуетесь вы? ))
Пожалуй не стану, но вместо этого посоветую - посмотрите документацию по функциям php, и напишите свой.
Это будет куда полезнее. А потом, можем его обсудить.
Пока вы хватаете по верхам, и пользуетесь чужими howto, не понимая, что делаете, вы заниматесь не тем.
Мне нужно типовое решение, т.к. я хочу заниматься именно своим сайтом, который уже на vds, а тратить много времени на изучение настроек сервера и жалко и не охота, т.к. нет большого интереса и основная цель заключается именно в разработке-доработке сайта. Такие у меня приоритеты.
Тогда вы просто берётесь не за своё дело, и нормально с таким подходом ничего настроить не получится.
Тем более, что вам как разработчику, уж покопаться в документации PHP сам бог велел.
Да так не просто покопаться, а попробовать каждую функции на практике нужно на пример проникновения.
С таким подходом ничего и спросить нельзя.
Человек нужно типовое решение и его оценка. Это форум.
Не все сайты "военные".
это шаред
пилять незаметно
пробуй ISP, webmin etc., читай какие они генерят конфиги,
положи интересующие каталоги в гит - наглядней некуда будет.
пройдись нмапом по своим адресам - увидишь, что и как открыто
определись с системой бекапов
Для невоенных сайтов на эти надстройки можно и забить, основные же(критичные, представляющие из себя откровенную дыру) можно лицезреть в .htaccess самого друпа, что особенно актуально, если не используете апач, либо апач игнорит .htaccess, однако, если пых настроен откровенно криво, друпал уже сам начинает громко матюкаться.
А вот коли сайт военный, то тут типовых решений быть не может.
Этот список имеет своей целью запретить выполнение внешних комманд прежде всего, так что особо и копаться не придётся.
Можно, но не стоит ждать, что на форуме всё сделают за вас, или вложат вам в голову всевозможные знания, без малейшего усилия с вашей стороны.
Похоже, что данному человеку оно не сильно нужно. С таким подходом ему нужен, или админ, или шаред хостинг.
Не разобравшись, и тупо воспользовавшись несколькими howto найденными в инете(в большинстве из которых, ктати, немало бреда), не понимая, что и зачем и для какого случая описано, нормально не настроить сервер.
Соответственно разжёвывать всё тому, кто не хочет потрудиться хоть что-то сделать сам, мало кто потрудится.
Будет скорее всего даже хуже, чем если просто поставить тупо панельку - там будут более-менее общие, не оптимальные, не сильно безопасные, но хотя бы корректные настройки.
я бы посоветовал, и здесь это уже прозвучало, решать проблемы по мере их поступления, и бекапы бекапы бекапы ... тупо но эффективно и дешево.
не стоит так говорить, некоторые могут трактовать это так, что можно вообще забить на безопасность пока не взломают.