Владельцам VPS или выделенных серверов. Как защищаете сервер от взлома?

12 сентября 2013 в 22:30

Недавно арендовал VPS на linode.com ... (раньше всегда пользовался обычным хостингом от it-patrol). Установил CentOS, панель управления ISP Manager lite... Теперь (на будущее) думаю над тем, как защитить сервер от взлома и пр... Какими средствами пользуетесь? Что предприняли для повышения безопасности? Как часто приходится сталкиваться с попытками взлома? Заранее спасибо за советы!

Комментарии

коли уж боитесь взломов, то для начала было бы неплохо снести на фиг всякие там isp, phpmyadmin и т.д - чем больше дверей в дом, тем больше шансов что одна из них поддастся, кроме того, на продакшене они не сдались, ftp с доступом к сайту так же может оказаться неплохой дырой. Остается только надлежащим образом защитить оставшиеся открытые порты.

13 сентября 2013 в 1:25

SSH защищаю посредством утилиты fail2ban . Сейчас думаю над тем, какие порты совсем закрыть, какие оставить частично открытыми... и для каких ip... Что посоветуете?

10 ноября 2015 в 11:49

"Pilotsamoleta" wrote:
и защита наверняка постоянно мониторится.

и часто Вы её мониторите? не забываете ли Вы мониторить защиту всех используемых у Вас приложений с внешним доступом? А если Вас сломают, как долго будете определять через что именно сломали? На сколько будет обидно, если после бессонной недели проверок всех Ваших isp и прочих ворот после взлома, что Вас взломали, например, через бэкдор в каком-нибудь nginx, взятом с какого-нибудь "ускоренныйэнжинксскачатьбезвирусовблябуду.рф"?

Помню на патруле какую-то из версий того же phpmyadmin сворачивали на фиг из-за найденной дыры в безопасности, они её нашли и устранили, однако, будете ли Вы так же днем и ночью следить за безопасностью всего Вашего зоопарка? Оно Вам надо каждый раз перед сном заходить на сайты производителей всего Вашего софта и мониторить обновления безопасности? Могу поспорить, и друпал то не своевременно обновлять будете Wink

Это конечно все гиппер пессимизм и параноя, но сама тема такая.

14 сентября 2013 в 10:14

Кто-нибудь может предложить какую-нибудь стандартную подборку правил iptables?.. Ну этакую идеальную коллекцию, в которой бы всё учитывалось и подходило каждому... ну или что-то приближающиеся к идеалу?.. Какой подборкой правил пользуетесь вы? Очень интересно...

И ещё... кто-нибудь использует mod_security, suhosin, rkhunter? Если не используете, то почему? А если используете, то как их настроили?.. ))

15 сентября 2013 в 21:37

лично я не изобретаю велосипед - isp + бекап + хранение бекапа на google диске. Все просто без заморочек. Хотя если уметь работать с консолью, то да, но мне некогда учиться да и некому научить, плюс лень.

16 сентября 2013 в 17:03

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

16 сентября 2013 в 20:16

"Pilotsamoleta" wrote:
Если какаято крутая самописка - тогда возможно, а если на друпале то наверно не стоит и заморачиваться.

А кому сдался чужой говнокод?) Ломают не для этого.

16 сентября 2013 в 22:27

"sg85" wrote:
Об том и речь. Если ломают для западла - тогда бекап. Если надо защитить платные файлы - тогда да. Ну и если крутая самописка - тоже.

16 сентября 2013 в 22:49

"Pilotsamoleta" wrote:
Если ломают для западла - тогда бекап.

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

Должна быть нечто, отслеживающее вторжения в систему... контролирующее её целостность... А если сайт был взломан, значит восстановление из бэкапа может не помочь, так как изъяны в безопасности уже кем-то обнаружены... и восстановленный из бэкапа сайт может быть взломан тем-же уже проверенным кем-то способом...

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

17 сентября 2013 в 0:17

