FTP接続とは
FTP 【 File Transfer Protocol 】 ファイル転送プロトコル
FTPとは、インターネットなどのTCP/IPネットワークでファイルを転送するのに使われるプロトコルの1つ。
FTPサーバ、FTPクライアントの二種類のソフトウェアを用い、両者の間で接続を確立してファイルを送受信することができる。
サーバ側ではアカウント名とパスワードによる利用者の認証を行い、それぞれの利用者に許可された権限や領域でファイルの送受信が行われる。
不特定多数の利用者にファイルを配布するなどの目的のため、利用者登録を行っていない者でも自由に接続できる「anonymous」(匿名)と呼ばれる特殊なアカウントが用意されていることがあり、任意のパスワード(空欄でもよい)で接続できる。
このような利用形態を「anonymous FTP」と呼び、かつてはフリーソフトウェアの配布などでよく利用された。
FTPではコマンドや応答など制御データの送受信用と、ファイルの一覧やファイルの内容などデータ本体の送受信用に2つのコネクション(通信路)を確立する。
制御用コネクションはクライアント側からサーバ側へ接続を開始して確立し、利用者認証などに使われる。
データ本体のコネクションはサーバ側からクライアントの指定したポートへ接続を開始するアクティブモード(ポートモード)と、制御用と同様にクライアント側から接続を開始するパッシブモード(PASVモード)がある。
通常はアクティブモードを用いるが、家庭や企業の内部ネットワークからNATやファイアウォールなどを介して接続している場合、外部から任意のポートに接続できないことが多いため、パッシブモードを用いる。
FTPはそれ自体は認証情報やファイルの暗号化に対応していないため、暗号化プロトコルのSSL/TLSと組み合わせてFTPSとして利用したり、ssh上でFTPに似たファイル転送を行えるSFTPを用いることが多い。
FTPは単独で使う場合に安全な方法ではないけど、暗号化のプロトコルと組み合わせたりすればセキュリティ上安全に利用できるようです。
FTP接続をするには、FTPクライアントとFTPサーバーの2つが必要のようです。
対応OS | FTPクライアントソフトウェア |
---|---|
Windows | ffftp |
Mac(OS X) | Cyberduck |
Linux | gFTP |
⇩ FTPクライアントソフトについては下記へ
・フリーのFTPクライアントソフト10選【初心者でも安心】 | TechAcademyマガジン
⇩ Mac(OS X)で使えるFTPクライアントソフトについては下記サイトへ
・構想雑文 : 2014年現在 Mac OS Xで無料で使えるFTPソフトまとめ - livedoor Blog(ブログ)
FTPサーバー
対応OS | FTPサーバーソフトウェア |
---|---|
Windows | IIS(Internet Information Service)7.5 FTP Service windows7(64bit)ではデフォルトで内蔵 ⇩ FTPサーバー起動のさせ方は下記サイトへ Windows7-FTPサーバー-設定方法 |
Mac(OS X) | デフォルトで内蔵 ⇩ FTPサーバー起動のさせ方は下記サイトへ BOCO & Photography Mac OS 10.8.2(Mountain Lion)でFTPサーバー動かす! |
Linux | vsftpd、proFTPD、Pure-FTPD |
ゲストOS(CentOS7)にvsftpdをインストール
VirtualBoxを起動し、仮想マシン(CentOS7)を起動しGUIでログインしたら、『アプリケーション』『お気に入り』『端末』を選択します。
『su』コマンドで、root権限に切り替えます。
su
『yum -y install vsftpd』コマンドでvsftpdをインストールします。
『rmp -q vsftpd』コマンドでvsftpdがインストールされたか確認できます。
vsftpdのバージョンが表示されれば、インストール成功です。
vsftpd.confファイルを設定
.confという拡張子がついたものは、設定ファイルであることが多いそうです。
これは、『configure(設定)』を省略したものということらしいです。
『端末』でroot権限になっている状態で『cp』コマンドを実行し、バックアップファイルを作成します。
バックアップファイルが作成できたら、Vimエディターで、vsftpd.confファイルを編集していきます。下記コマンドを実行します。
Vimでファイルを開いたら、編集していきます。
変更前 | 変更後 |
---|---|
anonymous_enable=YES | anonymous_enable=No |
#ascii_upload_enable=YES | ascii_upload_enable=YES |
#ascii_download_enable=YES | ascii_download_enable=YES |
listen=No | listen=YES |
listen_ipv6=YES | listen_ipv6=No |
それぞれの項目の意味
- anonymous_enable=Noとすることで匿名FTP機能を無効にします。
- ascii_upload_enable=YESとすることでASCIIモードでアップロード 。
- ascii_download_enable=YESとすることでASCIIモードでダウンロード。
- listen=YESとすることでIPv4の接続も可能に。
- listen_ipv6=NoとすることでIPv6だけじゃなく、IPv4も接続可能に。
編集が済んだら、『Escキー』で通常モードに戻り『:wq』コマンドで内容を保存してvimエディターを終了させ『端末』画面に戻ります。
vsftpd(FTPサーバー)を起動する
root権限になっているのを確認してから、下記コマンドを実行します。
起動してるかの確認は、下記コマンドでできます。
lftpコマンドがインストールされてるか確認
CentOSでは、コマンドラインでFTPサーバーにアクセスする『lftp』コマンドが用意されています。用意されていない場合もあるので、『lftp』コマンドをインストールするためのコマンドを実行します。
これで、インストールされてた場合は、新しいバージョンに更新され、インストールされていなかった場合はインストールされます。
ユーザー名でvsftpdサーバーにFTP接続してみます。
vsftpdを起動してる状態で、下記コマンドを実行します。(localhostの部分はIPアドレスでもOK。)
『quit』コマンドで接続を閉じます。
vsftpdサーバーを停止するには『systemctl stop vsftpd.service』コマンドを実行します。
CentOS6とCentOS7でコマンドが変わったようです。
機能 | |
---|---|
CentOS 6.x | CentOS 7 |
サービスの開始 | |
service vsftpd start | systemctl start vsftpd.service |
サービスの停止 | |
service vsftpd stop | systemctl stop vsftpd.service |
サービスの再起動 | |
service vsftpd restart | systemctl restart vsftpd.service |
サービスの設定ファイルの再読み込み | |
service vsftpd reload | systemctl reload vsftpd.service |
サービスの状態確認 | |
service vsftpd status | systemctl status vsftpd.service |
サービスが既に稼働してる場合はサービスを再起動 | |
service vsftpd condrestart | systemctl condrestart vsftpd.service |
次回OS起動時にサービスを自動起動する | |
service vsftpd on | systemctl enable vsftpd.service |
次回OS起動時にサービスを自動起動しない | |
service vsftpd off | systemctl disable vsftpd.service |
ランレベルごとに全サービスが有効・無効かの表示 | |
chkconfig --list | systemctl -t service list unit-files もしくは ls /etc/systemd/system/*.wants |
ランレベルごとに指定したサービスが有効・無効かの表示 | |
chkconfig --list vsftpd | ls /etc/systemd/system/*.wants/vsftpd.service |
FFFTPで接続
FTPサーバー側
まずは、VirtualBoxを起動し、仮想マシン(CentOS7)の『設定(S)』>『ネットワーク』の『アダプター1』を『ブリッジアダプター』にしておきます。
仮想マシン(CentOS7)を起動し、ログインしたら『アプリケーション』>『お気に入り』>『端末』を選択します。
『su』コマンドでroot権限になったら、『systemctl start vsftpd.service』コマンドでvsftpdサーバー(FTPサーバー)を起動させておきます。
ホストOS(windows7)にFFFTP(FTPクライアントソフト)をインストールして、ゲストOS(CentOS7)のvsftpdサーバーにFTP接続します。
⇩ FFFTPは下記サイトなどでダウンロードし、インストールしておきます。
FFFTPソフトをインストールしたら、 起動させます。
『新規ホスト(N)』ボタンを選択クリックします。
下記のように入力して『OK』ボタンを選択クリックします。
ホストの設定名 ⇒ 任意(自分の自由に決めてOK)
ホスト名 ⇒ CentOS7で『ifconfig』コマンドで表示されたenp0s3:のinetの数字
ユーザー名 ⇒ CentOS7ログイン時のユーザー名
パスワード ⇒ CentOS7ログイン時のパスワード
『接続(S)』ボタンを選択クリックします。
無事、ホストOS(windows7)からゲストOS(CentOS7)に接続されました。
※FFFTP側の設定が正しくできていて接続できない場合、ゲストOSを内蔵した仮想マシン(CentOS7)のFirewalldというものでlocalhost以外は接続できないようにブロックされてる可能性があるので、CentOS7で下記コマンドを実行すると接続できるかもしれません。
FFFTP接続が終わったら、firewalldを起動させておきましょう。
firewalldをstopさせるやり方はベストではないと思うので、あくまで応急処置と捉え、firewalldの設定をしていくのが良いのかもしれません。
⇩ firewalldの操作方法について詳しくは下記サイトへ
・CentOS7.1 64bit firewalldによるアクセス制御 | kakiro-web カキローウェブ
今回はこのへんで。