Простой сервер для команды веб-разработчиков. Часть 4

  1. Пользователи и SSH
  2. Веб-сервер с Apache 2, PHP 5.5, MySQL и настройка поддоменов в DNS
  3. Git-сервер, установка Composer и cron
  4. memcached и FTP-сервер

Заключительная часть цикла статей по установке и настройке простого сервера для команды веб-разработчиков. Давайте установим memcached и настроим FTP-сервер.

Memcached

apt-get install memcached php5-memcache
service apache2 restart

FTP

Установка

apt-get install proftpd

Настройка

Открываем конфигурационный файл /etc/proftpd/proftpd.conf в mcedit (или другом редакторе, например, nano):

mcedit /etc/proftpd/proftpd.conf

Настроить ProFTPD следует из собственных предпочтений, но я использовал чужую конфигурацию, почти не внося в неё изменения:

# Includes DSO modules
Include /etc/proftpd/modules.conf

UseIPv6 off # выключаем использование IP v6 за ненадобностью
ServerName "FTP server" # Любое имя для ftp-сервера
ServerType standalone
DeferWelcome off

RootLogin off # запрещаем подключать от пользователя root

# определять имя хоста клиента по IP адресу (желательно отключать для ускорения доступа)
UseReverseDNS off
# использование протокола ident (RFC 1413) для идентификации подслединившегося клиента;
# рекомендуется отключить, все равно этот протокол никто больше не использует;
# область действия - основной сервер, Global, VirtualHost
IdentLookups off

MultilineRFC2228 on
DefaultServer on
ShowSymlinks on

TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200

DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"

# Автоматическое удаление недогруженного файла.
DeleteAbortedStores off

# директория, на которую устанавливается сервер
# (сейчас указана домашняя директория подключенного пользователя)
DefaultRoot ~

# авторизовывать клиента, только если он имеет основной shell из списка /etc/shells;
RequireValidShell off

# Порт сервера
Port 21 # из соображений безопасности можете поставить любой незанятый

# максимальное число одновременно запускаемых процессов в режиме standalone
MaxInstances 30

# Пользователь и группа, от которого работает сервер
User proftpd
Group nogroup

# права, с которыми будут создаваться файлы и папки
Umask 022 022

# разрешить перезаписывать существующие файлы,
# область действия - server config, VirtualHost, Anonymous, Directory, Global, .ftpaccess
AllowOverwrite on

# обрабатывать ли файл /etc/ftpusers, в котором перечислены пользователи,
# которым нужно запретить доступ по ftp
UseFtpUsers on

TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log

QuotaEngine off

# Delay engine reduces impact of the so-called Timing Attack described in
# http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02
# It is on by default.

DelayEngine on

ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock

AdminControlsEngine off

Порт желательно сменить.

Перезапуск FTP сервера

service proftpd restart

Пользователь и FTP каталог

Ранее мы условились, что каталог /var/www/files.mysite.loc/ (а в нём подкаталог web для доступа через веб-сервер) предназначен для FTP. А ещё ранее решили, что пользователем FTP будет myftp. Если вышеуказанный каталог и FTP пользователь ещё не созданы, то давайте создадим.

adduser myftp
mkdir /var/www/files.mysite.loc/
mkdir /var/www/files.mysite.loc/web/

Напомню, что каталог /var/www/files.mysite.loc/ должен иметь права 777, root владельца и root группу:

cd /var/www/
chmod 777 files.mysite.loc/
chown root:root files.mysite.loc/

А вот подкаталог web пусть имеет права 755, но владельца и группу пользователя myftp:

cd /var/www/files.mysite.loc/
chmod 755 web/
chown myftp:myftp web/

Теперь установим каталог /var/www/files.mysite.loc домашним для пользователя myftp:

usermod -d /var/www/files.mysite.loc myftp

И запретим пользователю подключаться по SSH. Откроем /etc/passwd:

mcedit /etc/passwd

И найдём строку про пользователя myftp. В конце строки вместо оболочки по умолчанию установим /bin/false. Убедитесь, что в конце файла есть перенос строки (пустая строка). Получится, что-то вроде:

...
myftp:x:1004:1004:,,,:/var/www/files.mysite.loc:/bin/false

Запрет доступа к FTP другими пользователями

Другим пользователям следует отключить FTP доступ. Для этого откроем файл /etc/ftpusers и добавим имена этих пользователей (если они отсутствуют в нём). Один пользователь на строке.

Проверяем работоспособность.

Использованные материалы (полезные ссылки)

  1. http://wiki.firstvds.ru/index.php/Memcache
  2. http://saradmin.ru/?p=277

Комментарии

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *