• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:一般ユーザのコマンド制限について)

一般ユーザのコマンド制限について

このQ&Aのポイント
  • 一般ユーザのコマンド制限について質問です。SSHサーバの一般ユーザで不要なコマンドを制限しているのですが、設定が適切か不安です。一般ユーザがSSHコマンドを使えなかった場合に、強制的に設定を変更していますが、これでセキュリティを強化できているか不安です。
  • SSHサーバの一般ユーザで不要なコマンドを使えないよう制限していますが、設定の適切さについて質問です。一般ユーザがSSHコマンドを使えなかった場合、強制的に設定を変更していますが、これでセキュリティを強化できているか不安です。
  • SSHサーバの一般ユーザで不要なコマンドの制限を設定していますが、設定の適切さについて質問です。一般ユーザがSSHコマンドを使えなかった場合に、強制的に設定を変更していますが、これでセキュリティを強化できているか不安です。

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.2

いただいた補足に対してまず論じておくと、ますますSSHサーバの存在意義が分からない。 根本的な着目点は「いかにWebサーバに対する外部からのSSHを制御するか」であって、 それが「WebサーバはEth2から来るクライアントに対してのみSSHを許可、WebサーバのEth2とWin10のEth2をつなぐ、Win10はインターネットに対してリモートデスクトップを提供、これによりWebサーバのSSHはインターネットから保護できる」という、つまりSSHサーバが無い構成に対してSSHサーバを置く事でどんなメリットがあるのか分からないのです。デメリットは前回論じたとおり運用保守の対象が増える。あるのとないのとでWebサーバのMTBFにはあまり影響しないのでこちらはデメリットとしては挙げない。 > ざっくり説明すると、SSHの侵入経路を上記のようにすれば > 制限できるんじゃないかなぁと思っております。 うーん・・・・あなたの話を総合するとあなたの主張は 「sshよりもリモートデスクトップの方がセキュリティが高い(=sshは外から絶対に防ぎたいけどリモートデスクトップはポート番号を変えればインターネットにさらしても問題なし)」 と言っているように見えるんだけど大丈夫かな。 はっきり言ってポート番号を変えたくらいでリモートデスクトップのセキュリティが向上するとは思えない。いや、思えないではなく、向上はない、と言っておこう。 話を聞けば聞くほど「その構成はセキュアではない」と思えてくる。 正直これならWebサーバ1台のみ、SSHはフロントのFW(iptablesなりfirewalldなり)で特定のIPアドレスからしか許可しない、の方がセキュリティ上もコスト上も優れていると私は思う。またはWebサーバーをOpenVPNサーバーにして、VPN接続からのみSSHを受け付けるようにするとか、そちらの方がセキュリティ上は有効ではないかな。 ここから下は提案でもなくあくまであんもちの私見であり小話程度に聞いて欲しいのだが、どうしてもWebサーバに(インターネットから直接)SSHしたくない、踏み台サーバが欲しいというのであれば ・Webサーバのフロント側はお好きなように。 ・Webサーバのeth2と踏み台サーバのeth2を内部でつなぐ。 ・踏み台サーバでOpenVPNのサービスを提供する。ブリッジではなくトンネル。 ・踏み台サーバのeth0をインターネットとつなげてFWでインターネットからのアクセスはOpenVPNのみにする。もちろんポート番号は1194ではなく適当なポート番号に変える。インターネットからはPingも受け付けなくする。 ・踏み台サーバはeth2とtun0(←OpenVPNサーバ起動時に作成される仮想ネットワークデバイス)でルーティングできるようにする。 これで、インターネットからWebサーバにSSHしたければ踏み台サーバの方にOpenVPNで接続してVPN経由で行うという事が可能で、しかもこの構成を取ると踏み台サーバはSSHを提供する必要すらない。インターネットからはVPN経由で透過的にWebサーバにSSHする事が可能でしかもWebサーバと踏み台サーバともにインターネットに対してSSHを公開していない。 これはSSHのみならずFTPなどにも応用できる。VPNを経由すればWebデザイナーのようなコンテンツの転送にFTPしか使った事ないですという人でも問題ない(まぁこの例に限って言えばFFFTPの変わりにWinSCPでSFTPを使わせとけという話かも知れないが)。 さらに、さくらで同じリージョン内にいくつサーバーを借りてもeth2同士でつなげば踏み台は1台ですむ。踏み台サーバのFWとOpenVPNの機能で(ユーザがどのサーバにアクセスできるか)通信の制御も可能だ。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

