Установка и настройка ftp на ubuntu 16.04. Установка и настройка FTP-сервера в Linux. Варианты запуска службы FTP

File Transfer Protocol (FTP) is a TCP protocol for downloading files between computers. In the past, it has also been used for uploading but, as that method does not use encryption, user credentials as well as data transferred in the clear and are easily intercepted. So if you are here looking for a way to upload and download files securely, see the section on OpenSSH in Remote Administration instead.

FTP works on a client/server model. The server component is called an FTP daemon . It continuously listens for FTP requests from remote clients. When a request is received, it manages the login and sets up the connection. For the duration of the session it executes any of commands sent by the FTP client.

Access to an FTP server can be managed in two ways:

In the Anonymous mode, remote clients can access the FTP server by using the default user account called "anonymous" or "ftp" and sending an email address as the password. In the Authenticated mode a user must have an account and a password. This latter choice is very insecure and should not be used except in special circumstances. If you are looking to transfer files securely see SFTP in the section on OpenSSH-Server. User access to the FTP server directories and files is dependent on the permissions defined for the account used at login. As a general rule, the FTP daemon will hide the root directory of the FTP server and change it to the FTP Home directory. This hides the rest of the file system from remote sessions.

vsftpd - FTP Server Installation

vsftpd is an FTP daemon available in Ubuntu. It is easy to install, set up, and maintain. To install vsftpd you can run the following command:

sudo apt install vsftpd

Anonymous FTP Configuration

By default vsftpd is not configured to allow anonymous download. If you wish to enable anonymous download edit /etc/vsftpd.conf by changing:

anonymous_enable=Yes

During installation a ftp user is created with a home directory of /srv/ftp . This is the default FTP directory.

If you wish to change this location, to /srv/files/ftp for example, simply create a directory in another location and change the ftp user"s home directory:

sudo mkdir /srv/files/ftp sudo usermod -d /srv/files/ftp ftp

After making the change restart vsftpd :

Finally, copy any files and directories you would like to make available through anonymous FTP to /srv/files/ftp , or /srv/ftp if you wish to use the default.

User Authenticated FTP Configuration

By default vsftpd is configured to authenticate system users and allow them to download files. If you want users to be able to upload files, edit /etc/vsftpd.conf :

write_enable=YES

Now restart vsftpd :

sudo systemctl restart vsftpd.service

Now when system users login to FTP they will start in their home directories where they can download, upload, create directories, etc.

Similarly, by default, anonymous users are not allowed to upload files to FTP server. To change this setting, you should uncomment the following line, and restart vsftpd :

anon_upload_enable=YES

Enabling anonymous FTP upload can be an extreme security risk. It is best to not enable anonymous upload on servers accessed directly from the Internet.

The configuration file consists of many configuration parameters. The information about each parameter is available in the configuration file. Alternatively, you can refer to the man page, man 5 vsftpd.conf for details of each parameter.

Securing FTP

There are options in /etc/vsftpd.conf to help make vsftpd more secure. For example users can be limited to their home directories by uncommenting:

chroot_local_user=YES

You can also limit a specific list of users to just their home directories:

chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list

After uncommenting the above options, create a /etc/vsftpd.chroot_list containing a list of users one per line. Then restart vsftpd :

sudo systemctl restart vsftpd.service

Also, the /etc/ftpusers file is a list of users that are disallowed FTP access. The default list includes root, daemon, nobody, etc. To disable FTP access for additional users simply add them to the list.

FTP can also be encrypted using FTPS . Different from SFTP , FTPS is FTP over Secure Socket Layer (SSL). SFTP is a FTP like session over an encrypted SSH connection. A major difference is that users of SFTP need to have a shell account on the system, instead of a nologin shell. Providing all users with a shell may not be ideal for some environments, such as a shared web host. However, it is possible to restrict such accounts to only SFTP and disable shell interaction. See the section on OpenSSH-Server for more.

To configure FTPS , edit /etc/vsftpd.conf and at the bottom add:

Also, notice the certificate and key related options:

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

