【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
関連記事
-
-
【PHP】メールフォーム 一度入力した内容が消えてしまう時 POST使って入力内容を保持 ~メールフォームパッケージダウンロードあり~
前に、 【PHP】スマホ対応 メールフォーム設置 PEARを使ってgmailのsmtpサーバで
-
-
【googleガジェット】自分のサイトのアクセスのページとかに自宅からの交通費とかを簡単に調べられるやつを設置 1/2~背景~
googleガジェットという便利なもんがあります。 ガジェットというとWindowsとかのデス
-
-
【google apps】バリュードメイン(value domain)のDNS設定覚書
タイトルそのまま mx ASPMX.L.GOOGLE.COM. 10 mx ALT1.A
-
-
zenbookのACアダブターを間違えて買ったので、プラグだけ買って作り直すの巻
zenbookかっちょいいですね!MacBook Airのパクリインスパイア系のウルトラブッ
-
-
【jQuery】Chart.jsを使って簡単にカッコイイレーダーチャートを実装するの巻
友達の結婚式のプロフィールムービーが終わって一息ついていた頃。。。 いつもお世話になっている弁
-
-
起業するときにおすすめのサービス【格安フリーダイヤル】 01
具体案が欲しい時ってありますよね。たまたまはてブで遊んでいるときにこんな記事を発見。 誰にでも
-
-
【バーチャルホスト】サブドメイン・DNSの設定覚書 概要編
サブドメインをやろうと思いました。 サブドメインをやる目的は自分のサイトがexam
-
-
Amazonの神対応に触れて~月曜始まり縦6行カレンダーはおすすめよ~
おじいちゃんに囲碁の本が欲しいって言われたからアマゾンで買うねって言ったら「そんな遠くまで行かなくて
-
-
google Analytics(グーグルアナリティクス)で、自分を除外したいけど、スマホだとIP変わっちゃうよ(>_<)ってときの対処方
タイトルそのまんま。 google Analytics(グーグルアナリティクス)で、自分を除外
-
-
【WordPress】静的htmlサイトをフルCMS化するときにURLを変えないためのパーマリンク自由自在プラグイン「Custom Permalinks」
静的htmlサイトをCMS化(WordPress化)するメリット 一家にひとつは古い静
Comment
[…] 【CentOS,vsftp,Linux(UNIX)】FTPユーザーアカウントの作成とディレクトリのアクセス制限覚書 […]
すごい、役に立ちました。ありがとうございます。
1点、
誤)
今回はuseraddコマンドを作ります。
正)
今回はuseraddコマンドを使います。
な気がしました。
自分のようなど素人にとっては、混乱を誘うものだったりしたので・・・。
コメントおよび誤りご指摘ありがとうございます。
修正させて頂きます。
[…] 【CentOS,vsftp,Linux(UNIX)】FTPユーザーアカウントの作成とディレクトリのアクセス制限覚書 […]