Tftp & ftp server on centos 7

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

Для подготовки сервера безопасности с доступом к данным по LDAP необходим сервер с правильно настроенным временем. Также необходимо правильно настроить межсетевой экран и систему безопасности SELinux.

Время

Установим часовой пояс:

timedatectl set-timezone Europe/Moscow

* в данном примере используется московское время.

Затем устанавливаем и запускаем утилиту для синхронизации времени chrony.

yum install chrony

systemctl enable chronyd —now

Имя сервера

Для корректной работы сервера, необходимо, задать ему полное доменное имя (FQDN). Выполняем команду:

hostnamectl set-hostname ipa-server.dmosk.local

* где ipa-server.dmosk.local — имя сервера, которое будет использоваться.

Брандмауэр

Необходимо открыть несколько портов, которые используются службами FreeIPA:

firewall-cmd —permanent —add-port=53/{tcp,udp} —add-port=80/tcp —add-port=88/{tcp,udp} —add-port=123/udp —add-port=389/tcp —add-port=443/tcp —add-port=464/{tcp,udp} —add-port=636/tcp

firewall-cmd —reload

Полезные команды для управления Apache в Linux

Для работы с веб – приложениями

В этом руководстве мы опишем некоторые из наиболее часто используемых команд управления службами Apache (HTTPD) , которые полезно знать, разработчику или системному администратору, и держать эти команды под рукой. Мы покажем команды для Systemd и SysVinit.

Убедитесь, что следующие команды должны выполняться от имени пользователя root или sudo и работать с любым дистрибутивом Linux, таким как CentOS, RHEL, Fedora, Debian и Ubuntu.

Установка Apache Server

Чтобы установить веб-сервер Apache, используйте ваш стандартный менеджер пакетов, как показано ниже.

Проверка версии Apache

Чтобы проверить установленную версию вашего веб-сервера Apache в вашей системе Linux, выполните следующую команду.

Если вы хотите увидеть номер версии Apache и параметры компиляции, используйте флаг -V, как показано ниже.

Проверка на ошибки синтаксиса конфигурации Apache

Чтобы проверить ваши файлы конфигурации Apache на наличие любых синтаксических ошибок, выполните следующую команду, которая проверит правильность файлов конфигурации, прежде чем перезапускать службу.

Запуск сервиса Apache

Чтобы запустить службу Apache, выполните следующую команду.

Включение службы Apache

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

Перезапуск службы Apache

Чтобы перезапустить Apache (остановить, а затем запустить службу), выполните следующую команду.

Просмотр состояния сервиса Apache

Чтобы проверить информацию о состоянии времени выполнения службы Apache, выполните следующую команду.

Перезагрузка сервиса Apache

Если вы внесли какие-либо изменения в конфигурацию сервера Apache, вы можете указать службе перезагрузить свою конфигурацию, выполнив следующую команду.

Остановка службы Apache

Чтобы остановить службу Apache, используйте следующую команду.

Показать справку Apache Command

И последнее, но не менее важное: вы можете получить справку о служебных командах Apache в systemd, выполнив следующую команду. На этом пока все! В этой статье мы объяснили наиболее часто используемые команды управления службами Apache / HTTPD, которые полезно будет знать, включая запуск, включение, перезапуск и остановку Apache. На этом пока все! В этой статье мы объяснили наиболее часто используемые команды управления службами Apache / HTTPD, которые полезно будет знать, включая запуск, включение, перезапуск и остановку Apache

На этом пока все! В этой статье мы объяснили наиболее часто используемые команды управления службами Apache / HTTPD, которые полезно будет знать, включая запуск, включение, перезапуск и остановку Apache.

Пожалуйста, расскажите почему?

Нам жаль, что статья не была полезна для вас Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

Подпишитесь на нашу еженедельную рассылку, и мы будем присылать самые интересные публикации Просто оставьте свои данные в форме ниже.

baltun

Бывает нужно узнать версию установленного программного обеспечения на веб-сервере. Для этого можно использовать соответствующие SSH команды.

Как узнать версию PHP из командной строки?

Настройка аутентификации с помощью открытого ключа SSH в CentOS 7