By default these options are set to the certificate and key provided by the ssl-cert package. In a production environment these should be replaced with a certificate and key generated for the specific host. For more information on certificates see Certificates .

Now restart vsftpd , and non-anonymous users will be forced to use FTPS :

sudo systemctl restart vsftpd.service

To allow users with a shell of /usr/sbin/nologin access to FTP, but have no shell access, edit /etc/shells adding the nologin shell:

# /etc/shells: valid login shells /bin/csh /bin/sh /usr/bin/es /usr/bin/ksh /bin/ksh /usr/bin/rc /usr/bin/tcsh /bin/tcsh /usr/bin/esh /bin/dash /bin/bash /bin/rbash /usr/bin/screen /usr/sbin/nologin

This is necessary because, by default vsftpd uses PAM for authentication, and the /etc/pam.d/vsftpd configuration file contains:

auth required pam_shells.so

The shells PAM module restricts access to shells listed in the /etc/shells file.

Most popular FTP clients can be configured to connect using FTPS. The lftp command line FTP client has the ability to use FTPS as well.

Пришло время организовывать файловое хранилище, как внутри сети так и снаружи. Данная статья является продолжением первой части, посвященной настройки WiFi роутера на Вашем домашнем сервере . Все жесткие диски с Вашего домашнего компьютера(кроме системного) можно перенести на сервер, поскольку скорость передачи данный колеблется в районе 10-20 мегабайт в секунду [данный параметр еще и очень сильно зависит от модели Вашего жесткого диска], да и кстати, давно уже пора для системного диска покупать SSD накопители.

FTP Server.
Существует множество ftp серверов для linux, много хороших, много плохих, но есть лучший [естественно, что это субъективное мнение, и лучший он для меня] и это vsftpd . Его мы и будем рассматривать.
Скачать его можно из стандартных репозитариев OpenSUSE , выполнив в терминале команду:
zypper in vsftpd
Теперь перейдем к описанию. Это консольный ftp server, у него нет GUI [графическая оболочка], поэтому вся настройка происходит в одном единственном конфиге, по адресу /etc/vsftpd.conf .
Вот пример рабочего конфига:
#разрешаем любые формы записи на FTP сервер write_enable=YES #разрешаем возможность отображения сообщений о переходах из папки в #папку. dirmessage_enable=YES #выбираем пользователя БЕЗ всяких привелегий (read-only) nopriv_user=ftpsecure #разрешаем локальных пользователей (локальные пользователи - это те, #которые зарегестрированы в системе, то есть на них есть учетные записи) local_enable=YES #запихиваем локального пользователя в chroot. chroot_local_user=YES #запрет анонимного входа на сервер anonymous_enable=NO #включаем логгирование syslog_enable=YES #разрешаем присоединятся по 20ому порту connect_from_port_20=YES #разрешаем аплоадить папки с киррилицей в названии ascii_upload_enable=YES #разрешаем скачивать папки с киррилицей в названии ascii_download_enable=YES #название PAM сервиса в системе pam_service_name=vsftpd #возможность работы в автономном режиме listen=YES #запрещаем SSL аутентификацию ssl_enable=NO #рейнж портов для режима PASV. pasv_min_port=30000 pasv_max_port=30100 #привествие при заходе на ftp-server ftpd_banner=Welcome to my ftp-server #время, через сколько пользователя кикнут с сервера при его бездействии idle_session_timeout=900 #максимальное количество юзеров max_clients=10 #максимальное количество сессией с одного ip адреса max_per_ip=3 #разрешение режима PASV(пассивный режим) pasv_enable=YES #маска разрешающих привелегий для локальных пользователей. local_umask=0002
В приведенном выше конфиге нет заморочек для распределения прав доступа отдельным пользователям, отдельных папок. Всё довольно просто и лаконично, настроил один раз и пользуешься [пользуются]. Vsftpd был выбран, потому что у него лучшая система настройки прав доступа, которая подразделяется на два вида: внутренняя, системная аутентификация и внешняя, с отдельным конфигурационным файлом для распределения прав доступа, но при этом, пользователи всё также берутся из системы.

