[Настройка] Безопасность сервера

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

Модератор: immortal

PAV
Сообщения: 968
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 71 раз
Поблагодарили: 95 раз

[Настройка] Безопасность сервера

Сообщение PAV » Пт апр 04, 2014 12:23 pm

Други, я когда проект поставил на Pi всем файлам поставил максимальные права, чтобы не иметь проблем при настройке.
Отсюда вопрос - когда я систему установлю в квартире, как мне ее защитить?
В смысле какие права каким файлам назначить, каким вообще запретить, какие пароли где прописать и прочее?
Будет доступ из инета - надо защищаться.
Поставлю цисковский свич гиговый и роутер, что там прописывать в смысле безопасности?
Кто это уже прошел - подскажите.

UPD:
Для .nix
1 - сменить порты SSH на нестандартные с 22 на 54343 например
2 - поставить программу fail2ban, которая блокирует особо борзых
3 - желательно доступ по VPN
Последний раз редактировалось PAV Пн окт 27, 2014 11:02 am, всего редактировалось 1 раз.
zlayaptichka
Сообщения: 33
Зарегистрирован: Вт апр 01, 2014 2:38 am
Благодарил (а): 1 раз
Поблагодарили: 6 раз
Контактная информация:

Re: Безопасность сервера

Сообщение zlayaptichka » Пт апр 04, 2014 1:35 pm

Для начала надо поставить пароль на вход через интернет:

Код: Выделить всё

pi@raspberrypi ~ $ tail /var/www/config.php

 //Define('ONEWIRE_SERVER', 'tcp://localhost:8234');    // 1-wire OWFS server

 Define('HOME_NETWORK', '192.168.1.*');                  // домашняя сеть (optional)
 Define('EXT_ACCESS_USERNAME', 'имя пользователя');                  // access details for external network (internet)
 Define('EXT_ACCESS_PASSWORD', 'пароль');

 //Define('DROPBOX_SHOPPING_LIST', 'c:/data/dropbox/list.txt');  // (Optional)

?>
Права файлам:

Код: Выделить всё

sudo chown -R www-data /var/www
sudo usermod -a -G audio www-data
Ещё я могу посоветовать подключить CloudFlare для DDoS-атак (или Cisco свитч для того же)

Запретить доступ к файлам конфигурации:

Код: Выделить всё

<FILES config.php>
deny from all
</FILES>

<FILES debmes.txt>
deny from all
</FILES>

<DIRECTORY debmes>
deny from all
</DIRECTORY>

<DIRECTORY cached>
deny from all
</DIRECTORY>

<DIRECTORY backup>
deny from all
</DIRECTORY>
 

Код: Выделить всё

location /config.php {
  deny all;
}

location /debmes.txt {
  deny all;
}

location /cached {
  deny all;
}

location /debmes {
  deny all;
}

location /backup {
  deny all;
}

 
(первый для апача, второй для nginx)
PAV
Сообщения: 968
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 71 раз
Поблагодарили: 95 раз

Re: Безопасность сервера

Сообщение PAV » Пт апр 04, 2014 4:29 pm

Пароль поставил, циску поставил, до остального не додумался
electric
Сообщения: 309
Зарегистрирован: Вт сен 17, 2013 10:11 pm
Благодарил (а): 3 раза
Поблагодарили: 56 раз

Re: Безопасность сервера

Сообщение electric » Пт апр 04, 2014 4:46 pm

PAV писал(а):Други, я когда проект поставил на Pi всем файлам поставил максимальные права, чтобы не иметь проблем при настройке.
Отсюда вопрос - когда я систему установлю в квартире, как мне ее защитить?
В смысле какие права каким файлам назначить, каким вообще запретить, какие пароли где прописать и прочее?
Будет доступ из инета - надо защищаться.
Поставлю цисковский свич гиговый и роутер, что там прописывать в смысле безопасности?
Кто это уже прошел - подскажите.
Запустить на том же RasPi OpenVPN-сервер или на роуетере.
И из любого инета на своем телефоне/планшете/ноуте/работе подключаться к своему VPN-серверу и работать...
Проверено - работает.
В идеале можно даже пробросить инет через VPN-сетку, чтобы для всяких бесплатных WiFi и сотовых операторов не палить свой трафик...
Было: Majordomo v.0.6.0.b на Cubietruck. OS Armbian с переносом на HDD
Стало: ioBroker на Cubietruck OS Armbian + ZigBee Xiaomi + OWFS + BLE.
PAV
Сообщения: 968
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 71 раз
Поблагодарили: 95 раз

Re: Безопасность сервера

Сообщение PAV » Пт апр 04, 2014 9:43 pm

Да я все понимаю, но что и как позакрывать в PI? Сейчас на все файлы стоят права 7777. Менять надо?
zlayaptichka
Сообщения: 33
Зарегистрирован: Вт апр 01, 2014 2:38 am
Благодарил (а): 1 раз
Поблагодарили: 6 раз
Контактная информация:

Re: Безопасность сервера

Сообщение zlayaptichka » Пт апр 04, 2014 11:05 pm

PAV писал(а):Да я все понимаю, но что и как позакрывать в PI? Сейчас на все файлы стоят права 7777. Менять надо?
Да, надо!
http://joomla-book.ru/blog/filesystem-p ... 777-is-bad
http://nodesquad.blogspot.ru/2011/01/666777.html
http://hosting101.ru/qa/68/10017

Исправить:

Код: Выделить всё

find /var/www/ -type f -exec chmod 0666 {} \;
find /var/www/ -type d -exec chmod 0777 {} \;
chown -R www-data:www-data /var/www/
Источник: http://smartliving.ru/Main/SetupLinux
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: Безопасность сервера

Сообщение Ivan » Сб апр 05, 2014 10:19 am

Я пытался на rapberry шаманить с правами. И запускать от www-data. Но со временем проявились некоторые баги:
1. Цикл правильно работает только от root. Если нет отваливается половина сервисов: Log, Ping, Voice, и другие связки с оборудованием. Их конечно можно все прописать и добавить в группу www-data - но это очень муторно. И иногда не знаешь куда копать пока не убьёшь кучу времени на 1 сервис.
2. Возникает проблема обновления. То есть при каждом обновлении отключается что-то. Долго боролся с этим, и обновлял прова после обновления. Но пришёл к выводу что во время самого обновления возникают куча ошибок что приводит к неправильному обновлению.
3. Получается нельзя иметь веб сервер с одними правами а цикл с другими

В итоге. Пришлось всё загнать под Root. ДА это неправильно и не безопастно. Я вообще считаю что лучше не открывать МД во внешнюю сетку. А если и очень хочется то VPN или Connect вам в помощь
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
PAV
Сообщения: 968
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 71 раз
Поблагодарили: 95 раз

Re: Безопасность сервера

Сообщение PAV » Сб апр 05, 2014 11:45 am

О, Ivan, если разбирались с правами, может поможете? http://smartliving.ru/forum/viewtopic.p ... 3&start=20
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: Безопасность сервера

Сообщение Ivan » Сб апр 05, 2014 12:00 pm

Смотрите:
От кого запущен цикл
Есть ли у этого юзера права на выполнение этой команды. Зачастую у юзера www-data нет прав на запуск команд консоли
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
PAV
Сообщения: 968
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 71 раз
Поблагодарили: 95 раз

Re: Безопасность сервера

Сообщение PAV » Пт окт 24, 2014 1:04 pm

Полез я сегодня логи смотреть и увидел вот такое:
Это что, кто-то ломануть пытается? Как бороться.
А главное, как научить МЖД сообщать о таких фактах?

Код: Выделить всё

ct 24 13:09:44 localhost sshd[20656]: PAM 4 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=222.186.50.229  user=root
Oct 24 13:09:44 localhost sshd[20656]: PAM service(sshd) ignoring max retries; 5 > 3
Oct 24 13:09:46 localhost sshd[20681]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=222.186.50.229  user=root
Oct 24 13:09:48 localhost sshd[20681]: Failed password for root from 222.186.50.229 port 3640 ssh2
Oct 24 13:09:50 localhost sshd[20681]: Failed password for root from 222.186.50.229 port 3640 ssh2
Oct 24 13:09:52 localhost sshd[20681]: Failed password for root from 222.186.50.229 port 3640 ssh2
Oct 24 13:09:54 localhost sshd[20681]: Failed password for root from 222.186.50.229 port 3640 ssh2
Oct 24 13:09:57 localhost sshd[20681]: Failed password for root from 222.186.50.229 port 3640 ssh2
Oct 24 13:09:57 localhost sshd[20681]: fatal: Read from socket failed: Connection reset by peer [preauth]
Oct 24 13:09:57 localhost sshd[20681]: PAM 4 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=222.186.50.229  user=root
Oct 24 13:09:57 localhost sshd[20681]: PAM service(sshd) ignoring max retries; 5 > 3
Oct 24 13:10:04 localhost sshd[20683]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=222.186.50.229  user=root
Oct 24 13:10:06 localhost sshd[20683]: Failed password for root from 222.186.50.229 port 3640 ssh2
Oct 24 13:10:10 localhost sshd[20683]: Failed password for root from 222.186.50.229 port 3640 ssh2
Oct 24 13:10:16 localhost sshd[20683]: Failed password for root from 222.186.50.229 port 3640 ssh2
Oct 24 13:10:25 localhost sshd[20683]: Failed password for root from 222.186.50.229 port 3640 ssh2
Oct 24 13:10:28 localhost sshd[20683]: Failed password for root from 222.186.50.229 port 3640 ssh2
Oct 24 13:10:29 localhost sshd[20683]: fatal: Read from socket failed: Connection reset by peer [preauth] 
Ответить