Продолжаем собирать наш сервер.
Как говорил режиссер любительского театра в фильме "Берегись автомобиля" : А не замахнуться ли нам на самого Вильяма, понимаете ли Шекспира.
VSFTPD - файловый сервер
Самый первый соблазн сделать в локальной сети из него файлопомойку и выбросить самбу.
Помойку организовать несложно, но "сетевое окружение виндос - общая папка" заменить не получится.
Принцип другой. В FTP: скачал файл, поработал, изменил, загрузил обратно. 1С и другие приложения виндос работают по другому.
Это действительно уважаемый файловый хранитель и достоин нашего внимания.
В Альт Линукс 5.0 Ковчег Сервер он уже стоит и просто настраивается через web-интерфейс.
Для того кто желает тонко настраивать или знать как работает изнутри, предлагаю свое краткое описание:
В ALT Linux 5.0.0 Desktop KDE
Шаг № 1: Устанавливаем vsftpd
[root@server ~]#apt-get install vsftpd
Следует обратить внимание на файлы документации в каталоге /usr/share/doc/vsftpd, каталог EXAMPLE который уже содержит различные примеры конфигурационного файла vsftpd.conf.
Также будет полезно посмотреть man vsftpd.conf - в этом мане, на русском, подробно расписываются все возможности программы.
Шаг № 2: Определяем каталог для размещения файлов
В файле /etc/passwd находим строку
vsftpd:x:116:36::/var/ftp:/dev/null
числа будут другие. Видим, что изначально назначен каталог /var/ftp. Если мы решили размещать файлы в другом месте, так и пишем. Допустим /home/ftp
vsftpd:x:116:36::/home/ftp:/dev/null
если вы решились на файлпомойку, то можете в нашем примере просто подключить тот второй диск (на который мы поставили виндос)
vsftpd:x:116:36::/mnt/sda1:/dev/null
Шаг № 3: Включаем FTP и определяем сети в которых он будет виден
Изначально VSFTPD включает суперсервер. Это означает, что сам FTP сервер выключен, но при получении запроса об этом узнает суперсервер xinetd, который запускает FTP. FTP закончив работу отключается и ждет нового сигнала от xinetd.
Для этого в /etc/xinetd.d/vsftpd
disable = yes
заменяем
disable = no
если планируем использовать FTP только для локальной сети (пример локальной файлопомойки), то:
only_from +=192.168.0.0/24
или разрешаем загрузку из интернета, с любого адреса:
only_from +=0/0
Шаг № 4: Создаем сам каталог, размещаем там файлы и регулируем права доступа
Если FTP предназначается только для анонимного доступа для скачивания файлов, то:
mkdir /home/ftp
chmod 755 /home/ftp
chmod 644 /home/ftp/file1
Если мы открываем каталог для размещения анонимным пользователем файлов, то создаем для этого каталог.
mkdir /home/ftp/incoming
chown root.vsftp /home/ftp/incoming
chmod 755 /home/ftp/incoming
Если мы подключаем раздел виндос, то там вообще все открыто.
Шаг № 5: Редактируем основной конфигурационный файл /etc/vsftpd/conf
Пример № 1: Разрешен анонимный вход в общий каталог, с правом загружать файлы в каталог incoming.
Причем в этом каталоге можно создать подкаталог, загрузить файл, удалить и переименовать. Просмотреть и скачать файл в этом каталоге нельзя.
В примере с разделом виндос можно все.
# Access rights
anonymous_enable=YES
local_enable=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
В принципе этого достаточно, но если мы собираемся размещать FTP в интернете, лучше добавить из примера /usr/share/doc/vsftpd следующее:
# Security
anon_world_readable_only=YES
connect_from_port_20=NO
hide_ids=YES
pasv_min_port=50000
pasv_max_port=60000
# Features
xferlog_enable=YES
ls_recurse_enable=NO
ascii_download_enable=NO
async_abor_enable=YES
# Performance
one_process_model=YES
idle_session_timeout=120
data_connection_timeout=300
accept_timeout=60
connect_timeout=60
anon_max_rate=50000
Последняя строка это скорость скачивания
Шаг № 6: Перегружаем суперсервер
service xinetd restart
chkconfig xinetd on
Все работает. Проверено.
Пример № 2: Анонимному пользователю разрешается только скачивать файлы:
anonymous_enable=YES
local_enable=NO
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
anon_other_write_enable=NO
Подробно про каждую опцию в man vsftpd.conf