FTPサーバーインストール [Linux(Debian)]
2008/02/02 Sat [Edit]
1.FTPクライアントをインストール
| # apt-get update # apt-get install ftp |
2.FTPサーバー(デーモン)プログラムをインストール
色々あるようですが、proFTPをインストール。こちら
【参考URL】
The ProFTPD Project: Home
Configuration Directive List
ProFTPD インストールと設定
ProFTPD - Professional FTP Daemon
| # apt-get install proftpd |
inetdかスタンドアローンか聞かれる。
頻繁に利用する予定はないのでinetdを選択。
※dpkg-reconfigure proftpdで再設定可能
|
※inetd ※スタンドアローン |
3.inetd(スーパーサーバー)の設定
| # vi /etc/inetd.conf <service_name> <sock_type> <proto> <flags> <user> <server_path> <args> ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/proftpd |
-- 参考 ----------------------->
※ inetd.confのフィールド
| フィールド | 説明 |
| service_name | /etc/servicesで定義されているサービス名 |
| sock_type | ソケットタイプ(TCPはstream、UDPはdgram) |
| proto | プロトコル(tcpとかudpとか) |
| flags | サービス要求時の処理方法(wait/nowait) wait:1つの要求を処理が終了するまで待機 nowait:待機せずに次の要求を処理 |
| user | サービスを実行するユーザー |
| server_path | サーバープログラム(デーモン)へのフルパス TCP Wrappers経由で起動する場合はtcpd |
| args | サーバープログラム(デーモン)へ渡す引数 |
※ TCP Wrapper(tcpdデーモン)
ftpdやtelnetdの代わりにアクセス制御の設定ファイル(/etc/hosts.allowと/etc/hosts.deny)をチェックし、サービス要求を許可or拒否します。
/etc/hosts.allowが先にチェックされ、条件にマッチした場合は、許可され /etc/hosts.denyがチェックされない。
/etc/hosts.denyがチェックされ、条件にマッチした場合は、拒否される。マッチしなかった場合は、許可される。
※ 設定ファイル(/etc/hosts.allowと/etc/hosts.deny)の書式
デーモン名:ホスト名またはIPアドレス
例)
telnetd: 192.168.0. .hatena.jp ← 192.168.0.*とhatena.jpドメイン
ALL:ALL ← 全てのサービス:全てのホスト
| ワイルドカード | 説明 |
| ALL | 全てのサービスまたはホスト |
| A EXCEPT B | B以外のA |
| LOCAL | ローカルネットワーク内のホスト |
| PARANOID | ホスト名と要求元IPアドレスが異なる |
<-----------------------
4.proftpdの設定
| # vi
/etc/proftpd.conf ServerType inetd |
5./etc/hosts.allowの設定
192.168.0.*とローカルエリアに許可を与えます。
| # vi /etc/hosts.allow proftpd:192.168.0. LOCAL in.telnetd:192.168.0. LOCAL |
6./etc/hosts.denyを設定
全ての接続を拒否します。
| # vi /etc/hosts.deny ALL:ALL |
7.inetdを再起動
inetd.confを再び読み込ませます。
| # /etc/init.d/inetd restart |
| # killall -HUP inetd |
8.ftpコマンドで確認
| # ftp localhost Connected to localhost. 421 Service not available, remote server has closed connection ftp> quit |
繋がらない・・・。
ログを確認。
| # tail -5 /var/log/daemon.log Feb 2 08:31:36 colinux proftpd[450]: connect from 127.0.0.1 (127.0.0.1) Feb 2 08:31:36 colinux proftpd[450]: getaddrinfo 'colinux' error: Name or service not known Feb 2 08:31:36 colinux proftpd[450]: warning: unable to determine IP address of 'colinux' Feb 2 08:31:36 colinux proftpd[450]: error: no valid servers configured Feb 2 08:31:36 colinux proftpd[450]: Fatal: error processing configuration file '/etc/proftpd.conf' |
なんか名前解決できないっぽい。。
| # cat hosts 127.0.0.1 localhost 192.168.20.10 green 192.168.20.20 colinux2 #hostname colinux |
hostsの設定とホスト名が違ってた。。
hostnameを修正。
|
# hostname colinux2 # hostname colinux2 |
/etc/hostnameも修正しとく。 (colinux → colinux2)
| # vi /etc/hostname colinux2 |
もう一度挑戦
| # ftp localhost Connected to localhost. 220 ProFTPD 1.2.10 Server (Debian) [127.0.0.1] Name (localhost:onion): |
繋がりました!
バージョンとか
| # dpkg -l | grep ftp ii ftp 0.17-12 The FTP client. ii proftpd 1.2.10-15sarge Versatile, virtual-hosting FTP daemon ii proftpd-common 1.2.10-15sarge Versatile, virtual-hosting FTP daemon |
9.WindowsからFTPで繋いでみる
FFFTPというFTPクライアントソフトでつなごうとしましたが、
ファイルリストが表示されない。。
アップロードは出来る。
どうやらDebian(sarge)のProFTPD (1.2.10)から NLSTを利用できないようにしてあるようです。
“NLST -R”コマンドがRFCの定めるFTP標準規格に非準拠となっているらしいです。
ホストの設定→高度→「NLST -Rを使って高速に再帰検索(N)」のチェックを外す→「LISTコマンドでファイル一覧を取得(L)」にチェックを入る→OK
無事、表示されました。
Comments
Track Backs
TB URL
[Linux(Debian)]/etc/hosts.allow telnet忘れてた・・・
/etc/hosts.allowにtelnet書くのを忘れててTeraTermから繋がらなくてあせりました。。 /etc/hosts.allowに下記を追加して直りました。 in.telnetd:192.168.0. LOCAL ...




