FTPとは
FTPとはインターネットやLANを使用してファイルの転送を行うプロトコルです。サーバにhtmlファイルなどを転送するのによく使います。
ProFTPDのインストール
APTを使用し、FTPソフトの一種である「ProFTPD」をインストールします。
# sudo aptitude update
# sudo aptitude install proftpd
インストールの途中で対話式の選択画面が出てきます。# sudo aptitude install proftpd
そこでは「inetd」か「スタンドアロン」かを選択することあできます。各々の意味は
■ intend
接続要求がきたときに随時ftpを起動する。
■ スタンドアロン
常時FTPを起動させておく。
サーバを外部に公開していて、常にアクセスがある!!という方は「スタンドアロン」がお勧めですが
普通の場合は「inetd」をお勧めします。
設定
設定を行うファイルは
# sudo vim /etc/proftpd/proftpd.conf
にあります。設定の追加は任意の場所に追加して下さい。■ 通信ポートの指定
FTPでデータ通信を行うポートを指定する。この場合、4000~4029ポートを指定している。
(iptablesの設定で許可を行うポートと同じに設定する必要あり)
PassivePorts 4000 4029
■ セキュリティの強化
標準ではホームディレクトリより上位のディレクトリに移動することができてしまいます。
不特定多数のユーザにルートディレクトリ等をみられるのは好ましくないので排除します。
DefaultRoot ~
■ セキュリティの強化2
次に不特定多数のユーザの接続は拒否をします。
この設定では任意のグループに所属したユーザ及び、家庭内LANでのみアクセスが可能になるようにします。 (LAN内アドレスが「192.168.0.*」の場合の設定です)
<Limit LOGIN>
Order allow,deny
AllowGroup ftp
Allow from 127.0.0.1,192.168.0.0/24
Deny from all
</Limit>
これで「ftp」というグループに所属したユーザでOrder allow,deny
AllowGroup ftp
Allow from 127.0.0.1,192.168.0.0/24
Deny from all
</Limit>
家庭内LANよりアクセスしたユーザのみftpでアクセス可能となります。
また、「ftp」のグループに所属したユーザを作成するには
# sudo groupadd ftp
# sudo usermod -G ftp test-user
# sudo usermod -G ftp test-user
■ 接続の高速化
標準では接続をしてからファイルの一覧が表示されるまでに結構なタイムラグが発生します。
これを高速化するために「Ident」というサーバのユーザ情報について情報を返す機能を停止させるのとDNSの逆引きを停止させます。
IdentLookups off
UseReverseDNS off
これらを追加して接続をしてみると、明らかに接続が高速化しているのを実感できると思います。UseReverseDNS off
以上で設定は完了です。設定の再読込をさせます。
/etc/init.d/proftpd restart
動作確認
それではお好みのFTPソフトを使用して接続してみましょう。接続するのに必要な設定は大抵以下の通りだと思います。
ホスト名 : サーバのIPアドレス(or ドメイン名)
ユーザ名 : 設定したアカウントID
パスワード : アカウントのパスワード