В данном примере и пользователи, и распределение прав доступа этих самых пользователей берется из системы, дополнительный конфиг-файл не используется.

Рисунок 1. Выставление прав
На этом собственно всё.

Samba.
Хотите всегда иметь под рукой файловое хранилище всех коллекций и всего прочего с ноутбука, с домашнего компьютера, с телефона, с планшета? Поехали.

Изначально, при стандартной установке системы OpenSUSE всё что нужно для установки и настройки samba на сервере уже предустановлено. Поэтому перейдем непосредственно к настройке. Поскольку доступ из под ОС Windows в качестве «Подключения сетевого диска» будет доступен только внутри Вашей локальной сети [для интернета есть ftp сервер, да и к тому же, вывешивать самбу в интернет крайне не безопасно, а мы же, - «ЗА СЕКЬЮРНОСТЬ!!! УРА!»] поэтому настройки будут крайне банальны и просты в понимании. Есть два [известных мне и адекватных на мой взгляд] настройки самбы, это через, всё тот самый, конфигурационный файл и при помощи утилиты - WebMin . Это дико-крутая штука, особенно для тех, кто не любит ковырять конфиги [но и здесь есть свои ньюансы] . В данной статье не будем останавливаться на средствах "для ленивых ", поэтому продолжаем. Мы будем рассматривать рабочий конфиг файл. Находится он по адресу: /etc/samba/smb.conf . Вот он:
# Указываем имя гостевого юзера. guest account = nobody # Указываем имя netbios name = homeserver # Включаем возможность прав "write" writeable = yes # Дополнительная опция, убирающая задержку. socket options = TCP_NODELAY IPTOS_LOWDELAY # При необходимости, указываем рабочую группу, где будут находится компьютеры #(абсолютно не обязательный параметр) workgroup = HOMENET # Выбираем интерфейсы на которые будет "прослушивать" самба. # (также, необязательная опция, по-умолчанию, будут прослушиваться все интерфейсы) interfaces = eth1 wlan0 # Дома безопасность особо не нужна. security = share public = yes # Разрешаем гостя guest ok = yes # Только гость? Да. guest only = yes # Путь до публичной папки path = /cifs/pub # Не запрещаем запись. read only = no # Также, если интересует возможность доступа к CD-ROM"у, то вставьте # в конфиг самбы следующие опции: fake oplocks = yes guest ok = yes guest only = yes path = /mnt/cdrom read only = yes
Также, дополнительную настройку можно выполнить через встроенный в YaST GUI samba.

