Mewarisi server yang ada

9

Saya baru saja mewarisi 6 server web dari server sebelumnya yang dipecat, saya bukan sysadmin. Saya lebih merupakan seorang DevOps.

Adakah yang bisa mengarahkan saya ke semacam checklist standar yang akan diikuti ketika mewarisi server yang ada? Hal yang perlu saya ketahui adalah:

  1. Perangkat lunak apa yang ada di server
  2. Apa hal standar yang harus saya lakukan untuk memastikan mereka aman?
  3. apa yang menghubungkan mereka dan apa yang mereka terhubung juga?
  4. Apa lagi yang harus saya ketahui?

Setiap saran dipersilahkan, saya berharap ada semacam daftar periksa standar yang akan diikuti seseorang sebagai permulaan, tetapi saya tidak dapat menemukan apa pun.

Semua server adalah Ubuntu (berbagai versi)

pengguna3408844
sumber
3
Anda bukan seorang DevOps. DevOps bukan judul, itu budaya.
gWaldo
Apa yang akan menjadi istilah yang lebih baik untuk digunakan untuk "Pengembang dipaksa harus melakukan pekerjaan sysadmin tanpa keahlian seorang sysadmin tetapi pemahaman yang baik tentang semua konsep yang terlibat dan cukup pengalaman tangan untuk 'dapatkan'"
user3408844
Setuju telah membaca DevOps di Wikipedia, saya melihat saya menggunakannya dengan salah, tetapi tampaknya telah menjadi bahasa gaul dalam kehidupan sehari-hari pengembang harus menjadi semi syadmin
user3408844
Istilah untuk apa yang Anda gambarkan adalah "Pengembang" atau "Pengembang dipaksa untuk mengambil beberapa tugas Sistem / Operasi".
gWaldo
Wow! - Banyak upaya yang dilakukan untuk itu
user3408844

Jawaban:

24
  1. Untuk menentukan perangkat lunak apa yang telah diinstal, Anda dapat meninjau /var/log/dpkg.log Namun, ini mungkin bukan catatan lengkap. Mungkin ada binari dan kode yang dikompilasi secara manual atau disalin langsung ke sistem yang telah dikompilasi sebelumnya. Anda dapat membandingkan instalasi default dari versi Ubuntu yang sama dan mengetik ke server dan mencari file apa yang berbeda, tetapi itu bisa membosankan. Solusi monitor file akan ideal (tripewire, inotifywatch, dll.) Http://linuxcommando.blogspot.com/2008/08/how-to-show-apt-log-history.html

  2. Anda perlu memeriksa SEMUA yang ada di server. Setiap akun pengguna di / etc / passwd , setiap akun pengguna aplikasi (seperti pengguna di Apache / PHP, akun basis data, dll.) Harus diperhitungkan, dan Anda harus mengubah semua kata sandi. Anda harus memeriksa untuk melihat layanan apa yang diluncurkan saat boot, apa runlevel default dan apa yang dimulai dengan itu dan dengan runlevel lainnya. Saya akan menggunakan pemindai kerentanan dan alat konfigurasi dasar untuk mengaudit keadaan saat ini. Pusat Keamanan Internet menawarkan alat penilaian konfigurasi gratis, tetapi mungkin terbatas. Mereka memiliki alat yang lebih canggih untuk organisasi anggota ($). http://benchmarks.cisecurity.org/ OpenVAS adalah pemindai FOSS, tidak seperti Nessus, yang mungkin memiliki kemampuan serupa. Ada banyak, lebih banyak hal untuk diperiksa, tetapi jawaban ini sudah agak lama ... (Tinjauan kode untuk webapps dan halaman web adalah contoh yang baik.)

  3. Anda dapat melihat meninjau keadaan port yang tersedia untuk koneksi ke server dengan berbagai flag untuk netstat . http://www.thegeekstuff.com/2010/03/netstat-command-examples/ Untuk mengidentifikasi siapa yang telah terhubung ke server, Anda harus beralih ke aktivitas Keamanan Internet terseksi, dengan meninjau log sistem. Info ini dapat berupa salah satu dari sejumlah log tergantung pada aplikasi dan server apa yang ada di sistem. Anda juga mungkin beruntung dengan log jaringan eksternal, jika ada.

  4. Anda memiliki banyak tindak lanjut yang harus dilakukan. Anda menunjukkan bahwa admin sebelumnya dipecat ; jika Anda mencurigai niat jahat dari orang itu (yaitu mereka mungkin telah meninggalkan rumah, jebakan boobie, bom logika, dll.) Anda hampir pasti akan lebih baik membangun kembali server dari media bersih dan menerapkan kembali aplikasi web pada mereka. Jika admin sebelumnya ini memiliki akses dan kontrol penuh ke sistem tersebut dan tidak mengalami audit dan pengawasan yang rajin, Anda mungkin harus berasumsi bahwa ada pintu belakang.

Ini didasarkan pada asumsi pesimistis tentang admin sebelumnya. Sayangnya itu adalah cara cookie hancur untuk keamanan jaringan operasional. Ada banyak hal yang perlu dipertimbangkan, seperti yang saya katakan ... jauh lebih banyak daripada yang bisa dibahas di sini. Poin-poin ini harus memberi Anda beberapa hal untuk mulai dilakukan sehingga Anda dapat melaporkan kepada manajemen bahwa Anda membuat beberapa kemajuan; tapi jujur ​​saja, jika Anda bukan profesional keamanan dan Anda punya alasan untuk mencurigai orang ini bertindak jahat, Anda mungkin berada di luar kepala Anda.

Ini adalah jawaban yang tidak populer dengan manajemen karena membutuhkan banyak usaha (yang berarti lebih banyak $), tetapi jawaban yang berpikiran umum tentang keamanan adalah ketika ragu, hapus dan bangun kembali dari sumber yang bersih . Itulah cara sistem pemerintah yang paling penting bekerja dengan malware; jika peringatan muncul dari AV, sistem dipisahkan, dihapus, dan dibangun kembali. Harap Anda membuat cadangan karena data PERGI .

Semoga berhasil, dan saya harap ini bermanfaat dan tidak hanya membuat depresi.

0xSheepdog
sumber
Pertanyaan ini mungkin juga cocok untuk situs StackExchange www.AskUbuntu.com
0xSheepdog
2
Jawaban yang sangat bagus.
EEAA
3
Menghapus dan membangun kembali mungkin jauh lebih mudah jika Anda memiliki manajemen konfigurasi deklaratif yang baik. Jika tidak, Anda mungkin harus mempertimbangkan bekerja menuju tujuan itu.
zigg
2
/var/log/dpkg.logsangat cocok untuk meninjau proses instalasi itu sendiri (dan mencari kesalahan), tetapi untuk mendapatkan daftar paket yang diinstal, output dpkg -latau bahkan lebih sederhana dpkg --get-selectionsakan lebih mudah dicerna.
Dubu
0

Halaman manual adalah teman Anda:

 man <command> 

Lihatlah perintah-perintah yang biasa digunakan ini dan penggunaannya. Temukan bantuan lebih lanjut di halaman manual untuk masing-masing atau dalam beberapa kasus dengan menjalankan

  <command> --help 

Perangkat lunak:

  • dpkg -l (daftar perangkat lunak yang diinstal)
  • ps -ef | lebih (dapatkan daftar proses yang berjalan dan berhenti untuk membaca)

Keamanan:

  • iptables (port apa yang terbuka dan apakah perlu)
  • periksa pembaruan dengan apt-get (apakah server terbaru?)
  • cat / etc / passwd (yang memiliki akun di kotak)
  • sshd (periksa apakah sshd sedang berjalan dan siapa yang bisa masuk di situ)

Koneksi:

  • netstat (layanan apa yang mendengarkan dan pada port apa)

Semoga berhasil. Sulit mewarisi sejumlah server tanpa orang yang menjalankannya memiliki kesempatan untuk melatih Anda. Jika orang itu dipecat itu bahkan lebih mengkhawatirkan karena saya menganggap ada alasan dan jika saya juga berasumsi bahwa itu terkait pekerjaan mungkin ada beberapa pengaturan aneh dalam batch.

Chris Jones
sumber
0
  1. aplikasi mana yang sedang berjalan: lakukan "ps -ef" atau "ps -auxw" untuk mendapatkan daftar proses. buang semua yang tidak berhubungan dengan kernel, cari hal-hal yang berjalan, lakukan halaman manual pada masing-masing untuk mengetahui apa itu. sebagian besar proses yang berjalan dapat Anda abaikan dengan aman karena itu bukan aplikasi pengguna

  2. untuk keamanan: lakukan "netstat -pan" untuk melihat port mana yang terbuka, dan tutup port yang tidak diperlukan. Dengan kata lain, satu-satunya port yang harus dibuka adalah yang berhubungan dengan layanan jaringan yang disediakan oleh server ini. Jika server adalah server web, maka jelas ia perlu mendengarkan pada port 80/443 / etc. Tetapi jika server mendengarkan pada port 21 dan tidak ada yang menggunakannya, maka Anda harus mematikan proses yang membuka port tersebut.

  3. untuk koneksi, sekali lagi "netstat -pan" memberi Anda jawabannya. Ini memberi tahu Anda host mana yang terhubung dan port mana yang terhubung.

  4. lihat log di / var / log untuk mendapatkan ide tentang apa yang sistem mereka lakukan dan untuk melihat apakah ada kesalahan yang jelas atau tanda merah yang berasal dari aplikasi yang berbeda.

Michael Martinez
sumber