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

Аватар пользователя misterpronin misterpronin 12 сентября 2013 в 22:30

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

0 Thanks

Комментарии

Аватар пользователя Pilotsamoleta Pilotsamoleta 12 сентября 2013 в 23:06

надо почитать вики для isp, правда я сам не читал, просто придумал очень длинный и сложный пароль.

Аватар пользователя sg85 sg85 13 сентября 2013 в 1:25

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

Аватар пользователя misterpronin misterpronin 10 ноября 2015 в 11:49

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

Аватар пользователя Plazik Plazik 13 сентября 2013 в 18:34

Поменяйте порт у ssh. Заливайте файлы по sftp (авторзация по ключам), ftp отключите вообще.

Аватар пользователя Pilotsamoleta Pilotsamoleta 13 сентября 2013 в 23:38

а разве через isp не надежно? по идее разработчик хороший и защита наверняка постоянно мониторится.

Аватар пользователя sg85 sg85 14 сентября 2013 в 10:14
"Pilotsamoleta" wrote:

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

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

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

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

Аватар пользователя MainVisor MainVisor 14 сентября 2013 в 16:04

Ставить вручную LAMP и настраивать iptables.

Остальное отрубать всё нафиг, в том числе ftp, phpmyadmin...

Аватар пользователя misterpronin misterpronin 15 сентября 2013 в 21:37

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

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

Аватар пользователя Pilotsamoleta Pilotsamoleta 16 сентября 2013 в 17:03

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

Аватар пользователя misterpronin misterpronin 16 сентября 2013 в 17:41
"Pilotsamoleta" wrote:

Все просто без заморочек.

А какая посещаемость у сайта(-ов), если не секрет? Просто интересно...

Аватар пользователя Pilotsamoleta Pilotsamoleta 16 сентября 2013 в 20:16

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

Аватар пользователя sg85 sg85 16 сентября 2013 в 22:27
"Pilotsamoleta" wrote:

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

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

Аватар пользователя Pilotsamoleta Pilotsamoleta 16 сентября 2013 в 22:49
"sg85" wrote:

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

Аватар пользователя misterpronin misterpronin 17 сентября 2013 в 0:17
"Pilotsamoleta" wrote:

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

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

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

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

Аватар пользователя misterpronin misterpronin 17 сентября 2013 в 6:55
"sg85" wrote:

Я тоже раньше думал, что ломать соц сети смысла никакого...

И что в итоге?..

Аватар пользователя Pilotsamoleta Pilotsamoleta 17 сентября 2013 в 15:50

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

Аватар пользователя misterpronin misterpronin 17 сентября 2013 в 16:16

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

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

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

Аватар пользователя multpix multpix 17 сентября 2013 в 17:27
"misterpronin" wrote:

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

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

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

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

Аватар пользователя Lizergin Lizergin 17 сентября 2013 в 17:40

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

"multpix" wrote:

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

Аватар пользователя sg85 sg85 17 сентября 2013 в 18:31

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

Аватар пользователя sg85 sg85 17 сентября 2013 в 18:36

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

Аватар пользователя MainVisor MainVisor 18 сентября 2013 в 0:00

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

Аватар пользователя misterpronin misterpronin 18 сентября 2013 в 16:54
"MainVisor" wrote:

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

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

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

Аватар пользователя sg85 sg85 19 сентября 2013 в 0:33
"MainVisor" wrote:

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

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

Аватар пользователя misterpronin misterpronin 21 сентября 2013 в 21:20

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

Аватар пользователя drupby drupby 21 сентября 2013 в 22:25
"sg85" wrote:

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

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

Аватар пользователя sg85 sg85 22 сентября 2013 в 1:02
"drupby" wrote:

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

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

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 6 октября 2013 в 18:14
"sg85" wrote:

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

"misterpronin" wrote:

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

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

Аватар пользователя bsyomov bsyomov 6 октября 2013 в 22:25

Чтобы нормально защищать сервер, надо хорошо разбераться в администрировании. Это огромная куча знаний, не связанных напрямую с разработкой. И научиться этому куда сложнее, чем например научиться писать на 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 пержить не поможет, а массу проблем от школохакеров снимет. С учётом того, что их большинство, весьма разумная вещь. =)

Аватар пользователя sg85 sg85 6 октября 2013 в 23:06
"RxB" wrote:

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

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

Аватар пользователя misterpronin misterpronin 8 октября 2013 в 21:51

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

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

Аватар пользователя bsyomov bsyomov 9 октября 2013 в 20:49
"misterpronin" wrote:

curl_exec, curl_multi_exec

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

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

Аватар пользователя bsyomov bsyomov 13 октября 2013 в 0:35

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

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

Аватар пользователя misterpronin misterpronin 13 октября 2013 в 14:07

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

Аватар пользователя bsyomov bsyomov 14 октября 2013 в 11:41

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

Аватар пользователя Artu Artu 14 октября 2013 в 13:00

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

Аватар пользователя multpix multpix 14 октября 2013 в 21:29
"Artu" wrote:

Человек нужно типовое решение

это шаред

"Artu" wrote:

Это форум.

пилять незаметно

"misterpronin" wrote:

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

Аватар пользователя sg85 sg85 14 октября 2013 в 21:45
"Artu" wrote:

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

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

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

Аватар пользователя bsyomov bsyomov 16 октября 2013 в 4:02
"Artu" wrote:

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

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

"Artu" wrote:

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

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

"Artu" wrote:

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

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

Аватар пользователя Pilotsamoleta Pilotsamoleta 16 октября 2013 в 21:09

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

Аватар пользователя sg85 sg85 16 октября 2013 в 23:11
"Pilotsamoleta" wrote:

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

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