Того пользователя, что мы указали в самом начале конфига, в данном примере это пользователь nobody , необходимо создать непосредственно в системе. Задать ему необходимые права (дома, имеет смысл поставить полные права, на создание, удаление, редактирование всех файлов и папок (т.е. права 777). Также, если Вы столкнетесь с ситуацией, когда по какой-то причине станет невозможным удаление/создание файлов в какой-либо из папок на сервере, то выполните команду:
chmod 777 -R /path
Разберем её, на всякий случай:
chmod - команда установки прав.
777 - собственно права, в буквенном обозначении означают rwx, rwx, rwx - права чтение, запись, выполнение для владельца, группы(где состоит владелец), всех.
-R - ключ рекурсии, для того чтобы команда выполнилась не только для той папки(и файлов, находящихся в ней), которую Вы указали в /path , но и для всех под-папок и файлов в них тоже.
/path - путь до папки, на которую необходимо установить права. Аналогичная команда соответствует FTP серверу, если возникли похожие проблемы. Да, и надо оговориться, что если возникают подобные проблемы, то скорей всего проблема кроется в пользователях созданных в системе, а точнее в правах, выданных на использование их домашних директорий.

rTorrent.
Полу-автоматизированный торрент клиент.
На самом деле, это обычный торрент клиент, но, возможности настройки которого, очень богаты разнообразием. Сейчас мы с Вами разберём одну очень полезную функцию данного клиента. Представьте, Вы уже настроили самбу на Вашем домашнем сервере, файловое хранилище, находящееся на сервере подключена к Вашему компьютеру как Сетевой Диск, Вы открываете Ваш сетевой диск, открываете папку torrents, там открываете папку music и перемещаете туда все торрент файлы с музыкой, которые Вы хотите скачать и… всё, ложитесь спать. На утро уже будут скачены и проверены хеши всех торрентов, что Вы туда положили (тут конечно всё зависит от того сколько торрентов Вы хотите скачать, какой у них вес и какова ширина Вашего интернет канала). Нравится? Вот и я балдею уже как пол года, от этой функции.
Давайте разбираться.
Вам надо установить rtorrent , выполняем следующую команду в терминале:
zypper in rtorrent
После того, как Вы скачали и установили торрент-клиент rtorrent, необходимо произвести настройку клиента. Настройка программы осуществляется при помощи конфигурационного файла .rtorrent.rc , размещаемого в домашнем каталоге пользователя. (По умолчанию файл.rtorrent.rc отсутствует. Его нужно создавать самостоятельно. Привожу пример с подробными комментариями рабочего конфига:
#обмен пирами? Да! peer_exchange = yes #минимальное число пиров на торрент min_peers = 1 #максимальное число пиров на торрент max_peers = 1000 #максимальная скорость загрузки download_rate = 0 #максимальная скорость отдачи. 1 - не ограничена upload_rate = 0 #каталог для сохранения закачек или откуда будут сидироваться торренты. directory = /files/torrents #каталог куда будет сохраняться состояние торрентов. #Здесь, в этом примере, они сохраняются в папку session session = /files/torrents/session/ #rtorrent каждые 5 секунд проверяет этот каталог на новые *.torrent #файлы #и если они есть то ставит их на закачку #schedule = watch_directory,5,5,load_start=/home/user/torrent_auto_load/ #проверяет каталоги на новые *.torrent файлы и сохраняет закачки в #соответствующие папки schedule = watch_directory,5,5,"load_start=/files/torrents/music/*.torrent,d.set_directory=/files/music" schedule = watch_directory_2,5,5,"load_start=/files/torrents/video/*.torrent,d.set_directory=/files/video" schedule = watch_directory_3,5,5,"load_start=/files/torrents/video/serial/*.torrent,d.set_directory=/files/video/serial" schedule = watch_directory_4,5,5,"load_start=/files/torrents/progs/*.torrent,d.set_directory=/files/progs" schedule = watch_directory_5,5,5,"load_start=/files/torrents/games/*.torrent,d.set_directory=/files/games" schedule = watch_directory_6,5,5,"load_start=/files/torrents/unsorted/*.torrent,d.set_directory=/files/unsorted" schedule = watch_directory_7,5,5,"load_start=/files/torrents/doc/*.torrent,d.set_directory=/files/doc" schedule = watch_directory_8,5,5,"load_start=/files/torrents/doc/books/*.torrent,d.set_directory=/files/doc/books" #Удаление торрент-файлов из директории music(потому что в данном #примере, папка music идет как "directory"(#1), которые уже скачаны. schedule = untied_directory,7,5,remove_untied= #номер порта (или нескольких портов) который открывает клиент для #обмена данными port_range = 40890-40890 #случайный выбор порта для обмена данными. В данном случае он #отключён port_random = no #проверять хэш торрента после закачки check_hash = yes #сохранять сессию session_save = yes #принимать зашифрованные входящие соединения, устанавливать #незашифрованные исходящие соединения, #если возвращает ошибку, повторять с шифрованием, предпочитать #открытый текст после установления #зашифрованного соединения encryption = allow_incoming,enable_retry,prefer_plaintext #использовать udp use_udp_trackers = yes


Рисунок 2. Главное окно программы rTorrent

Собственно и все. Далее хитрый приём, - открываем консоль и пишем(можно и по ssh зайти на сервер):
screen rtorrent
Далее, в терминале откроется торрент-клиент, там же Вы его можете настроить и отладить дополнительно. Теперь нажимаем волшебные комбинации клавиш Ctrl+A затем Ctrl+D и консоль радостно Вас оповестит, что:


Рисунок 3. «Заскринивание» процесса программы rTorrent.

Это говорит о том, что процесс Вашего торрент-клиента «закринин», то есть выполняется, но его при этом не видно. Для тех, адептов, кому всегда, всё интересно, может прочесть вот здесь про данную утилиту обременять голову такими вещами (хотя, они очень интересные и познавательные, и применяются часто) принудительно я не хочу.
Если Вам понадобилось заного открыть клиент, пишем:
screen -r
ВАЖНО: Если Вы хотите запускать торрент-клиент под рутом(root, т.е. через команду sudo) то, необходимо конфиг файл создавать в корневом каталоге пользователя root, а также, screen -r необходимо выполнять также, под тем же пользователем, под которым Вы ее «заскринили».
Таким образом, у Вас в фоне всегда будет висеть торрент-клиент, который будет качать и раздавать ровно столько, сколько будет работать Ваш сервер.

На этой «важной» ноте, я хочу закончить данную статью. Спасибо за внимание, и да, пользуйтесь поисковиком Google , он молодец!

Если ошибся топиком, подскажите куда перенести.

F ile T ransfer P rotocol, т. е. FTP – протокол передачи файлов и, как понятно из полного названия, предназначен для передачи файлов между удалёнными компьютерами через сеть. Несмотря на то, что сам протокол FTP является на сегодняшний день не самым совершенным из-за того, что передаваемые данные не шифруются, однако это не делает его устаревшим. Кроме того всё-таки к FTP возможно применять криптографическую защиту на основе протокола SSL, что и делает FTP достойным инструментом для передачи файлов.

Поскольку FTP работает по схеме клиент-серверного взаимодействия, то умелая и надёжная реализация протокола (да и вообще системы) в состоянии обеспечить ему надёжную защиту, высокую скорость и, как следствие - популярность, что и можно наблюдать на сегодняшний день, ведь большинство крупных проектов, таких как ftp.gnu.org , ftp.suse.com , ftp.redhat.com , ftp.gnome.org и т. д., используют для распространения программного обеспечения со своих серверов именно FTP. Надо заметить, что такой популярностью FTP обязан, в большей степени, одной из своих многочисленных реализаций - vsFTPd. Это FTP- сервер, поддерживающий работу с самыми современными технологиями по защите данных - SSL и IPv6, его реализация совмещает в себе высокую надёжность, стабильность, скорость работы и передачи данных, а также гибкую настройку работы сервера и широкий функционал. Разработчиком vsFTPd является Крис Эванс - профессиональный исследователь в сферах защиты данных и информационной безопасности. vsFTPd является FTP-сервером по-умолчанию практически во всех Linux-системах, поскольку, как уже упоминалось, помимо надёжности и высокой скорости работы, обладает большими функциональными возможностями, самыми значимыми из которых являются:

  1. Работа с виртуальными пользователями.
  2. Работа с виртуальными IP-адресами.
  3. Конфигурирование пользователей.
  4. Поддержка
  5. SSL-шифровние для защиты передаваемых данных.
  6. Контроль полосы пропускания.

В данной статье рассматривается установка и настройка FTP-сервера на примере vsFTPd, который, кстати, является свободно распространяемым программным обеспечением (ПО) с открытым исходным кодом. Официальная страница проекта: https://security.appspot.com/vsftpd.html .

Установка vsFTPd

Установить Vsftd в Debian-ориентированных дистрибутивах Linux позволяет команда:

$ sudo apt-get install vsftpd

Также полезно будет установить и простой FTP-клиент для тестирования соединения и передачи файлов:

$ apt-get install ftp

Для дистрибутивов на основе RPM-пакетов, CentOS, RedHat:

$ yum install vsftpd $ yum install ftp

Обычно после установки демон vsFTPd автоматически запускается, убедиться в этом можно с помощью следующих команд:

$ systemctl status vsftpd

$ service vsftpd status

Запуск, перезапуск и остановка сервера:

$ systemctl start vsftpd $ systemctl restart vsftpd $ systemctl stop vsftpd

Для включения демона vsftpd в автозагрузку используется команда:

$ systemctl enable vsftpd

Аналогично и с командой service.

Если vsFTPd используется в серверных дистрибутивах, в которых часто работает фаервол, например ufw, то ещё может понадобиться разрешить использование портов 20 и 21:

$ ufw allow 20/tcp $ ufw allow 21/tcp

Настройка vsFTPd

Конфигурационным файлом для настройки vsFTPd является файл vsftpd.conf, который обычно находится в каталоге etc/. Ознакомиться с его одержимым можно командой cat:

$ cat /etc/vsftpd/vsftpd.conf

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

$ sudo cp /etc/vsftpd.conf vsftpd.conf.backup

FTP-сервер vsFTPd предусматривает два основных варианта работы: с анонимными и авторизованными пользователями. Первый вариант считается «более безопасным», но только потому, что для обеспечения надёжной защиты практически ничего настраивать и не нужно. Но при грамотной организации авторизованного доступа, предполагающего работу с FTP локальных пользователей системы, можно обеспечить безопасность ничуть не хуже, чем при использовании анонимного доступа.

Настройка в режиме анонимного доступа

Работа vsFTPd в данном режиме заключается в том, что действия с файлами на удалённом сервере производятся одним определённым по умолчанию пользователем, например, пользователем с именем «ftp » или «anonymous », при этом в качестве пароля используется e-mail.

Чтобы включить анонимный доступ по FTP нужно в фале vsftpd.conf определить значение «YES» для соответствующей директивы:

Anonymous_enable=YES

Теперь для управления файлами будет использоваться определённый каталог (обычно это /srv/ftp) и определённый пользователь - обычно ftp.

Можно определить и другое расположение файлов для анонимного доступа по FTP, т. е. изменить домашнюю директорию пользователя ftp:

$ sudo mkdir /srv/share/ftp $ sudo usermod -d /srv/share/ftp ftp

Если нужно, чтобы анонимные пользователи могли ещё и загружать файлы на удалённый сервер, то это позволит сделать директива:

Anon_upload_enable=YES

Теперь можно скопировать необходимые для анонимного доступа файлы в домашнюю папку пользователя ftp и перезапустить демон vsftpd:

$ systemctl restart vsftpd

Обычно этого набора настроек достаточно для организации анонимного FTP-доступа. Для проверки соединения можно выполнить команду ftp address_host:

$ ftp 127.0.0.1

$ ftp localhost

что в случае успешного выполнения даст примерно такой вывод:

Настройка в режиме авторизованного доступа

Local_enable=YES

Write_enable=YES

Теперь нужно перезапустить vsftpd для активации сделанных изменений:

$ systemctl restart vsftpd

Ограничение пользователей в своих домашних каталогах

Для определения пользователей, которым разрешён доступ только к своему домашнему каталогу существуют директивы:

Chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list

Первая включает использование списка пользователей, вторая определяет файл, в котором в каждой строке перечислены пользователи с доступом только к своим домашним каталогам. Если при этом ещё указать директиву:

Chroot_local_user=YES

которая «запирает» в chroot() локальных пользователей и выше своих домашних каталогов они подняться не смогут, то в этом случае пользователи в файле vsftpd.chroot_list ограничиваться своими домашними каталогами не будут, в отличии от тех, кто в этот список не внесён.

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

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

Лучшим способом исправить эту ошибку является указание некоего общего корневого каталога, куда при подключении будут попадать все пользователи, имея доступ лишь к своим домашним поддиректориям, например:

Local_root=/home

Можно также для устранения этой ошибки отключить проверку на запись в домашний каталог:

Allow_writeable_chroot=YES

Но всё же это стоит делать лишь тогда, когда есть чёткое понимание, зачем это нужно для конкретной ситуации.

Защита данных с помощью SSL

Чтобы иметь возможность шифровать передаваемые данные, следует настроить vsFTPd в режиме FTPS. Это та же самая передача данных по FTP, но организованная поверх SSL – протокола. Шифрующего и проверяющего данные с помощью сертификатов и ключей.

Для включения режима FTPS нужно задействовать следующую директиву:

Ssl_enable=Yes

По умолчанию в конфигурационном файле vsftpd.conf также присутствуют опции, определяющие сертификаты и ключи, например:

Rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Эти сертификат и ключ необходимо заменить. Для использования FTPS необходимо использовать сертификат и ключ. Cгенерированные (или полученные) для конкретного сервера или компьютера.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter .

Совсем недавно я писал о том, на свой компьютер. Это очень полезно для вебмастера, так как установив себе такой "домашний" сервер, можно проводить различные эксперименты с тестовыми сайтами или просто вести их разработку.

Но есть одна проблема: если вы, к примеру, попытаетесь на таком локальном сервере установить тот же плагин в wordpress, то получите отказ: "Не удалось подключиться к FTP-серверу localhost:21 "

Как вы понимаете, вам нужно установить и настроить ftp сервер на своём компьютере, чтобы осуществить установку плагинов. Как установить ftp сервер на свой компьютер в Linux?

В Linux есть много бесплатных серверов, я пробовал несколько и остановился на vsftpd. Этот сервер лёгок и прост в настройке.

1. Как установить ftp сервер vsftpd?

Установить его можно одной командой:

Sudo apt-get install vsftpd

После установки сервера нам нужно его немного под настроить. Но сначала протестируем наш ftp сервер, введём в браузер такой адрес: ftp://127.0.0.1/ Мы должны увидеть следующее:


Но мало установить сервер vsftpd, это как вы видите делается просто, важно настроить ftp сервер. Но и это делается просто, если следовать моему опыту.

2. Как настроить ftp сервер vsftpd?

Чтобы добраться до настроек сервера, введите в терминале команду:

Sudo gedit /etc/vsftpd.conf

Удаляем из этого файла всю и вставляем вот это:

Listen=YES # делаем анонимный доступ, с правом записи anonymous_enable=YES no_anon_password=YES anon_root=/ПУТЬ К ПАПКЕ С САЙТОМ! anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_umask=022 # разрешаем вход локальным пользователям с правом записи в домашних директориях local_enable=YES local_umask=022 write_enable=YES # помещаем локальных юзеров в их домашние каталоги, иначе пользователю будет доступен корень системы. chroot_local_user=YES chroot_list_enable=YES # настройки журналирования xferlog_enable=YES vsftpd_log_file=/var/log/vsftpd.log

Перезагружаем ftp сервер командой:

Sudo /etc/init.d/vsftpd restart

Да, ещё очень важно! На папку с сайтом и и всем файлам к ней нужно дать доступ 755, публичные права на запись давать папке НЕЛЬЗЯ !

Установить новую, более правильную версию сервера можно добавив :

Sudo add-apt-repository ppa:thefrontiergroup/vsftpd sudo apt-get update sudo apt-get install vsftpd

После этого идём в админку WordPress и пробуем установить какой-нибудь плагин. Нас попросят ввести адрес сервера, логин и пароль. В строке сервера пишем 127.0.0.1 , а логин и пароль пишем - anonymous

Если у вас появится ошибка: Не удалось определить директорию содержимого WordPress (wp-content), то нужно в конец файла wp-config.php вставить такой код:

If (is_admin()) { add_filter ("filesystem_method", create_function("$a", "return "direct";")); define ("FS_CHMOD_DIR", 0751); }

После этого у меня всё заработало. Так настройка vsftpd сервера для меня закончилась. Вот так можно установить и настроить ftp сервер vsftpd на своём домашнем компьютере.

Такой сервер, конечно, не будет слишком производительным, это вам не настоящий сервер IBM HS23e на SSD дисках. И если вы дадите к нему доступ всей своей локальной сети, ваш компьютер может изрядно попотеть, постоянно что то копируя.

Но моя цель вам понятна, но она, конечно, не единственная. FTP сервер на своём компьютере можно использовать для разных целей, и чаще всего такие простые настройки вам подойдут. Если нет, то в сети много мануалов по настройке этого FTP сервера. Успехов!

Дописываю: как оказалось, в моем случае можно вообще обойтись без FTP. Проще работать через SSH и плагина ssh-sftp-updater-support, который добавляет протокол SSH в WordPress. Так намного безопаснее и не нужно поднимать FTP сервер.


Не нашли ответ на свой вопрос? Воспользуйтесь поиском...

В настоящей статье мы рассмотрим установку и настройку FTP сервера vsftpd на веб-сервер под управлением операционной системы Ubuntu Server 18.04.

FTP (File Transfer Protocol) - это протокол передачи файлов по сети. Порты по умолчанию: 21/TCP для команд, 20/TCP для данных. Порты для пассивного подключения настраиваются дополнительно в конфигурационном файле.

Установка

Для начала обновим индексы пакетов программ:

sudo apt update

Теперь устанавливаем сам FTP сервер:

sudo apt install vsftpd

Настройка

Открываем конфигурационный файл для редактирования:

sudo nano /etc/vsftpd.conf

Опуская комментарии его содержание должно быть следующим:

listen=YES
local_enable=YES
chroot_local_user=YES
check_shell=NO
write_enable=YES
xferlog_enable=YES
chown_uploads=YES
chown_username=nobody
anonymous_enable=NO
pasv_enable=YES
pasv_min_port=60000
pasv_max_port=60100

Конфигурационный файл

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

sudo service vsftpd restart

Создаем пользователя FTP:

sudo adduser ftpuser

Создаем каталог для монтирования каталога сайта в домашний каталог нашего пользователя:

sudo mkdir /home/ftpuser/site

Монтируем:

sudo mount --bind /var/www /home/ftpuser/site

Монтирование каталогов

Теперь в /home/ftpuser/site будут отображаться файлы, которые лежат в /var/www. Обратите внимание на то, что монтирование сохраняется до перезагрузки сервера. После перезагрузки команду нужно будет повторить.

sudo chown www-data:ftpuser /var/www/ -R
sudo find /var/www -type d -exec chmod 775 {} \;
sudo find /var/www -type f -exec chmod 664 {} \;

Для того что бы пользователь мог подключаться по FTP нужно включить запрет на запись в корень домашнего каталога:

sudo chmod a-w /home/ftpuser/

Теперь нам необходимо настроить брандмауэр для подключения:

sudo ufw allow in 20/tcp

sudo ufw allow in 21/tcp

sudo ufw allow in 60000:60100/tcp

Проверяем правила:

sudo ufw status

Проверка правил

Все. Пробуем подключиться по FTP.

Подключение по FTP

Как видим подключение работает. В смонтированном каталоге файлы нашего тестового сайта.

Выводы

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

 
Статьи по теме:
Как сделать удобной работу с большим количеством вкладок в браузере
Вы сможете работать за компьютером быстрее, если оптимально расположите окна и вкладки браузера. Как быстро переключаться между окнами Нажмите и удерживайте клавишу Alt . Затем нажмите и удерживайте Tab , пока не откроется нужное окно. Как просматривать д
Установка и удаление AVG Internet Security Антивирус авг как включить компонент программы
В этом уроке мы рассмотрим, как установить бесплатный антивирус AVG. Почему именно бесплатный? Этот и другие вопросы я подробно опишу ниже! Сегодня проводить время в Интернете без защиты очень опасно, особенно новичку. Под защитой я подразумеваю антивир
Проверенные безопасные способы
С целью заработка в интернете многие пользователи запускают каналы на Ютубе. Идея хорошая, только без качественных роликов и грамотной раскрутки, никогда не получится зарабатывать большие деньги. Контент играет ключевую роль, а публикуя
Сервисы распознования капчи Автоматическое распознавание капчи
Здравствуйте, уважаемые читатели блога сайт. Антикапча (временно это был Антигейт) – это многофункциональная площадка для автоматического распознавания так называемой капчи (защиты от автоматического постинга ботами, а также защиты поисковиков от парсинг