FTPサーバー構築

FTPのインストール

 

 

設定ファイルの編集

/etc/vsftpd.confの下記4行から「#」削除

・write_enable=YES 31行目

・ascii_upload_enable=YES 99行目

・ascii_download_enable=YES 100行目

・ftpd_banner=Welcome to blah FTP service. 103行目

 

サービス再起動・起動確認

 

接続確認

ユーザー名とパスワードを入力。230 Login Successfulと表示されたら成功。

220、331、230の数字は、FTPのレスポンスコードです。

レスポンスコードは、HTTPのステータスコードを同じで処理結果を番号で表しています。

220:サービス準備が整った事を表す。

331:ユーザー名OK、パスワード入力の要求を表す。

230:ユーザーログイン成功を表す。

(なぜ、番号の順番が昇順じゃないんだろう。。)

 

わざと間違えたら、530が返ってきた。

(なぜか、ftp>になってる。。)

抜けるときは、exitとbye。

 

 

FTPクライアントからFTPサーバーへアクセス

クライアントは、WinSCPソフトを使います。

ホストOSのwindowsから、ゲストOSのubuntuでアクセス。

 

起動後、各項目入力し、接続。

ホスト名は、FTPサーバーのIP

ユーザー名、パスワードもFTPサーバーのアカウント

 

 

 

 

接続ボタンをクリックすると、FTPサーバーを接続できますが

なぜかつながらない。。

 

設定・疎通確認

同じPC内ですが、疎通確認→問題なし。

 

ubuntuFWの設定確認。

FTPの制御用(TCP/21)とデータ用(TCP/22)もポート空いてる。

 

FTPクライアントソフトWinscpのログを確認した所、ログイン後にサーバー側からランダムポート番号が通知され、そのポート番号を使ってアクセスしようとしていることが分かった。(マーカー箇所)

 

 

クライアントへの通知ポート指定

/etc/vsftpd.confに、下図の2行を追記して保存。

これで通知されるポートが60000~60100になるはず。

 

winSCPのログ確認

192.168.230.129(FTPサーバー)に向けて、ポート60008で接続してます。

サーバー側から、クライアントへポート60008が通知されたことを表してます。

 

UbuntuのFWにポート番号追加

サーバーからクライアントへ通知するtcp60000~60100をFWで許可。

 

一番下に許可(ALLOW)で追加されました。

 

再度FTPサーバーへ接続

接続できました。

左がクライアント、右側がサーバーのディレクトリです。

 

ファイル転送

クライアントからサーバーのsampleディレクトリに、「1.png」ファイルを転送してみます。

転送は、ドラックアンドドロップで可能です。

 

 

サーバーのディレクトリに「1.png」が追加されました。

 

lsコマンドで、確認。

 

FTPなので、WireSharkで中身見えてますね。



FWでFTPポート削除

21番(制御用)を削除。

 

IpV6だけ消して、v4(上から4つ目消し忘れてました。。)

 

winSCPで再接続

制御用をブロックしたので、ログインすらできてないですね。

 

 

逆に、21許可、22削除してみました。

 

20は削除しても、アクセス・転送はできました。

理由は、パッシブモードでFTP通信を行ってるからですね。

