Perintah untuk belajar tentang sistem yang tidak dikenal [ditutup]

19

Anda masuk ke sistem UNIX atau Linux yang tidak dikenal (sebagai root). Perintah apa yang Anda jalankan untuk mengorientasikan diri dan mencari tahu sistem seperti apa yang Anda gunakan? Bagaimana Anda mengetahui jenis perangkat keras apa yang digunakan, jenis sistem operasi apa yang sedang berjalan dan bagaimana situasi saat ini terkait dengan perizinan dan keamanan?

Apa perintah pertama dan kedua yang Anda ketikkan?

Alexander
sumber
3
Saya akan menggunakan uname -akemudian apropos whatever adalah teman Anda.
fd0
1
nmap -A -T4 localhostbisa juga memberi Anda beberapa info berguna
seumasmac
@ seumasmac netstat akan lebih baik dan lebih efisien daripada nmapping mesin lokal.
André Borie
@ AndréBorie nmap dan netstat menghasilkan hasil yang sangat berbeda. Oleh karena itu tidak masuk akal untuk membandingkannya dengan efisiensi (apa pun jenisnya).
moooeeeep
@ AndréBorie Saya awalnya berencana meletakkan :) pada akhirnya. Saya telah memeriksa keamanan di salah satu mesin saya sendiri, dan sambil memegang nmappalu saya localhosttiba-tiba tampak seperti paku. Tetapi kemudian saya menyadari bahwa itu sebenarnya memberikan beberapa informasi menarik, jadi saya meninggalkannya sebagai saran yang semi-serius.
seumasmac

Jawaban:

22

pertanyaan penggunaan ganda! Entah Arkeolog Perangkat Lunak atau Peretas Jahat dapat menggunakan jawaban untuk pertanyaan ini! Sekarang, siapakah saya?

Saya selalu menggunakan ps -efversus dibandingkan ps -augxwwuntuk mencari tahu apa yang sedang saya alami. Kotak Linux dan System V cenderung menyukai "-ef" dan kesalahan pada "-augxww", sebaliknya untuk BSD dan mesin SunOS lama. Output dari psdapat memberi tahu Anda banyak juga.

Jika Anda dapat masuk sebagai root, dan ini adalah mesin Linux, Anda harus melakukannya lsusbdan lspci- itu akan membuat Anda 80% mengetahui cara mengetahui situasi perangkat keras. dmesg | moredapat membantu Anda memahami masalah apa pun saat ini tentang apa saja.

Itu mulai dihapus, tetapi melakukan ifconfig -abiasanya dapat memberi tahu Anda banyak tentang antarmuka jaringan, dan jaringan. Menjalankan mii-tooldan / atau ethtoolpada antarmuka yang Anda lihat dalam ifconfigoutput yang terlihat seperti kabel ethernet dapat memberi Anda beberapa info juga.

Runnin ip routeatau netstat -rbisa informatif tentang perutean Protokol Internet, dan mungkin sesuatu tentang antarmuka jaringan yang digunakan.

Sebuah mountdoa dapat memberitahu Anda tentang disk (s) dan bagaimana mereka dipasang.

Berjalan uptime, dan kemudian last | moredapat memberi tahu Anda sesuatu tentang kondisi pemeliharaan saat ini. Uptime 100+ hari mungkin berarti "saatnya untuk mengganti oli dan cairan", secara metaforis. Berlari whojuga

Melihat /etc/resolv.confdan /etc/hostsdapat memberi tahu Anda tentang pengaturan DNS mesin itu. Mungkin lakukan nslookup google.comatau dig bing.comuntuk melihat apakah DNS sebagian besar fungsional.

Selalu layak untuk menonton kesalahan apa ("perintah tidak ditemukan") dan varian perintah apa ("ps -ef" vs "ps augxww") yang berfungsi untuk menentukan varian Unix atau Linux atau BSD yang baru saja Anda gunakan.

Ada atau tidaknya kompiler C, dan di mana ia tinggal adalah penting. Lakukan which ccatau lebih baik, which -a ccuntuk menemukannya.

Bruce Ediger
sumber
Saya lebih suka netstat -tulpanwuntuk hasil yang lebih banyak tetapi ini adalah masalah selera.
Ned64
Ada juga di lshwbawah Linux.
Shahbaz
mountberantakan, findmntmalah sangat bersih.
edmz
10

