3行まとめ
- 共用のファイルサーバーのアクセス権の手続きが面倒で自分でやりたい
- ファイルサーバーへのアクセスを仲介するリバースプロキシがあればいい
- Windowsじゃ無理そうだけど、LinuxならcifsとSambaで実現できそう
発端
私 「共有フォルダにあるファイルを派遣さんに見せたいんだけど」
管理者「ああ、1人ずつ申請書書いてください」
私 「紙で?!」
管理者「紙で」
私 「・・・まあ、1度なら我慢するよ、\IP\〇〇ってフォルダなんだけど」
管理者「ああそこは派遣さんに見せちゃダメなファイルがあるからサブフォルダ単位で申請してください」
私 「え?20フォルダくらいあるんだけど、全部?」
管理者「全部」
私 「紙で?!」
管理者「紙で」
私 「面倒じゃないの?他の人はどうしてるの?」
管理者「ああ、各自、別の場所にコピーしてから渡していますよ」
私 「それはいいんだ」
※演出上、多少脚色はあります。
解説
皆さん、NASとかsambaのファイルサーバーを使っていますか?
最近は、GitやWeb上に直接のせたりして需要は減っているのかもしれませんが、
古いサーバーが残っていたり、容量がでかいファイルは相変わらずファイルサーバーを使っている場合も
あるのではないでしょうか。
その場合、秘匿情報があったりして、アクセス権はしっかり設定することが多いですし、
ユーザー追加やアクセス権の設定は、管理者が行っているのではないでしょうか。
しかし、ユーザーが増えてきて管理者の負荷が上がったり、
フォルダ構造がイケてなくて権限の設定が大変だったりすると、
管理者に申請してから使えるようになるまで時間がかかることになります。
せめて特定のフォルダ以下だけでも自分で権限管理ができたらな、と思ったりします。
イメージとしては、リバースプロキシのファイルサーバー版です。
Windowsでは無理そうでしたが、Linuxを使うと、意外と簡単にできたので、その方法を紹介します。
一言で説明すると、cifsとsambaを使っただけです。
なお、Writeはいろいろややこしいので、Readのみにしています。
理屈上Writeも可能のはずですが、怖いので試していません。
免責事項
この手法は、緻密に設計されたセキュリティに穴を開けることになります。
この記事を参考にしてトラブルになっても、作者は何の責任も負いません。
用意するもの
- CentOS7 (にはこだわらないですが適当なLinux)
- mount.cifs
- samba
構築手順
1. CentOSを初期設定します
ポイントとしては、ファイアウォールを停止するか、Sambaを公開するようにします。
CentOSならこの辺を参考に。
https://centossrv.com/ (いつもお世話になっています)
2. cifsを使って、別サーバーの共有フォルダをマウントします
mount.cifsでWindowsの共有フォルダをマウントします。
# yum install -y samba-client cifs-utils
# mkdir /cifs_share
# mount.cifs -o "username=user01,password=****" //192.168.0.2/share /cifs_share
yumはCentOSのコマンドですが、他のディストリビューションも似たようなものだと思います。
マウントできない場合は、この記事が参考になりました。
https://qiita.com/You_name_is_YU/items/85ffbffee744f6f494ed
3. マウントした共有フォルダをsambaで公開します。
# yum -y install samba
# vi /etc/samba/smb.conf
[share]
path = /cifs_share
public = yes
writable = no
only guest = no
# systemctl start smb
# systemctl start nmb
単に2でマウントしたフォルダをsambaで公開するだけです。
細かい設定は、ググってください。
あとは、UIが欲しければ、SWATあたりを使えばよいですし、
ActiveDirectoryのユーザーを使いたければ、Winbindが使えます。
最後に
意外と簡単に作れて、セキュリティ的にどうなの?って感じでした。
しかも、サーバー管理者からもブロックが難しそうですし。
くれぐれも悪用したり、ここで知ったと言わないようにしてください。