Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2013-10-08

vsftpd on CentOS

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

1 комментарий:

  1. Этот комментарий был удален администратором блога.

    ОтветитьУдалить

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) Baltic (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)