お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2010-09-29 22:25:56

honeyhunter
メンバ
登録日: 2010-05-19

制限ユーザでログイン中に管理者権限を必要とするプログラムの実行

お世話になります。USBメモリにインストールしたUbuntu 10.04 LTSを使っている初心者です。
セキュリティの観点から、ユーザーアカウントを管理用のもの(Administrator、ユーザー名:management)と普段使いのもの(Desktop User、ユーザー名:honeyhunter)に分けて使いたいと思っています。

しかし、私の環境ではインターネットを接続するためにはスクリプト(※1)を実行する必要があり、honeyhunterとしてログインしているときに実行するとそのユーザのパスワードを求められ、入力してEnterしてもhoneyhunterは管理者ではないために実行が拒否されてしまいます。

※1…インターネット接続にはUSBモデムを利用しており、それがどのような状態かを判断して自動接続するスクリプトです。
<<当該トピック>> https://forums.ubuntulinux.jp/viewtopic.php?id=8284
<<頂いたスクリプト>> http://academic.meganebu.com/~debug_ito/index.php?Ubuntu%2F%A5%E2%A5%D0%A5%A4%A5%EB%A5%A4%A5%F3%A5%BF%A1%BC%A5%CD%A5%C3%A5%C8#g925bf38

そこで、質問は次のようになります:
・制限ユーザーでログイン中に、管理者権限を必要とするスクリプトを実行できないのか。
・管理者ユーザーと制限ユーザーの両方でログインしているときに、ユーザを切り分ける意味はあるのか(管理者ユーザー側でマルウェアが実行される危険はないのか)。

一応試したことを書いておきます。どの操作をしても「honeyhunterはsudoerではない」と言われます:

・スクリプトファイルをダブルクリックして、「端末内で実行する(T)」ボタンをクリック(ユーザを切り分けるまではこの方法で接続していました。もちろんパスワードは求められません)

コード:

Bus 001 Device 007: ID 1c9e:9900  
[sudo] password for honeyhunter: ←ここでパスワードを入力
honeyhunter is not in the sudoers file.  This incident will be reported.

・端末から、管理者ユーザーとしてスクリプトを実行できそうなコマンドを実行。

コード:

honeyhunter@ubuntu:~$ sudo -i -u management
[sudo] password for honeyhunter: 
honeyhunter is not in the sudoers file.  This incident will be reported.

コード:

honeyhunter@ubuntu:~$ sudo -l -u management sh /home/honeyhunter/デスクトップ/Connection%20Script
[sudo] password for honeyhunter: 
Sorry, user honeyhunter may not run sudo on ubuntu.

ドラッグ&ドロップsudoを試行。スクリプトファイルをD&Dしても、次のエラーメッセージが表示されます:

gnome-open '/home/honeyhunter/デスクトップ/Connection Script' を、ユーザ root として実行できませんでした。
基礎になっている認証方式(sudo)では、あなたがこのプログラムを実行することを許可していません。システム管理者に連絡してください。

今は仕方なく、管理者ユーザーでスクリプトを走らせ、その一方で制限ユーザーに切り替えて普段の作業を行っています。
なお、管理アプリなどのなかには別ユーザとして実行できるものがあります(例:「ログイン画面」など)。ご指導をお願いします。

オフライン

 

#2 2010-09-29 22:42:03

honeyhunter
メンバ
登録日: 2010-05-19

Re: 制限ユーザでログイン中に管理者権限を必要とするプログラムの実行

自己レスです。すみません、編集ミスをしました:
後ろから2行目の「今は仕方なく〜」を、先頭から6行目の「〜拒否されてしまいます。」の後ろに移動して読んでください。

5行目から次のようになります:
「しかし、私の環境ではインターネットを接続するためにはスクリプト(※1)を実行する必要があり、honeyhunterとしてログインしているときに実行するとそのユーザのパスワードを求められ、入力してEnterしてもhoneyhunterは管理者ではないために実行が拒否されてしまいます。今は仕方なく、管理者ユーザーでスクリプトを走らせ、その一方で制限ユーザーに切り替えて普段の作業を行っています。」

オフライン

 

#3 2010-09-29 23:26:34

kiyop
拒否
From: http://kiyoandkei.bbs.fc2.com/
登録日: 2010-01-23

