====== Сервис FTP ====== * [[http://ru.wikipedia.org/wiki/FTP]] ===== Клиентские программы ===== ==== explorer ==== * ftp://user1@gate.isp.un ==== Утилита ftp ==== server# ftp ftp.isp.un или server# ftp user1@gate.isp.un ==== Утилита fetch (FreeBSD) ==== [server:~] # fetch ftp://user1:password1@gate.isp.un:/etc/hosts ==== Утилита wget (Ubuntu) ==== root@server:~# wget ftp://user1:password1@gate.isp.un/../../../etc/hosts ===== Сервер FTP ===== ==== Учетная запись для сервиса ==== * [[Управление учетными записями в Linux]] * [[Управление учетными записями в FreeBSD]] ==== Установка и запуск сервиса ==== === Debian/Ubuntu === root@server:~# apt install proftpd-basic Run proftpd: standalone === FreeBSD === [server:~] # cat /etc/rc.conf ... ftpd_enable="YES" [server:~] # service ftpd start ==== Изменение shell для ftp пользователей ==== * Изменение атрибутов учетной записи ([[Управление учетными записями в Linux]], [[Управление учетными записями в FreeBSD]]) ==== Ограничение доступа ftp пользователей домашним каталогом ==== === Ubuntu === root@server:~# cat /etc/proftpd/proftpd.conf ... DefaultRoot ~ ... === FreeBSD === [server:/etc] # cat /etc/ftpchroot ... user1 @ftpusers ... ==== Организация анонимного доступа к ftp серверу ==== === FreeBSD === [server:~] # pw useradd ftp -d /usr/ports/ -s /usr/sbin/nologin === Debian/Ubuntu === root@server:~# cat /etc/proftpd/proftpd.conf ... User ftp UserAlias anonymous ftp RequireValidShell off ... ==== FTP TLS ==== === ProFTPd === # cat /etc/proftpd/proftpd.conf ... Include /etc/proftpd/tls.conf ... # cat /etc/proftpd/tls.conf TLSEngine on TLSLog /var/log/proftpd/tls.log TLSProtocol SSLv23 TLSOptions NoSessionReuseRequired TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem TLSVerifyClient off TLSRequired on ==== Сокрытие названия/версии сервиса ==== === Ubuntu === # cat /etc/proftpd/proftpd.conf ... ServerIdent on "MS Ftp Server" ... === FreeBSD === [[http://www.frbsd.org/fr/poweredby/ftpd.html]] # grep -R 6.00LS /usr/src/libexec/ftpd/ /usr/src/libexec/ftpd/ftpd.c:static char version[] = "Version 6.00LS"; ===== Дополнительные материалы ===== ==== Команды ftp клиента ==== ? help cd каталог - смена каталога на сервере lcd каталог - смена каталога на клиенте pwd - показать текущий каталог сервера lpwd - показать текущий каталог клиента dir ls bin - двоичный режим передачи ascii - режим передачи текстовых файлов pass - переключатель активного/пассивного режимов передачи get имя_файла - скопировать файл с сервера (download) put имя_файла - скопировать файл на сервер (upload) mget шаблон - скопировать файлы совпадающие с шаблоном с сервера (download) mput шаблон - скопировать файлы совпадающие с шаблоном на сервер (upload) quit - выход из программы ==== Автоматизация процесса аутентификации ftp клиента ==== server# cd server# cat .netrc machine ftp.isp.un login user1 password password1 server# chmod 600 .netrc server# ftp gate.isp.un ==== Пример использование ftp клиента в sh скрипте ==== server# cat ftp.sh cd /etc ftp ftp.isp.un >/dev/null 2>&1 < gate# sh ftp.sh