Bukan berarti itu ide yang sangat baik untuk mengubahnya, tetapi untuk bersenang-senang. Menurut ini posting, masih ada beberapa masalah bahkan setelah mengubah entri dalam /etc/passwd
, /etc/shadow
dan /etc/sudoers
. Ada saran?
27
Jawaban:
Secara teoritis, mengubahnya
/etc/passwd
dan/etc/shadow
akan menjadi semua yang Anda butuhkan untuk 'mengganti nama' root. Masalahnya terjadi karena hampir setiap bagian dari perangkat lunak Unix yang ada mengasumsikan bahwa 'root' nama pengguna ada dan bahwa itu adalah pengguna super - alias mail, berbagai daemon, cron ...Jika Anda benar-benar ingin mencobanya,
find /etc -type f -exec grep -l root {} +
harus menjadi awal yang baik untuk menemukan daftar setiap file konfigurasi yang mungkin perlu Anda ubah - tetapi seperti yang sudah Anda katakan, ini adalah ide yang sangat buruk di hampir setiap situasi yang mungkin terjadi.EDIT Pikiran lain - jika Anda belum (yang seharusnya ), pastikan yang
/etc/aliases
berisi entri untukroot
dan nama pengguna yang ada atau alamat email yang mengevaluasi dengan benar. Banyak tugas seluruh sistem otomatis (cron
misalnya) mengirim output mereka melalui email keroot
, yang secara tradisional alias ke administrator sistem yang bertanggung jawab untuk operasi sistem itu.sumber
chown root …
atau serupa dalam skrip shell.Semua ketakutan ini mongering, mengatakan "Jangan lakukan itu!" itu konyol. Pada suatu waktu, ya, itu mungkin memecah banyak skrip yang ditulis dengan buruk, tapi saya curiga itu tidak begitu umum lagi; setidaknya tidak dalam distribusi standar.
Kami telah diberitahu untuk mengganti nama akun root pada subset dari server linux. Jadi, setelah mencoba meneliti bagaimana cara melakukan ini dengan benar, saya, alih-alih menemukan banyak, banyak posting yang mengatakan "Jangan lakukan itu!" dengan banyak peringatan "buruk" terjadi jika Anda memilih untuk melakukan ini. Tapi, saya belum menemukan contoh konkret dari "hal-hal buruk" yang bisa terjadi.
Jadi, izinkan saya kembali dan menjelaskan di mana saya berada, dan bagaimana kami sampai di sini. Kami sedang membangun lingkungan yang memenuhi PCI, dan salah satu alat yang membantu kami memenuhi "persyaratan" tersebut adalah memberi tahu kami bahwa kami perlu mengubah nama root dan administrator serta akun tamu menjadi sesuatu yang lain. Bagi mereka yang tidak berpendidikan tentang PCI, Anda memiliki pilihan untuk mengikuti pedoman atau mendokumentasikan mengapa Anda tidak dapat atau memilih untuk tidak mengikuti pedoman itu, dan strategi mitigasi apa yang Anda miliki untuk menjaga sistem tetap aman. Jadi, saya membayangkan sebagian besar tempat mendokumentasikan mengapa mereka tidak akan mengganti nama akun root mereka, namun, grup kami telah memutuskan bahwa, jika kami dapat mengganti nama akun administrator windows tanpa masalah, akan mengubah nama akun root linux juga.
Saya fasih dalam argumen "keamanan melalui ketidakjelasan"; Saya tahu hanya mengubah nama akun root sebenarnya tidak meningkatkan keamanan banyak, root harus dinonaktifkan di SSH, dll. Saya tahu, bukan itu intinya, saya tidak tertarik mendengar lebih banyak. Saya juga tidak tertarik pada lebih banyak peringatan "langit akan jatuh". Saya mencari pernyataan seperti ini: "> hal buruk ini <akan terjadi dengan> paket standar ini <(kecuali Anda> melakukan ini <)".
Sejauh ini saya memiliki sistem 3 CentOS (RHEL) yang ternyata tidak memiliki masalah dengan penggantian nama akun root. Inilah yang saya lakukan: Saya mengubah nama akun di / etc / passwd, / etc / shadow, / etc / group, dan / etc / gshadow. Kemudian mencari root nama di / etc / dan memodifikasi file alias postfix sehingga root adalah alias untuk nama akun baru kami, sebut saja rojotoro. (Hal serupa harus dilakukan untuk sistem email lainnya). Saya juga menemukan bahwa saya perlu mengubah beberapa konfigurasi untuk logrotate ketika menjelaskan siapa yang harus memiliki file yang akan dibuat secara otomatis. Dan itu saja yang telah saya ubah sejauh ini.
Saya telah melihat banyak skrip init.d, tetapi belum mengubah apa pun, dan semuanya tampak baik-baik saja saat boot. Saya harus menentukan akun baru saat menggunakan sudo: "sudo -u rojotoro vim / etc / passwd" sebagai contoh, tetapi saya tidak perlu mengubah apa pun dalam file sudoers. Saya berharap mungkin beberapa masalah dengan selinux yang kami miliki dan tegakkan, tetapi sejauh ini saya tidak perlu menyentuh sistem itu.
Saya juga dapat melihat bahwa skrip mkdev atau mkfs mungkin perlu disesuaikan, tetapi saya tidak berencana untuk menggunakannya, jadi saya belum melihatnya dengan pengawasan yang layak.
Jika memang ini mudah untuk diubah tanpa efek buruk pada sistem yang diaktifkan selinux, mengapa kelanjutan dari semua ketakutan ketakutan?
sumber
rpm -Va
tertulis di sistem tempat akun root diubah namanya? Menurut panduan RPM Maksimum "Pengguna dan pengidentifikasi grup harus non-numerik" sehingga setiap RPM yang menentukan file harus dimiliki oleh root tidak akan dapat melakukannya pada waktu instalasi. Hanya ingin tahu bagaimana sistem Anda akan menghadapinya.saran: jangan lakukan itu.
Beberapa alat mencoba untuk berbicara dengan root melalui uid, di sana Anda seharusnya tidak memiliki masalah. beberapa alat menganggap akun root Anda disebut root, dan akan rusak. kecuali Anda siap, seperti, mengkompilasi ulang setengah sistem Anda "untuk bersenang-senang", jangan mencoba.
sumber
Menurut saya, hal termudah untuk dilakukan adalah membuat pengguna baru (alias), dengan UID 0 dan
/root
sebagai home.Mengapa Anda tidak mengganti shell default root Anda ke
/bin/false
atau/sbin/nologin
(jadi tidak ada yang bisa login ke sana, tetapi sistem masih menggunakannya) dan login ke alias baru yang dibuat?Jika Anda mengganti shell root ke nologin, sudo, mail atau ftw tidak akan rusak.
sumber
/bin/false
atau/sbin/nologin
tidak akan dapat memulai layanan apa pun. Jadi semua itu harus dikonfigurasi ulang. Plus seluruh tujuannya adalah untuk meningkatkan keamanan, menambahkan akun kedua dengan izin "root" hampir tidak meningkatkan keamanan.Linux bukan Windows dan root saat ini tidak dapat diganti nama dengan mudah tanpa menciptakan masalah di masa depan yang tidak diketahui.
Menonaktifkan login lokal dan bahkan remote sebagai root adalah pendekatan yang lebih aman karena secara aktif menonaktifkan root akun! UBUNTU pada dasarnya melakukan ini dan memaksa sudo alih-alih akses root.
Pada dasarnya tidak ada yang dapat menggunakan akun root untuk menyerang sistem Anda karena tidak lagi dapat digunakan untuk masuk ke sistem!
Akan lebih baik jika cara standar dibuat untuk dengan mudah memodifikasi kedua nama akun root serta secara acak menghasilkan UID pada saat instalasi dan jika memungkinkan pada setiap awal yang dingin untuk mencegah penargetan UID tetapi saat ini tidak ada.
Menyesuaikan / etc / passwd Memodifikasi root: x: 0: 0: root: / root: / bin / nologin
Buat akun admin cadangan tunggal HANYA UNTUK PENGGUNAAN DARURAT! fallbackadmin: x: 0: 0: root: / root: / bin / bash
Terapkan sudo untuk semua admin sehingga perubahan audit log dapat diterapkan untuk melacak secara akurat siapa yang membuat perubahan untuk akuntabilitas!
Ini mengimplementasikan persyaratan PCI US Gov untuk menonaktifkan akun admin / tamu default dan membuat akun admin penggunaan darurat tunggal.
Salah satu cara untuk mengarsipkan log untuk audit adalah dengan mengumpulkan riwayat terminal dari semua pengguna dengan akses akun sudo jika AAA terpusat tidak diterapkan.
Solusi untuk menerapkan akun hanya admin adalah membuat satu akun hanya pengguna dan satu akun sudo diaktifkan kemudian memaksa pengguna untuk su ke akun sudo diaktifkan mereka untuk akses administratif.
Anda juga dapat menerapkan otentikasi kartu pintar jika Anda ingin keamanan yang lebih baik ada solusi yang tersedia untuk GNU / Linux yang dibandingkan dengan Solusi CAC Kartu Akses Umum AS untuk otentikasi dua faktor.
sumber