【CentOS,vsftp,Linux(UNIX)】FTPユーザーアカウントの作成とディレクトリのアクセス制限覚書
公開日:
:
最終更新日:2016/11/30
how to, ウェブ・ネット・PC(パソコン), サーバ・プログラム
外注先にサイトの作成やシステムの構築などを依頼する場合に、特定のディレクトリ(フォルダ)以外にアクセスさせたくない、という状況良く出てきます。
そんな時の覚書です。
目次
実施した環境
以下がボクの場合の環境ですので、みなさんそれぞれの環境で違うところは臨機応変に!
- CentOS6系(64bit)
- Apach2系
- vsftp
- rootでの実行(違う人はsudo使ってね)
ユーザー作成
まずはsshで入りましょう。適当にcdとかでルートディレクトリとかに戻っておいてね。
[root@www ~]cd .. [root@www /]
まずはFTP用にユーザーを作ります。
今回はuseraddコマンドを作り使います。
※コメントで誤植ご指摘いただいたので修正
いろいろオプションがあるのですが、いろいろと書くとややこしいので。。。
今回が最初の目的の「外注先さん用に、特定のディレクトリ(フォルダ)以外にアクセスさない」ユーザーを作るということのみに絞った感じで。
今回は「testuser」というアカウントを作ってみます
[root@www /]useradd -d /var/www/html -s /sbin/nologin testuser
オプション「-d」はホームディレクトリの指定です。ここで実際にいじってほしい(ここ以外はいじってほしくない)ディレクトリを指定しましょう。
「/var/www/html」はCentOSのデフォルトのウェブサイトの公開ディレクトリになります。
つまり、webデザイナーさんに外注するときにはここ以外は見る必要無いのでここに制限しましょう!というわけです。
この次の章で、ホームディレクトリ以外にアクセス出来るユーザーを指定してあげれば、逆説的にこのユーザー(testuser)はホームディレクトリ(/var/www/html)以外にはアクセス出来なくなります。
またこのホームディレクトリが既に存在する場合は警告メッセージが出ますが、ユーザーは作成できていますのでご安心を。
ユーザー作成(補足:-s)
オプション「-s」は利用シェル指定になり、/sbin/nologinはsuできない、つまりスーパーユーザー(root)になれないアカウント(ユーザー)って意味です。
当然外注さんがrootになる必要は無いので、これはセキュリティ的にも設定しておきましょう!
この辺りあんまりボクもよく理解してないので、興味があればググってみてね(*^_^*)
ユーザーが作られたか確認
ここでユーザーがちゃんと作られているか念のため確認しておきましょう!
ユーザーの一覧を表示するコマンドが
[root@www /]cut -d: -f1 /etc/passwd root bin daemon adm lp ・ ・ ・ dovecot dovenull apache webalizer mysql postgres ・ takamina acchan marikosama sasiko ・ ・ ・ testuser
ちゃんとあることが確認できましたでしょうか?
パスワードを設定
このままだとパスワードが無いのですぐに設定しましょう。コマンドはそのままで「passwd」
[root@www /]passwd testuser Changing password for user xpadmin. New UNIX password: Retype new UNIX password:
上のようにコマンド入力してEnterすると、パスワードを求められます。
New UNIX password:で入力してRetype new UNIX password:でもう一回入力してください。
その際、webサービスでよくある伏せ字「*」や「●」は出ませんのでご注意を
設定ファイル「vsftpd.conf」の編集
ユーザーが出来たら次は設定ファイルに設定を追記していきます。
ボクはコマンドでviとかがいまいち苦手なので、直接エディターとかで編集してアップロードしちゃいます。
この辺りのやり方がわからない人はこの記事を参考にね。
過去記事:【バーチャルホスト】サブドメイン・DNSの設定覚書 設定(サーバ)編 予備知識版
これに従って必要なツールとかを揃えてね!
で、今回いじるファイルはボクの環境だとetc/vsftpd/ディレクトリにある
- vsftpd.conf
- vsftpd_ipv6.conf
- chroot_list
の3つです。ただし「vsftpd_ipv6.conf」と「vsftpd.conf」はファイル名の通りipv6かどうかって話なので、基本は同じ記述をしますし、ipv6関係ねーよ!って人は無視しといて大丈夫です。
で、実際にいじっていきましょう!
まずはvsftpd.confの最下部あたりに以下を追記してください。
・ ・ ・ chroot_local_user=YES chroot_list_enable=YES
簡単に何をやっているかと言うと。。。
chroot_local_user=YESはログインした時に最初に訪れるディレクトリをホームディレクトリとするというのが一つと、それと同時にそこがそのユーザーのルートディレクトリとなり、それよりの上の階層には行けなくする、といった具合です。
つまり、今回作ったtestuserのホームディレクトリは「/var/www/html」と設定したので、それよりも上に行けなくなる。すなわちこのディレクトリ配下でのみで作業をするということです。
これで目的が達成されるわけですが、このままだと全てのユーザーがホームディレクトリしか行けなくなるので次の行のchroot_list_enable=YESでドコにでもアクセスに出来るユーザーを規定してあげましょう!というわけです。
「chroot_list」にセーフリフトを列挙する
というわけでドコにでもアクセスに出来るユーザーを規定するファイルが「chroot_list」となるわけです。
このファイルに普通に改行にて箇条書きしていきます。
どれにしたらいいか迷っちゃう場合は、前の章で紹介した
[root@www /]cut -d: -f1 /etc/passwd root bin daemon adm lp ・ ・ ・ dovecot dovenull apache webalizer mysql postgres ・ takamina acchan marikosama sasiko ・ ・ ・ testuser
ユーザー一覧をもう一回見てみて、自分で作った覚えの無いやつや、最悪今までは全て許可してたわけだもんで、今回新たに作ったtestuser以外を全部許可しても取り敢えずはよしとしていいでしょう。
※のちのちはちゃんと判断してね(^_^;)
で、こんなかんじでセーフリフトを「chroot_list」に書き出ししました。
root bin daemon adm lp ・ ・ ・ dovecot dovenull apache webalizer mysql postgres ・ takamina acchan marikosama sasiko ・ ・ ・
vsftpの再起動
最後にvsftpを再起動したら、これまで書き換えた設定が反映されます。
[root@www /]/sbin/service vsftpd restart Shutting down vsftpd: [ OK ] Starting vsftpd for vsftpd: [ OK ] Starting vsftpd for vsftpd_ipv6: [ OK ]
これで実際にtestuserでFTPに入ってみて、指定したホームディレクトリ「/var/www/html」にしか入れなければ大成功です!
では、よきFTPライフを(*^_^*)
技術評論社
売り上げランキング: 29,388
秀和システム
売り上げランキング: 38,550
関連記事
-
-
RapidSSLをさくらインターネット専用サーバ(CentOS5)セットアップおよび更新覚書
タイトルそのまんま。 丁度sslの更新だったんですが、今回記憶を辿るのが大変でした。 次
-
-
【結婚式二次会のゲームなどにおすすめ】めくりフリップ 自作 手作り 作り方 材料 で検索にひっかかれ!!
先日友達の結婚式の二次会の幹事をやりました。 その中でゲームの中でめくりフリップあった方がいい
-
-
【apacheモジュール】mod_pagespeedのキャッシュの削除の仕方
あいも変わらずgoogle先生はとんでもないものを作りますね!! インストールするだけ! お手
-
-
「ssh port 変更 さくら 専用サーバ できない」 などのワードで検索引っかかってこい
ずーと前からさくらの専用サーバのsshのポートを22から変更しなくちゃ危ないって思っていたけど、人間
-
-
lightbox(ライトボックス)のie9のバグの修正方法(って言っても新しいバージョン入れなおすだけ)
lightboxっていう無料のJavaScriptがあるの知ってますか? lightboxダウ
-
-
【訴状雛形(ワード)あり】少額訴訟のすゝめ 「少額訴訟の訴状テンプレート(ダウンロード)」~裁判と仲良しになろう~
お金が払ってもらえない時どうする? フリーランスとして活動されているウェブ屋さんや、ス
-
-
【感想】Netflixオリジナルドラマ『Jimmy〜アホみたいなホンマの話〜』 オクレさんもはや本人でしょ??
Netflixオリジナルドラマ『Jimmy〜アホみたいなホンマの話〜』 くそ珍しい3泊4日
-
-
【PHP】スマホ対応 メールフォーム設置 PEARを使ってgmailのsmtpサーバで送信する(ダウンロード可能)
メールフォーム(お問い合わせフォーム)をサイトに設置したいというのはよくあります。 で、フォー
-
-
【バーチャルホスト】サブドメイン・DNSの設定覚書 設定(サーバ)編 いざ!版
これの続き では、いよいよ設定です。 まず設定するファイルは一個だけ
-
-
【WordPress】コアファイル・プラグインを更新するとき、FTP情報求められたり、パーミッションエラーの時の対策
メモメモ chownで所有者を一括変換しちゃう。 chown -R apache:a
Comment
[…] 【CentOS,vsftp,Linux(UNIX)】FTPユーザーアカウントの作成とディレクトリのアクセス制限覚書 […]
すごい、役に立ちました。ありがとうございます。
1点、
誤)
今回はuseraddコマンドを作ります。
正)
今回はuseraddコマンドを使います。
な気がしました。
自分のようなど素人にとっては、混乱を誘うものだったりしたので・・・。
コメントおよび誤りご指摘ありがとうございます。
修正させて頂きます。
[…] 【CentOS,vsftp,Linux(UNIX)】FTPユーザーアカウントの作成とディレクトリのアクセス制限覚書 […]