【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
関連記事
-
追尾メニューのAdSense削除の件
このサイトへのお問い合わせで、以下のような内容のご指摘を頂きました。 サイドメニューの追尾広告
-
【WordPress】Contact Form 7でEnterキーを押すと勝手に送信されてしまう問題を解決する魔法のコード(JavaScript)
アイキャッチ画像はギャグとして(笑) 就職活動中の女子大生にJavaとJavaScri
-
【googleガジェット】自分のサイトのアクセスのページとかに自宅からの交通費とかを簡単に調べられるやつを設置 1/2~背景~
googleガジェットという便利なもんがあります。 ガジェットというとWindowsとかのデス
-
【PHP】〓WordPressとかで便利〓Internet Explorerの古いバージョンの場合は違うページにリダイレクトさせる ハック編 2/2
【PHP】〓WordPressとかで便利〓Internet Explorerの古いバージョンの場合は
-
起業するときにおすすめのサービス【PCFAXでペーパーレス】 02
前回のやつ 前回の流れから、ミニマムに商売をはじめるためのおすすめのサービスの紹介です。
-
【MVNO】auからMNP(モバイルナンバーポータビリティ)で今話題の格安sim(YAMADA sim)に乗り換えた
前の記事からの続きです。 【simフリー端末】asus「ZenFone 5 (A500KL)」
-
【ユーザー車検】軽トラを無料でGETしたけど車検代が無いから初の軽自動車ユーザー車検に挑戦!
青春カーと悲しい別れ どうも。貧乏が板に付いてきて久しい僕です。 そのため、青春カー
-
美女Linuxのブログパーツをこのブログに入れた。そんだけ。。。
このブログもいろいろ寂しいので、少しでも華やかにしようかなと思いまして。。。 美女Li
-
「ssh port 変更 さくら 専用サーバ できない」 などのワードで検索引っかかってこい
ずーと前からさくらの専用サーバのsshのポートを22から変更しなくちゃ危ないって思っていたけど、人間
-
BUFFALO(バッファロー)製のNAS「LS410D0201」の純正バックアップ機能だと履歴管理バックアップが出来ないから、ネットブックにAcronis製「True Image」をインストして自前バックアップシステムを作ったなう
タイトル長すぎてうざくて死んで欲しいと思いますが。。。 ネットブックをN君から貰った話の続きと
Comment
[…] 【CentOS,vsftp,Linux(UNIX)】FTPユーザーアカウントの作成とディレクトリのアクセス制限覚書 […]
すごい、役に立ちました。ありがとうございます。
1点、
誤)
今回はuseraddコマンドを作ります。
正)
今回はuseraddコマンドを使います。
な気がしました。
自分のようなど素人にとっては、混乱を誘うものだったりしたので・・・。
コメントおよび誤りご指摘ありがとうございます。
修正させて頂きます。
[…] 【CentOS,vsftp,Linux(UNIX)】FTPユーザーアカウントの作成とディレクトリのアクセス制限覚書 […]