このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
mae3xx_tips:setup_vsftpd:start [2014/05/12 13:46] – admin | mae3xx_tips:setup_vsftpd:start [2014/05/12 14:02] (現在) – admin | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== FTPサーバの導入 ====== | ||
+ | |||
+ | MA-E3xx では、sshd がインストールされていますので、セキュアなファイル転送として SFTP プロトコルが利用できます。\\ | ||
+ | 組み込み機器などで、どうしても FTP プロトコルしか使用できないというような場合のため、FTPサーバを導入方法を紹介します。 | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== セットアップ ===== | ||
+ | |||
+ | ==== 導入可能なFTPサーバ ==== | ||
+ | |||
+ | Ubuntu Linux に用意されている、FTPサーバのパッケージを検索してみます。 | ||
+ | |||
+ | < | ||
+ | user1@plum: | ||
+ | [sudo] password for user1: | ||
+ | tftpd-hpa - HPA's tftp server | ||
+ | vsftpd - lightweight, | ||
+ | atftpd - advanced TFTP server | ||
+ | auth2db-filters - Auth2db defaults filters pack | ||
+ | ccze - A robust, modular log coloriser | ||
+ | fail2ban - ban hosts that cause multiple authentication errors | ||
+ | ftp-ssl - The FTP client with SSL or TLS encryption support | ||
+ | ftpd - File Transfer Protocol (FTP) server | ||
+ | ftpd-ssl - FTP server with SSL encryption support | ||
+ | gadmin-proftpd - GTK+ configuration tool for proftpd | ||
+ | gadmin-proftpd-dbg - GTK+ configuration tool for proftpd debug package | ||
+ | gadmintools - GTK+ server administration tools (meta-package) | ||
+ | gosa-plugin-pureftpd - pureftpd plugin for GOsa? | ||
+ | gosa-plugin-pureftpd-schema - LDAP schema for GOsa? pureftpd plugin | ||
+ | heimdal-servers - Heimdal Kerberos - server programs | ||
+ | inetutils-ftpd - File Transfer Protocol server | ||
+ | libnet-tftpd-perl - Perl extension for Trivial File Transfer Protocol Server | ||
+ | muddleftpd - A flexible and efficient FTP daemon | ||
+ | mysqmail-pure-ftpd-logger - real-time logging system in MySQL - Pure-FTPd traffic-logger | ||
+ | nordugrid-arc-gridftpd - ARC GridFTP server | ||
+ | owftpd - FTP daemon providing access to 1-Wire networks | ||
+ | prelude-lml - Security Information Management System [ Log Agent ] | ||
+ | proftpd-basic - Versatile, virtual-hosting FTP daemon - binaries | ||
+ | proftpd-dev - Versatile, virtual-hosting FTP daemon - development files | ||
+ | proftpd-doc - Versatile, virtual-hosting FTP daemon - documentation | ||
+ | proftpd-mod-autohost - ProFTPD module mod_autohost | ||
+ | proftpd-mod-case - ProFTPD module mod_case | ||
+ | proftpd-mod-clamav - ProFTPD module mod_clamav | ||
+ | proftpd-mod-dnsbl - ProFTPD module mod_dnsbl | ||
+ | proftpd-mod-fsync - ProFTPD module mod_fsync | ||
+ | proftpd-mod-geoip - Versatile, virtual-hosting FTP daemon - GeoIP module | ||
+ | proftpd-mod-ldap - Versatile, virtual-hosting FTP daemon - LDAP module | ||
+ | proftpd-mod-msg - ProFTPD module mod_msg | ||
+ | proftpd-mod-mysql - Versatile, virtual-hosting FTP daemon - MySQL module | ||
+ | proftpd-mod-odbc - Versatile, virtual-hosting FTP daemon - ODBC module | ||
+ | proftpd-mod-pgsql - Versatile, virtual-hosting FTP daemon - PostgreSQL module | ||
+ | proftpd-mod-sqlite - Versatile, virtual-hosting FTP daemon - SQLite3 module | ||
+ | proftpd-mod-tar - ProFTPD module mod_tar | ||
+ | proftpd-mod-vroot - ProFTPD module mod_vroot | ||
+ | pure-ftpd - Secure and efficient FTP server | ||
+ | pure-ftpd-common - Pure-FTPd FTP server (Common Files) | ||
+ | pure-ftpd-ldap - Secure and efficient FTP server with LDAP user authentication | ||
+ | pure-ftpd-mysql - Secure and efficient FTP server with MySQL user authentication | ||
+ | pure-ftpd-postgresql - Secure and efficient FTP server with PostgreSQL user authentication | ||
+ | pureadmin - Gtk graphic front-end for PureFTPd | ||
+ | pyftpd - ftp daemon with advanced features | ||
+ | python-pyftpdlib - Python FTP server library | ||
+ | tcllib - Standard Tcl Library | ||
+ | tftpd - Trivial file transfer protocol server | ||
+ | twoftpd - a simple secure efficient FTP server (programs) | ||
+ | twoftpd-run - a simple secure efficient FTP server | ||
+ | uec-provisioning-tftpd - the UEC Provisioning TFTP server | ||
+ | yasat - simple stupid audit tool | ||
+ | user1@plum: | ||
+ | </ | ||
+ | |||
+ | TFTP(([[http:// | ||
+ | 有名なFTPサーバとして、下記が導入できるようです。 | ||
+ | |||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | |||
+ | "the most secure", | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ==== vsftpd の導入 ==== | ||
+ | |||
+ | apt-get コマンドでインストールします。 | ||
+ | |||
+ | < | ||
+ | user1@plum: | ||
+ | [sudo] password for user1: | ||
+ | Reading package lists... Done | ||
+ | Building dependency tree | ||
+ | Reading state information... Done | ||
+ | The following NEW packages will be installed: | ||
+ | vsftpd | ||
+ | 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. | ||
+ | Need to get 99.8 kB of archives. | ||
+ | After this operation, 298 kB of additional disk space will be used. | ||
+ | Get:1 http:// | ||
+ | Fetched 99.8 kB in 1s (53.9 kB/s) | ||
+ | Preconfiguring packages ... | ||
+ | Selecting previously unselected package vsftpd. | ||
+ | (Reading database ... 17590 files and directories currently installed.) | ||
+ | Preparing to unpack .../ | ||
+ | Unpacking vsftpd (3.0.2-1ubuntu2.14.04.1) ... | ||
+ | Processing triggers for ureadahead (0.100.0-16) ... | ||
+ | Setting up vsftpd (3.0.2-1ubuntu2.14.04.1) ... | ||
+ | vsftpd start/ | ||
+ | Processing triggers for ureadahead (0.100.0-16) ... | ||
+ | localepurge: | ||
+ | localepurge: | ||
+ | |||
+ | Total disk space freed by localepurge: | ||
+ | |||
+ | user1@plum: | ||
+ | </ | ||
+ | |||
+ | これでインストールできました。 | ||
+ | プロセスが立ち上がっているか確認してみます。 | ||
+ | |||
+ | < | ||
+ | user1@plum: | ||
+ | 1398 ? Ss 0:00 / | ||
+ | 1446 pts/1 S+ 0:00 grep --color=auto vsftp | ||
+ | user1@plum: | ||
+ | </ | ||
+ | |||
+ | どのポートでlistenしているか確認してみます。 | ||
+ | |||
+ | < | ||
+ | user1@plum: | ||
+ | Active Internet connections (only servers) | ||
+ | Proto Recv-Q Send-Q Local Address | ||
+ | tcp 0 0 *:ftp | ||
+ | tcp 0 0 *: | ||
+ | tcp 0 0 *:ssh | ||
+ | tcp 0 0 *: | ||
+ | tcp 0 0 *: | ||
+ | tcp 0 0 *: | ||
+ | user1@plum: | ||
+ | </ | ||
+ | |||
+ | " | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ==== 接続確認 ==== | ||
+ | |||
+ | 別の機器から、FTPで接続してみます。 | ||
+ | |||
+ | < | ||
+ | user1@plum: | ||
+ | Connected to 192.168.253.35. | ||
+ | 220 (vsFTPd 3.0.2) | ||
+ | Name (192.168.253.35: | ||
+ | 331 Please specify the password. | ||
+ | Password: | ||
+ | 230 Login successful. | ||
+ | Remote system type is UNIX. | ||
+ | Using binary mode to transfer files. | ||
+ | ftp> quit | ||
+ | 221 Goodbye. | ||
+ | user1@plum: | ||
+ | </ | ||
+ | |||
+ | 接続できることが確認できました。 | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== 設定 ===== | ||
+ | |||
+ | apt-get コマンドで導入することで、とりあえず使用することができるようになりました。\\ | ||
+ | しかし、このままですと、インターネットに接続した場合、世界中のどこからでもアクセスできるようになってしまい、\\ | ||
+ | セキュリティ上問題があります。\\ | ||
+ | インターネットに接続して利用する場合、Firewall を設定し、アドレスなどで接続を制限することを **強く** お勧めします。 | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ==== vsftpd の設定 ==== | ||
+ | |||
+ | Ubuntu の vsftpd の設定ファイルは、/ | ||
+ | 内容についてのドキュメントは、[[http:// | ||
+ | |||
+ | デフォルトでは、下記のように設定されています。 | ||
+ | |||
+ | < | ||
+ | # Example config file / | ||
+ | # | ||
+ | # The default compiled in settings are fairly paranoid. This sample file | ||
+ | # loosens things up a bit, to make the ftp daemon more usable. | ||
+ | # Please see vsftpd.conf.5 for all compiled in defaults. | ||
+ | # | ||
+ | # READ THIS: This example file is NOT an exhaustive list of vsftpd options. | ||
+ | # Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd' | ||
+ | # capabilities. | ||
+ | # | ||
+ | # | ||
+ | # Run standalone? | ||
+ | # daemon started from an initscript. | ||
+ | listen=YES | ||
+ | # | ||
+ | # Run standalone with IPv6? | ||
+ | # Like the listen parameter, except vsftpd will listen on an IPv6 socket | ||
+ | # instead of an IPv4 one. This parameter and the listen parameter are mutually | ||
+ | # exclusive. | ||
+ | # | ||
+ | # | ||
+ | # Allow anonymous FTP? (Disabled by default) | ||
+ | anonymous_enable=NO | ||
+ | # | ||
+ | # Uncomment this to allow local users to log in. | ||
+ | local_enable=YES | ||
+ | # | ||
+ | # Uncomment this to enable any form of FTP write command. | ||
+ | # | ||
+ | # | ||
+ | # Default umask for local users is 077. You may wish to change this to 022, | ||
+ | # if your users expect that (022 is used by most other ftpd' | ||
+ | # | ||
+ | # | ||
+ | # Uncomment this to allow the anonymous FTP user to upload files. This only | ||
+ | # has an effect if the above global write enable is activated. Also, you will | ||
+ | # obviously need to create a directory writable by the FTP user. | ||
+ | # | ||
+ | # | ||
+ | # Uncomment this if you want the anonymous FTP user to be able to create | ||
+ | # new directories. | ||
+ | # | ||
+ | # | ||
+ | # Activate directory messages - messages given to remote users when they | ||
+ | # go into a certain directory. | ||
+ | dirmessage_enable=YES | ||
+ | # | ||
+ | # If enabled, vsftpd will display directory listings with the time | ||
+ | # in your local time zone. The default is to display GMT. The | ||
+ | # times returned by the MDTM FTP command are also affected by this | ||
+ | # option. | ||
+ | use_localtime=YES | ||
+ | # | ||
+ | # Activate logging of uploads/ | ||
+ | xferlog_enable=YES | ||
+ | # | ||
+ | # Make sure PORT transfer connections originate from port 20 (ftp-data). | ||
+ | connect_from_port_20=YES | ||
+ | # | ||
+ | # If you want, you can arrange for uploaded anonymous files to be owned by | ||
+ | # a different user. Note! Using " | ||
+ | # recommended! | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # You may override where the log file goes if you like. The default is shown | ||
+ | # below. | ||
+ | # | ||
+ | # | ||
+ | # If you want, you can have your log file in standard ftpd xferlog format. | ||
+ | # Note that the default log file location is / | ||
+ | # | ||
+ | # | ||
+ | # You may change the default value for timing out an idle session. | ||
+ | # | ||
+ | # | ||
+ | # You may change the default value for timing out a data connection. | ||
+ | # | ||
+ | # | ||
+ | # It is recommended that you define on your system a unique user which the | ||
+ | # ftp server can use as a totally isolated and unprivileged user. | ||
+ | # | ||
+ | # | ||
+ | # Enable this and the server will recognise asynchronous ABOR requests. Not | ||
+ | # recommended for security (the code is non-trivial). Not enabling it, | ||
+ | # however, may confuse older FTP clients. | ||
+ | # | ||
+ | # | ||
+ | # By default the server will pretend to allow ASCII mode but in fact ignore | ||
+ | # the request. Turn on the below options to have the server actually do ASCII | ||
+ | # mangling on files when in ASCII mode. | ||
+ | # Beware that on some FTP servers, ASCII support allows a denial of service | ||
+ | # attack (DoS) via the command "SIZE / | ||
+ | # predicted this attack and has always been safe, reporting the size of the | ||
+ | # raw file. | ||
+ | # ASCII mangling is a horrible feature of the protocol. | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # You may fully customise the login banner string: | ||
+ | # | ||
+ | # | ||
+ | # You may specify a file of disallowed anonymous e-mail addresses. Apparently | ||
+ | # useful for combatting certain DoS attacks. | ||
+ | # | ||
+ | # (default follows) | ||
+ | # | ||
+ | # | ||
+ | # You may restrict local users to their home directories. | ||
+ | # the possible risks in this before using chroot_local_user or | ||
+ | # chroot_list_enable below. | ||
+ | # | ||
+ | # | ||
+ | # You may specify an explicit list of local users to chroot() to their home | ||
+ | # directory. If chroot_local_user is YES, then this list becomes a list of | ||
+ | # users to NOT chroot(). | ||
+ | # (Warning! chroot' | ||
+ | # the user does not have write access to the top level directory within the | ||
+ | # chroot) | ||
+ | # | ||
+ | # | ||
+ | # (default follows) | ||
+ | # | ||
+ | # | ||
+ | # You may activate the " | ||
+ | # default to avoid remote users being able to cause excessive I/O on large | ||
+ | # sites. However, some broken FTP clients such as " | ||
+ | # the presence of the " | ||
+ | # | ||
+ | # | ||
+ | # Customization | ||
+ | # | ||
+ | # Some of vsftpd' | ||
+ | # default. | ||
+ | # | ||
+ | # This option should be the name of a directory which is empty. | ||
+ | # directory should not be writable by the ftp user. This directory is used | ||
+ | # as a secure chroot() jail at times vsftpd does not require filesystem | ||
+ | # access. | ||
+ | secure_chroot_dir=/ | ||
+ | # | ||
+ | # This string is the name of the PAM service vsftpd will use. | ||
+ | pam_service_name=vsftpd | ||
+ | # | ||
+ | # This option specifies the location of the RSA certificate to use for SSL | ||
+ | # encrypted connections. | ||
+ | rsa_cert_file=/ | ||
+ | # This option specifies the location of the RSA key to use for SSL | ||
+ | # encrypted connections. | ||
+ | rsa_private_key_file=/ | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||