Bảo mật máy chủ web quá mức cần thiết?


9

Tôi đã thực hiện nghiên cứu "mở rộng" về bảo mật máy chủ web linux. Trên hết những gì được coi là "cơ bản" (loại bỏ các dịch vụ không sử dụng, ssh cứng, iptables, v.v.), có nên bao gồm chống rootkit (Tripwire) và chống vi-rút (ClamAV) không? Có phải đây chỉ là quá mức cần thiết cho một máy chủ web? Tôi biết đây là một câu hỏi rất mơ hồ, nhưng tôi tò mò về ý kiến ​​của người khác.

Môi trường tương lai của tôi: - Ubuntu 10.04 - fail2ban - nginx 0.8.x - php 5.3.x (suhosin, apc, memcached) - mongodb 1.6.x

Các ứng dụng có thể: - dịch vụ web - ứng dụng web có tải lên của người dùng (hình ảnh, pdf, v.v.) - các trang web điển hình (biểu mẫu, v.v.)

Nếu bạn có bất kỳ lời khuyên nào khác, xin vui lòng thêm!

Cảm ơn

Câu trả lời:


8

Đối với một máy chủ đối mặt công khai, tôi sẽ nói rằng việc cài đặt một cái gì đó như tripwire không phải là quá mức cần thiết.

ClamAV là một vấn đề khác. Tôi sẽ xem xét thiết lập rằng nếu khách truy cập của bạn sẽ chia sẻ tệp bằng cách tải lên và tải xuống từ trang web của bạn. Các tệp PDF có thể chứa các khai thác.

Trên các máy chủ đối mặt công khai, tôi có SSH không cho phép xác thực mật khẩu, chỉ xác thực khóa công khai. Nếu SSH chỉ có thể từ một mạng LAN nội bộ thì bạn có thể thư giãn điều này.

Nếu có thể tôi sẽ đặt máy chủ trên DMZ để nó không thể tạo kết nối với bất kỳ máy tính nào khác trên mạng LAN nội bộ của bạn.


2
Đừng quên LMD (Phát hiện phần mềm độc hại Linux), rfxn.com/projects/linux-malware-detect - phần mềm này quét loại phần mềm độc hại lây nhiễm các ứng dụng web (HTML, PHP, thay đổi tệp JavaScript) để sử dụng trang web của bạn cho SEO spam, lừa đảo, lây nhiễm PC của khách truy cập, v.v.
RichVel

3

Không, bạn đã không đi đủ xa.

1) Bạn cần một tường lửa ứng dụng web như mod_security và đảm bảo rằng nó được cấu hình để chặn các cuộc tấn công, không chỉ đăng nhập chúng.

2) Khóa php với phpsecinfo .

3) Khóa tài khoản MySQL của ứng dụng web của bạn, đảm bảo ứng dụng của bạn không có FILEđặc quyền, đây là tài khoản nguy hiểm nhất trong MySQL.

4) Tường lửa tắt tất cả UDP và tất cả TCP mà bạn không cần. Xem xét sử dụng cổng gõ cho ssh. Thất bại trong việc cấm không tốt bằng việc không thử.


1) Tôi có ấn tượng rằng ModSecurity chỉ có thể được đóng gói với Apache (Tôi đang sử dụng nginx). Nhưng rõ ràng nó có thể chạy độc lập? Tôi sẽ phải xem xét lời cảm ơn này! Tôi đã theo dõi calomel.org/nginx.html để biết một vài tính năng.
Aaron

4) Tôi sử dụng iptables để chặn tất cả lưu lượng truy cập đến và đi trừ khi đó là cổng ssh của tôi, https hoặc https (đến, đi). Tôi sẽ mở nhiều hơn khi tôi đi cùng. Cổng gõ là một bổ sung thú vị cho ssh, mặc dù! Cảm ơn một lần nữa!.
Aaron

@Aaron Tôi không chắc tại sao bạn lại sử dụng nginx. Bạn có thể sử dụng apache + mod_security như một proxy với bất kỳ httpd lạ và không có gì lạ mà bạn yêu cầu sử dụng.
Rook

2

Bạn có thể có thể cài đặt AIDE một cách an toàn trên máy chủ web - thêm và xóa khách hàng không thay đổi quá nhiều tệp cấu hình và có thể bạn có thể lọc ra cuộc trò chuyện bình thường khá dễ dàng.

Nhưng một điều mà nhiều hướng dẫn bảo mật máy chủ web không đề cập đến là bạn nên bật noexec trên phân vùng / tmp của bạn trong / etc / fstab. Nếu bạn đang cung cấp dịch vụ lưu trữ công khai, nhiều người sẽ cài đặt các ứng dụng web không an toàn mà bạn không biết (và không có kiến ​​thức để cập nhật ứng dụng của họ) và về cơ bản bạn sẽ theo đuổi các lỗi này mãi mãi. Nếu bạn chắc chắn rằng nơi duy nhất kẻ tấn công có thể lưu phần mềm là thư mục nhà của khách hàng và thư mục / tmp, thì kẻ tấn công sẽ có nguy cơ cho bạn biết nơi chúng xâm nhập nếu chúng không thể sử dụng thư mục / tmp. Họ không thích làm điều đó.

Làm điều này đã giải quyết được phần lớn các vấn đề bảo mật trên máy chủ lưu trữ web của chúng tôi.


2

"Chào mừng bạn! Trên tàu của chiếc máy bay mới của chúng tôi, bạn có thể thưởng thức nhà hàng, rạp chiếu phim, phòng tập thể dục, phòng tắm hơi và hồ bơi. Bây giờ hãy thắt dây an toàn, thuyền trưởng của chúng tôi sẽ cố gắng để có được tất cả những thứ trên không này."

  1. mod_security là một nỗi đau cho cả bạn và máy chủ. Đó là tài nguyên đói và các quy tắc của nó cần được duy trì nghiêm túc và nó sẽ là một nhiệm vụ không bao giờ hết. Và không, nó không hoạt động độc lập hoặc với Nginx. Nếu bạn cảm thấy thực sự cần nó, hãy thiết lập một máy chủ proxy riêng (Apache, mod_proxy, mod_security). Nó cũng hoạt động như DMZ, các máy chủ thực sự của bạn có thể bị đóng hoàn toàn với thế giới bên ngoài và nếu proxy bị vi phạm, dù sao cũng không có gì.

  2. ClamAV cũng rất nặng, nếu chạy như một daemon. Tốt hơn là chạy clamscan định kỳ trong những giờ không hoạt động từ Cron.

  3. Tripwire là quá mức cần thiết, IMHO. Nhưng một cái gì đó có thể săn lùng rootkit sẽ hữu ích, có rất nhiều tập lệnh (rkhunter, chkrootkit).

  4. Tôi tin rằng ít nhất 90% rootkit, v.v. đến máy chủ thông qua tải lên từ các máy phát triển Windows. Không có cách nào thực sự tốt để ngăn chặn điều này ngoại trừ có thể buộc các nhà phát triển không bao giờ sử dụng Windows. Hầu hết các trojan tìm kiếm thông tin đăng nhập FTP, vì vậy không bao giờ sử dụng FTP.


Rất tốt để biết ... Xem xét tôi không có ý định đi theo con đường apache, tôi sẽ tuân theo bất kỳ khía cạnh bảo mật nào tôi có thể tìm thấy cho nginx. Có lẽ tôi cũng sẽ đi theo con đường clamscan / rkhunter. Cảm ơn vì những lời khuyên!
Aaron

0

Việc sử dụng bảo vệ hình thức captcha trong công cụ CMS phổ biến (Wordpress, Jomlaa, Drupal) có được coi là thực hành bảo mật không? Nếu có, thì bạn có thể sử dụng những thứ sau:


Bảo vệ khỏi thư rác ? Đúng. Nhưng ở đây, tác giả muốn khóa máy chủ của mình trước những người dùng trái phép, điều mà captcha không liên quan gì.
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.