Чтобы защитить SSH-сервер и настроить аутентификацию с открытым ключом, чтобы повысить безопасность вашего сервера с помощью закрытого ключа SSH для входа в систему, сначала сгенерируйте пару ключей SSH с помощью следующей команды.

Кстати, помимо указанных настроек, после установки сервера, Вы можете проводить мониторинг сайта и проверки uptime через специальный сервис https://www.host-tracker.com/.

Не вводите ключевую фразу, если вы хотите автоматизировать управление сервером через SSH.

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

После того, как открытый ключ SSH был скопирован на удаленный сервер, войдите в систему на удаленном сервере SSH с помощью следующей команды.

Наконец, чтобы защитить сервер SSH, убедитесь, что вы запрещаете удаленный доступ SSH к учетной записи root, открыв файл конфигурации SSH / etc / ssh / sshd_config с вашим текстовым редактором в качестве пользователя root и изменив его с Да на Нет.

Чтобы применить настройку, необходимо перезапустить службу SSH, чтобы она использовала новую конфигурацию.

Создание площадки

Для каждого клиента можно создать одну или несколько площадок, каждая из которых будет использоваться под определенный сайт.

1. Создаем каталоги:

mkdir -p /var/www/u10001/site1.ru/{www,cgi,tmp,log}

mkdir -p /var/www/u10001/site1.ru/log/{apache,nginx}

* подразумевается, что мы создаем площадку для сайта site1.ru.

2. Задаем права на каталоги:

chown -R u10001:virtwww /var/www/u10001/site1.ru

chown -R root:u10026 /var/www/u10001/site1.ru/log

chmod -R 04770 /var/www/u10001/site1.ru

chmod 0710 /var/www/u10001/site1.ru/cgi

chmod -R 0750 /var/www/u10001/site1.ru/log

3. Создаем виртуальный домен в Apache:

vi /etc/httpd/conf.d/site1.ru.conf

<VirtualHost *:8080>
        Define root_domain site1.ru
        Define root_path /var/www/u10001/site1.ru
        ServerName ${root_domain}
        ServerAlias www.${root_domain}
        DocumentRoot ${root_path}/www
        ScriptAlias  /cgi ${root_path}/cgi
        ErrorLog     ${root_path}/log/apache/error_log
        TransferLog  ${root_path}/log/apache/access_log
        php_admin_value upload_tmp_dir ${root_path}/tmp
        php_admin_value doc_root       ${root_path}
        php_admin_value user_dir       www
        php_admin_value open_basedir   /var/www/u10001:/usr/local/share/smarty:/usr/local/share/pear
        php_admin_value session.save_path «0;0660;${root_path}/tmp»
        php_flag display_errors   off
        AssignUserID u10001 virtwww
</VirtualHost>

* где site1.ru — сайт, для которого мы создаем площадку; /var/www/u10001/site1.ru — путь, где будут расположены файлы сайта; AssignUserID определяет, под какими учетными данными будет работать виртуальный домен.

4. Создаем виртуальный домен в nginx:

vi /etc/nginx/conf.d/site1.ru.conf

server {
        listen       80;
        server_name  site1.ru www.site1.ru;
        set $root_path /var/www/u10001/site1.ru/www;
        gzip  on;
        gzip_disable «msie6»;
        gzip_min_length 1000;
        gzip_vary on;
        gzip_proxied    expired no-cache no-store private auth;
        gzip_types      text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
        access_log /home/www/u10001/site1.ru/log/nginx/access_log;
        error_log /home/www/u10001/site1.ru/log/nginx/error_log;
        
        location / {
            proxy_pass http://127.0.0.1:8080/;
            proxy_redirect     off;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
        location ~* ^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|js)$ {
            root   $root_path;
            expires modified +1w;
        }
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/local/www/nginx-dist;
        }
}

Проверяем правильность настроек nginx и httpd:

nginx -t

apachectl configtest

Если ошибок нет, перезапускаем сервисы:

systemctl reload nginx

systemctl reload httpd

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

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

Командная строка

Авторизуемся на FreeIPA:

kinit admin

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

