Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Безопасность VDS, Сервера

Сейчас сервер на debian но вопрос в целом хостинг-серверов касается.

Есть несколько VDS на них сайты, на некоторых сайтах есть поддержка php и вынужденно стоят chmod 777 на некоторые папки. Сайты в целом заброшены, но то вирус какой-нить закинут, то скрипт спамеров и мне потом пишут что на вас жалобы с вашего сервера рассылают спам.
Азы работы в консоли есть, всякие php.ini под себя настраиваю, но в системном администрировании я в целом плаваю.

Вопросы:

1. Есть ли возможность для конкретного юзера/сайта оставить право исполнения всех скриптов что бы сайт работал но запретить заливку любых новых файлов или изменение текущих?
(ну понятно что права можно сменить для всех файлов, но если мне когда-то поменять что-то надо будет, опять обратно права менять? это неудобно)

2. Есть ли возможность составить белый список разрешённых форматов файлов на сервере? Например мне недавно залили файл defines.php.suspected что за suspected? Погуглил, но ничего прям толкового не нашёл, понятно что вирус какой-то наверное... Например я бы хотел оставить разрешёнными форматы html, php, xml, .htaccess, gif, jpg, png и всё.

3. Злоумышленнику что бы залить шелл обязательно нужен ФТП? Есть отключить ФТП юзеру злоумышленник не сможет на сайты юзера вредоносный код загрузить, или есть ещё какие-то альтернативные способы загрузки&

4. Логи. Это ваще для меня тема непонятная, какие логи надо вести что в них нужно искать если вот такая неприятность случилась. Можно ли как-то автоматизировать анализ логов и присылать уведомления какие ни будь на почту если в них обнаружено что-то необычное?