[CenOS(SSHサーバ)]でsshコマンドだけを許すのは、すなわち(2)の問題に対する策は(3)の手順を行うのではなく(1)の中で # ln -s /usr/bin/ssh /home/testuser/bin/ssh とすべきではないだろうか。(3)を実行するとtestuserのログインシェルがbashになって全コマンド実行できるようにならないかい? testuserのシェルを/opt/rbashにして制限かかった後にシェルを/bin/bashにして制限を撤廃しているように読めるのだけど私の勘違い? で、このような構成をする場合は[CenOS(SSHサーバ)]にてSSHトンネルの機能を使えなくすべきだろう。/etc/ssh/sshd_configに AllowTcpForwarding no という行を追加する。すでにAllowTcpForwarding yesという行がある場合はそれをnoに変える。 SELinuxは日本語の分かりやすい文献が少なくて困るねぇ。私も面倒で大抵無効にしてしまうのであまり詳しくない。 最後に、蛇足ではあるがセキュリティとはそもそもなんだろうかという事について。いろいろと考え方はあると思うが、私はセキュリティを簡単に言うと安全性と完全性のペアだと思っている。安全性とはアクセスする権限がない人が正しくアクセスできない事、完全性とはアクセスする権限がある人が正しくアクセスできる事を指す。大抵の場合セキュリティというと前者の事ばかりが挙げられる。 さて、今回の場合は質問者もおそらく前者の方を気にしていると思うので、質問内の構成を取る時に何が脅威(一般人や悪意のある第三者に何をされると困る)かとそれを防ぐ方法を考える。 と思ったんだけどそもそも[CenOS(SSHサーバ)]が何のためにあるのか分からないんだよね。Win10が[CenOS(Webサーバ)]に直接SSHしない理由(目的)をまず教えていただけるとありがたい。つまりこの構成が前段のセキュリティの何を担っているのか。これが仮に「Win10とWebサーバが直接通信しない方がなんとなくセキュリティが高いのではなかろうか」なのだったら私だったら余分なノード([CenOS(SSHサーバ)]の事)が増える事による管理工数&セキュリティリスク増加の方を気にするかなぁ。 (あ)Win10と[CenOS(Webサーバ)]がFWで隔てられた別セグメント(例えばWin10が社内LANでWebサーバーがDMZ)にある とか、 (い)Webサーバはごちゃごちゃ設定いじりたくないからそのフロントにアプリケーションファイアーウォール的に一台かましてる(Webサーバへアクセスできる人間をSSHサーバで取捨選択している) とかだったら分からなくもないんだけど。 ただ、もし理由がそれらだったら (あ)→FWが完全性を損ねている原因なだけ。FWの設定を適切にすべき。 (い)→SSHサーバに入れる人はWebサーバに入れるのであればSSHサーバ自体の安全性にそこまで工数をかけるべきか。それならやっぱりSSHサーバ自体が不要なのでは。 と思ってしまう。

sato965
質問者

補足

