Không phải đó là một ý tưởng tốt để thay đổi nó, nhưng cho vui. Theo này bưu điện, vẫn còn một số vấn đề, ngay cả sau khi thay đổi mục trong /etc/passwd
, /etc/shadow
và /etc/sudoers
. Bất kỳ đề xuất?
Không phải đó là một ý tưởng tốt để thay đổi nó, nhưng cho vui. Theo này bưu điện, vẫn còn một số vấn đề, ngay cả sau khi thay đổi mục trong /etc/passwd
, /etc/shadow
và /etc/sudoers
. Bất kỳ đề xuất?
Câu trả lời:
Về mặt lý thuyết, thay đổi nó trong /etc/passwd
và /etc/shadow
sẽ là tất cả những gì bạn cần để 'đổi tên' gốc. Vấn đề xảy ra bởi vì hầu hết mọi phần mềm Unix tồn tại đều cho rằng tên người dùng 'root' tồn tại và đó là siêu người dùng - bí danh thư, nhiều trình nền, cron ...
Nếu bạn thực sự muốn thử nó, find /etc -type f -exec grep -l root {} +
thì nên bắt đầu tìm danh sách mọi tệp cấu hình có thể bạn cần thay đổi - nhưng như bạn đã nói, đây là một ý tưởng thực sự tồi trong hầu hết mọi tình huống có thể tưởng tượng được.
EDIT Một suy nghĩ khác - nếu bạn chưa có (mà bạn nên có), hãy đảm bảo rằng /etc/aliases
có chứa một mục nhập root
và tên người dùng tồn tại hoặc một địa chỉ email đánh giá chính xác. Rất nhiều tác vụ toàn hệ thống tự động ( cron
ví dụ) gửi đầu ra của chúng qua email đến root
, theo truyền thống được đặt bí danh cho (các) quản trị viên hệ thống chịu trách nhiệm về các hoạt động của hệ thống đó.
chown root …
hoặc tương tự trong một tập lệnh shell.
Tất cả nỗi sợ hãi này, nói rằng "Đừng làm điều đó!" thật nực cười. Tại một thời điểm, vâng, nó có thể đã phá vỡ rất nhiều kịch bản được viết xấu, nhưng tôi nghi ngờ chúng không còn phổ biến nữa; ít nhất là không trong các bản phân phối tiêu chuẩn.
Chúng tôi đã được yêu cầu đổi tên tài khoản root trên một tập hợp con của các máy chủ linux. Vì vậy, sau khi cố gắng nghiên cứu làm thế nào để thực hiện điều này một cách chính xác, thay vào đó, tôi đã tìm thấy rất nhiều bài đăng có nội dung "Đừng làm điều đó!" với rất nhiều cảnh báo nghiêm trọng về "những thứ tồi tệ" xảy ra nếu bạn chọn làm điều này. Nhưng, tôi vẫn chưa tìm thấy bất kỳ ví dụ cụ thể nào về "những thứ tồi tệ" có thể xảy ra.
Vì vậy, hãy để tôi sao lưu và giải thích tôi đang ở đâu, và làm thế nào chúng ta đến đây. Chúng tôi đang xây dựng một môi trường tuân thủ PCI và một trong những công cụ giúp chúng tôi đáp ứng các "yêu cầu" đó là cho chúng tôi biết chúng tôi cần đổi tên tài khoản gốc và quản trị viên và khách sang một tài khoản khác. Đối với những người ít học về PCI, bạn có tùy chọn làm theo hướng dẫn hoặc ghi lại lý do tại sao bạn không thể hoặc chọn không tuân theo hướng dẫn đó và chiến lược giảm thiểu nào bạn phải giữ an toàn cho hệ thống. Vì vậy, tôi tưởng tượng hầu hết các tài liệu về lý do tại sao họ sẽ không đổi tên tài khoản root của họ, tuy nhiên, nhóm của chúng tôi đã quyết định rằng, nếu chúng tôi có thể đổi tên tài khoản quản trị viên windows mà không gặp vấn đề gì, cũng sẽ đổi tên tài khoản root linux.
Tôi thành thạo các lập luận "bảo mật thông qua che khuất"; Tôi biết chỉ cần thay đổi tên tài khoản root không thực sự cải thiện bảo mật rất nhiều, root nên bị vô hiệu hóa tại SSH, v.v. Tôi biết, đó không phải là vấn đề, tôi không muốn nghe thêm. Tôi cũng không quan tâm đến nhiều cảnh báo "bầu trời sẽ sụp đổ". Tôi đang tìm kiếm những tuyên bố như thế này: "> điều tồi tệ này <sẽ xảy ra với> gói tiêu chuẩn này <(trừ khi bạn> làm điều này <)".
Cho đến nay tôi có 3 hệ thống CentOS (RHEL) dường như không có vấn đề gì với việc đổi tên tài khoản root. Đây là những gì tôi đã làm: Tôi đã thay đổi tên tài khoản trong / etc / passwd, / etc / bóng, / etc / group và / etc / gshadow. Sau đó, grepping cho tên gốc trong / etc / và sửa đổi tệp bí danh postfix để gốc đó là bí danh cho tên tài khoản mới của chúng tôi, gọi nó là rojotoro. (Một cái gì đó tương tự nên được thực hiện cho các hệ thống email khác). Tôi cũng thấy rằng tôi cần thay đổi một số cấu hình cho logrotate khi mô tả ai sẽ sở hữu các tệp mà nó sẽ tự động tạo. Và đó là tất cả những gì tôi đã thay đổi cho đến nay.
Tôi đã xem xét nhiều tập lệnh init.d, nhưng không thay đổi bất cứ điều gì và mọi thứ dường như bắt đầu tốt khi khởi động. Tôi phải chỉ định tài khoản mới khi sử dụng sudo: "sudo -u rojotoro vim / etc / passwd" làm ví dụ, nhưng tôi thực sự không cần thay đổi bất cứ điều gì trong tệp sudoers. Tôi dự kiến có thể một số vấn đề với selinux mà chúng tôi gặp phải và thực thi, nhưng cho đến nay tôi không cần phải chạm vào hệ thống đó.
Tôi cũng có thể thấy rằng các tập lệnh mkdev hoặc mkfs có thể cần phải được điều chỉnh, nhưng tôi không có kế hoạch sử dụng chúng, vì vậy tôi đã không nhìn vào chúng với sự xem xét kỹ lưỡng mà chúng xứng đáng.
Nếu nó thực sự dễ dàng thay đổi mà không có hiệu ứng xấu trên hệ thống kích hoạt selinux, tại sao sự tiếp tục của tất cả nỗi sợ hãi lại xuất hiện?
rpm -Va
nói trên các hệ thống mà tài khoản root được đổi tên không? Theo hướng dẫn RPM tối đa "Số nhận dạng người dùng và nhóm phải không phải là số", do đó, bất kỳ RPM nào chỉ định tệp phải được sở hữu bởi root sẽ không thể thực hiện điều đó khi cài đặt. Chỉ cần tự hỏi làm thế nào hệ thống của bạn sẽ đối phó với điều đó.
đề nghị: đừng làm vậy
Một số công cụ cố gắng nói chuyện với root thông qua uid, ở đó bạn không nên gặp vấn đề. một số công cụ giả định tài khoản root của bạn được gọi là root và sẽ bị hỏng. trừ khi bạn chuẩn bị, như, biên dịch lại một nửa hệ thống của bạn "cho vui", đừng thử.
Theo tôi, cách dễ nhất là tạo một người dùng mới (bí danh), với UID 0 và /root
như ở nhà.
Tại sao bạn không chuyển đổi vỏ mặc định của root thành /bin/false
hoặc /sbin/nologin
(để không ai có thể đăng nhập vào nó, nhưng hệ thống vẫn sử dụng nó) và đăng nhập vào bí danh mới được tạo?
razvan@naboo ~ $ head -2 /etc/passwd
root:x:0:0:root:/root:/bin/nologin
root2:x:0:0:root:/root:/bin/bash
razvan@naboo ~ $ su -
Password:
su: Authentication failure
razvan@naboo ~ $ su root2
Password:
naboo razvan # whoami
root
Nếu bạn thay đổi shell của root thành nologin, sudo, mail hoặc ftw sẽ không bị hỏng.
/bin/false
hoặc /sbin/nologin
nó sẽ không thể bắt đầu bất kỳ dịch vụ nào. Vì vậy, tất cả những thứ đó sẽ phải được cấu hình lại. Cộng với toàn bộ mục đích là để cải thiện bảo mật, việc thêm tài khoản thứ hai với quyền "root" hầu như không cải thiện bảo mật.
Linux không phải là Windows và root hiện không thể đổi tên dễ dàng mà không tạo ra các vấn đề không xác định trong tương lai.
Vô hiệu hóa từ xa và thậm chí đăng nhập cục bộ như root là một cách tiếp cận an toàn hơn vì nó chủ động vô hiệu hóa root tài khoản! UBUNTU về cơ bản thực hiện điều này và buộc sudo thay vì truy cập root.
Về cơ bản không ai có thể sử dụng tài khoản root để tấn công hệ thống của bạn vì nó không còn có thể được sử dụng để đăng nhập vào hệ thống!
Sẽ thật tuyệt nếu một cách tiêu chuẩn được tạo ra để dễ dàng sửa đổi cả tên tài khoản gốc cũng như tạo ngẫu nhiên UID của nó khi cài đặt và nếu có thể mỗi khi bắt đầu lạnh để ngăn chặn nhắm mục tiêu UID nhưng hiện tại không tồn tại.
Điều chỉnh / etc / passwd Sửa đổi root: x: 0: 0: root: / root: / bin / nologin
Tạo một tài khoản quản trị dự phòng duy nhất cho CHỈ SỬ DỤNG KHẨN CẤP! fallbackadmin: x: 0: 0: root: / root: / bin / bash
Triển khai sudo cho tất cả quản trị viên để có thể triển khai kiểm tra nhật ký thay đổi để theo dõi chính xác ai thực hiện thay đổi cho trách nhiệm!
Điều này thực hiện các yêu cầu PCI US Gov để vô hiệu hóa tài khoản quản trị viên / khách mặc định và tạo một tài khoản quản trị sử dụng khẩn cấp duy nhất.
Một cách để lưu trữ nhật ký để kiểm toán là thu thập lịch sử thiết bị đầu cuối từ tất cả người dùng có quyền truy cập tài khoản sudo nếu AAA không tập trung.
Một giải pháp để thực hiện các tài khoản chỉ dành cho quản trị viên là tạo một tài khoản chỉ người dùng và một tài khoản được bật sudo sau đó buộc người dùng phải sử dụng tài khoản được bật sudo của họ để truy cập quản trị.
Bạn cũng có thể triển khai xác thực thẻ thông minh nếu bạn muốn bảo mật tốt hơn, có các giải pháp khả dụng cho GNU / Linux so với Giải pháp CAC của Thẻ truy cập chung Hoa Kỳ để xác thực hai yếu tố.