なじみのないシステムについて学ぶコマンド[非公開]


19

なじみのないUNIXまたはLinuxシステムに(rootとして)ログインします。どのコマンドを実行して自分自身の方向を決め、どのようなシステムを使用しているかを把握しますか?使用中のハードウェアの種類、実行中のオペレーティングシステムの種類、およびアクセス許可とセキュリティに関してはどのような状況にあるのかをどのように把握しますか?

入力する最初と2番目のコマンドは何ですか?


3
uname -aそれから私apropos whatever はあなたの友達です。
fd0

1
nmap -A -T4 localhostまたいくつかの有用な情報を与えることができます
seumasmac

@seumasmac netstatは、ローカルマシンをnmappingするよりも優れていて効率的です。
アンドレボリー

@AndréBorienmapとnetstatの結果はまったく異なります。したがって、効率(どのようなものでも)に関してそれらを比較することはあまり意味がありません。
moooeeeep

@AndréBorieもともとは、:)を最後に置くつもりでした。私は自分のマシンの1つでセキュリティをチェックしていましたが、nmapハンマーを保持しているとlocalhost突然釘のように見えました。しかし、それから実際にいくつかの興味深い情報が得られることに気づいたので、半真面目な提案として残しました。
seumasmac

回答:


22

デュアルユースの質問!ソフトウェア考古学者または邪悪なハッカーのいずれかがこの質問に対する答えを使用できます!さて、私はどちらですか?

私はいつも自分が何をしていたかを知るためにps -efvs ps -augxwwを使っていました。LinuxとSystem Vのボックスは、「-ef」と「-augxww」のエラーを好む傾向があり、BSDおよび古いSunOSマシンの場合は逆でした。の出力からpsも多くのことがわかります。

rootとしてログインでき、それがLinuxマシンの場合は、そうする必要がlsusbありますlspci-これにより、ハードウェアの状況を知るための80%の方法が得られます。dmesg | more現在の問題を何でも理解するのに役立ちます。

段階的に廃止され始めていifconfig -aますが、通常はネットワークインターフェイスとネットワークについて多くのことを伝えることができます。実行mii-toolおよび/またはethtoolあなたが見インターフェイス上ifconfigの出力ケーブル接続イーサネットのような外観があまりにもあなたにいくつかの情報を与えることができます。

Runnin ip routeまたはnetstat -rインターネットプロトコルルーティングについての情報を得ることができます。また、使用中のネットワークインターフェイスについても情報を提供できます。

mount呼び出しは、ディスク(S)およびそれらがどのようにマウントされているをご紹介することができます。

を実行するとuptimelast | moreメンテナンスの現在の状態について何かを伝えることができます。100日以上のアップタイムは、比 "的に言えば、おそらく「オイルと液体を交換する時です」という意味です。ランニングwho

見て/etc/resolv.conf/etc/hostsそのマシンのDNS設定について教えてください。たぶんやるnslookup google.comか、dig bing.comDNSはほとんど機能しているかどうかを確認します。

どのエラー( "コマンドが見つかりません")およびどのコマンドのバリエーション( "ps -ef" vs "ps augxww")が機能して、どのUnixまたはLinuxまたはBSDのバリエーションにたどり着いたかを判断することは常に価値があります。

Cコンパイラの有無、およびその場所は重要です。やるwhich cc以上、which -a ccそれらを見つけるために。


netstat -tulpanwはより多くの出力を好むが、それは本当に好みの問題です。
Ned64

lshwLinuxにもあります。
シャーバズ

mount乱雑で、findmnt代わりに非常にきれいです。
edmz

10

cat /etc/*release* 実行しているディストリビューションの概要を取得するための便利なコマンドです。


9

http://bhami.com/rosetta.htmlはレビューするのに便利かもしれませんが、そうでない場合は通常/etc(アカウント、初期化、OSフレーバーのヒントなど)crontab -lを調べて、psリストを調べて学習することを探します。

Linuxの管理者がすべてのSolarisホスト名をに設定するシステムを修正する必要があったため、「rootとして」も非常に怖い-fです。

またdf、危険なコマンドであり、I / Oのブロックに固執する素晴らしい方法です。したがって、少なくともマウントを調査するか、何らかの方法で別のセッションを開くことができるまでは、決して実行しないでください。

(非常に簡単なコマンドを使用してunamecd /etc; lscat$PAGER)あなたは、ホストが何であるかを把握するまで、それにあなたしている不慣れな場合は、ロゼッタを確認するか、常にコマンドにいくつかのコマンドやフラグを仮定する前のmanページを読んでそれが何を行いますより一般的なシステム。


不思議に思う:特権の低い環境に(一時的に)落ち込む堅牢な方法はあるのか または、これは実行不可能であるか、どういうわけか良いアイデアではありませんか?
オリファント-モニカを

1
なぜdf危険なのですか?ファイルシステムの使用状況を表示する以外のことを行うシステムはありますか?
テルドン

1
@terdonカーネルI / Oブロッキング。たとえば、ダウンしているハードNFSマウント上。せいぜい新しいセッションまたはターミナルを何とかして開くことができます(停止中に時間を浪費します)。最悪の場合、それはその古いSolarisシステムへの唯一のコンソールでした。マウント情報が最初に見られず、問題のあるNFSサーバー行が認識されなかったのを
恥ずかしく思う-thrig

1
dfハングした場合は、Ctrlキーを押しながらZキーを押したままにしkill -9てください。私もその問題に遭遇しました、そして、それはいつも私のために働きました。また、理想的には、マウントを掛けないでください。私はまた、多くの人がプログラムが「危険」だと思っているとは思わないので、テルドンは混乱したと思う。
-Bratchley

3
@Bratchleyああ、制御文字を送信できないコンソール接続はありませんでしたか?そのzmodemマニュアルはどこにあったのでしょうか、それとも、バグのあるJavaの物を介して、物理的なアクセス権を持つ他のバグのある物にそれらをどのように送信しますか?
thrig

5

dmidecodeそしてlspci、通常はあなたのシステム上で実行されているハードウェアが何であるかの良いアイデアを与えるだろう。これが通常実行netstat -tlpnされているサーバーである場合、サーバーの目的は失われます。df -hPシステム上の現在のストレージを確認するのに適したコマンドです。lsb_release -aどのディストリビューションを使用しているかを知らせる必要があります。

[root@vle02 ~]# lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: RedHatEnterpriseServer
Description:    Red Hat Enterprise Linux Server release 6.7 (Santiago)
Release:        6.7
Codename:       Santiago

実行lastすると、システムを使用しているユーザーがわかります。このサーバーに正当にアクセスしたと仮定すると、多くの場合、ログインしているユーザーの1人にサーバーに関する詳細を尋ねることができます。

ベンダーに中立なセキュリティチェックの場合:多くの場合、ファイアウォールには一意の構成データがあるため、aを実行するiptables -nvLと便利です。また、ディストリビューションのpam構成ファイルをチェックして、ローカルユーザーのみを使用しているか、またはldap / kerberos / winbind / sssd / whateverを使用するように構成されているかを確認する必要があります。

また、で起動するサービスの構成を調べることもできますnetstat -tlpn。たとえば、Apacheが表示された場合、/etc/http/conf/httpd.conf(RHEL /etc/apache2上、Ubuntu上)を見て、どのWebサイトが実行されているかを確認できます。あるいはapachectl -S、構成されたすべての仮想ホストのリストを取得するためにを実行することもできます。それはそこからファンのようなものですので、私が実際にできることは、例としてApacheを提供し、それが何か他のものである場合はデーモンの構成を確認するだけです。

RHELではrpm -qa --last | head、最後にシステムが更新された日時も確認しました。SELinuxが有効になっているかどうかも確認しますgetenforce


0

他のいくつかのアイデア:

  • /procファイルシステムの有無は、MacFreeBSD、またはLinux を使用しているかどうかを示す場合があります 。
  • パッケージ管理は、Linuxディストリビューションとディストリビューションによって異なります。Debianベースのものには、Deepin、Ubuntu、Mintなどのaptがあります。Red HatとFedoraにはある程度の点がありましたが、現在ではFedoraにはDNFがあります。Archはpacmanを使用します。したがって、次のようなことができます。ls /usr/bin | grep 'apt\|yum\|pacman'
  • 表示時の特定のポートでの特定のサービスの存在netstat -tulpan。可能性がありますsshd、webserver 、ftp;

システムに特定の実行可能ファイルが存在しても、実際には何も意味がないことに注意してください。たとえば、Debianにはyumパッケージがあります。sshサーバーの存在はシステムをどのように示しますか?知る限りでは、sshdほとんど何でも見つけることができます。
テルドン

@terdon本当。私は、新しいシステム管理者の観点からこれにアプローチしているところです。そこで、「あそこにはLinuxボックスがあります、それについて何かをしてください」と言われます。その時点で、あなたは尋ねているかもしれません:それはリモートアクセスを持っていますか?そのリモートアクセスは強化されていますか?パッケージ管理機能はありますか?目標は、必ずしも決定されていませんどのような OSは、あなたが、ブルースEdigerが既にことをカバーし得るが、私は上でより多くの焦点を当てています調査システム自体
Sergiy Kolodyazhnyy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.