Шпаргалка - настройка SFTP + CHROOT в FreeBSD

Входные данные

Пользователь: ivanov
Домашняя директория: /home/ivanov

Пользователь-администратор: adm
Домашняя директория: /home/adm

Задачи

  • предоставить ограниченный домашней директорией доступ по SFTP. Для созданных файлов и директорий должны быть определены следующие права соответственно rw–rw— и rwx-rwx—
  • дать sftp-доступ пользователю-адинистратору adm к домашнему каталогу пользователя ivanov

Решение

Добавим следующие строки в /etc/ssh/sshd_config

Subsystem sftp internal-sftp

## admin
Match User adm
  ChrootDirectory %h
  ForceCommand internal-sftp -u 0007
        
## user  
Match User ivanov
  ChrootDirectory %h
  ForceCommand internal-sftp -u 0007

Назначим корректные права для домашней директории (туда будет выполняться chroot)

chmod 750 /home/adm
chown root /home/adm
chmod 750 /home/ivanov
chown root /home/ivanov

Запуск службы

echo 'sshd_enable="YES"' >> /etc/rc.conf
service sshd start

Для доступа к файлам воспользуйтесь программой WinSCP

Настроим доступ для adm

Выполним монтирование с ключом –bind домашних каталогов пользователей в домашний каталог пользователю-адинистратора.

Добавим в /etc/fstab

## bind mounts
/home/ivanov	/home/adm/ivanov	none	defaults,bind,auto	0	0

Выполним

sudo -u adm mkdir /home/adm/ivanov/
mount /home/adm/ivanov/
chsh -s /sbin/nologin adm

FreeBSD - чтение логов в броузере средствами log.io

Появилась задача - дать доступ для чтения логов (журналов системы) для субъекта, при этом максимально ограничив его полномочия в системе. Сначала думал дать доступ по SSH и вместо bash при авторизации запускать простое приложение на Pytnon, использовав библиотеку xmenu.
Но потом наткнулся на клиент-серверное приложение log.io, написанное на node.js, позволяющее читать произвольные логи в вашем броузере в режиме реального времени. По этой ссылке можно попробовать log.io в работе - выглядит здорово и удобно.

Установка log.io

portmaster www/npm
npm install -g node-gyp
npm install -g log.io

Настройка log.io

Требования следующие:

  • возможность читать логи ISPmanager, BILLmanager
  • для чтения логов требуется аутентификация пользователя

Шпаргалка - настройка iSCSI initiator для FreeBSD/CentOS

В локальной сети установлен и настроен FreeNAS + iSCSI server
Протокол iSCSI обеспечивает функционал устройств SAN (Storage Attach Network) - позволяет импортировать блочные устройства по TCP/IP протоколам. На узлах требуется установить iSCSI initiator (это клиент) и импортировать разрешённые дисковые блочные устройства для нужд резервного копирования.

iscsi initiator для CentOS

Установка, настройка автозапуска iscsi initiator

yum install iscsi-initiator-utils.x86_64
service iscsi start
chkconfig iscsi on
chkconfig iscsid off

FreeBSD - антивирусная проверка в apache средствами Clamav

Проверка http-трафика выполняется благодаря модулю mod_clamav, который является модулем Apache. Мне удалось настроить проверку на вирусы только исходящего http-трафика, входящий трафик, как указано в статье (см. Ссылки) «в данный момент находится в разработке.»
В результате мы получим веб-сервер, который будет ограничивать доступ до вредоносных файлов, и не даст пользователю выполнить запрос, затрагивающий вредоносные файлы.

FreeBSD - принудительное завершение "мёртвых" запросов в MySQL

На «шейред» хостинге может возникнуть проблема с «висящими» процессами запросов юзеров в базах MySQL.
Рецепт - установить перловый скрипт mysql-genocide, который умеет принудительно закрывать mysql-процессы по заданному условию, например, если запрос «висит» уже час.
Это решение, конечно, не является изящным, но, т.к. хостинг у нас «для всех», и не понятно что, вообще у клиентов происходит на их сайтах, я остановлюсь на этом решении.

Установка mysql-genocide

portmaster databases/p5-mysql-genocide

Настройка mysql-genocide

Я настроил следующую задачу в крон:

*     *       *       *       *       /usr/local/bin/mysql-genocide --user=root --password=PASSWORD --selects-only --min-time=300 --kill

Результат

Таким образом, раз в минуту скрипт mysql-genocide завершает все запросы «SELECT *», которые выполняются дольше 5 минут.

 
blog.txt · Последние изменения: 2013/01/23 14:51 — Антон Бугреев · []