cat /etc/*release* adalah perintah yang bagus untuk mendapatkan gambaran umum tentang distro yang sedang berjalan.

Alexander
sumber
9

http://bhami.com/rosetta.html mungkin berguna untuk ditinjau, jika tidak, saya biasanya mencari-cari di bawah /etc(akun, hal-hal init, petunjuk rasa OS, dll) dan crontab -ldan melihat psdaftar untuk mengetahui hal-hal untuk dipelajari.

Juga "sebagai root" sangat menakutkan, karena saya harus memperbaiki sistem di mana admin Linux yang melakukan investigasi mengatur semua nama host Solaris -f.

Juga dfmerupakan perintah yang berbahaya, cara yang bagus untuk oh whoops tergantung pada pemblokiran I / O. Jadi jangan pernah menjalankannya sampai Anda setidaknya telah menyelidiki mount, atau tahu Anda bisa membuka sesi lain dengan cara apa pun.

Gunakan perintah yang sangat sederhana ( uname, cd /etc; ls, cat, $PAGER) sampai Anda mengetahui apa yang tuan rumah, dan jika Anda tidak terbiasa dengan hal itu, periksa rosetta atau selalu membaca halaman manual sebelum mengasumsikan beberapa perintah atau bendera untuk perintah melakukan apa yang dilakukannya di sistem yang lebih populer.

thrig
sumber
Buat saya bertanya-tanya: apakah ada cara yang kuat untuk (sementara) jatuh ke lingkungan yang lebih rendah? Atau apakah ini tidak layak atau entah bagaimana bukan ide yang baik?
Oliphaunt - mengembalikan Monica
1
Kenapa dfberbahaya? Apakah ada sistem di mana ia melakukan sesuatu selain menunjukkan penggunaan sistem file?
terdon
1
@terdon kernel I / O memblokir, misalnya pada hard NFS mount yang turun; terbaiknya Anda bisa mendapatkan sesi atau terminal baru terbuka entah bagaimana (waktu terbuang selama pemadaman), atau paling buruk itu hanya konsol Anda ke sistem Solaris lama dan uh yeah ... mungkin itu akan boot, mungkin tidak, malu mount informasi tidak tampak pada awalnya dan yang bermasalah server NFS baris diakui ...
thrig
1
Jika dfhang maka Anda cukup CTRL-Z dan kill -9itu. Saya juga mengalami masalah itu dan itu selalu berhasil bagi saya. Juga, idealnya tunggangan Anda tidak boleh digantung. Saya juga tidak berpikir banyak orang menganggap program menggantung sebagai "berbahaya" yang mengapa saya pikir terdon bingung.
Bratchley
3
@Bratchley oh, tidak pernah memiliki koneksi konsol Anda tidak dapat mengirim karakter kontrol? Um di mana manual zmodem itu, atau oh ya ampun bagaimana kita mengirim mereka melalui kereta buggy ke hal buggy lain ah ya ampun yang memiliki akses fisik?
cegah
5

dmidecodedan lspcibiasanya akan memberi Anda ide yang baik tentang apa perangkat keras yang berjalan pada sistem. Jika ini adalah server yang biasanya berjalan netstat -tlpnakan memberikan tujuan dari server. df -hPadalah perintah yang baik untuk memeriksa penyimpanan saat ini pada sistem. lsb_release -aharus memberi tahu Anda apa distro yang Anda pakai:

[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

Menjalankan lastharus memberi tahu Anda siapa yang menggunakan sistem. Dengan anggapan Anda telah mengakses server ini secara sah, seringkali Anda hanya dapat bertanya kepada salah satu orang yang masuk ke dalamnya untuk informasi lebih lanjut tentangnya.

Untuk pengecekan keamanan netral vendor: Sering kali firewall akan memiliki data konfigurasi yang unik sehingga menjalankan sebuah iptables -nvLberguna. Anda juga harus memeriksa file konfigurasi pam distro Anda untuk melihat apakah Anda hanya menggunakan pengguna lokal atau jika Anda dikonfigurasi untuk menggunakan ldap / kerberos / winbind / sssd / apa pun.

Anda juga dapat memeriksa konfigurasi layanan yang muncul di Internet Anda netstat -tlpn. Misalnya, jika Anda melihat apache, Anda dapat melihat /etc/http/conf/httpd.conf(di RHEL, /etc/apache2di Ubuntu) dan mencoba melihat situs web apa yang sedang berjalan. Atau Anda dapat melakukan a apachectl -Suntuk mendapatkan daftar semua host virtual yang dikonfigurasi. Ini semacam penggemar dari sana sehingga yang bisa saya lakukan hanyalah menawarkan apache sebagai contoh dan katakan saja untuk memverifikasi konfigurasi daemon jika itu sesuatu yang lain.

Pada RHEL saya juga akan memeriksa rpm -qa --last | headuntuk melihat kapan terakhir kali mereka melakukan pembaruan sistem. Saya juga akan memeriksa untuk melihat apakah SELinux diaktifkan viagetenforce

Bratchley
sumber
0

Beberapa ide lain:

  • Ada atau tidaknya /procsistem file dapat mengindikasikan apakah Anda menggunakan Mac , FreeBSD , atau Linux.
  • Manajemen paket berbeda dari distro Linux ke distro. Yang berbasis Debian memiliki apt, seperti Deepin, Ubuntu, Mint; Red Hat dan Fedora memiliki yum hingga titik tertentu, tetapi sekarang Fedora memiliki DNF ; Arch menggunakan pacman. Jadi kita bisa melakukan sesuatu seperti ini:ls /usr/bin | grep 'apt\|yum\|pacman'
  • Kehadiran layanan tertentu pada port tertentu saat melihat netstat -tulpan. Bisa sshd, webserver, ftp;
Sergiy Kolodyazhnyy
sumber
Perhatikan bahwa keberadaan executable yang diberikan pada sistem tidak benar-benar berarti apa-apa. Debian, misalnya, memiliki yumpaket. Bagaimana keberadaan server ssh mengindikasikan sistem? AFAIK dapat Anda temukan sshddi hampir semua hal.
terdon
@terdon Benar. Saya hanya mendekati ini dari sudut pandang sysadmin baru di mana Anda diberitahu "Kami memiliki beberapa kotak Linux di sana, lakukan sesuatu tentang hal itu". Pada titik itu Anda mungkin bertanya, baik: Apakah ia memiliki akses jarak jauh? Apakah akses jarak jauh itu diperkeras? Apakah ia memiliki manajemen paket yang saya kenal atau harus mempelajari manajer paket baru? Tujuannya belum tentu menentukan OS apa yang Anda peroleh, Bruce Ediger sudah membahasnya, tapi saya lebih fokus pada penyelidikan sistem itu sendiri
Sergiy Kolodyazhnyy