Содержание
- Vsftpd описание
- 1. Установите сервер vsftpd:
- 2. Проверьте, была ли создана учетная запись пользователя ftp (с оболочкой nologin) и задан пароль для пользователя ftp:
- 2. 1 Отредактируйте файл: /etc/vsftpd/vsftpd.conf и измените его, как показано ниже:
- 3. Установите права на /var/ftp (ftp user home directory) и атрибуты selinux:
- 4. Включите и запустите службу vsftpd:
- 5. Тестирование и устранение неисправностей.
Vsftpd описание
vsftpd (Very Secure File Transfer Protocol Daemon) – легкий, быстрый и по умолчанию демон FTP-сервера для rpm-дистрибутивов Linux (CentOS / RHEL / Fedora).
Мы установим vsftpd на CentOS7 с включенным selinux в режиме Enforcing
1. Установите сервер vsftpd:
[root@tux ~]# yum install vsftpd
2. Проверьте, была ли создана учетная запись пользователя ftp (с оболочкой nologin) и задан пароль для пользователя ftp:
[root@tux /]# getent passwd ftp
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
[root@tux /]# finger ftp
Login: ftp Name: FTP User
Directory: /var/ftp Shell: /sbin/nologin
Never logged in.
No mail.
No Plan.
[root@tux /]# passwd ftp
Changing password for user ftp.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
2. 1 Отредактируйте файл: /etc/vsftpd/vsftpd.conf и измените его, как показано ниже:
# Example config file /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
allow_writeable_chroot=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
3. Установите права на /var/ftp (ftp user home directory) и атрибуты selinux:
[root@tux ~]# chown -R ftp:ftp /var/ftp
[root@tux ~]# semanage fcontext -a -t public_content_rw_t /var/ftp
[root@tux ~]# restorecon -Rvv /var/ftp
[root@tux ~]# setsebool -P ftp_home_dir 1
[root@tux ~]# setsebool -P ftpd_full_access 1
[root@tux ~]# ls -lZ /var | grep ftp
drwxr-xr-x. ftp ftp system_u:object_r:public_content_rw_t:s0 ftp
4. Включите и запустите службу vsftpd:
[root@tux ~]# systemctl enable vsftpd
[root@tux ~]# systemctl start vsftpd
[root@tux ~]# systemctl status vsftpd
vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled)
Active: active (running) since Sat 2015-05-09 22:35:11 CEST; 11min ago
Main PID: 12285 (vsftpd)
CGroup: /system.slice/vsftpd.service
└─12285 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
May 09 22:35:11 router systemd[1]: Started Vsftpd ftp daemon.
...
5. Тестирование и устранение неисправностей.
Теперь давайте протестируем наш FTP-сервер с localhost:
[root@tux /]# ftp localhost
Trying ::1...
Connected to localhost (::1).
220 (vsFTPd 3.0.2)
Name (localhost:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
Если у вас все еще есть проблемы с входом в систему, проверьте алерты selinux, если selinux еще не блокирует доступ.
Запустите команду и проверьте предупреждения:
[root@tux /]# sealert -b
Во время тестов вы также можете временно установить selinux в режим Permissive, чтобы увидеть, если vsftpd теперь доступен и в конечном итоге исключает проблему selinux:
[root@tux /]# setenforce Permissive
[root@tux /]# getenforce
Permissive