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:
- Perangkat lunak apa yang ada di server
- Apa hal standar yang harus saya lakukan untuk memastikan mereka aman?
- apa yang menghubungkan mereka dan apa yang mereka terhubung juga?
- 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)
Jawaban:
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
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.)
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.
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.
sumber
/var/log/dpkg.log
sangat cocok untuk meninjau proses instalasi itu sendiri (dan mencari kesalahan), tetapi untuk mendapatkan daftar paket yang diinstal, outputdpkg -l
atau bahkan lebih sederhanadpkg --get-selections
akan lebih mudah dicerna.Halaman manual adalah teman Anda:
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
Perangkat lunak:
Keamanan:
Koneksi:
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.
sumber
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
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.
untuk koneksi, sekali lagi "netstat -pan" memberi Anda jawabannya. Ini memberi tahu Anda host mana yang terhubung dan port mana yang terhubung.
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.
sumber