Как создать FTP-сервер в Linux - IT Новости из мира ПК
Oc-windows.ru

IT Новости из мира ПК
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Подготовка сервера

Подготовка сервера

2. Устанавливаем пакет компонентов Apache, MySQL, PHP (LAMP)

Символ ^ в конце обязателен — это часть команды

Во время установки MySQL будет выведен запрос на создание пароля root (это отдельный пароль администратора именно для SQL сервера, а не для основного администратора сервера).

Проверяем установку web-сервера http://[ip адрес сервера ubuntu] — должна отобразиться тестовая страница apache.

3. Устанавливаем phpMyAdmin

Необходимо выполнить следующие команды:

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin
sudo /etc/init.d/apache2 reload

sudo apt-get install php-mbstring php-gettext
sudo phpenmod mcrypt
sudo phpenmod mbstring
sudo systemctl restart apache2

Проверяем доступность интерфейса http://[ip адрес сервера ubuntu]/phpmyadmin

4. Устанавливаем FTP (для удобства работы с файлами)

Во время установки будет предложено выбрать один из двух различных вариантов установки:

From inetd — демон ProFTPd будет работать из-под службы inetd.
Standalone — ProFTPd будет установлен как самостоятельный демон.

Рекомендую выбрать вариант Standalone, т.к. гораздо удобней работать с ProFTPd, как с отдельной службой.

После установки ftp сервер будет запущен и можно подключаться.

Однако, желательно его дополнительно настроить:

sudo nano /etc/proftpd/proftpd.conf

Раскомментировать значение RequireValidShell off и DefaultRoot

После настройки FTP нужно перезапустить:

5. Установка apache2-mpm-itk

Этот модуль нужен, чтобы сервер Apache мог рабтать с файлами сайта от имени владельца папки.

По умолчанию на директорию с файлами сайта распространяются права 755 и права 644 на все файлы. Это даёт права на запись файлов и папок только их владельцем. По этой причине при работе с файлами через FTP и Apache (например через интерфейс CMS) файлы будут сзданы от имени разных пользователей и возникают проблемы с их изменением или удалением. В решении именно этой проблемы и помогает данный модуль. Он указывает в настройках хоста каждого сайта от имени какого пользователя и группы будет работать Apache в указанной директории.

6. Включение mod_rewrite (для возможности работы ЧПУ)

Начало создания сайта

7. Создаём пользователя и каталога для работы с сайтами

( имя_пользователя — новый пользователь, от имени которого будут выполняться работы с сайтом. Это поможет разграничить права при работе с несколькими сайтами на одном сервере)

На предложение системы вводим пароль нового пользователя (дважды)

После создания пользователя размещаем отдельный каталог для сайта (например www), зайдя новым пользователем по FTP в домашний каталог, либо следующей командой:

(Т.к. в предыдущей команде, при создании пользователя для него не была указана существующая группа, то была автоматически создана группа с таким же именем, как имя пользователя. Т.е. в команде выше имя пользователя равно имени группы пользователя)

8. Создаём виртуальный хост для сайта

Создаём файл конфигурации виртуального хоста из варианта по-умолчанию

Изменяем и дополняем следующие значения:

Включаем созданный виртуальный хоста и перезапускаем apache

9. Создаём базу данных MySQL

Необходимо зайти в кансоль управления mysql

При этом система запросит пароль root от mysql (именно от mysql, который задавался при установке LAMP). При удачном входе в кансоль mysql значение перед курсором сменится на mysql>. После этого создание новой базы sql и пользователя для управления ею можно выполнить одной командой:

Для выхода из кансоли mysql нужно ввести команду

На этом можно закончить. Полноценный хостинг для сайта готов.

Дополнительно для удобства управления и контроля за сервером через WEB-интерфейс можно установить панель управления Webmin

Также дополнительно можно настроить параметры работы PHP («по вкусу» — например размер загружаемых фалов в параметре upload_max_filesize = 2M )