(パッシブの場合、データ転送用のポート番号は、サーバーからランダムでクライアントへ通知される。

この記事の上部で、60000-60100で通知ポートを指定したのは

ランダムではなく、通知ポートを指定するため



アクティブモードで動作

下図のチェックボタンを外せば、アクティブモードで動きます。

アクティブモードの場合は、サーバーからクライアントに接続要求を行います。

 

 

 





 

 

 

 

 

 

 

nano 行数表示

nanoエディタで編集する際に、行数番号が表示されたら良いと思い設定ファイル編集しました。

 

設定ファイルは、/etc/nanorcです。

 

 

デフォルトでは、69行目のset linenumbersが「#」でコメントアウトされているので

「#」を削除すると、下図のように行数番号が表示されます。

 

 

グループの管理

ユーザー数が多く、各ユーザーに設定を行うのが困難な場合、グループを作成し

そのグループにユーザーを所属させ、グループに対して設定を行う。

そうする事で、グループに所属しているユーザー全てに設定が適用されるので、効率的に設定が可能。

グループの作成

画面右の新しいグループクリック

 

グループ名、説明入力。

所属するメンバーは、下の追加ボタンクリック。

 

右側のオブジェクトの種類をクリック。

 

右側のオブジェクトの種類をクリック。

 

ユーザーだけチェックを入れて、OKクリック

※検索する際の検索対象を選んでます。

 

オブジェクトの種類の選択」がユーザーに変更される。

その後、検索ボタンクリック。

 

検索結果が、画面下に表示される。

グループへ追加したいユーザーを選択し、OKクリック

 

オブジェクト名が表示されるので、OKクリックすると、グループに選択したユーザーが追加される。

 

 

グループ削除

画面上の赤い「X」印をクリック、右クリック→削除(D)など削除するやり方はいくつかある。

 

削除しようとすると、警告が出るので、「はい」をクリックで削除されます。

警告文の内容について、まとめ

グループにはそれぞれ識別子が付いている。

1度グループを削除し、再度同じグループ名で作成しても、識別子が異なるので

権限などの再設定を行わないと、ファイルなどにアクセスできなくなる。との事。

つまり、グループ名に権限が付与されているわけではないって事ですかね。。

 

当たり前ですが、グループ削除しても所属していたユーザーは削除されません。

 

グループ1の所属ユーザーは、user1,2

 

 

グループ1削除。

 

user1,2は残ってます。

 

Ubuntu Firewall機能

ファイアウォールとは

作成したルールを基に、通信の許可・遮断を行う機能。

パケット単位で許可・遮断を行う事をパケットフィルタリングという。

Ubuntuでは、「ufw」がFirewall

ファイアウォール有効化・無効化

起動済み確認

 

ufw statusで、有効・無効の確認ができる。

 

ルールの確認

verboseは、statusより詳細な情報表示。numberedは、ルール毎に割り当てられているID番号まで表示(ルール削除でID番号必要)

 

ルールの追加

fromの指定をしていないので、Fromの欄がAnywhere(どこからでも)状態で設定されています。

numberedの[1][2]が、ID番号。

 

※ルール追加は、プロトコル名でも追加できました。

 

複数ポートを許可する場合

 

ルールの削除

[1]のルールを削除しました。

確認コマンドでは、[1]が削除されたので、元々[2]だったv6が[1]になってます。

 

 

 

ユーザー情報の管理

ユーザー名変更

コンピューター管理画面の右側「user1」の「その他操作」をクリックし、「名前の変更」をクリック。

 

ユーザー名を入力し、Enterキー押下すると、変更完了。

変更は、即時反映される。

変更を途中で止めたい場合は、Escキー押下。

 

 

フルネーム・説明の変更

プロパティをクリック。または下図青色のどこかをダブルクリック


入力し、「適用」、「OK」をクリック。

 

 

 

パスワードの変更

パスワードの変更は、利用者に再度設定されるパターンと管理者が勝手に設定するパターンの2つある。

【利用者で再設定】

先ほどのプロパティ画面で、「ユーザーは次回ログオン時にパスワードの変更が必要」にチェック入れて、「適用」「OK」クリック。

 

 

上記変更後に、再度サインイン試すと、変更要求される。

変更すれば、サインイン可能。

 

【管理者が再設定】

パスワードの設定をクリック。

 

警告メッセージが表示されるが、続行をクリック。

 

サインイン時に、上記で設定したパスワードを入力すれば、サインイン可能。

※この手順は、管理者にもパスワードが知られてしまうので、上記設定後に、下図画面でチェック入れてから再度サインイン試してもらうと良いですね

 

 

ユーザーの無効化

プロパティの蛍光箇所をチェックし、適用、OKクリック

 

user2のアイコンに「↓」が表示されました。

この「↓」は、サインインできない事を表しています。

 

「テスト」ユーザーが表示されなくなりました。

 

ユーザーの有効化

蛍光箇所のチェックを外せば、有効化できます。

 

有効化した後、表示されました。

 

 

 

ユーザー追加

サーバーマネージャー起動

 

 

右上の「ツール」から「コンピューターの管理」をクリック。

 

画面左側の「ローカルユーザーとグループ」をクリックし、「ユーザー」フォルダをクリック。

その状態で、画面右側の「操作」の「新しいユーザー」をクリック。

 

各項目を入力し、「作成」をクリックすると、新しくユーザーが作成される。

※「ユーザーは次回ログオン時にパスワードの変更が必要」の項目は、チェック推奨。

→下図で入力したパスワードは、管理者が入力したパスワードになるので

セキュリティの観点から、自分だけ知ってるパスワードに変更したほうが良い。

※フルネーム、説明は、そのアカウントを表す目印的な役割なので、入力必須ではない。

また、パスワードも入力せずに、ユーザー作成が可能。

 

user1のユーザーが作成されました。

 

 

 

※「ユーザーは次回ログオン時にパスワードの変更が必要」の項目をチェックしなければ、聞かれない。

 

 

ログインできました。

 

cat grep

ファイルの中身確認する際、よく使うコマンドについてメモ。

随時追加予定

(LPICの勉強してますが、コマンドとオプション多すぎて頭で暗記は無理なので

よく使いそうなのは、利用して体で覚えます。。)

 

①ファイルの中身確認

②ファイルの中身に行番号をつける


③キーワードと一致する行を抽出

④「③」に行番号追加