Заранее благодарю.
Извиняюсь перед модераторами если не в том разделе, долго выбирал ))
Ответ:
Сообщение от marrk
Куда именно копать? Где на сервере хранятся эти настройки ФТП (что бы я хоть погуглить о них мог)
В зависимости о того, какое ПО установлено.
Посмотреть можно так:
Код Bash
1
lsof -i :21
или
Код Bash
1
netstat -tulpan | grep :21
Скорее всего вы увидите там надпись proftpd или vsftpd или pure-ftpd.
Сообщение от marrk
Вопрос: а на подпапки действует? Типа: chattr +i www/site.ru/* Или для каждой отдельно команду надо давать?
Да, конечно.
Код Code
1
-R     Recursively change attributes of directories and their contents.
Сообщение от marrk
Где можно почитать для нубасов про взлом сервера. Начать хотя бы с того, как злоумышленник узнаёт есть вообще у этого пользователя SSH или нет?
Да никак он не узнает. Тупо брутит и все.
Смотрит nmap'ом/etc открытые порты сервера, и тупо по словарным паролям брутит пароль root от ssh.
Вопрос: Linux. Короткий вопрос

Добрый день!
Предисловие.

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

Вопрос:
У меня есть скрипт, возвращающий с помощью grep строку, наподобие "status=succeeded". Требуется исходя из статуса выполнять определенные действия (запуск утилиты с определенным параметром). Подскажите, как использовать строку в качестве параметра для цикла с условиями и динамически формировать текст строки для выполнения?
Ответ: baza906,
прошу закрыть тему, вопрос удалось выяснить быстрее, чем ожидалось
Вопрос: Пара вопросов по iptables.

Всем добра!

Помогите, пожалуйста, с iptables.

Я получаю такую ошибку:
автор
Call From debianSecond.debian.com/127.0.1.1 to localhost:45365 failed on connection exception: java.net.ConnectException: Connection refused


Особенность в том, что это пишет логгер на debianSecond. То есть, если верить этому сообщению он не может присоединиться сам к себе.

Вопросы:

1) Работает ли iptables для случая, когда приложение коннектиться на тот же хост, где оно находится - через его полный сетевой адрес, или через localhost, или через 127.0.0.1 ?

2) Как мне открыть все порты моего хоста для определенного другого хоста? У меня есть кластер и я хочу чтобы для нод кластера не было ограничений на любые соединения. Либо открыть диапазон портов.

3) Я пытался открыть порты в iptables такой командой:
sudo iptables -A INPUT -p tcp --dport 5432 -j ACCEPT
Однако теперь iptables -L выдает мне
автор
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:postgresql
ACCEPT tcp -- anywhere anywhere tcp dpt:postgresql
ACCEPT tcp -- anywhere anywhere tcp dpt:postgresql


А где мой 5432 порт?
При чем тут postgresql?
Почему одинаковые строчки?

Debian Wheezy. Спасибо за внимание.
Ответ:
Dymytry
Вопросы:

1) Работает ли iptables для случая, когда приложение коннектиться на тот же хост, где оно находится - через его полный сетевой адрес, или через localhost, или через 127.0.0.1 ?

2) Как мне открыть все порты моего хоста для определенного другого хоста? У меня есть кластер и я хочу чтобы для нод кластера не было ограничений на любые соединения. Либо открыть диапазон портов.

3) Я пытался открыть порты в iptables такой командой:


1. -A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT

2. -A INPUT -s 12.34.56.78 -j ACCEPT
-A OUTPUT -d 12.34.56.78 -j ACCEPT

3. -A INPUT -p tcp -m multiport --sport 123,456 -j ACCEPT
-A OUTPUT -j ACCEPT
Вопрос: Принципы безопасности ПО в Linux

Доброго времени суток уважаемые!

Недавно задался себе вопросом в о принципах работы схем защиты и безопасности в Linux, и не имея возможности ответить на него самостоятельно, решил переадресовать его экспертам.

Я думаю, ни для кого не секрет, что в нынешнее время, существуют низкоуровневые вирусы (и еже с ними), пытающиеся работать в обход API операционной системы, по крайней мере, для Windows. Их суть заключается в том, что они пытаются работать в обход операционной системы, не используя её родные API, подключаясь, например, напрямую к сетевой карте, с целью отправить какие-то данные, собранные ранее с жесткого диска, опять таки, игнорируя права на файлы и т.д. Я думаю, ни для кого не секрет, что например, права файловой системой поддерживаются только на уровне самой ОС, и при при загрузке в другой ОС, с эти файлами легко сделать, всё что угодно, в обход прав.

Лично я тут вижу два основных варианта защиты:
1. Шифровать файловую систему, что бы вирусы в обход ядра не могли к ней общаться, или при обращении получали порцию криптозащиты
2. Запускать такие программы в "песочнице", эмулируя в ней все основные устройства, вплоть до процессора (аля, виртуальная машина).

Собственно, вопрос. Как Linux борется с подобным поведением? Есть ли какие-то механизмы защиты от низкоуровневого доступа к устройствам, в обход контролирующего субъекта (ядра ОС)? Или, возможно, на уровне самих устройств или ОС, есть какие-то блокировки оборудования, препятствующие подобному поведению?

P.S. Прежде всего, интересует вопрос касательно Linux'ов, так как с ними мне приходится работать чаще всего. Но так же, интересует аналогичный вопрос касательно FreeBSD и других ОС.
Ответ: Убежденный, спасибо, всё очень доходчиво! В принципе, всё что я хотел узнать и уяснить для себя - я узнал.

Я стараюсь не допускать на рабочие машины ни какой-либо посторонний "код", ни вообще пользователей со стороны, и действовать в рамках политики "всё, что не разрешено - запрещено". Но иногда бывает, что пользователей туда запустить всё-таки приходится (ну вот нужно им обязательно, свои файлы лично администрировать, иногда). И в итоге мне не хотелось бы в один прекрасный день столкнутся с такой ситуацией, как "пользователь случайно загрузил в систему своё ядро, которое работает параллельно основному" (образно выражаясь). Но, раз такие ситуации в принципе, исключены - я могу спать если не спокойно, то по крайней мере, с большим спокойствием.

Спасибо!
Вопрос: Пара базовых вопросов по сетям в Linux + VirtualBox

Всем привет! Прошу помочь. Сорри что вопросы неинтересные, наверное, просто в Linux плохо разбираюсь :/

Я настраиваю виртуальную сеть. У меня есть 3 VirtualBox с Debian внутри Windows host. Использую NAT + Virtual Host-Only Adapter на всех. Все пингуется.

Однако я не понимаю несколько вещей.

1) Когда я делал 2ю и 3ю виртуалки я их клонировал. В итоге когда я вызываю uname -a или hostname у меня там имя первой виртуалки. Как это поменять? На что это влияет?

2) Я хочу обращаться к нодам по имени хоста. Что мне для этого нужно сделать? Я прописал такую штуку в /etc/hosts:
192.168.137.13   debianThird.debian.com debianThird
..и теперь могу пинговать debianThird. Однако команда
host debianThird
его не резолвит:
error
;; connection timed out; no servers could be reached


Что не так? В чем различие между ping <someHost> и host <someHost>?

3) Мой Virtual Host-Only Adapter имеет свой адрес: 192.168.137.1. Этот же адрес я присвоил gateway в /etc/network/interfaces и nameserver в /etc/resolv.conf. Это верно?
Ответ:
Dymytry
Но имя хоста-то у меня одно из-за копи-паста виртуалок.
Для ДНС не имеет значения. Только не оставляйте бардак в /etc/hosts
Вопрос: Вопрос по cron

У меня вот вопрос, почему скрипт который помещен в /etc/cron.daily/ не выполняется ровно в 00:00:00 а может выполнится то в 03:44:00 то в 03:50:00 где поправить ?
Ответ: оказывается вот оно че, /etc/cron.daily запускается по anacrontab )))
Вопрос: Cоздание сервера на Centos 6.4 есть вопросы

просмотрел вот этот урок

и две последущие частию вообщем понятно только вопрос

как добавить phpMyAdmin и cPanel?
Ответ:
bga83
и еще что за железо? и почему выбрана имеено столь старая версия Centos, неужели нужна именно она а не актуальная версия?


Что дали то и грызу!
Вопрос: Вопрос новичка о файловой системе.

Решил для саморазвития поиграться с Юниксом и на виртуальную машину запилил себе Ubuntu Server. Малость почитав о разбивке диска при установке организовал 20 гб следуюшим образом:


Теперь сам вопрос:
Поскольку у автора (меня) Windows головного мозга, то я никак не могу привыкнуть к системе разбивки юниксовых и в итоге долго втыкал на то, что после разбивки я вижу все разделы, под которые разбивал диск (/home /tmp /boot) в одном дереве.


Как я понял вся эта разбивка лишь пилит части места на харде под различные файловые системы и задачи ( к примеру я задал на /home 5 гб места и больше туда впихнуть я не смогу), но все они будут видны для su в одном дереве и все свободно удаляются кривыми руками (тот же boot). Правильно ли я понял все это?
Ответ:

Может поведаете, как скорость зависит от фс? И какова разница в скорости между фс?
Вопрос: Возможно ли такое в Nginx ??? (тупой вопрос)

Вопрос ламерский.

Возможно ли настроить Nginx следующим образом:

При отправке браузером клиента запроса с адресом, мой сервер сразу пытается открыть статический html файл, а если его не находит, то передает этот адрес на обработку php ??

НАПРИМЕР:

1. Человек заходит со своего компьютера на мой сайт по адресу httр://www.mysite.ru/some-article.html
2. После получения этого адреса мой сервер пытается отдать клиенту реальный физический файл some-article.html который расположен скажем в папке /home/mysite.ru/www/.
3. В случае если сервер такого файла не находит, то он передает адрес на обработку для генерации PHP страницы. То есть если файла some-article.html не существует, то Nginx превращает этот адрес в адрес вида: httр://www.mуsite.ru/article-view.рhp?title=some-article и клиенту отдается страница сгенерированная PHP ?
Ответ: Друзья! Огромное спасибо за наводку !
Попробовал сделать, но не получилось.
Подскажите, в чем ошибка ?

Код:

try_files $uri @rewrite;

location @rewrite {
rewrite ^/(.*).html$ /article-view.php?title=$1;
}

location ~ \.php$ {
root /home/mysite.ru/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/mysite.ru/www$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}

В браузере существующий статический файл httр://www.mysite.ru/some-article.html открывается !
Если ввести в браузере адрес httр://www.mуsite.ru/article-view.рhp?title=some-article открывается PHP файл как нужно.

НО если ввести адрес на который нет статического файла, выдает ошибку 404, хотя nginx должен преобразовать адрес для php.

Пожалуйста помогите.
Вопрос: Вопрос по pfsense

Присматриваюсь к этому межсетевому экрану в качестве замены TMG.
Вопросы :
1) Можно ли к нему прикрутить авторизацию пользователей по группам AD (к примеру в правилах разрешать доступ к определенным ресурсам определенной группе AD)? Если да, то насколько это сложно для новичков в .nix?
2) Подскажите литературку серьёзную по нему в свободном доступе)

Пока что нашёл авторизацию пользователей AD через radius на captive portal, но это вроде не совсем то)
Ответ: Решено : нужно в правиле разрешить повсюду, кроме алиаса из остальных подсетей. Очень изящно!