Установка и настройка SSH
Установка и настройка Transmission-daemon
Настройка Samba
Продолжаем обустраивать домашний сервер. Папки на сервере расшарили и можно по сети обмениваться файлами. Удобно и быстро. Но файлы и папки доступны только в локальной сети, т. е. физически мне надо быть подключенным к серверу у себя дома. А если мне срочно что-то понадобиться вне дома? На этот случай поднимем FTP-сервер. И будет доступ к своим файлам из любой точки планеты, где есть интернет. Да еще и можно с друзьями обмениваться файлами не пользуясь файлообменниками.
В качестве FTP-сервера я выбрал vsftpd. Разработчик позиционирует его как very security, т. е. очень безопасный. Безопасность лишней никогда не бывает.
sudo apt-get install vsftpd
Настройки vsftpd сервера находятся в файле /etc/vsftpd.conf
Первым делом сделаем резервную копию
sudo cp /etc/vsftpd.conf/ etc/vsftpd.conf_original
А потом очистим содержимое файла
cat /dev/null > /etc/vsftpd.conf
И откроем его для редактирования
sudo nano /etc/vsftpd.conf
В моем случае сервер будет работать следующим образом. Для анонимных пользователей разрешен доступ на скачивание из папки /home/ftp. Эта папка является домашней для пользователя ftp (он же anonymous). Любое изменение файлов, включая загрузку, запрещено. Подключаться анонимусы будут без пароля.
Анонимный доступ я открыл для обмена файлами с друзьями. А для себя сделал следующие настройки. На сервере есть локальные пользователи. Отрываем для них доступ с полными правами в определенную папку, т.е. файлы и папки можно не только скачивать, но и загружать, переименовывать, удалять и т.д.
Настройки самого сервера опишу в примере своего конфиг файла. Файл настроек vsftpd сервера имеет следующую структуру: опция=параметр. Параметр может быть значением YES или NO, числом, строковым значением. Строки начинающиеся с символа # являются комментариями и на настройки не влияют.
Пример настройки:
#vsftpd будет загружаться в автономном режиме и сам позаботится о прослушивании и перехвате входящих соединений. inetd использоваться не будет listen=YES #работать в фоновом режиме background=YES #если на сервере несколько сетевых интерфейсов, можно прямо прописать какой из них прослушивать listen_address=192.168.1.100 #максимальное количество подключений max_clients=20 #максимальное количество подключений с одного ip max_per_ip=10 # #разрешить доступ анонимным пользователям anonymous_enable=YES #папка анонимусов anon_root=/home/ftp #не спрашивать пароль no_anon_password=YES # #разрешить доступ локальным пользователям local_enable=YES #папка локальных пользователей local_root=/media/files # #включить команду "async ABOR" для "плохих" клиентов async_abor_enable=YES #разрешить изменение файлов write_enable=YES # #скачивать и загружать данные в режиме ASCII #ascii_download_enable=YES #ascii_upload_enable=YES # #вся пользовательская и груповая информация в списке директорий, выводится как "ftp" hide_ids=YES #детальный отчет о скачиваниях и загрузках (пишется в /var/log/vsftpd.log) xferlog_enable=YES #активируем 20-й порт connect_from_port_20=YES #приветствие при подключении ftpd_banner=Welcome to home FTP server. #пустая папка "для безопасности" secure_chroot_dir=/var/run/vsftpd/empty #имя сервиса PAM, который будет использоваться vsftp pam_service_name=passwd
Так выглядит мой файл конфигурации vsftpd сервера.
Запускаем ftp сервер
sudo vsftpd
У меня все заработало сразу же, если у вас не подключается, проверьте еще раз настройки. При запуске возможно некоторые ошибки. Например:
500 OOPS: config file not owned by correct user – измените владельца файлов конфигураций пользователей на roor:root
500 OOPS: vsftpd: refusing to run with writable anonymous root – изменить права каталога указаного в anon_root на 555
425 Security: bad IP connecting – добавить опцию pasv_promiscuous=YES, хотя добавление этой опции является нежелательным.
Подключаемся:
user@user-pc:~$ ftp 192.168.1.100 Connected to 192.168.1.100. 220 Welcome to user`s FTP server. Name (192.168.1.100:user): ftp 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>
Чтобы можно было подключаться из интернета необходимо, чтобы сервер имел внешний ip-адрес, либо можно воспользоваться сервисами вроде DynDNS.org. Об этом я писал в статье Удаленный доступ без прямого ip.
Немає коментарів:
Дописати коментар