- ベストアンサー
特定ユーザーにのみSendmail等を許可するには
私はLinux(FC2)サーバーをレンタルし、コントロールパネルはPleskです セキュリティの都合上、全ユーザーにSendmail等を許可するのは危ないと思い、悩んでいます。 特定ユーザーにのみSendmailを許可したり 「.htaccess」の設置制限をかけたいと思っています。 ですが、検索しても方法が見つからず分からないでいます。 制限する方法はありませんでしょうか
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
sendmailの方は、今ひとつ目的やユーザに許している作業環境が掴めていないので回答保留します。 単純に、sshなどのコンソール画面から特定のソフトの実行を抑制したいのであれば、No.1さんの方法くらいしか思いつかないですね。 で、.htaccessですが、リモートログインを行い、WWWコンテンツなどの設置を許可しているんであれば、.htaccessの設置そのものの抑制は無理です。(.htaccess自体はただのファイルですので) それよりも、Apache(ですよね?)の設定で.htaccessを無効化した方がよいでしょう。 "AllowOverride" をキーワードにして、Apacheのマニュアルを調べてみてください。 ちなみにエラーの件: > >chgrp root.smok /usr/sbin/sendmail > エラーで出来ませんでした。 これは、オーナーをroot、グループをsmokにすることだと思うので、chownを使用するのが正解です。 # chown root.smok /usr/sbin/sendmail 最近はこのように書くみたいですけども。(詳しくはman chownしてください) # chown root:smok /usr/sbin/sendmail
その他の回答 (5)
- Toshi0230
- ベストアンサー率51% (836/1635)
No.2, No.4 です。 ちょっと(かなり)間があいてしまいましたm(__)m 基本的にFTPだけのアクセス、ということですと、コマンドの実行はApacheからCGIを経由して、というのが殆ど唯一の方法になるのですね。 CGIからのsendmail使用を、ユーザ単位で制限しようとすると、Apacheでの設定をフルに活用することになると思います。 おそらく、ユーザ毎に環境を変えて使用できるコマンドを制限することになるのではないでしょうか?(このあたりは正直あまり自信がないです) 回答になっていなくて申し訳ないですが、この程度のことしか言えません。m(__;)m それから、telnet / ssh のアクセスは、可能なら拒否しておいた方がセキュリティ的には良いでしょう。
補足
ありがとうございます。 なんとなくLinuxに慣れだしたのでもう少し調べようと思います。 ありがとうございました。
- Toshi0230
- ベストアンサー率51% (836/1635)
No.2, 4です ユーザがサーバにアクセスする方法として許可しているのはどの方式ですか? WWW (http)のみ? FTPは? ssh / telnetは? WWW / FTP でのアクセスであれば、Apache上の設定で何とかする話になると思います。 ssh / telnetでのアクセスを許可しているとなると、"chmod" "chown"を使ったアクセス制御になるでしょう。
補足
アップロードにはユーザー毎にFTPアカウントを作成しています。sshやtelnetは公開していないだけでもしかすると可能かもしれません LinuxやApacheを勉強しようと思い、Web検索や書籍を数冊購入しているのですがc等の言語と違うのでコツがつかめないのです すいません。
- Toshi0230
- ベストアンサー率51% (836/1635)
No.2です。 > CGIでSendmailを使っています。 CGIはWWWサーバのユーザ権限(設定によって異なります。Linuxだとnobodyまたはapachが多い)で各コマンドを起動しますから、パーミッションを750にすれば起動しないのも無理はありません。 ユーザに許可している操作や環境が異なれば、質問への回答も違ってきます。 ある前提では正しい答えも、別の前提では間違えていることは多々あります。私が最初にsendmailについてコメントした際も、「sshなどのコンソール画面から特定のソフトの実行を抑制したいのであれば」という前提をつけていますよね? まずは「どのような環境でユーザにサーバを使用させるのか」をはっきりさせてください。
補足
すいません。書き直します。 私はApache・Linux・Fedora Core2でホームページスペースを提供しています。 しかし、Sendmail等はCGIを使えば大量なメールを簡単に送ることが出来てしまうので特定のユーザーにしか使用できなくしたいのです。 こういうことでよろしいのでしょうか。回答の意味を取り違っていたらすいません。
- anmochi
- ベストアンサー率65% (1332/2045)
> パーミッションを750にすると、オーナーでさえも > Sendmailを使うことが出来なくなってしまうのです。 「使う事が出来なくなる」を詳しく教えて欲しい。つかえなくて「どうなる」のか。 1.command not found 2.なんか変なメッセージが出る 3.何も起こらない など。 ところで、/usr/sbin/sendmailは実体だろうか?(シンボリックリンクでないという意味) シンボリックリンクの場合、オーナーユーザとオーナーグループはリンク先の実体を変えてあげないといけない。 具体的には、シンボリックリンクに対してchmodとchownを実行すると、chmodは実体に対して行われるがchownはリンクに対して行われる。 #ls -la /usr/sbin/sendmail として、実体なのかリンクなのか調べると良いだろう。 仮に、ここで実体が/var/qmail/bin/sendmailであり、このファイルが750でqmail.qmailだったとすると、/usr/sbin/sendmailのオーナーであろうrootでさえも実行する事ができなくなる。 -rwxr-x--- qmail qmail /var/qmail/bin/sendmail lrwxrwxrwx root smok /usr/sbin/sendmail -> /var/qmail/bin/sendmail と言えば説明がつくだろうか。つまり、sendmailを750に変えたは良いが実体のオーナーがrootで無く、かつrootはqmailグループに属していないのでsendmailが実行できない、という訳だ。 まぁ、可能性でしかないけど・・・・。
補足
まだ試していないのですが先にSendmailがどうなるのかだけでもお伝えしておきます。 私はサーバーにそれほど詳しくないのでコマンドからSendmailを起動させること?が出来ないので、CGIでSendmailを使っています。 今思えばオーナー権限ではないような気がしてきましたが、Sendmailパーミッションを750にするまえならそのCGIのSendmail結果は「OK」が返ってきてメールも届きますが、750に変更すると「ERROR」が返ってきてやはりメールも届かないでいます。
- anmochi
- ベストアンサー率65% (1332/2045)
sendmailの方の解説を。 一般的にそういう場合はグループを作る。smgroupなどというグループを作り、sendmailのオーナーをroot.smgroupに、アクセス権限を750に変更だ。で、使用を許可したいユーザにsmgroupグループを付与する。すると、オーナーであるrootと、smgroupグループにも属するユーザだけがsendmailを使用できるようになる。 Pleskというのは一切知らないので具体的なやり方はちょっと分かんない。コンソールがあるならchownとchmodとusermodだ。 .htaccessの作成権限を制御するのは・・・・分かんない。
補足
ありがとうございます。教えていただいたように、SSHにて変更を試みたのですが、何故か出来ませんでした。 素人なもので、私のやり方がおかしかった可能性が高いのでコマンドを記述しておきます。もし変な部分があれば指摘していただけると幸いです。 >chgrp root.smok /usr/sbin/sendmail エラーで出来ませんでした。 >groupadd smok >usermod -G smok test >chgrp smok /usr/sbin/sendmail >chmod g=rx /usr/sbin/sendmail >chmod o= /usr/sbin/sendmail
補足
回答ありがとうございます。ですが chown root:smok /usr/sbin/sendmail で、グループに出来たものの、 usermod -G smok test で、[test]にグループ権限?を与え、 No.1さんの言うようにパーミッションを750にすると、オーナーでさえもSendmailを使うことが出来なくなってしまうのです。 やはりやり方がおかしいのでしょうか。