Đổi tên / etc / passwd và / etc / bóng vì lý do bảo mật [đã đóng]


8

Tôi có một máy chủ. Máy chủ của tôi an toàn, nhưng hãy tưởng tượng một hacker tốt xâm nhập. Bây giờ anh ta có thể nhìn vào /etc/passwd/etc/shadow. Tôi muốn đổi tên các tập tin /etc/passwdđó thành một cái gì đó như /etc/xxanoda.

Tôi nghĩ rằng tôi có thể làm một liên kết, nhưng đối với một hacker, nó sẽ dễ dàng thực hiện ls -l.

Có thể đổi tên các tệp đó mà vẫn có HĐH đang chạy, không có vấn đề tương thích, hoặc nó hoàn toàn vô dụng? Chỉ để tìm kiếm kiến ​​thức.


1
Tôi nghĩ rằng có thể sử dụng một máy chủ xác thực riêng biệt, để giữ tất cả mật khẩu người dùng. Máy chủ chính sẽ liên hệ với máy chủ xác thực, khi người dùng cố gắng đăng nhập. Máy chủ xác thực được tránh xa người dùng (không truy cập internet trực tiếp).
ctrl-alt-delor

9
Bảo mật bằng cách tối nghĩa là không có bảo mật nào cả.
Doorknob

Đây là một ý tưởng khủng khiếp, khủng khiếp, khủng khiếp .
Shadur

Câu trả lời:


29

Các hệ thống tập tin tiêu chuẩn cấp bậc cho unix-like hệ thống bao gồm /etc/passwdtại một địa điểm cố định, và các công cụ được hậu quả là thường hardcoded để xem xét có cho nó. Mặc dù về lý thuyết, bạn có thể biên dịch lại tất cả các tiện ích có liên quan để tìm ở một vị trí mới, bất kỳ kẻ tấn công nào cũng chỉ có thể tìm kiếm các chuỗi trong các nhị phân đó để định vị tệp mới hoặc sử dụng các biểu thức thông thường để tìm các tệp có passwdnội dung giống như.

Các shadowtập tin nên có thể đọc được duy nhất root(và có thể cho một nhóm gọi là shadow). Nếu kẻ tấn công đã quản lý để có quyền truy cập root vào hệ thống của bạn, chúng có toàn quyền kiểm soát và việc chúng có thể đọc các tệp passwd / Shadow của bạn hay không là không liên quan tại thời điểm đó.

Có thể hình dung một vài tình huống trong đó việc có các tệp không ở những nơi mong đợi có thể giúp ích, ví dụ: nếu bạn có một máy chủ web được cấu hình kém cho phép ai đó yêu cầu http://myserver/../../etc/passwd, nhưng nói chung, loại không xác định này sẽ đòi hỏi rất nhiều công việc vì lợi ích bảo mật tối thiểu.


8
Trong trường hợp cuối cùng, tốt hơn là sửa máy chủ web thay thế ...
Braiam

Nhưng điều đó không sao vì tất cả người dùng có tài khoản trên máy chủ đều không có mật khẩu, chỉ có khóa SSH và thông tin mật khẩu không được lưu trữ trong /etc/passwdmọi trường hợp , phải không?
Blacklight Shining

12

Điều tốt nhất sẽ là "hoàn toàn vô dụng" khi bạn đặt nó. (Nó không cung cấp thêm một rào cản cho kẻ xâm nhập)

/etc/passwd không chứa tên tài khoản, nhưng bất kỳ ai có quyền truy cập shell vào hệ thống đều có thể tìm thấy chúng.

/etc/shadowchứa thông tin nhạy cảm (mật khẩu băm) nhưng chỉ có thể đọc được cho root. Nếu một kẻ xâm nhập quản lý để có được quyền root - làm thế nào để bạn đánh vần thảm họa ?


1
Bạn cũng nên cho rằng kẻ tấn công có toàn quyền truy cập vào mọi tệp trên hệ thống của bạn (và có thể tải xuống bản sao của chính chúng) cho đến khi bạn biết cách khác.
Bert

4
"làm thế nào để bạn đánh vần thảm họa?" có thể hoạt động tốt hơn trong một bối cảnh mà bạn không phải là một thảm họa để hỏi nó: D

9

Trong các Unice hiện đại (và thích Unix, bao gồm Ubuntu), /etc/passwdkhông chứa bất kỳ bí mật nào. Đổi tên nó sẽ rắc rối hơn giá trị của nó, với bao nhiêu tiện ích sẽ phải được xây dựng lại để tìm kiếm nó ở vị trí mới.

/etc/shadowlà một vấn đề khác, vì có những bí mật trong tập tin đó, nhưng đổi tên nó sẽ không giúp ích gì. Nó chỉ có thể đọc được bằng root, vì vậy ngay cả khi tin tặc xâm nhập vào hệ thống như một số người dùng khác, điều đó không đủ để truy cập tệp. Đây là lý do tại sao mật khẩu được lấy ra ngay từ /etc/passwdđầu: mọi người cần có khả năng đọc /etc/passwd, nhưng chỉ cần root mới có thể lấy được mật khẩu thực tế, vì vậy mật khẩu đã được chuyển sang một tệp mà chỉ root mới có thể đọc được.

Nếu các hacker không có rễ, sau đó đổi tên sẽ không giúp bạn tiết kiệm. Một đệ quy đơn giản grepcó thể cung cấp cho hacker một danh sách các tệp có /etc/shadowđịnh dạng giống như vậy, và sau đó tin tặc chỉ phải xem qua chúng để tìm dữ liệu mình muốn. Bạn đã trì hoãn anh ta ít nhất vài giờ, và có lẽ ít hơn: một lần nữa, không đáng với thời gian cần thiết để sửa đổi và biên dịch lại tất cả các tiện ích phụ thuộc vào /etc/shadowvị trí của nó.


Ngoài ra, nếu anh ta có quyền truy cập root, anh ta không / cần / mật khẩu của bất kỳ ai khác. Anh ta có thể suvào bất cứ tài khoản nào anh ta muốn, hoặc anh ta có thể thay đổi mật khẩu của bất kỳ người dùng nào trên hệ thống. Và nếu anh ta thực sự muốn có mật khẩu (chỉ trong trường hợp người dùng sử dụng lại mật khẩu của họ ở nơi khác), anh ta có thể tải lên một logintệp nhị phân đã sửa đổi hoặc thêm một pammô-đun chặn các nỗ lực xác thực và chuyển tiếp kết hợp tên người dùng / mật khẩu cho anh ta.
Shadur

2

Bạn không thể đổi tên các tập tin này. Rất nhiều quy trình và chương trình sẽ tìm kiếm chúng, vì đây là một tiêu chuẩn trong các hệ thống Linux. Những gì bạn có thể làm là bảo mật máy chủ của bạn theo cách thích hợp.


Tôi chỉ muốn thêm bảo mật, tôi có nhiều hơn một trang web trên máy chủ của mình.
Marco Caggiano

2

Mặc dù có thể không sử dụng để đổi tên tệp /etc/passwd/etc/shadowtệp, nhưng nếu bạn muốn thêm bảo mật, bạn có thể muốn xem PAM (mô-đun xác thực có thể cắm) và NSS (Chuyển đổi dịch vụ tên). Giống như ở đây.

PAM có thể được sử dụng để thêm các mô-đun xác thực, thay vì đọc phần xác thực của chúng từ các tệp tiêu chuẩn, hãy đọc nó từ một nguồn khác, như từ ldap hoặc cơ sở dữ liệu. Sử dụng nó có nghĩa là /etc/shadowcó thể gần như hoàn thành loại bỏ.

NSS bổ sung cho PAM bằng cách thực hiện một số độ phân giải tên (giống như nhóm người dùng này thuộc về nhóm nào) độc lập với các tệp tiêu chuẩn ( /etc/passwd, /etc/groups). Sử dụng nó có nghĩa là tệp passwd của bạn có khả năng chỉ chứa tùy chọn dự phòng cho root, và không có gì nữa. Sử dụng các khóa SSH để xác thực đăng nhập gốc cũng sẽ loại bỏ yêu cầu phải có mật khẩu gốc bên trong tệp bóng (mặc dù có thể mong muốn nếu kết nối SSH bị hỏng).

Ngoài ra, nếu bạn không muốn xác thực người dùng của mình thông qua một cơ sở dữ liệu hoặc máy chủ ldap riêng biệt, bạn cũng có thể tạo các mô-đun PAM và NSS của riêng mình, để đọc dữ liệu của họ từ một tệp không chuẩn, mặc dù tôi không khuyến nghị tùy chọn này.

Khi bạn muốn thử sử dụng chúng, đừng bao giờ quên giữ một loại dự phòng cho một lớp xác thực đang hoạt động, đã biết, nếu không bạn có thể tự khóa mình khỏi hệ thống, ngay cả với root.

Lưu ý rằng không phải tất cả các ứng dụng đều hỗ trợ PAM (tuy nhiên rất nhiều trong số chúng làm được). Tuy nhiên, NSS có thể được sử dụng để triển khai xác thực cho các ứng dụng không hỗ trợ PAM và một số trang web tôi đã đọc về NSS thực sự đề xuất phương pháp này. Tuy nhiên, điều này có nghĩa là mô-đun NSS sẽ cung cấp mật khẩu băm (có khả năng) cho bất kỳ ai có thể truy cập lớp xác thực NSS, đây hầu như luôn là điều bạn muốn tránh (về cơ bản giống như cho phép truy cập đọc không phải root vào tệp bóng )! Vì vậy, nếu bạn đang thực hiện phương pháp này, luôn đảm bảo rằng NSS chỉ được sử dụng để cung cấp cho người dùng dữ liệu cơ bản (như nội dung của /etc/passwd) và PAM được sử dụng làm lớp xác thực.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.