# Установка FTP-сервера

<figure><img src="https://1083642673-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV74PkAtN2kO6QcoaSgpR%2Fuploads%2FogMAUWEg0ROjnwlWB6rD%2FFTP-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80.png?alt=media&#x26;token=1465b7cc-6416-4952-8576-38ffc8e4ed34" alt=""><figcaption></figcaption></figure>

#### Загрузка ProFTPD: <a href="#zagruzka-proftpd" id="zagruzka-proftpd"></a>

Системы Debian/Ubuntu:

```
apt-get install proftpd
```

CentOS:

```
yum install epel-release
yum install proftpd
```

Если сервер не запустился автоматически, используйте команду для запуска вручную:

```
service proftpd start
```

#### Ограничение FTP-пользователей пределами домашнего каталога. <a href="#ogranichenie-ftp-polzovatelei-predelami-domashnego-kataloga" id="ogranichenie-ftp-polzovatelei-predelami-domashnego-kataloga"></a>

Данная статья подразумевает работу конфигурацией **ProFTPD** "по умолчанию", а в этом случае **пользователь может выходить за пределы своего домашнего каталога** и, хотя прав на работу с другими папками у него, скорее всего, нет, но при недостаточно строгой конфигурации сервера это может быть угрозой безопасности. Решить эту проблему можно добавив одну строку в файл **proftpd.conf**:

```
DefaultRoot ~
```

Добавить ее можно в конец файла. После сохранения перезапустите **FTP-сервер**:

```
service proftpd restart
```

#### **Расположение** proftpd.conf: <a href="#raspolozhenie-proftpd.conf" id="raspolozhenie-proftpd.conf"></a>

**Файл настроек proftpd.conf может располагаться в разных местах**, в зависимости от Вашей версии ОС:

{% hint style="warning" %}
**Ubuntu**: /etc/proftpd.conf

**Debian**: /etc/proftpd/proftpd.conf

**CentOS**: /etc/proftpd.conf
{% endhint %}

#### Создание нового FTP-пользователя: <a href="#sozdanie-novogo-ftp-polzovatelya" id="sozdanie-novogo-ftp-polzovatelya"></a>

Простым **FTP-пользователям** нет необходимости иметь доступ к командной оболочке. Перед тем, как приступите к созданию новых пользователей, выполните команду:

```
echo '/bin/false' >> /etc/shells
```

Создайте **нового пользователя**:

```
useradd имя_пользователя -d /home/имя_папки -m -s /bin/false
passwd имя_пользователя
```

Командами выше мы создали пользователя (**имя\_пользователя** нужно заменить на **незанятое имя**) и соответствующую группу, назначили и создали (**ключ -m** можно опустить, если каталог уже существует) домашний каталог **/home/имя\_папки**, а также выбрали **/bin/false** в качестве командной оболочки пользователя, тем самым отключив ее в целях безопасности. Командой **passwd** мы создали пользователю **необходимый пароль**.

{% hint style="info" %}
В большинстве случаев, на данном этапе Вы уже можете подключаться с созданным пользователем к FTP-серверу, который по умолчанию работает на порте **21**.
{% endhint %}

#### Дополнительная информация: <a href="#dopolnitelnaya-informaciya" id="dopolnitelnaya-informaciya"></a>

**Доступ к командной оболочке (shell)**

Если Вы все-таки хотите **предоставлять пользователю доступ к командной оболочке**, то необходимо указать путь до любой действующей, вместо **/bin/false**, например:

```
/bin/sh
```

или же:

```
/bin/bash
```

Пользователям обычного протокола **FTP** не нужен доступ к **shell**, поэтому, будет безопаснее его не предоставлять.

**Ограничение прав FTP-пользователя:**

При необходимости **Вы можете закрыть права на запись** для пользователя, например, в домашнюю директорию, и оставить их только для какой-нибудь внутренней папки, например **upload**.

От имени **суперпользователя** измените права:

```
chmod 555 /home/имя_папки
mkdir /home/имя_папки/upload
chown имя_пользователя:имя_пользователя /home/имя_папки/upload
```

В данном случае второе **имя\_пользователя** является именем группы, которое по умолчанию совпадает с созданным Вами **именем пользователя**.

Таким образом, за короткое время и небольшое количество действий, Вы можете создать безопасного базового **FTP-пользователя** и начать работу с **FTP** на **сервере**.