Создание FTP-пользователя без панели управления ISPmanager

По умолчанию при установке ОС Linux из любых шаблонов на сервере доступен только суперпользователь root. Подключение с данными root по протоколу FTP невозможно в целях безопасности (используется незашифрованный пароль). При установке шаблонов ОС типа minimal сервер FTP также не будет включён в установочный пакет. Если у Вас возникла необходимость быстрой ручной настройки нового FTP-пользователя при отсутствии на сервере панели управления ISPmanager, нужно сделать следующее.

Для начала подключитесь к серверу по протоколу SSH с правами root.

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

CentOS:

Установка EPEL репозитория

Debian/Ubuntu:

Добавляем FTP в автозапуск сервера и запускаем его

Добавление разрешающих правил для брандмауэра

В зависимости от используемой утилиты управления

Iptables:

firewalld:

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

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

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

Создание нового FTP-пользователя

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

Читать еще:  Что делать если принтер криво печатает

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

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

В большинстве случаев на данном этапе вы уже можете подключаться с созданным пользователем к FTP-серверу, который по умолчанию работает на 21 порту. Однако, есть еще несколько шагов, которые вы, возможно, захотите выполнить.

Дополнительная информация

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

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

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

Расположение proftpd.conf

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

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

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

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

Install and configure FTP server on Linux Mint 20

Note: We have explained the procedure and commands on Linux Mint 20 OS. More or less the same procedure can be followed in older Mint versions.

Installing FTP server

To install an FTP server on Linux Mint, follow the below steps:

Step 1: Install VSFTPD

Our first step will be to install VFTPD on our system. To do so, launch the Terminal in Mint OS by using the Ctrl+Alt+T keyboard shortcut. Then issue the following command in the Terminal to update the system repository index:

Then install VSFTPD using the following command in Terminal:

After the installation of VSFTPD is completed, we will move towards configuration.

Step 2: Configure VSFTPD

The VSFTPD can be configured through the /etc/vsftpd.conf file. Edit the /etc/vsftpd.conf file using the following command in Terminal:

Now add or uncomment the following lines (if already added in the file):

Once done, save and close the /etc/vsftpd.conf file.

Step 3: Allow ports in firewall

If a firewall is running on your system, you will need to allow some FTP ports through it. Issue the following commands in Terminal to allow the ports 20 and 21:

You can verify whether the port has been allowed in the firewall or not using the following command in Terminal:

Step 4: Enable and run VSFTPD

Now the VSFTPD is configured and allowed in the firewall; now we can enable and run the VSFTPD services. Here are the commands to do so:

To enable the VSFTPD service to start on boot, issue the following command in Terminal:

To run the VSFTPD service, issue the following command in Terminal:

If you need to restart the VSFTPD service after making any configuration changes, issue the following command in Terminal:

To verify if the VSFTPD is active and running, issue the following command in Terminal:

Step 5: Create an FTP user

Next, create a user account that will be used to test the FTP connection. Issue the following commands in Terminal to create a user account and set a password:

Step 6: Test FTP connection

Now our FTP server is ready, so it’s time to test the FTP connection.

To test FTP connection locally, issue the following command in Terminal by replacing the <ip-address> by the actual IP address of your FTP server:

You can also test the FTP connection remotely by using the same above command from the remote system. I have tested the FTP connection from the Windows machine on the network.

You can also use the FTP client like Filezilla to connect to the FTP server. To use the Filezilla application for connecting to the FTP server, provide the IP address of FTP server, username and password that you have set earlier, and port number 21 and then click the Quickconnect button.

Once connected, you will be successfully signed in to the FTP server and will be able to access remote server files and folders.

There you have the installation and configuration of the FTP server on the Linux Mint 20 system. By following the above described simple steps, you can easily setup the FTP server and transfer files through it.

About the author

Karim Buzdar

Karim Buzdar holds a degree in telecommunication engineering and holds several sysadmin certifications. As an IT engineer and technical author, he writes for various web sites. He blogs at LinuxWays.

Читать еще:  SDFormatter 4.0 скачать бесплатно

How to Install and Configure FTP Server in Ubuntu

FTP (File Transfer Protocol) is a relatively old and most used standard network protocol used for uploading/downloading files between two computers over a network. However, FTP by its original insecure, because it transmits data together with user credentials (username and password) without encryption.

Warning: If you planning to use FTP, consider configuring FTP connection with SSL/TLS (will cover in next article). Otherwise, it’s always better to use secure FTP such as SFTP.

In this tutorial, we will show how to install, configure and secure a FTP server (VSFTPD in full “Very Secure FTP Daemon“) in Ubuntu to have a powerful security against FTP vulnerabilities.

Step 1: Installing VsFTP Server in Ubuntu

1. First, we need to update the system package sources list and then install VSFTPD binary package as follows:

2. Once the installation completes, the service will be disabled initially, therefore, we need to start it manually for the mean time and also enable it to start automatically from the next system boot:

3. Next, if you have UFW firewall enabled ( its not enabled by default) on the server, you have to open ports 21 and 20 where the FTP daemons are listening, in order to allow access to FTP services from remote machines, then add the new firewall rules as follows:

Step 2: Configuring and Securing VsFTP Server in Ubuntu

4. Let’s now perform a few configurations to setup and secure our FTP server, first we will create a backup of the original config file /etc/vsftpd/vsftpd.conf like so:

Next, let’s open the vsftpd config file.

Add/modify the following options with these values:

5. Now, configure VSFTPD to allow/deny FTP access to users based on the user list file /etc/vsftpd.userlist.

Note that by default, users listed in userlist_file=/etc/vsftpd.userlist are denied login access with userlist_deny=YES option if userlist_enable=YES .

But, the option userlist_deny=NO twists the meaning of the default setting, so only users whose username is explicitly listed in userlist_file=/etc/vsftpd.userlist will be allowed to login to the FTP server.

Important: When users login to the FTP server, they are placed in a chrooted jail, this is the local root directory which will act as their home directory for the FTP session only.

Next, we will look at two possible scenarios of how to set the chrooted jail (local root) directory, as explained below.

6. At this point, let’s add/modify/uncomment these two following options to restrict FTP users to their Home directories.

The option chroot_local_user=YES importantly means local users will be placed in a chroot jail, their home directory by default after login.

And we must as well understand that VSFTPD does not permit the chroot jail directory to be writable, by default for security reasons, however, we can use the option allow_writeable_chroot=YES to disable this setting.

Save the file and close it. Then we have to restart VSFTPD services for the changes above to take effect:

Step 3: Testing VsFTP Server in Ubuntu

7. Now we will test FTP server by creating a FTP user with useradd command as follows:

Then, we have to explicitly list the user aaronkilik in the file /etc/vsftpd.userlist with the echo command and tee command as below:

8. Now it’s about time to test our above configurations are functioning as required. We will begin by testing anonymous logins; we can clearly see from the output below that anonymous logins are not permitted on the FTP server:

9. Next, let’s test if a user not listed in the file /etc/vsftpd.userlist will be granted permission to login, which is not true from the output that follows:

10. Now we will carry out a final test to determine whether a user listed in the file /etc/vsftpd.userlist, is actually placed in his/her home directory after login. And this is true from the output below:

Verify FTP Login in Ubuntu

Warning: Setting the option allow_writeable_chroot=YES can be so dangerous, it has possible security implications, especially if the users have upload permission, or more so, shell access. Only use it if you exactly know what you are doing.

We should note that these security implications are not specific to VSFTPD, they can also affect all other FTP daemons which offer to put local users in chroot jails.

Because of this reason, in the section below, we will explain a more secure method of setting a different non-writable local root directory for a user.

Читать еще:  Как подключить руль с педалями к компьютеру

Step 4: Configure FTP User Home Directories in Ubuntu

11. Now, open the VSFTPD configuration file once more time.

and comment out the unsecure option using the # character as shown below:

Next, create the alternative local root directory for the user (aaronkilik, yours is possibly not the same) and set the required permissions by disabling write permissions to all other users to this directory:

12. Then, create a directory under the local root with the appropriate permissions where the user will store his files:

Afterwards, add/modify the options below in the VSFTPD config file with their corresponding values:

Save the file and close it. And restart the VSFTPD services with the recent settings:

13. Now, let’s perform a final check and make sure that the user’s local root directory is the FTP directory we created in his Home directory.

FTP User Home Directory Login

That’s it! Remember to share your opinion about this guide via the comment form below or possibly provide us any important information concerning the topic.

Last but not least, do not miss our next article, where we will describe how to secure an FTP server using SSL/TLS connections in Ubuntu 16.04/16.10, until then, always stay tunned to TecMint.

If You Appreciate What We Do Here On TecMint, You Should Consider:

TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Support Us

We are thankful for your never ending support.

Related Posts

sftp Command Examples

Install Anonymous FTP in Fedora

Install Secure FTP Using SSL on RHEL 8

Linux Commandline FTP Clients

Change FTP Port in Linux

How to Upload or Download Directory using sFTP

12 thoughts on “How to Install and Configure FTP Server in Ubuntu”

Thanks for your help!

I was wondering if it is possible to make the local_root folder on an external drive?

I tried «local_root/media///» but I kept getting the error “ cannot change directory /media/// “.

Is it because I need to give the FTP user permission somehow?

Hello. First, thank you for so big tutorial, but I have some problems with it. I am using raspberry pi 4 with working with the ubuntu server.

Updating and upgrading were successful.
Installation too.
But I can’t “start” it.

After command sudo systemctl start vsftpd and s udo systemctl enable vsftpd all was good.

Then I checked the status with command sudo service vsftpd status and the FTP server is failed. Here is information about it:

● vsftpd.service — vsftpd FTP server
Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2020-01-03 13:15:21 UTC; 27s ago
Main PID: 3012 (code=exited, status=2)

Jan 03 13:15:21 ubuntu systemd[1]: Starting vsftpd FTP server.
Jan 03 13:15:21 ubuntu systemd[1]: Started vsftpd FTP server.
Jan 03 13:15:21 ubuntu systemd[1]: vsftpd.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Jan 03 13:15:21 ubuntu systemd[1]: vsftpd.service: Failed with result ‘exit-code’.

I checked again with – sudo ufw status
Here is the result – Status: inactive

I can’t understand what can be wrong.
Maybe you can help.

Check your /etc/vsftpd.conf configuration file for any invalid arguments.

I had the same issue. There was a weird whitespace character at the end of “ userlist_deny=NO “. It worked after I removed the whitespace.

Do I have to create a file named vsftpd.userlist or does it come as part of vsftpd.config?

You can create it if it doesn’t exist.

Stellar! Great work and thanks for the service you provide.

Thanks for the kind words of appreciation and encouragement.

I followed your instructions but ended up being unable to write files to the server, even though I could create directories –
https://askubuntu.com/questions/995460/vsftpd-config-can-create-directories-but-cannot-create-files

Ensure that you have the correct permissions(rwx) set on the directories your created.

My FTP configuration is similar to this tutorial but still i am stuck down with below message. I am using Kali Linux as server and Ubuntu as client.

Note that here, we used Ubuntu as the server.

Consider using passive ports in the config file, open the port range say 40000-50000 in the firewall like so:
sudo ufw allow 40000:50000/tcp

And add the options below in the config file:
pasv_min_port=40000
pasv_max_port=50000

Save the file and restart the vsftpd services:
sudo systemctl restart vsftpd

Do write back in case it fails to work.

Got something to say? Join the discussion. Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Ссылка на основную публикацию
Adblock
detector
×
×