【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
関連記事
-
【訴状雛形(ワード)あり】少額訴訟のすゝめ 「少額訴訟の訴状テンプレート(ダウンロード)」~裁判と仲良しになろう~
お金が払ってもらえない時どうする? フリーランスとして活動されているウェブ屋さんや、ス
-
【バーチャルホスト】サブドメイン・DNSの設定覚書 設定(サーバ)編 いざ!版
これの続き では、いよいよ設定です。 まず設定するファイルは一個だけ
-
注文住宅(マイホーム)購入ならスーモカウンターがおすすめ(賛否あるけど) 3/3
注文住宅(マイホーム)購入ならスーモカウンターがおすすめ(賛否あるけど) 1/3 注文住宅(マイホ
-
【googleガジェット】自分のサイトのアクセスのページとかに自宅からの交通費とかを簡単に調べられるやつを設置 1/2~背景~
googleガジェットという便利なもんがあります。 ガジェットというとWindowsとかのデス
-
【LINEbot】LINEbotが作れるからphpで作ってみたの巻 ~さくらの共有SSLでも動くよ~
BOT API Trial Accountってのが、公開されたので、LINEbotを正式に作れるよう
-
会社を作ったら郵便局に集荷してもらったり銀行引き落とししてもらえるようになろう!
おすすめのサービス 01 おすすめのサービス 02 これの続きっぽい感じ。
-
iPhone5水没 エクスプレス交換サービスで秒速で4,400円(税込)で新品に変わる~AppleCareにより~
今日も元気だ!お酒が旨い。 というわけで尿路結石の激痛で死にかけたのはどこ吹く風と暴飲暴食をし
-
注文住宅(マイホーム)購入ならスーモカウンターがおすすめ(賛否あるけど) 1/3
注文住宅紹介サービス「スーモカウンター」とは? 現在注文住宅を建てようと計画中です。 貧
-
追尾メニューのAdSense削除の件
このサイトへのお問い合わせで、以下のような内容のご指摘を頂きました。 サイドメニューの追尾広告
-
【覚書】 WordPress 301 リダイレクト URL変更 htaccess 下層ページ そのまま
このブログのURLを http://www.takahashi-takuro.com か
Comment
[…] 【CentOS,vsftp,Linux(UNIX)】FTPユーザーアカウントの作成とディレクトリのアクセス制限覚書 […]
すごい、役に立ちました。ありがとうございます。
1点、
誤)
今回はuseraddコマンドを作ります。
正)
今回はuseraddコマンドを使います。
な気がしました。
自分のようなど素人にとっては、混乱を誘うものだったりしたので・・・。
コメントおよび誤りご指摘ありがとうございます。
修正させて頂きます。
[…] 【CentOS,vsftp,Linux(UNIX)】FTPユーザーアカウントの作成とディレクトリのアクセス制限覚書 […]