Мониторинг состояния Asterisk с помощью MonAst.
Совсем недавно заглючил некий скрипт на пыхе. Скрипт был покупной, именно поэтому я решил не разбираться с ним, а напрямую обратиться в саппорт продавца для выяснения проблемы. Саппорт ответил коротко: нужен доступ к FTP - будем посмотреть. И вот тут я завис на пол минуты…
Ведь фтп на моём Кенте не установлен, потому как работаю то я под SSH. Да ещё и авторизируюсь не под паролем, а под сертификатом . Не могу же я просто так взять, и дать SSH-ключ, под которым потом можно будет входить на сервер постоянно. Да и даже если включить временно вход по паролю, зачем саппорту конкретного скрипта под конкретную кмс видеть весь мой сервер и то, что на нём расположено?
Ну, думаю, как раз для таких особых случаев нужно фтпишечку то и поднять.
К счастью, на деле оказалось всё довольно быстро и просто, и даже с выбором определился в раз - «vsftpd» (Very Secure FTP Daemon). Быстрый. Секурный. Кросплатформенный. Лёгок как в установке, так и в настройке. Иными словами - один из лучших FTP-серверов.
Устанавливаем & настраиваем vsftpd
$ yum install vsftpdПосле чего правим главный конфигурационный файл, в котором нужно:
- Изолировать пользователей в их домашней директории.
- Запретить анонимный доступ.
1
2 | chroot_local_user=YES
anonymous_enable=NO |
Настраиваем пользователей vsftpd
Здесь важно понять один очень интересный момент: лишних FTP-пользователей добавлять не нужно, они уже есть. А добавлялись пользователи именно тогда, когда мы при установке AMP на CentOS. Иными словами - пользователь уже имеет полный доступ на его домашний каталог , остаётся лишь подредактировать его для возможности авторизации под vsftpd.
Например, нам нужен FTP-доступ к директории /var/www/vhosts/сайт на сервере, владельцем которой является пользователь almostover . Делаем следующее:
- Смотрим список пользователей и меняем стандартную домашнюю директорию на нужную нам.
- Задаём пользователю пароль для FTP-логина.
Назначаем домашнюю директорию
$ nano /etc/passwd 1
2 | -almostover:x:500:500::/home/almostover:/bin/bash
+almostover:x:500:500::/var/www/vhosts/сайт:/sbin/nologin |
Также следует заменить /bin/bash на /sbin/nologin , для запрета на доступ пользователя к системе .
Задаём пользователю пароль
$ passwd almostoverЗапускаем vsftpd
И только после того, как будут произведены все вышеописанные настройки, запускаем сам FTP-сервер.
$ service vsftpd startИ если планируем пользоваться FTP-сервером на постоянной основе, не забываем добавить в автозагрузку.
$ chkconfig vsftpd onЗаключение о FTP-сервере
Пользоваться ли FTP на постоянной основе или нет, решать лично каждому.
С одной стороны, если Вы планируете работать с одним определённым каталогом (сайтом), тогда неплохим плюсом здесь будет то, что Вам не придётся постоянно chown -нить свежезакачанные файлы или директории. Все операции будут производиться от имени текущего пользователя и, соответственно, все права по-умолчанию будут назначаться ему.
С другой стороны, лично моя цель поднятия ФТП была озвучена в самом начале: когда нужно дать кому-то временный доступ к определённой изолированной директории на сервере/определённому сайту:
- Меняю пароль от выдаваемого логина.
- Запускаю vsftpd.
- Даю логин и пароль от FTP.
- Останавливаю vsftpd.
- Меняю пароль ещё раз от этого же логина (на случай, если в следующий раз будет выдан другой логин).
Никаких SSH.
Никаких лишних директорий.
Всё предельно разумно и максимально безопасно.