Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
1. Концепция 1.1 Введение FTP: протокол передачи файлов протокол передачи файлов порт TCP21: Команда TCP20: данные
1.2 Принцип Пассивный режим используется по умолчанию Пассивный режим FTP Для решения проблемы инициируемых сервером подключений к клиентам был разработан другой способ подключения к FTP. Это то, что называется быть Активный режим, или PASV, включается, когда клиент уведомляет сервер о том, что он находится в пассивном режиме. В пассивном режиме FTP как командное соединение, так и соединение для передачи данных обрабатываются клиентом, что может решить проблему фильтрации входящего соединения от сервера к порту данных клиента брандмауэром. При открытии FTP-соединения клиент открывает два произвольных непривилегированных локальных порта (N >; 1024 и N+1). Первый порт подключен к порту 21 сервера, но в отличие от активного FTP клиент не отправляет команду PORT и позволяет серверу подключаться туда и обратно к своему порту данных, а отправляет команду PASV. В результате сервер откроет произвольный непривилегированный порт (P >; 1024) и отправьте ПОРТ. Команда P клиенту. Затем клиент инициирует соединение с локального порта N+1 на порт P сервера для передачи данных. Чтобы межсетевые экраны на стороне сервера поддерживали пассивный FTP, необходимо разрешить следующий трафик: Команда FTP-сервера (21) port принимает любой порт клиента (первоначальное подключение клиента) FTPКоманда сервера(21)портклиентупорт(>1023)(Сервер отвечает на команды клиента) FTPДанные серверапорт(>1023)Принять клиентапорт(>1023)(Клиент инициализирует соединение для передачи данных любым, указанным сервером.порт) FTPДанные серверапорт(>1023)клиентупорт(>1023)(Сервер отправленACKответиданныеклиенту的данныепорт) NFS, на основе аутентификации хоста, передача только файлов между локальными сетями FTP, который может осуществлять аутентификацию между пользователями Реальный: локальный пользователь , пользователь сервера анонимный пользователь Виртуальный (гостевой) пользователь (Требуется только один сервер)
1.3 Конфигурационный файл хозяин Конфигурационный файл: vim /etc/vsftpd/vsftpd.conf от Конфигурационный файл vim /var/ftp/pub хозяин Конфигурационный файл Подробное объяснение anonymous_enable=YES Включить ли анонимный пользователь local_enable=YES write_enable=YES Разрешить писать (либо анонимно пользовательвсе ещелокальный Чтобы пользователь реализовал загрузку, нужно быстро ее включить) local_umask=022 Разрешение локального пользователя на загрузку файлов по умолчанию — 755. dirmessage_enable=YES Отображение информации о файле в каждом каталоге xferlog_enable=YES Журнал включен connect_from_port_20=YES Активно запрашиваемый порт данных chown_uploads=YES всеанонимный Пользователь, чей файл принадлежит пользователюзагрузить, будет изменен на chown_username. chown_username=whoever Имя пользователя для анонимных загрузок — любое. xferlog_file=/var/log/xferlog Включенные файлы журналов xferlog_std_format=YES idle_session_timeout=600 Тайм-аут соединения при простое data_connection_timeout=120 Тайм-аут соединения для передачи данных nopriv_user=ftpsecure Имя пользователя, используемое, когда сервер работает на самом низком уровне. chroot_list_enable=YES chroot_local_user=YES Во всех файлах перечислены пользователи, Можно переключаться на другие каталоги chroot_list_file=/etc/vsftpd/chroot_list listen=NO Служба будет прослушивать сама и обрабатывать Listen_ipv6=YES pam_service_name=vsftpd По умолчанию установите имя модуля аутентификации PAM на vsftpd. userlist_enable=YES tcp_wrappers=YES Политики контроля доступа на стороне сервера и на стороне клиента (своего рода межсетевой экран на уровне сервера)
2. Экспериментируйте 2.1анонимный пользователь Доступ по умолчанию /ftp/pub 2.1.1 Подготовка 1) Установите vsftpd [root@localhost ~]# mount /dev/sr0 /mnt mount: /dev/sr0 is write-protected, mounting read-only [root@localhost ~]# yum install vsftpd –y
2) Закройте службу vsftpd, закройте брандмауэр и SE Linux. [root@localhost ~]# systemctl остановить firewalld [root@localhost ~]# setenforce 0 [root@localhost ~]# перезапуск systemctl vsftpd
2.1.2 Скачать IP виртуальной машины: 192.168.233.131. [root@localhost ~]# mkdir /var/ftp/pub/{1.3}
2) Или посетите браузер ftp://192.168.233.131/pub/ для скачивания.
2.1.3 загрузить 1)Исправлять Конфигурационный связанные параметры файла/etc/vsftpd/vsftpd.conf [root@localhost ~]# vim /etc/vsftpd/vsftpd.conf содержание anon_umask=022 (увеличение) anon_upload_enable=ДА (раскомментировать) anon_mkdir_write_enable=ДА (раскомментировать)
2) Перезапустите службу vsftpd. [root@localhost ~]# перезапуск systemctl vsftpd
3) Измените права доступа к каталогу /var/ftp/pub и дайте ему права на запись. [root@localhost ~]# chmod 777 /var/ftp/pub
4) Доступ к диспетчеру ресурсов окна Введите FTP://192.168.233.131., введите файл загрузки в каталоге pub.
Или посетите браузер ftp://192.168.233.131/pub/ для загрузки.
2.1.4 Удалить 1)Исправлять Конфигурационный связанные параметры файла/etc/vsftpd/vsftpd.conf [root@localhost ~]# vim /etc/vsftpd/vsftpd.conf Увеличиватьсодержание anon_other_write_enable=YES
2) Перезапустите тест службы vsftpd. [root@localhost ~]# перезапуск systemctl vsftpd
2.2 локальный пользователь 2.2.1 Скачать 1)Исправлятьхозяин Конфигурационный файл/etc/vsftpd/vsftpd.confвключатьлокальный пользователь Разрешения(закрытиеанонимный пользователь) [root@localhost ~]# vim /etc/vsftpd/vsftpd.conf anonymous_enable=NO
Измените логическое значение, чтобы открыть разрешения для каталога /home. [root@localhost haha]# getsebool -a | grep ftp_home_dir ftp_home_dir –> off [root@localhost haha]# setsebool -P ftp_home_dir on 2.2.2загрузитьиудалить(Такой же) 1)Исправлятьхозяин Конфигурационный файл/etc/vsftpd/vsftpd.confвключатьлокальный разрешение пользователя (включено по умолчанию, менять не нужно) [root@localhost ~]# vim /etc/vsftpd/vsftpd.conf write_enable=YES
2) Перезапустите службу vsftpd. [root@localhost ~]# перезапуск systemctl vsftpd
3) Просмотрите адрес ftp://192.168.233.138 в браузере. Вход в систему с паролем пользователя,По умолчанию это корневой каталог пользователя.,Откройте адрес ftp://192.168.233.138 в диспетчере ресурсов.,руководитьзагрузитьудалить
удалить
2.2.3 Обход Текущий пользователь переключает файловую систему вперед и назад. Если она включена, каталог не может переключаться вперед и назад.
Перезапустите службу для просмотра
2) Укажите доступ пользователя в файле списка пользователей. chroot_list_enable=YES разрешает доступ пользователей к файлу списка пользователей /etc/vsftpd/chroot_list (создайте файл chroot_list в каталоге /etc/vsftpd и запишите в него имя пользователя. Пользователи, не указанные в файле, не смогут получить к нему доступ).
Сначала включите опцию chroot,allow_writeable_chroot=YES, Укажите еще разлокальный доступ к пользователю невозможен ,chroot_local_user=YES Последний пользователь, указанный в файле списка пользователей, может получить доступ. chroot_list_enable=YES [root@localhost ~]# vim /etc/vsftpd/vsftpd.conf Добавьте содержание как: включить опцию chroot allow_writeable_chroot=YES Раскомментировать обозначениелокальный пользователь не может просмотреть каталог chroot_local_user=YES Пользователи, указав файл списка пользователей, могут получить к нему доступ, но пользователи, не указанные в файле, не могут получить к нему доступ. chroot_list_enable=YES
Перезапустите службу, создайте файл chroot_list в каталоге /etc/vsftpd и пропишите в нем имена пользователей xixi и xigua. [root@localhost ~]# перезапуск systemctl vsftpd [root@localhost vsftpd]# компакт-диск [root@localhost ~]# cd /etc/vsftpd/ [root@localhost vsftpd]# vim chroot_list xixi Сигуа
Создайте пользователей xixi, xigua (пользователь находится в файле списка), пароль redhat, посетите браузер ftp://192.168.233.138 для просмотра, вы можете получить доступ [root@localhost vsftpd]# echo redhat | passwd –stdin xigua Измените пароль пользователя xigua. passwd: все токены аутентификации успешно обновлены. [root@localhost vsftpd]# echo redhat | passwd –stdin xixi Измените пароль для пользователя xixi. passwd: все токены аутентификации успешно обновлены.
Создайте пользователя hh (пользователя нет в файле списка) и пароль redhat. Посетите браузер ftp://192.168.233.138, чтобы просмотреть его, но доступ к нему невозможен. [root@localhost ~]# useradd хх [root@localhost ~]# echo redhat | passwd –stdin hh Измените пароль для пользователя hh. passwd: все токены аутентификации успешно обновлены.
2.3 Гостевые пользователи (виртуальные пользователи) 2.3.1 Принцип В Linux после использования vsftp для создания пользователя доступ по умолчанию с использованием ftp заключается в доступе к домашнему каталогу соответствующего пользователя. Если вы хотите, чтобы несколько пользователей имели доступ к каталогу одновременно и имели разные права доступа к одному и тому же каталогу, эти настройки можно установить только через виртуального пользователя в vsftp. Обычные пользователи не могут добиться такого эффекта. Сначала создайте общего системного пользователя и домашний каталог, затем сопоставьте всех виртуальных пользователей с домашним каталогом соответствующего общего системного пользователя, а затем управляйте разрешениями каждого виртуального пользователя. Виртуальные пользователи не имеют разрешения на просмотр каталога.
1) Создайте ftp системного пользователя и измените права доступа к домашнему каталогу ftp пользователя. [root@localhost ~]# useradd -s /sbin/nologin ftp [root@localhost ~]# chmod 704 /home/ftp
2)Исправлятьхозяин Конфигурационный файл [root@localhost ~]# vim /etc/vsftpd/vsftpd.conf #Увеличиватьсодержание guest_enable=YES guest_username=ftp #Привилегии локального виртуального пользователя включены virtual_use_local_privs=YES Перезапустить службу [root@localhost ~]# systemctl restart vsftpd
3) Создание файлов виртуальных пользователей, [root@localhost ~]# cd /etc/vsftpd/ [root@localhost vsftpd]# vim ftp ftp1 красная шляпа ftp2 красная шляпа FTP3 красная шляпа [root@localhost ~]# cd /etc/vsftpd/ [root@localhost vsftpd]# vim ftp [root@localhost vsftpd]# db_load -T -t hash -f ftp ftp.db [root@localhost vsftpd]# chmod 600 ftp.db [root@localhost vsftpd]# ll -Z ftp.db -рв——-. корень root unconfined_u:object_r:etc_t:s0 ftp.db
[root@localhost vsftpd]# vim /etc/pam.d/vsftpd auth required pam_userdb.so db=/etc/vsftpd/ftp account required pam_userdb.so db=/etc/vsftpd/ftp
[root@localhost vsftpd]# systemctl restart vsftpd
Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/157903.html Исходная ссылка: https://javaforall.cn