Linux за българи: Форуми

Сигурност => Системна Сигурност => Темата е започната от: xaxaxabew в Jan 10, 2011, 14:15



Титла: Security на CentOS
Публикувано от: xaxaxabew в Jan 10, 2011, 14:15
Здравейте,
Държа си едно УЕБ сървърче с CentOS.
Днес ми казаха, че можело да се изпълняват команди чрез php shell и да се взима root достъп до сървъра, като това става през директориите на съответните потребители(домейни)(домейните се хостват в /home/името на домейна/името на домейна).
Та как да постигна максимално добра защита срещу хакерчета ?
За начало пуснах safe_mode и зададох на php
disable_functions = shell_exec,system,proc_open
 ???


Титла: Re: Security на CentOS
Публикувано от: neter в Jan 10, 2011, 14:25
Размишления по въпроса тук ($2) и тук ($2) ;)


Титла: Re: Security на CentOS
Публикувано от: xaxaxabew в Jan 10, 2011, 16:54
Прочетох и на двете места.
Проблема е, че ползвам kloxo, а на него не мога да пусна chroot jail.
Има възможност да пусна suphp, но дали то ще помогне ?


Титла: Re: Security на CentOS
Публикувано от: sickmind в Jan 10, 2011, 16:57
Решението мисля, че е SELinux, който до колкото помня под CentOS върви по подразбиране ;)


Титла: Re: Security на CentOS
Публикувано от: xaxaxabew в Jan 10, 2011, 17:23
SELinux не беше пуснат.
Пуснах го със следните параметри

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#   enforcing - SELinux security policy is enforced.
#   permissive - SELinux prints warnings instead of enforcing.
#   disabled - SELinux is fully disabled.
SELINUX=enforcing
# SELINUXTYPE= type of policy in use. Possible values are:
#   targeted - Only targeted network daemons are protected.
#   strict - Full SELinux protection.
SELINUXTYPE=strict 

# SETLOCALDEFS= Check local definition changes
SETLOCALDEFS=0

Дали ще ми създаде някакъв проблем ?
Как мога да тествам в случая дали е помогнал като защита ?
Да изпробвам ли варианта със suphp ?


Титла: Re: Security на CentOS
Публикувано от: n00b в Jan 10, 2011, 18:03
пусни fastcgi и нагласи потребителите...


Титла: Re: Security на CentOS
Публикувано от: xaxaxabew в Jan 10, 2011, 19:18
kloxo няма да работи с fastcgi.
Може да работи с mod_php или с suphp, затова се чудех за suphp-то.
Моля Ви, посъветвайте ме какво да правя.


Титла: Re: Security на CentOS
Публикувано от: dakev в Jan 10, 2011, 20:26
Ако достъпа на потребителите до сървъра е през ftp, просто опиши самите потребители в /etc/ftpchroot за да ги заключиш в тяхната домашна директория, другото нещо, ако за потребителите не е нужно да ползват ssh лоджин:
# chsh -s /sbin/nologin {потребител}   :)


Титла: Re: Security на CentOS
Публикувано от: xaxaxabew в Jan 10, 2011, 20:50
Достъпа на потребителите е чрез ftp, но chroot-ването му като цяло не ми върши много работа, защото те пак могат да си качат някой linux shell като php script и да изпълняват команди на сървъра.
Иначе това за ftp-то ще видя дали мога да го направя.


Титла: Re: Security на CentOS
Публикувано от: gat3way в Jan 10, 2011, 21:23
Команди на сървъра няма да могат да изпълняват, защото няма как да ги извикат от chroot-натата среда.

Обаче пак не е сигурно. Това не пречи евентуално да се качи някакъв компилиран kernel експлойт и да се изпълни, макар и в зависимост от ситуацията да е трудно при положение, че няма /proc/kallsyms примерно, но все пак - не е невъзможно. Когато си root е тривиално да се излезе от chroot-натата среда, тя не е правена с идеята това което е затворено вътре да има суперпотребителски права.



Титла: Re: Security на CentOS
Публикувано от: xaxaxabew в Jan 11, 2011, 13:39
И в крайна сметка какво да предприема като защита.
Пробвал съм да заключа с chroot директориите, но kloxo се срива от тази работа.
Остана ми само да пусна suphp, но дали ще върши работа не казахте :o


Титла: Re: Security на CentOS
Публикувано от: vstoykov в Jan 11, 2011, 17:02
Задължително е да се ползва suphp, защото иначе нещата не работят както трябва (много е важно всеки потребител да има право за писане само в собствената си директория; ако няма suphp скриптовете на php се стартират като потребител apache и всеки потребител може да пише по директориите на всеки друг потребител; ако обаче потребителят apache няма права за писане много приложения няма да работят).

След инсталацията на suphp когато потребителите стартират php shell ще могат да изпълняват команди, но като съответния потребител (защото php скриптовете ще се изпълняват от съответния потребител, а не от потребителя apache).

Напълно е възможно в този случай потребителят да си инсталира php shell, да свали някой exploit и да го стартира.

Да се забранява стартиране на програми от PHP и Perl може да не е решение, защото някои приложения го изискват и ще спрат да работят. Ако обаче приложенията със сигурност няма да изискват такива неща може да забраниш Perl (не знам как става) и съответните функции на PHP.


Титла: Re: Security на CentOS
Публикувано от: xaxaxabew в Jan 11, 2011, 19:16
Благодаря много за съвета :)
При първа възможност пускам suphp