Автор наверно не имеет ввиду соцсеть, где у пользователя может быть группа на пол миллиона юзеров, естественно ... Но это уже криминал.

17 сентября 2013 в 15:50

Ну я как раз таки веду разговор не о статичных сайтах... а о сайтах с системой регистрации и пр...

В итоге так почти никто и не поделился опытом обеспечения безопасности у себя на сервере... Может быть на этом форуме мало кто пользуется VPS и выделенными серверами...

Кто-нибудь использует mod_security, suhosin, rkhunter, snort??? Отзовитесь )) Хотелось бы увидеть ваши отзывы ))

17 сентября 2013 в 16:16

"misterpronin" wrote:
В итоге так почти никто и не поделился опытом обеспечения безопасности у себя на сервере...

И это нормально, с кем делиться то?
Или ты хотел ликбез по системной безопасности?
Увы, но эта тема в паре-тройке постов не раскрывается.

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

p.s.
а для пущей паранойи читай багтрак три раза в день))

17 сентября 2013 в 17:27

Обрубите все лишние порты, а за темы что активные следите в оба и постоянно ;), при аномальной активности принимайте меры, но на моей практике (у нас нет на сервере сайтов правительства и других потенциально интересных для взлома) пару раз в моей жизни какие-то жулики пытались брутить порты, а так в целом вопросы такого рода из рубрики паранойи ) Вам видимо нужно пройти где-то курс молодого бойца по таким темам.
но проще всего

"multpix" wrote:
Единственно что тебе можно посоветовать - оценивай свои риски адекватно.
Калькулируй стоимость затрат на реабилитацию после успешных враждебных акций,
и исходя из этого думай сколько может стоить твой спец по системной безопасности.

17 сентября 2013 в 17:40

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

17 сентября 2013 в 18:31

И да. На одном из подопечных сайтов при взломе есть риск почти полного уничтожения бизнеса, вот тут действительно не до паранои, но таких сайтов обычно по пальцам пересчитать.

17 сентября 2013 в 18:36

Попробуй shorewall вместо iptables
Fail2ban обязательно. Остальное остальное имхо лишнее
Хотя был и модуль и сторонний скрипт для анализа разницы файлов

18 сентября 2013 в 0:00

"MainVisor" wrote:
Попробуй shorewall вместо iptables
Fail2ban обязательно. Остальное остальное имхо лишнее
Хотя был и модуль и сторонний скрипт для анализа разницы файлов

Почему лишнее? Наверное потому, что на самом деле пакостников (хакеров) в мире не так уж и много?.. Взламывали ли у тебя когда-нибудь сайт? Какая у него посещаемость?

Интересно просто узнать при какой посещаемости сайта нужно начинать задумываться о его безопасности... И как бы не упустить момент... как бы не стало поздно...

18 сентября 2013 в 16:54

"MainVisor" wrote:
Так что аналог fail2ban тоже нужен в друпале

В 7 работает из коробке, несколько фейлов - бан на несколько минут. Сам об этом только недавно узнал.

19 сентября 2013 в 0:33

Решил для авторизации по SSH использовать SSL-сертификаты. Авторизацию по логину и паролю вообще отключил. Теперь интересно можно ли реализовать авторизацию в панель ISPmanager по сертификату... Кажется так было бы гораздо надёжнее... ! ))

21 сентября 2013 в 21:20

"sg85" wrote:
А на кой Вам вообще ISP сдалась, если не секрет?

так виртуальные хосты можно мышкой создавать же

21 сентября 2013 в 22:25

"drupby" wrote:
так виртуальные хосты можно мышкой создавать же

ставить эту хуорошую вещь и открывать лишнюю точку входа, только ради того, что бы 1 раз задать хост?

22 сентября 2013 в 1:02

"sg85" wrote:
В 7 работает из коробке, несколько фейлов - бан на несколько минут. Сам об этом только недавно узнал.