Re: 制限ユーザでログイン中に管理者権限を必要とするプログラムの実行

※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。

オフライン

 

#4 2010-09-30 00:24:13

honeyhunter
メンバ
登録日: 2010-05-19

Re: 制限ユーザでログイン中に管理者権限を必要とするプログラムの実行

事前調査してみると、誤った編集をしてしまうとシステムが起動しなくなることもあるようですね…私は初心者な者でそのファイルをどのように編集したらいいかも解らないのですが、この方法以外にリスクの低い方法はないでしょうか?
折角の返信に申し訳ありません。

オフライン

 

#5 2010-09-30 00:37:38

hmatsue
アドバイザ
登録日: 2009-03-10

Re: 制限ユーザでログイン中に管理者権限を必要とするプログラムの実行

管理者権限をとれるユーザはadminグループに所属し、
そうでないユーザはadminグループに所属しないようにし、
管理者(root)ではログインしない、
というのがUbuntuのデフォルトです。

管理者権限を取るためにはパスワードを入力する必要があるのでadminグループに属するユーザで普段の作業を行っても別段問題は無いのでは無いかと思います。というのを踏まえて、

honeyhunter による投稿:

・制限ユーザーでログイン中に、管理者権限を必要とするスクリプトを実行できないのか。

adminグループに属さないユーザは管理者権限をとれません。

コード:

su management
sudo 実行したいコマンド
exit

などではいかがでしょう。

honeyhunter による投稿:

・管理者ユーザーと制限ユーザーの両方でログインしているときに、ユーザを切り分ける意味はあるのか(管理者ユーザー側でマルウェアが実行される危険はないのか)。

少しWindowsあたりの用語や考え方が混ざって分かりにくくなっている感がありますが、UbuntuやLinuxにおいては、常時管理者(root)でログインするというのはあまり良い作法とは言えないかと思います。suでrootになったり、sudoコマンドで管理者権限でプログラムを実行するのは必要最小限度に止めるべきであると考えます。

オフライン

 

#6 2010-09-30 01:02:03

hir0
メンバ
登録日: 2008-09-28

Re: 制限ユーザでログイン中に管理者権限を必要とするプログラムの実行

> #4

無いんじゃ無いかな?
それが「制限」であって「sudo」を使えないユーザーの宿命。

怖がらずに#3を試すことをお勧め。
コマンドは使えますか?

$ sudo cp /ディレクトリ/スクリプト名 /etc/rc2.d/S999スクリプト名

再起動。

解らなければ
$ sudo nautilus /etc/rc2.d

例のスクリプトをコピーして、名前の先頭に S999  を付けて保存。

万一、起動しなくなった場合はリカバリーモードでもライブCDからでもコピーしたS999スクリプト名 を削除すればOK。

他にレスが付かない様ならお試しを。
逆にべたな方法として#2の工程を自動で行わせるのも有りかな?

オフライン

 

#7 2010-09-30 01:02:21

honeyhunter
メンバ
登録日: 2010-05-19

Re: 制限ユーザでログイン中に管理者権限を必要とするプログラムの実行

管理者ユーザーとしてスクリプトを実行することができました。kiyopさん、hmatsueさん、助力ありがとうございました。

コマンドを書いておきます。

コード:

honeyhunter@ubuntu:~$ su management
パスワード:
management@ubuntu:/home/honeyhunter$ sudo sh /home/honeyhunter/デスクトップ/Connection¥ Script
(以下、スクリプトの出力が表示される)

オフライン

 

#8 2010-09-30 01:10:07

honeyhunter
メンバ
登録日: 2010-05-19

Re: 制限ユーザでログイン中に管理者権限を必要とするプログラムの実行

私が編集中にkiyopさんが投稿していたようですね…18秒。返信の内容は何か他の機会に活用させていただきます。ありがとうございます。

オフライン

 

#9 2010-09-30 01:14:25

honeyhunter
メンバ
登録日: 2010-05-19

Re: 制限ユーザでログイン中に管理者権限を必要とするプログラムの実行

名前を間違えるとは申し訳ありません、kiyopさんではなくhir0さんでした。今眠くて…

オフライン

 

#10 2010-09-30 09:36:04

hmatsue
アドバイザ
登録日: 2009-03-10

Re: 制限ユーザでログイン中に管理者権限を必要とするプログラムの実行

honeyhunter による投稿:

コマンドを書いておきます。

コード:

honeyhunter@ubuntu:~$ su management
パスワード:
management@ubuntu:/home/honeyhunter$ sudo sh /home/honeyhunter/デスクトップ/Connection¥ Script
(以下、スクリプトの出力が表示される)

余談になりますが、honeyhunterをadminグループに追加しておいて、直接sudoを使うのも悪くは無いかと思います。
と、書いたつもりだったのですが、伝わりにくい書き方になってしまっていたかも。。
もちろんsuでadminグループに属するユーザに成ってからsudoでもよいのですけど。
sudoで管理者権限を取った状態を最小限にするために、sudoでなにかコマンドを実行したあとsudo -kしておくと再認証が必要になりますので、変なスクリプトを拾ってきて実行したら、マルウェア的なプログラムを管理者権限で実行されてしまった、ということもなくなるかと思います。
# そもそも外部からのアクセスでmanagermentの方のパスワードをクラックされるとどうしようもないのでどれほど意味があるかは微妙。
# sudo -kを実行する習慣を付けるとか、変なものを拾ってきて実行しないとか、システムの設定で余計な外部アクセスを許さないとか、
# そういうところに気を配った方がよいのではないかと思います。

オフライン

 

#11 2010-09-30 14:48:35

honeyhunter
メンバ
登録日: 2010-05-19

Re: 制限ユーザでログイン中に管理者権限を必要とするプログラムの実行

hmatsueさんの投稿を読んでよく考えてみたら、自分は「root」と「adminグループに属するユーザー」を混同していたことに気づきました…お恥ずかしい。長年WindowsユーザーだったのでLinuxのセキュリティの仕組みを理解できていませんでした。

hmatsueさん による投稿:

# そもそも外部からのアクセスでmanagermentの方のパスワードをクラックされるとどうしようもないのでどれほど意味があるかは微妙。

上記の箇所ですが、「クラッキングによって完全な管理権をもつmanagementのパスワードを奪われてしまっては無意味。よって、利用可能なユーザーをrootとhoneyhunterに限定する。しかし、rootのパスワードはロックされた状態にあるため悪用は不可能。honeyhunterは制限ユーザーであるから、パスワードを奪われたとしても悪用は不可能」という解釈でよろしいでしょうか? 権限昇格のリセットはsudo -kで是非実践させていただきます。これはかなり勉強になりました。

オフライン

 

#12 2010-09-30 18:16:41

hmatsue
アドバイザ
登録日: 2009-03-10

Re: 制限ユーザでログイン中に管理者権限を必要とするプログラムの実行

すみません。自分で何を言っているのか判らなくなってきたので、自分の考えを纏めてみます。

【外部からのアクセスについて】
1. rootでログインされると非常にまずい。かつ、rootという名前のユーザがいることはほぼ自明なのでUbuntuではrootのパスワードをロックしてログインできないようにしてある。これは解除しない方が良い。
2. adminグループに属するのユーザでログインされてもrootでログインされるのと同様に非常にまずい。
3. adminグループに属さないユーザでログインされた場合、できることは限定的だが、そこからadminグループに属するユーザにsuされると管理者権限をとられてしまうのでまずい。
なので、
4. そもそも外部からのアクセスは極力許可しない方法を考えるべき。adminグループに属さないユーザがクラックされたとしても、その状態からadminグループのユーザがクラックされるのは一段階目に比べると容易であると予想される。

【使い方の問題について】
1. ついついrootで無くてもよい作業までrootでしてしまいがちになるため、rootになってしまうのは避けるべき。
2. sudoを使ったあと、中にsudoを使っている危険なスクリプトを実行したりすると、パスワード認証無しでroot権限でコマンドが実行されてしまうため、sudo -kをこまめにする方が安全。
3. そもそも信用できないところからパッケージをダウンロードしてきてインストールしたり、何をやっているか理解できないスクリプト類を実行したりしない。

【ご質問の件について】

honeyhunter による投稿:

「クラッキングによって完全な管理権をもつmanagementのパスワードを奪われてしまっては無意味。よって、利用可能なユーザーをrootとhoneyhunterに限定する。しかし、rootのパスワードはロック
された状態にあるため悪用は不可能。honeyhunterは制限ユーザーであるから、パスワードを奪われたとしても
悪用は不可能」という解釈でよろしいでしょうか?

Ubuntuではrootアカウントがロックされているため、adminグループに所属するユーザが必要です。
制限ユーザというのがadminグループに属さないユーザの意味であるならば、adminグループに属するユーザを消してしまった時点でシステム管理ができなくなってしまいます。
また、honeyhunterアカウント以外にadminグループに属するユーザが存在する場合、最初の外部からのクラックに比べると、ユーザ名がバレてしまっているためadminグループに属するユーザがクラックされることは容易に推測できます。
そのため、最初のクラックを許さないことが重要だと考えます。
もし、PCの使用者が複数いて、ちゃんと管理できる人がひとりしかいない場合、他の使用者のアカウントはadminグループに含めるべきではないと思います。
しかし、同じ使用者であれば、adminグループに属するユーザと属さないユーザを使い分けることはあまり重要ではないと考えます。



宛 各位
あまりセキュリティの知識がある方では無いので突っ込み大歓迎です。
なにかお気付きの点があればご教示下さい。

オフライン

 

#13 2010-09-30 19:11:20

honeyhunter
メンバ
登録日: 2010-05-19

Re: 制限ユーザでログイン中に管理者権限を必要とするプログラムの実行

hmatsueさん による投稿:

4. そもそも外部からのアクセスは極力許可しない方法を考えるべき。adminグループに属さないユーザがクラックされたとしても、その状態からadminグループのユーザがクラックされるのは一段階目に比べると容易であると予想される。

・具体的に外部からのアクセスはどのようにして制御するのでしょうか?
簡単に調べたところ、GUIツールのufwやコマンドラインからのipfwadmなどが使えるようですが、これらのツールでよいのでしょうか。

・ポートはどのようなときに開かれますか?
Ubuntuではデフォルトですべてのポートが閉じられていると聞きました。しかし、インターネット接続する際には8080ポートを開く必要がありますよね。ポートはソフトウェアのインストール時などに開かれるのでしょうか。

・私的なこと
今、なんとなくシステム管理メニューの中のネットワーク・ツールで自分(127.0.0.1)に対してポートスキャンしてみたのですが、常に25番ポート(サービス:smtp)がオープンしています。自分はサーバーなんて立ち上げた覚えはありません。感染したマシンはスパムの送信に使われるというし、これはウイルス感染を疑うべきなのでしょうか。以前は25番ポートはオープンしていませんでした。

溢れ出る質問すいません。

オフライン

 

#14 2010-09-30 20:45:08

funatogawa
メンバ
From: 関東
登録日: 2009-02-01

Re: 制限ユーザでログイン中に管理者権限を必要とするプログラムの実行

8080というポートは定義されていません。(80/tcpがwebサーバーが使っているので、プロキシサーバーのsquitなどを動かすと、待ち受けポートに8080や12808など、似通ったポート番号を使うことがある。したがって、プロキシサーバーが使われていればその待ち受けポートをwebブラウザに設定する。)
http://ja.wikipedia.org/wiki/%E3%83%9D% … A%E5%8F%B7

サーバーが動いていなければ普通は閉じていると思いますが。cupsを使っていれば631/tcpは開いているかな。
https://wiki.ubuntulinux.jp/UbuntuTips/ … Server/Ufw

オフライン

 

#15 2010-09-30 22:27:26

honeyhunter
メンバ
登録日: 2010-05-19

Re: 制限ユーザでログイン中に管理者権限を必要とするプログラムの実行

返信ありがとうございます。やはり覚えのないポートが開いているのは心配なので、これからgufwといったものを導入してセキュリティを堅牢にしていきたいと思います。

私事です、投稿#13で書き忘れたのですが、rkhunterでルートキットの検査をしてみると、/bin, /usr/bin, /sbin, /usr/sbin以下でWARNING表示がたくさん表示されて…132個中113個のファイルが感染疑いという結果が出ました。以前はこんなにWARNINGは表示されませんでしたし、これは絶対おかしいですよね? ルートキットの疑いのあるものはrkhunterでは検出されませんでしたが、chkrootkitでは一件検出。私がこんなに敏感になっているのも、この結果があったからです。もうすぐ10.10もリリースされることですし、一回Ubuntuをクリーンインストールしてみるのもいいかと。

オフライン

 

#16 2010-10-01 00:10:03

hmatsue
アドバイザ
登録日: 2009-03-10

Re: 制限ユーザでログイン中に管理者権限を必要とするプログラムの実行

honeyhunter による投稿:

・具体的に外部からのアクセスはどのようにして制御するのでしょうか?
簡単に調べたところ、GUIツールのufwやコマンドラインからのipfwadmなどが使えるようですが、これらのツールでよいのでしょうか。

PCの外側にルータがいるなら、それで設定してもよいですし、直接インターネットに接続されている場合は、ufwなどのファイアーウォールを設定するのもよいかと思います。

honeyhunter による投稿:

インターネット接続する際には8080ポートを開く必要がありますよね。ポートはソフトウェアのインストール時などに開かれるのでしょうか。

外からの接続待ちのサービスがいなければポートを開けておく必要はありません。
サーバとして動くものをインストールした場合はそのサーバソフトが使うポートが開きます。

honeyhunter による投稿:

今、なんとなくシステム管理メニューの中のネットワーク・ツールで自分(127.0.0.1)に対してポートスキャンしてみたのですが、常に25番ポート(サービス:smtp)がオープンしています。自分はサーバーなんて立ち上げた覚えはありません。

割といろんなソフトがsmtpサーバをセットでインストールしたような気が。。
自分のところでnmapしてみたところ、

コード:

$ nmap localhost

Starting Nmap 5.00 ( http://nmap.org ) at 2010-10-01 00:08 JST
Warning: Hostname localhost resolves to 2 IPs. Using 127.0.0.1.
Interesting ports on localhost (127.0.0.1):
Not shown: 989 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
631/tcp  open  ipp
2049/tcp open  nfs
3389/tcp open  ms-term-serv
5432/tcp open  postgresql

Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

となりました。確かpostgresかなにかをインストールしたときにpostfixだったかなにかがインストールされたような記憶があります。

オフライン

 

#17 2010-10-01 00:16:53

hmatsue
アドバイザ
登録日: 2009-03-10

Re: 制限ユーザでログイン中に管理者権限を必要とするプログラムの実行

honeyhunter による投稿:

返信ありがとうございます。やはり覚えのないポートが開いているのは心配なので、これからgufwといったものを導入してセキュリティを堅牢にしていきたいと思います。

私事です、投稿#13で書き忘れたのですが、rkhunterでルートキットの検査をしてみると、/bin, /usr/bin, /sbin, /usr/sbin以下でWARNING表示がたくさん表示されて…132個中113個のファイルが感染疑いという結果が出ました。以前はこんなにWARNINGは表示されませんでしたし、これは絶対おかしいですよね? ルートキットの疑いのあるものはrkhunterでは検出されませんでしたが、chkrootkitでは一件検出。私がこんなに敏感になっているのも、この結果があったからです。もうすぐ10.10もリリースされることですし、一回Ubuntuをクリーンインストールしてみるのもいいかと。

すみません。こちらに関しては私には知識不足で何とも言えないのですが、不審な点があれば実行結果や、マシンの状態(動作させているサーバ類やインターネットへの接続方式・状態など)を添えて、別トピックを起こしていただくのが良いかと思います。

オフライン

 

#18 2010-10-01 17:58:37

honeyhunter
メンバ
登録日: 2010-05-19

Re: 制限ユーザでログイン中に管理者権限を必要とするプログラムの実行

自分のところでも、sudo nmap -sTV localhostをしてみると、25番ポートはExim smtpd 4.71が使っていました。Synapticで依存関係を調べてみると、ルートキット検査のrkhunterがEximに依存していました。rkhunterが25番ポートを使っていたんですか…少し心配しすぎたでしょうか。

ルートキットの件ですが、考えた末、次期10.10のクリーンインストールでシステムを一掃してしまおうと思います。疑いがある以上、その検査結果も信じられたものではないので。アドバイスありがとうございます!

オフライン

 

Board footer

Powered by FluxBB