ipa user-add dmosk —first=Дмитрий —last=Моск —password

* где dmosk — логин; first — имя пользователя; last — фамилия; password — ключ для запроса пароля.

… после ввода команды система запросит пароль для создаваемого пользователя — вводим его дважды.

Мы должны увидеть сводку по параметрам для созданного пользователя:

Добавлен пользователь «dmosk»
——————————
  Логин пользователя: dmosk
  Имя: Дмитрий
  Фамилия: Моск
  Полное имя: Дмитрий Моск
  Отображаемое имя: Дмитрий Моск
  Инициалы: ДМ
  Домашний каталог: /home/dmosk
  GECOS: Дмитрий Моск
  Оболочка входа: /bin/sh
  Principal name: [email protected]
  Principal alias: [email protected]
  User password expiration: 20190725205853Z
  Электронный адрес: [email protected]
  UID: 1798800001
  ID группы: 1798800001
  Пароль: True
  Member of groups: ipausers
  Kerberos ключей доступно: True

Примет более полной команды для создания пользователя:

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

  • cn — полное имя.
  • displayname — отображаемое имя.
  • email — адрес электронной почты.

* более полный список атрибутов можно найти на странице с мануалом Fedora Project.

Веб-интерфейс

Открываем браузер и переходим по адресу имени сервера — в нашем примере, https://ipa-server.dmosk.local. Закрываем всплывающее окно с запросом пароля. В появившейся странице авторизации вводим логин admin и его пароль.

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

На панели справа (над списком пользователей) кликаем по Добавить:

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

Проверка

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

kinit dmosk

… и вводим пароль от созданной учетной записи:

Password for [email protected]

При вервом входе система попросит поменять пароль на новый:

Password expired.  You must change it now.
Enter new password: 
Enter it again:

Установка и базовая настройка

Устанавливаем EPEL репозиторий:

# yum install epel-release

Устанавливаем ProFTPd:

# yum install proftpd

Открываем необходимые порты на брандмауэре:

# firewall-cmd --permanent --add-port=20-21/tcp
# firewall-cmd --permanent --add-port=40900-40999/tcp 
# firewall-cmd --reload

Добавим небольшие правки в начальный конфигурационный файл:

# vi /etc/proftpd.conf

UseIPv6 offIdentLookups offPassivePorts 40900 40999

Разрешаем сервис и запускаем его:

# systemctl enable proftpd
# systemctl start proftpd

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

# useradd ftpuser -d /var/www -s /sbin/nologin
# passwd ftpuser

* в данном примере мы создали пользователя ftpuser с домашней директорией /var/www.

6. Создайте пользователя для доступа через SSH к CentOS 7

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

 useradd -m Solvetic_SSH -s / sbin / nologin -g accesoftp 

Шаг 2 Перейдем к определению пароля пользователя с помощью команды passwd.

 passwd Solvetic-SSH 

Шаг 3 Следующим шагом является предоставление разрешений пользователю, созданному как root, для домашнего каталога, и кто может их изменять, для этого мы вводим следующие команды:

 chown root / home / Solvetic_SSH chmod 750 / home / Solvetic_SSH 

Шаг 4 После предоставления пользователю разрешений мы создадим каталог с именем www в домашнем каталоге и для этого введем следующее:

 mkdir / home / Solvetic_SSH / www chown Solvetic_SSH: accesoftp / home / Solvetic_SSH / www 

Шаг 5 В этом случае мы получаем доступ из Fedora 24 к FTP в CentOS 7 и видим, что он работает правильно. Просто введите IP-адрес ftp и введите соответствующие учетные данные.

Используя эти методы, мы можем легко и удобно смонтировать FTP- сервер в CentOS 7 . Монтирование нашего FTP-сервера дает нам несколько преимуществ, когда речь идет о передаче файлов, что значительно облегчает нашу работу. В Windows 10 также есть различные способы создания FTP-сервера, наиболее полезным, несомненно, является тот, который не нуждается во внешних программах.

FTP сервер W10

Отключение Shell Shell Access

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

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

Выполните следующие команды, чтобы создать оболочку и сделать ее исполняемой:

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

Измените пользовательскую оболочку на :

