Behold, the
fool saith, "Put not all thine eggs in the one
basket"
—which is but a manner of saying, "Scatter your
money and your
attention"; but the wise man saith, "Put all
your eggs in
the one basket and—WATCH THAT BASKET!"
— Pudd'nhead
Wilson's Calendar
Если вдруг
нужно поднять FTP сервер (на CentOS), то в
сети можно найти достаточно инструкций
как это сделать. Например:
Но этого поста
не было бы, если бы всё было так просто.
Большинство инструкций подразумевают,
что SELinux выключен, хотя обычно это не
так. Почему и возникают ошибки вида
«VSFTPd
500
OOPS:
cannot
change
directory».
Короче, сначала
обычная настройка vsftpd:
yum install vsftpd nano /etc/vsftpd/vsftpd.conf anonymous_enable=NO nopriv_user=ftpsecure local_enable=YES chroot_local_user=NO listen=YES #local_root=/var/www/ftp EOF chkconfig vsftpd on adduser ftpsecure passwd ftpsecure usermod -s /sbin/nologin ftpsecure system-config-firewall-tui nano /etc/sysconfig/iptables nano /etc/sysconfig/iptables-config iptables -L -vn service iptables stop # а вдруг оно не работает из-за файрволла? service vsftpd restart
После чего проверяете с помощью FileZilla
(потому как разговорчивая она), как все
работает. Обычно — не работает.
Вот теперь
надо вспомнить про SELinux:
getsebool -a | grep ftp setsebool -P ftp_home_dir on
И после того,
как FTP заработал, можно включить файрволл
обратно:
service iptables start iptables: Applying firewall rules: [ OK ] iptables: Loading additional modules: nf_conntrack_ftp [ OK ] iptables -L -vn Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 489 174K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 8 438 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:21 61 9185 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited nano /etc/sysconfig/iptables-config IPTABLES_MODULES="nf_conntrack_ftp" EOF
и проверить работу еще раз.
Ежели вдруг
вам захочется, чтобы FTP клал/брал файлы
не из домашней папки подключившегося
юзера, то придется сделать так:
nano /etc/vsftpd/vsftpd.conf chroot_local_user=NO local_root=/var/www/ftp EOF mkdir -p /var/www/ftp chown -R ftpsecure:ftpsecure /var/www chmod -R 777 /var/www setsebool -P allow_ftpd_full_access on service vsftpd restart
Хотя это и не рекомендуется. Не безопасно.
Как узнать,
какой параметр SELinux надо включить:
audit2allow -a
А как узнать,
в каком пакете эта программа:
yum provides \*/audit2allow policycoreutils-python-2.0.83-19.30.el6.i686 : SELinux policy core python utilities Repo : base Matched from: Filename : /usr/bin/audit2allow
Источники:
original post http://vasnake.blogspot.com/2013/09/vsftpd-on-centos.html
Этот комментарий был удален администратором блога.
ОтветитьУдалить