"misterpronin" wrote:
Решил для авторизации по SSH использовать SSL-сертификаты. Авторизацию по логину и паролю вообще отключил. Теперь интересно можно ли реализовать авторизацию в панель ISPmanager по сертификату... Кажется так было бы гораздо надёжнее... ! ))

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

6 октября 2013 в 18:14

Чтобы нормально защищать сервер, надо хорошо разбераться в администрировании. Это огромная куча знаний, не связанных напрямую с разработкой. И научиться этому куда сложнее, чем например научиться писать на php...

Самый полезный и короткий совет будет звучать - наймите опытного администратора. Smile

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

Несколько советов, часть из которых звучали выше, несколько подробнее:
-Вам не нужна панель. Она нужна, если вы предоставляете услуги хостинга клиентам. В противном случае, она только мешает, и создаёт дополнительную угрозу безопасности.

-Текже, крайне не рекомендую phpmyadmin - его неоднократно серьёзно ломали. Вместо него лучше использовать десктопные клиенты, раотающие через ssh, например heidisql. И не ставьте всякие сипекс дампер и.т.п. мусор, работающий в виртуалхосте сайта. Они практически никогда реально не нужны, и часто опасны.

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

-Если вы можете использовать для чего-то внешние сервисы используйте - это экономия и в производительности и в обслуживании. Например, используйте сторонний сервис для почты, если укладываетесь в его лимиты.

-Fail2ban или аналогичный софт, поможет вам защититься от брутфорса паролей(не только ssh, между прочем). А смена портов на нестандартные, на самом деле, нет - она бесполезна чуть более, чем совсем...

-Авторизация по ключам в ssh безопаснее, чем паролем. Доступ под рутом лучше закрыть совсем, а если это невозможно по каким-то причинам, сделать только по ключу. ssh и sftp умеют работать в chroot, что может быть весьма полезным. Если ssh определённому пользователю не нужен, а нужен только sftp, то работу в shell можно и нужно запретить.

-Фаерволом закрывается всё, кроме нужных портов. В идеале в обе стороны.

-mod_security, snort и.т.п. довольно-таки ресурсоёмкие, и не очень-то простые вещи. Тут вам решать, насколько вы готовы тратить ресурсы и их изучать. В большинстве случаев, на мой взгляд, их использование не оправданно. К тому же, со стандартными правилами они довольно бесполезны, а иногда больше мешают рабоать, чем помогают защититься. Suhosin может быть довольно полезен, но только в случае понимания, как его настраивать.

-Читайте и анализируйте логи. Внимательно слеите за ресурсами, будте в курсе, что у вас творится. Сервер настроенный и забытый мечта хакера. Smile Ещё большая, конечно, не настроенный и забытый. Smile

-Следите за белютенями безопасности, не забываейте _своевременно_ обновляться. Это касается и OS и сайта.

-Освойте систему прав Unix. Владельцем всего, кроме загрузок и кеша должен быть не тот же пользователь, из под которого запускаются скрипты, это заметно усложнит жизнь тому, кто найдёт уязвимость в скриптах.

-Выполняйте скрипты разных виртуальных хостов из под разных пользователей, тут вам поможет, например php-fpm или apache mpm itk. В идеале, выполнять скрипты стоит в изолированном окружении (chroot). Это можно сделать, опять же, с помощью php-fpm.

-Бекапы. БЕКАПЫ! Бекапы регулярные, на внешний ресурс, и не забывайте проверять возможность восстановления. Это ОЧЕНЬ важно.

-Определите разумные лимиты на запросы с одного ip и подобные вещи - серьёзный DDoS пержить не поможет, а массу проблем от школохакеров снимет. С учётом того, что их большинство, весьма разумная вещь. Smile

6 октября 2013 в 22:25

"RxB" wrote:
Один путает серверное ПО с защитой семёрки от брута.

В том посте речь как раз про сам друпал, а именно о том, что защита от брута в нем уже есть и изобретать её не нужно.

6 октября 2013 в 23:06

Многие рекомендуют отключать "потенциально опасные" функции 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

Как думаете, стоит ли что-то убрать или наоборот добавить?

8 октября 2013 в 21:51

"misterpronin" wrote:
curl_exec, curl_multi_exec

Это выполнение запросов curl, их часто по ошибке запрещают. Их в этом списке быть не должно, как и некоторых других...
А части функций не хватает.
Там где вычитали это, больше не читайте. Smile

Лучше почитайте внимательно описание этих функций. И поймите, что всю информацию надо фильтровать и разбераться, что и зачем делается.

9 октября 2013 в 20:49

Пожалуй не стану, но вместо этого посоветую - посмотрите документацию по функциям php, и напишите свой.
Это будет куда полезнее. А потом, можем его обсудить.

Пока вы хватаете по верхам, и пользуетесь чужими howto, не понимая, что делаете, вы заниматесь не тем.

13 октября 2013 в 0:35

Мне нужно типовое решение, т.к. я хочу заниматься именно своим сайтом, который уже на vds, а тратить много времени на изучение настроек сервера и жалко и не охота, т.к. нет большого интереса и основная цель заключается именно в разработке-доработке сайта. Такие у меня приоритеты.

13 октября 2013 в 14:07

Тогда вы просто берётесь не за своё дело, и нормально с таким подходом ничего настроить не получится.
Тем более, что вам как разработчику, уж покопаться в документации PHP сам бог велел.

14 октября 2013 в 11:41

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

14 октября 2013 в 13:00

"Artu" wrote:
Человек нужно типовое решение

это шаред
"Artu" wrote:
Это форум.

пилять незаметно
"misterpronin" wrote:

пробуй ISP, webmin etc., читай какие они генерят конфиги,
положи интересующие каталоги в гит - наглядней некуда будет.
пройдись нмапом по своим адресам - увидишь, что и как открыто
определись с системой бекапов

14 октября 2013 в 21:29

"Artu" wrote:
Человек нужно типовое решение и его оценка. Это форум.
Не все сайты "военные".

Для невоенных сайтов на эти надстройки можно и забить, основные же(критичные, представляющие из себя откровенную дыру) можно лицезреть в .htaccess самого друпа, что особенно актуально, если не используете апач, либо апач игнорит .htaccess, однако, если пых настроен откровенно криво, друпал уже сам начинает громко матюкаться.

А вот коли сайт военный, то тут типовых решений быть не может.

14 октября 2013 в 21:45

"Artu" wrote:

Да так не просто покопаться, а попробовать каждую функции на практике нужно на пример проникновения.

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

"Artu" wrote:

С таким подходом ничего и спросить нельзя.

Можно, но не стоит ждать, что на форуме всё сделают за вас, или вложат вам в голову всевозможные знания, без малейшего усилия с вашей стороны.

"Artu" wrote:

Человек нужно типовое решение и его оценка. Это форум.
Не все сайты "военные".

Похоже, что данному человеку оно не сильно нужно. С таким подходом ему нужен, или админ, или шаред хостинг.
Не разобравшись, и тупо воспользовавшись несколькими howto найденными в инете(в большинстве из которых, ктати, немало бреда), не понимая, что и зачем и для какого случая описано, нормально не настроить сервер.
Соответственно разжёвывать всё тому, кто не хочет потрудиться хоть что-то сделать сам, мало кто потрудится.
Будет скорее всего даже хуже, чем если просто поставить тупо панельку - там будут более-менее общие, не оптимальные, не сильно безопасные, но хотя бы корректные настройки.

16 октября 2013 в 4:02

я бы посоветовал, и здесь это уже прозвучало, решать проблемы по мере их поступления, и бекапы бекапы бекапы ... тупо но эффективно и дешево.

16 октября 2013 в 21:09

"Pilotsamoleta" wrote:
я бы посоветовал, и здесь это уже прозвучало, решать проблемы по мере их поступления, и бекапы бекапы бекапы ... тупо но эффективно и дешево.

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

16 октября 2013 в 23:11