Используйте ту же команду, чтобы изменить оболочку для других пользователей, которым вы хотите предоставить только доступ по FTP.

Создайте пользователя для доступа к службам FTP

Чтобы создать пользователя для использования службы FTP, используйте следующую команду:

# useradd user1
# passwd user1

Добавьте этого пользователя в файл user_list , чтобы ограничить пользователя их домашним каталогом, используйте следующая команда:

# vim /etc/vsftpd/user_list

Введите « i » для вставки и введите это имя пользователя, как показано на рисунке:

Нажмите ESC и введите : wq! для сохранения файла.

Если вы хотите предоставить конкретному пользователю общий доступ к системе, добавьте этого пользователя в / etc / vsftpd / chroot_list.

Перезапустите службу VSFTPD :

# systemctl restart vsftpd

Проверьте состояние службы FTP с помощью следующей команды:

# systemctl status vsftpd

Шифрование при передаче данных

Следующим этапом настроим передачу данных через TLS.

В конфигурационном файле сервера ftp снимаем комментарий для строки:

vi /etc/proftpd/proftpd.conf

Include /etc/proftpd/tls.conf

Открываем конфигурационный файл tls.conf:

vi /etc/proftpd/tls.conf

Снимаем комментарии для следующих настроек:

TLSEngine                       on
TLSLog                          /var/log/proftpd/tls.log
TLSProtocol                     SSLv23

TLSRSACertificateFile           /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile        /etc/ssl/private/proftpd.key

TLSOptions                      NoCertRequest EnableDiags NoSessionReuseRequired

TLSVerifyClient                 off

TLSRequired                     on

* параметр TLSRequired можно задать в значение off, если мы не хотим требовать от клиента соединения по TLS.

Приводим значение для одного из раскомментированных параметров к следующему:

TLSProtocol                     SSLv23 TLSv1.2

* мы добавили TLSv1.2 для поддержки более актуального протокола шифрования. В противном случае, некоторые старые клиенты могут возвращать ошибку Error in protocol version.

Генерируем сертификат:

openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -subj «/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=ftp.dmosk.local/CN=ftp»

* где ftp.dmosk.local — имя сервера в формате FQDN (не принципиально).

Перезапускаем ProFTPd:

systemctl restart proftpd

Max connections per single IP Address

By default VSFTPD allows unlimited connection from the same client IP address, which can expose the FTP service to flood-based attacks or make it prone to some sort of client’s abuse. In order to overcome this, there is a special directive called max_per_ip that can be used to force the server to use limited number of connection:

INI

#set maximum allowed connections per single IP address (0 = no limits)
max_per_ip=10

1
2

#setmaximumallowedconnectionspersingleIPaddress(=nolimits)

max_per_ip=10

That’s it for now: in the following article we’ll show how to strengthen the FTP server even further using SSL/TLS for secure connections and file transfers.

Настройка хостинга

На предыдущем шаге представлена ссылка на статью, по которой мы сконфигурировали полноценный веб-сервер. Но для хостинга необходимо внести некоторые дополнительные настройки.

Общий пользователь

Так как к одним и тем же каталогам необходимы права доступа для nginx и apache, создаем общую группу и добавим в нее учетные записи, от которых работают данные веб-сервисы.

Добавим группу virtwww:

groupadd virtwww

Задаем созданную группу как дополнительную для apache и nginx:

usermod apache -G virtwww

usermod nginx -G virtwww

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

Чтобы каждый виртуальный домен apache мог работать от отдельного пользователя, устанавливаем модуль httpd-itk:

yum install httpd-itk

После открываем следующий файл:

vi /etc/httpd/conf.modules.d/00-mpm-itk.conf

и снимаем комментарий для LoadModule — получится:

LoadModule mpm_itk_module modules/mod_mpm_itk.so

Настройка Apache

Добавим разрешения на каталоги, в которых будут храниться файлы сайтов:

vi /etc/httpd/conf/httpd.conf

<Directory /var/www/*/*/www>
    AllowOverride All
    Options Indexes ExecCGI FollowSymLinks
    Require all granted