> [CenOS(SSHサーバ)]でsshコマンドだけを許すのは、すなわち(2)の問題に対する策は(3)の手順を行うのではなく(1)の中で > # ln -s /usr/bin/ssh /home/testuser/bin/ssh > とすべきではないだろうか。(3)を実行するとtestuserのログインシェルがbashになって全コマンド実行できるようにならないかい? > testuserのシェルを/opt/rbashにして制限かかった後にシェルを/bin/bashにして制限を撤廃しているように読めるのだけど私の勘違い? > > で、このような構成をする場合は[CenOS(SSHサーバ)]にてSSHトンネルの機能を使えなくすべきだろう。/etc/ssh/sshd_configに >AllowTcpForwarding no > という行を追加する。すでにAllowTcpForwarding yesという行がある場合はそれをnoに変える。 > > ⇒教えていただきありがとうございます。再度手順書修正致します。 > > SELinuxは日本語の分かりやすい文献が少なくて困るねぇ。私も面倒で大抵無効にしてしまうのであまり詳しくない。 ⇒やっぱりそうなんですね。 安全性と完全性の説明わかりやすいです!!ありがとうございます。 > と思ったんだけどそもそも[CenOS(SSHサーバ)]が何のためにあるのか分からないんだよね。 > Win10が[CenOS(Webサーバ)]に直接SSHしない理由(目的)をまず教えていただけるとありがたい。 [現状の構成情報] ■さくらVPS(4Gプラン / Windows10) [ネットワークの設定] Eth1(160.16.XXX.XXX) Global IP 有効 (1)理由 Eth2(172.XXX.XXX.XXX) Private IP 有効 (1)理由 一時的にローカルネットワークの範囲で動作確認の為設定 Eth3(10.XXX.XXX.XXX) Private IP 有効 (1)理由 踏み台サーバに接続するため [ファイアウォール] ・135~139までのポートをブロック ・リモートデスクのポート番号変更 [ICMP(Ping)の応答] とくに拒否設定はなし [その他] ・ウィルス対策ソフト導入済み ■さくらVPS(512Mプラン / 踏み台サーバ) [ネットワークの設定] Eth0(160.16.XXX.XXX) Global IP停止 (01)理由 外部から遮断してアクセスできないようにする Eth2(10.XXX.XXX.XXX) Privete IP有効 (01)理由 各サーバにSSHで接続するためPrivate IPを設定 [ソフトウェア] OpenSSHのみ [接続元の制限] Windows10のeth2のみからの通信は許可してそれ以外は全てアクセス拒否 [ICMP(Ping)の応答] Windows10の環境のEth2からの場合は応答ありでそれ以外は拒否 ■さくらVPS(1Gプラン / Webサーバ) [ネットワークの設定] Eth0(160.16.XXX.XXX) Global IP停止 ⇒Global IPを停止 Eth1(172.XXX.XXX.XXX) Private IP有効 ⇒今後リバースプロキシとの通信をやる為、PrivateIPを設定 Eth2(10.XXX.XXX.XXX) Private IP有効 ⇒踏み台サーバを経由でSSHを接続するため、PrivateIPを設定 [ソフトウェア] ・OpenSSH ・Apache [接続元の制限] 踏み台サーバeth2からのみ許可してそれ以外はアクセス拒否 [ICMP(Ping)の応答] 踏み台サーバeth2からのみ許可してそれ以外はタイムアウト ざっくり説明すると、SSHの侵入経路を上記のようにすれば 制限できるんじゃないかなぁと思っております。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Linuxでのコマンド制限とログ取得について

    Linux(centOS)での、サーバ管理を行うことになりました。 一般ユーザの作業により、サーバに影響を与えないように制限をかけておきたいのですが、どのような方法が有意義なのか?悩んでいます。アドバイスを頂けませんでしょうか? 【やりたいこと】  1)払いだしたアカウントで利用できるコマンドを制限したい(ls,cd,sftp,sshなどのみ)  2)ホームディレクトリから上位ディレクトリなどへの移動を制限したい。  3)ユーザが意識をせずに、実行したコマンドを自動強制記録して、後から管理者が参照したい。 【これまでに確認してきたこと】  1)chrootなどがあるようですが、root権限での実行が必要と思われる。   ログインシェルをrbashに変更することも検討。  2)同じく、chrootで実現可能?(同じく、root権限が必要?)   その他、FTPソフト毎の設定方法はあるようだが...。  3)scriptコマンドやttyrecなどがあるようでしたが、どれがよいのか?実装方法(.bash_profileに記載だけで良い?)がわからない。 いろいろ、検索しておりますが、どのような方法があるのか?どの方法が良いのか?アドバイスを頂ければと思います。よろしくお願いします。

  • 一般ユーザーのsudoコマンドの権限をはく奪したい

    一度、一般ユーザーがsudoコマンドを使える様な設定をネットで見て実行したのですが、その後、セキュリティの関係からその権利をはく奪したいと思ったのですが、 sudoeditコマンドで編集しようとしても、そのファイルの中に、一般ユーザーの名前が見つかりません。何か他に方法がありますでしょうか?さくらVPSのCentOS8 64bitになります。

  • さくらVPSの一般ユーザーにようるSFTP

    さくらVPSを利用しています(CentOS 5.7)。 SFTPでファイルをアップロードする段階で先に進めないでいます。 rootのSSHのログインを禁止し一般ユーザーで秘密鍵を使いログインしています。 一般ユーザーexsampleを作成しました。一般ユーザーexsampleはmkdir,rmなどはできません(Permission deniedが発生します)。 調べるとsudoを使うと良いとあるので設定を行いました。 ■グループwheelを設定 id exsampleは下記のようになりました。 uid=500(exsample) gid=500(exsample) groups=500(exsample),10(exsample) ■visudoでグループwheelにsudoを設定 #%wheel ALL=(ALL) ALL → %wheel ALL=(ALL) ALL ■exsampleユーザーにパスを設定 exsampleユーザーの.bash_profileにパスを通しました。 これでsudo mkdir, sudo rmコマンドを実行できるようになりました。 sshでログインしてコマンド操作をするさいはsudoを使うので良いのですが 一般ユーザーexsampleでFTPクライアントからSFTPでファイルを転送するときにエラーが発生します。 SFTPでサーバーへの接続は正常にできています。サーバー上にディレクトリやファイルを作成するさいPermission deniedが発生します。 エラーの発生は当然だと思うのですがいろいろ調べるとrootでのログインは禁止するのが良いと有ります。 パスワード認証も止めて秘密鍵で認証がよいともありそのようにしています。 SFTPを一般ユーザーで利用してファイルを転送することは可能でしょうか(FTPクライアントはFileZillaを使っています)。可能でしたら方法をお教えください。 ユーザーrootで行うしか無いのでしょうか。 ご回答よろしくお願い致します。

  • Linuxでユーザー毎に実行出来るコマンドを制限

    Linux初心者です。 今、あるユーザーにrmとかmkdirコマンドを実行させたくないとか、 あるユーザーにはコアなディレクトリを見せたくないといった ことをしたいのですが、どのように設定したらいいか さっぱりわからず困っています。。 環境はCentOS5.3です。 何かアドバイスいただけると助かります。

  • シェルの実行中にユーザ切り替えてコマンド実行

    はじめまして。 シェル初心者です。 shell.shをrootユーザでクーロン実行していますが、 shell.shの処理の中で、違うユーザでコマンド実行したいのですが、 可能かどうかも、方法が分かりません。 教えていただけないでしょうか。 環境はLinuxです。 下記のコマンドを実行したいです。 リモートでログインしてコマンド実行結果を取得する ssh -l tomcat server_tomcat grep test /tmp/test.log ※他のユーザでsshを実行してコマンド結果を取得したいです。 以上。宜しくお願い致します。

  • CentOS 一般ユーザーの権限SSH

    CentOS5.6です。 #useraddで作成した一般ユーザーがsshでログインした時の一般ユーザーの権限なんですが $ls /homeなどとすると他のユーザーアカウントが見れちゃいます。 これだけに限らず $lsで一般ユーザーは自身のホームディレクトリ以下だけでなく、別のディレクトリを参照できたり、cdできたりしちゃいます。 確かにOSのデフォルト設定で最初から参照すらも不可なパーミッションが設定されてあるディレクトリについてはいいのですが、そうでないディレクトリは多々あります。 これではまずいので、 一般ユーザーは自分のホームディレクトリ以下以外はlsしたりcdしたりできなくしたいんですがどうすればいいですか? よろしくお願いします。

  • コマンド制限・コマンド履歴

    こんにちは。 システム管理のお仕事をし始めて4ヶ月ほどの新米です。 課題ということで、Solaris上でのコマンド制限について調べています。 特定のIDに対してコマンドを制限し、さらに履歴もとるという内容。履歴に関してはリアルタイムでなくても良いということです。 一般ユーザのコマンド制限になります。 一番いいのはrbashのようなものなのですが、共通環境がCシェルなので、rbashの使用は難しいようです。 質問も頼りないものですが、よろしくお願いいたします。

  • VPS:sendmailのユーザごとのメールボックス容量を設定したい

    レンタルサーバで、VPSを使っています。 CentOS4.4です。 で、sendmailのユーザごとのメールボックス容量を設定したいと思っています。 http://www.stackasterisk.jp/tech/systemConstruction/sendmailSec02_01.jsp#2_2 で可能なことは分かったのですが、 ============================= [root@www /etc]$ vi fstab none /dev/pts devpts rw 0 0 ============================= 自分の場合、この下に 「 LABEL=/var /var ext3 defaults,usrquota 1 2」 を加えれば良いのでしょうか? あるいは、 「none /dev/pts devpts rw 0 0」 を変えればいいのでしょうか?(とすればどのように?) また、新しいユーザが追加になったごとに、 その容量に自動的に設定するにはどうすればいいのでしょうか? 上記URLだと、 ====== また、制限をかけたユーザを雛形にして、他のユーザにも同じ制限をかけたい場合は以下のように"-p"オプションを付けて実行してください。 #setquota -p yamada(<=ひな形となるユーザ) newuser /var ====== とあるのですが、 これだと、 ユーザ追加するごとに、このコマンドを実行しなければならないですよね・・・。 ウェブからユーザを追加し(これはできる)、そしてSSHに接続せずにこれを実現させたいのですが。 (cron使って・・・できるのでしょうか?) こういう需要は多いと思うので、王道的な手法もあるかと思うのですが・・・。 以上、よろしくお願いいたします。

  • sshユーザーに制限を付ける方法を教えて下さい

    初めまして。 linux初心者です。 ○やりたい事 サーバーにユーザーを作りSSHでログインする。 ログイン後の操作に制限をする。たとえば、ホームディレクトリより上位のディレクトリには移動できない等です。 色々ウェブサイトを見ながらやってるのですが、うまくいきません。 上記をするには、ドコに設定をすれば良いかもまだ分りません。 どなたかご教授 宜しくお願いします。

  • SSHのコマンドについて

    宜しくお願い致します。 SSHでサーバの設定をリモートから設定したいと思っておりますが、SSHでのサーバの設定方法や、コマンド一覧が掲載されているサイトもしくは本などありましたら教えて下さい。 宜しくお願い致します。

このQ&Aのポイント
  • eBand JS-10の正面右端の赤丸のボリュームが音量不調になってしまった場合、部品交換で修理可能か検討しています。部品はアルプス電気のものと思われます。愛用品が復活する可能性があるため、詳細を確認して部品を取り寄せる予定です。
  • eBand JS-10の音量調整ボリュームが正常に機能していないため、部品交換が必要です。ボリュームは正面右端にあり、赤丸で示されています。また、この部品はアルプス電気のものと類似している可能性があります。修理することで愛用品を復活させたいと考えています。
  • eBand JS-10の音量調整ボリュームに問題が発生しており、部品交換を検討しています。具体的には、正面右端にある赤丸の部品が関係していると思われます。同様の部品はアルプス電気のものと類似しているため、修理のために部品を取り寄せる予定です。愛用品を復活させるために、部品交換を試してみたいと考えています。
回答を見る