</Directory>
<Directory /var/www/*/*/cgi>
        AllowOverride All
        Options Indexes ExecCGI FollowSymLinks
        Require all granted
</Directory>

* по предложенной статье права были выданы на каталоги  /var/www/*/www, для хостинга мы будем использовать немного другую вложенность.

SELinux Configuration File

The main configuration file for SELinux is /etc/selinux/config. We can run the following command to view its contents:

The output will look something like this:

There are two directives in this file. The SELINUX directive dictates the SELinux mode and it can have three possible values as we discussed before.

The SELINUXTYPE directive determines the policy that will be used. The default value is . With a targeted policy, SELinux allows you to customize and fine tune access control permissions. The other possible value is “MLS” (multilevel security), an advanced mode of protection. Also with MLS, you need to install an additional package.

Enabling and Disabling SELinux

Enabling SELinux is fairly simple; but unlike disabling it, should be done in a two-step process. We assume that SELinux is currently disabled, and that you’ve installed all of the SELinux packages from the earlier section.

As a first step, we need to edit the file to change the SELINUX directive to permissive mode.

Setting the status to permissive first is necessary because every file in the system needs to have its context labelled before SELinux can be enforced. Unless all files are properly labelled, processes running in confined domains may fail because they can’t access files with the correct contexts. This can cause the boot process to fail or start with errors. We will introduce contexts and domains later in the tutorial.

Now issue a system reboot:

The reboot process will see all the files in the server labelled with an SELinux context. Since the system is running in permissive mode, SELinux errors and access denials will be reported but it won’t stop anything.

Log in to your server again as root. Next, search for the string “SELinux is preventing” from the contents of the /var/log/messages file.

If there are no errors reported, we can safely move to the next step. However, it would still be a good idea to search for text containing “SELinux” in /var/log/messages file. In our system, we ran the following command:

This showed some error messages related to the GNOME Desktop that was running. This was happening when SELInux was either disabled or in permissive mode:

These types of errors are fine.

In the second phase, we need to edit the config file to change the SELINUX directive from permissive to enforcing in the file:

Next, reboot the server again.

Once the server is back online, we can run the command to check the SELinux status. It should now show more details about the server:

Check the /var/log/messages file:

There should be no errors. The output should look something like this:

Checking SELinux Modes and Status (Again)

We can run the command to check the current SELinux mode.

If our system is running in enforcing mode the output will look like this:

The output will be different if SELinux is disabled:

We can alo run the command to get a better picture.

If SELinux isn’t disabled, the output will show its current status, its current mode, the mode defined in the configuration file, and the policy type.

When SELinux is disabled the output will show:

We can also temporarily switch between enforcing and permissive modes using the command. (Note that we can’t run when SELinux is disabled.)

First change the SELinux mode from enforcing to permissive in our CentOS 7 system:

Running the command now shows the current mode is different from the mode defined in config file:

Switch back to enforcing:

5. Verify ProFTPD installation on CentOS

At this point you are ready to use the ProFTPD service on your CentOS VPS. To upload or download files, you can use your favorite FTP client. As username and password you can use any system user that exists on your server. Alternatively, you can access your FTP server using a web browser. Open your favorite web browser and enter the following:

ftp://111.111.111.111

For demonstrative purposes we used 111.111.111.111. You should either use your server IP address or a domain name which points to your server IP address.

If you like to take full advantage of the ProFTPD’s functionality, you can tweak the default settings. The default configuration file of the service is . The configuration file has Apache-like syntax and description for all the settings. To learn more you can visit http://www.proftpd.org/docs/ where you can find the official project documentation.

Настройка ftpd

Настройка ftpd для FreeBSD (для Linux больших отличий быть не может):

Для включение ftpd нужно раскоментировать одну строку в inetd.conf и перезапустить inetd> ee /etc/inetd.conf
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
> /etc/rc.d/inetd restart

Некоторые настройки сервера, в том числе и касающиеся ограничения доступа, можно выполнить с помощью ключей командной строки. Если вы запускаете ftpd из inetd, добавьте нужные параметры в соответствующей строке файла inetd.conf (по умолчанию там записан только ключ l).

Для протоколирования даемон ftpd использует сообщения Использование syslog.> ee /etc/syslog.conf
ftp.info /var/log/xferlog

В файле /etc/ftpusers находится список пользователей, которым запрещен доступ по FTP. По умолчанию он включает системные учетные записи, но в него можно добавить и определенных пользователей, которым будет запрещен доступ по FTP.

Анонимный доступ: Для анонимного FTP доступа на сервер, в системе FreeBSD необходимо создать пользователя ftp. Этот пользователь сможет входить на FTP сервер с именем пользователя ftp или anonymous, с любым паролем (существует соглашение об использовании почтового адреса пользователя в качестве пароля). FTP сервер выполнит chroot при входе пользователя anonymous для ограничения доступа только домашним каталогом пользователя ftp. У этого пользователя должна быть «легальная» оболочка (одна из указанных в /etc/shells). Также у него не может быть пустого пароля.

Существуют два текстовых файла, определяющих сообщение, отправляемое FTP клиентам. Содержимое файла /etc/ftpwelcome будет выведено пользователям перед приглашением на вход. После успешного входа будет выведено содержимое файла /etc/ftpmotd

Обратите внимание, что путь к этому файлу задается относительно домашнего каталога пользователя, так что анонимным пользователям будет отправляться ~ftp/etc/ftpmotd.

Ограниченный доступ: Вам может понадобиться ограничить доступ определенных пользователей без полного запрета использования FTP. Это можно сделать через файл /etc/ftpchroot

В нем находится список пользователей и групп, к которым применяется ограничение доступа. В том случае, если имя пользователя присутствует в файле /etc/ftpchroot, то соответствующий процесс запускается в chroot-окружении, ограничивая пользователю доступ только его домашним каталогом (или тем, который указан во втором поле файла ftpchroot). При необходимости организовать такую работу для большого числа пользователей (например, дать всем абонентам доступ для обновления своих домашних веб-страничек), в ftpchroot можно указать общую для них группу, предварив ее имя символом @. Во втором поле дополнительно может быть указан каталог, который следует использовать в качестве корневого для соответствующего пользователя или группы. Вот пример такого файла:vasya
petya /var/db/petya
@dialup

Теперь Вася и все пользователи группы dialup смогут работать только в пределах своих домашних каталогов, а для Пети в качестве рабочей будет определена указанная папка /var/db/petya. С помощью разделителя /./ можно указать каталог, отличающийся от корневого, который станет текущим:

serg /home/serg/./public_html

В данном случае для пользователя serg доступ будет ограничен каталогом /home/serg, но в качестве текущего при входе на сервер установится /home/serg/public_html.

Install and Configure OpenSSH Server in CentOS 7

Another of the alternatives we have is to install and configure SSH in CentOS 7 to access from port 22 and to do this we will do the following.

For this we will enter the following command:

sudo yum -y install openssh-server-y install openssh-server

Once downloaded and installed, we will create a group for FTP access , for which we will enter the following:

sudo groupadd accesoftp

By default the path where the configuration is stored is /etc/ssh/sshd_config so we open this file using the preferred editor, and we will see the following.

Subsystem sftp/usr/libexec/openssh/sftp-server# symbol

Finally we enter the following lines in the bottom of the file:

  • Subsystem sftp internal-sftp
  • Match group accesoftp (Here we enter the name of the created group)
  • ChrootDirectory% h
  • X11Forwarding not
  • AllowTcpForwarding not
  • ForceCommand internal-sftp

restart the SSH service

sudo systemctl restart sshd

To save the changes: Ctrl +O

To exit the editor: Ctrl +X

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

Рассмотрим вариант, когда пользователи ftp сервера не должны пересекаться с локальными. В данном примере будут работать только виртуальные пользователи. Я мельком проверил, можно ли настроить и тех и других, оказалось, что можно. Но там надо аккуратно с правами разбираться и со списками разрешенных пользователей. Я решил, что не буду описывать эту ситуацию, так как не очень представлю, когда она может пригодиться. Если кому-то надо, то на базе этой статьи он сам сможет разобраться.

Чтобы авторизовать виртуальных пользователей, установим дополнительный пакет compat-db:

# yum install compat-db

На всякий случай сохраните оригинальный pam.d файл, если захотите снова вернуться к системным пользователям:

# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.orig

Нужно изменить pam файл /etc/pam.d/vsftpd, приведя его к следующему виду:

# mcedit /etc/pam.d/vsftpd
auth required pam_userdb.so db=/etc/vsftpd/virt_users
account required pam_userdb.so db=/etc/vsftpd/virt_users
session required pam_loginuid.so
# mcedit /etc/vsftpd/vsftpd.conf

Рисуем следующий конфиг для vsftpd vsftpd.conf
Создаем файл с виртуальными пользователями:

# touch /etc/vsftpd/virt_users

Добавляем туда в первую строку имя пользователя, во вторую его пароль

В конце не забудьте перейти на новую строку, это важно. Файл должен быть примерно таким:

ftp-virt1
password1
ftp-virt2
password2

Сохраняем файл и генерируем локальное хранилище учеток:

# db_load -T -t hash -f /etc/vsftpd/virt_users /etc/vsftpd/virt_users.db

У вас должен появиться файл virt_users.db.

Нужно создать каталоги для этих пользователей:

# mkdir /ftp/ftp-virt1 /ftp/ftp-virt2

Для папки /ftp надо назначить соответствующего владельца, от которого ftp сервер будет пускать виртуальных пользователей:

# chown -R ftp. /ftp

На этом настройка виртуальных пользователей ftp закончена. Перезапускаем vsftpd и пробуем залогиниться:

# systemctl restart vsftpd

Я набросал небольшой скрипт, чтобы было удобно добавлять новых пользователей, предлагаю воспользоваться:

# mcedit /etc/vsftpd/add_virt_user.sh
#!/bin/sh

echo -n "Enter name of virtual user: "
read virtuser

echo -n "Enter password: "
read virtpass

mkdir /ftp/$virtuser
chown ftp. /ftp/$virtuser
touch /etc/vsftpd/users/$virtuser

echo "$virtuser" >> /etc/vsftpd/virt_users
echo "$virtpass" >> /etc/vsftpd/virt_users

db_load -T -t hash -f /etc/vsftpd/virt_users /etc/vsftpd/virt_users.db

Делаете файл исполняемым и запускаете:

# chmod 0700 /etc/vsftpd/add_virt_user.sh
# /etc/vsftpd/add_virt_user.sh
Enter name of virtual user: ftp-virt2
Enter password: 123456

Все, пользователь добавлен, можно сразу им заходить. Вот так легко и просто настраиваются виртуальные пользователи в vsftpd. Рассмотрим теперь третий вариант, когда эти пользователи хранятся в mysql базе.

Установка Nextcloud

Для загрузки и распаковки архива на нужны следующие пакеты:

dnf install wget unzip

Переходим во временную папку:

cd /tmp

Заходим на и копируем ссылку на скачивание последней версии программы:

Скачиваем исходник для установки:

wget https://download.nextcloud.com/server/releases/nextcloud-19.0.1.zip

Распаковываем скачанный архив:

unzip nextcloud-*.zip -d /var/www

Задаем права доступа:

chown -R apache:apache /var/www/nextcloud

Открываем браузер и переходим по адресу https://nextcloud.dmosk.ru, где nextcloud.dmosk.ru — наш адрес облачного сервиса, который мы создали в NGINX. Если мы используем самоподписанный сертификат, браузер выдаст предупреждение безопасности — игнорируем его и переходим на страницу.

* так как мы настроили виртуальный домен, важно обратиться к серверу, именно, по имени. Таким образом, настроенный узел (в моем случае, nextcloud.dmosk.ru) должен разрешаться в DNS или быть внесен в локальный файл hosts. Прописываем логин и пароль администратора, которые хотим использовать для входа, кликаем по Хранилище и база данных:

Прописываем логин и пароль администратора, которые хотим использовать для входа, кликаем по Хранилище и база данных:

Переключаемся на MySQL/MariaDB, вводим в качестве логина, пароля и базы nextcloud:

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

После установки мы окажемся в системе.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: