2008-08-07 21 views
19

Tôi muốn thiết lập một hộp Linux giá rẻ làm máy chủ web để lưu trữ nhiều công nghệ web (PHP & Java EE), nhưng tôi muốn thử nghiệm với Ruby hoặc Python trong tương lai).Bảo mật máy chủ web linux để truy cập công cộng

Tôi khá thành thạo trong việc thiết lập Tomcat chạy trên Linux để phục vụ các ứng dụng Java EE, nhưng tôi muốn có thể mở máy chủ này, thậm chí chỉ để tôi có thể tạo một số công cụ Tôi đang làm việc trong văn phòng. Tất cả những kinh nghiệm tôi đã có với việc cấu hình các trang web Java EE đều đã được áp dụng cho các ứng dụng mạng nội bộ, nơi chúng tôi được yêu cầu không tập trung vào việc bảo mật các trang cho người dùng bên ngoài.

Lời khuyên của bạn về việc thiết lập máy chủ web cá nhân Linux theo cách đủ an toàn để mở nó cho lưu lượng truy cập bên ngoài là gì?

Trả lời

5

Bài viết này có một số trong những cách tốt nhất để khóa điều xuống:

http://www.petefreitag.com/item/505.cfm

Một số điểm nổi bật:

  • Hãy chắc chắn rằng không ai có thể duyệt các thư mục
  • Hãy chắc chắn rằng chỉ có root đã viết đặc quyền cho mọi thứ và chỉ root mới có quyền đọc đối với một số tệp cấu hình nhất định
  • Chạy mod_security

Bài báo cũng có một số gợi ý từ cuốn sách này:

Apache Securiy (O'Reilly Press)

Theo như distro, tôi đã chạy Debain và Ubuntu, nhưng nó chỉ phụ thuộc vào cách nhiều bạn muốn làm. Tôi chạy Debian không có X và chỉ ssh'd vào nó bất cứ khi nào tôi cần bất cứ điều gì. Đó là một cách đơn giản để giữ nguyên chi phí. Hoặc Ubuntu có một số thứ GUI đẹp giúp dễ dàng điều khiển Apache/MySQL/PHP.

0

Có rất nhiều cách để làm điều này sẽ hoạt động tốt. Tôi thường sẽ sử dụng một tập tin .htaccess. Nhanh chóng thiết lập và bảo mật đủ. Có lẽ không phải là lựa chọn tốt nhất nhưng nó hoạt động cho tôi. Tôi sẽ không đặt số thẻ tín dụng của tôi đằng sau nó, nhưng khác hơn là tôi không thực sự quan tâm.

1

An toàn và bảo mật nếu bạn giữ giọng nói của bạn (ví dụ, hiếm khi ai đó đến sau máy chủ của bạn nếu bạn chỉ lưu trữ một webroot được vinh danh trên kết nối gia đình) và thông báo về cấu hình của bạn (ví dụ: , tránh sử dụng root cho mọi thứ, đảm bảo bạn cập nhật phần mềm của bạn).

Trên lưu ý đó, mặc dù chủ đề này sẽ có khả năng giảm xuống chỉ để rực, đề xuất của tôi cho máy chủ cá nhân của bạn là dính vào bất kỳ thứ gì Ubuntu (get Ubuntu Server here); theo kinh nghiệm của tôi, nhanh nhất để có được câu trả lời từ những câu hỏi đặt ra trên diễn đàn (không chắc chắn những gì để nói về sự hấp thu).

Bảo mật máy chủ tại nhà của tôi Lợi ích loại BTW (tôi nghĩ, hoặc tôi muốn nghĩ) không có IP tĩnh (chạy trên DynDNS).

Chúc may mắn!

/mp

0

Wow, bạn đang mở một hộp giun ngay khi bạn bắt đầu mở bất kỳ thứ gì đến lưu lượng truy cập bên ngoài. Hãy nhớ rằng những gì bạn xem xét một máy chủ thử nghiệm, gần giống như một con chiên hy sinh, cũng là lựa chọn dễ dàng cho những người tìm cách làm những điều xấu với mạng và tài nguyên của bạn.

Toàn bộ cách tiếp cận của bạn với máy chủ có sẵn bên ngoài phải rất bảo thủ và kỹ lưỡng. Nó bắt đầu với những thứ đơn giản như chính sách tường lửa, bao gồm các hệ điều hành cơ bản (giữ nó vá, cấu hình nó cho an ninh, vv) và liên quan đến mọi lớp của mỗi ngăn xếp bạn sẽ sử dụng. Không có câu trả lời hay công thức đơn giản, tôi sợ.

Nếu bạn muốn thử nghiệm, bạn sẽ làm tốt hơn nhiều để giữ cho máy chủ ở chế độ riêng tư và sử dụng VPN nếu bạn cần thực hiện điều khiển từ xa.

1

Hãy cẩn thận khi mở cổng SSH thành tự nhiên. Nếu bạn làm như vậy, hãy đảm bảo vô hiệu hóa đăng nhập root (bạn luôn có thể su hoặc sudo khi bạn tham gia) và xem xét các phương thức xác thực tích cực hơn trong lý do. Tôi thấy một cuộc tấn công từ điển khổng lồ trong máy chủ của tôi sẽ ghi lại một ngày cuối tuần sau máy chủ SSH của tôi từ máy chủ IP nhà DynDNS.

Điều đó đang được nói, thật tuyệt vời khi có thể truy cập vào hệ vỏ nhà của bạn từ nơi làm việc hoặc xa ... và thêm vào thực tế là bạn có thể sử dụng SFTP trên cùng một cổng, tôi không thể tưởng tượng cuộc sống thiếu nó . =)

1

Bạn có thể xem xét một EC2 instance from Amazon. Bằng cách đó bạn có thể dễ dàng kiểm tra "công cụ" mà không gây rối với sản xuất. Và chỉ trả tiền cho không gian, thời gian và băng thông bạn sử dụng.

1

Nếu bạn chạy máy chủ Linux từ nhà, hãy cài đặt ossec trên đó để có IDS nhẹ đẹp hoạt động thực sự tốt.

[EDIT]

Là một mặt lưu ý, hãy chắc chắn rằng bạn không chạy afoul sử dụng Chính sách chấp nhận của ISP của bạn rằng họ cho phép kết nối đến trên các cổng tiêu chuẩn. ISP tôi đã sử dụng để làm việc cho nó đã được viết trong điều kiện của họ mà bạn có thể bị ngắt kết nối để chạy các máy chủ qua cổng 80/25 trừ khi bạn đang ở trên một tài khoản cấp doanh nghiệp. Mặc dù chúng tôi không chủ động chặn các cổng đó (chúng tôi không quan tâm trừ khi nó gây ra sự cố) một số ISP không cho phép bất kỳ lưu lượng truy cập nào trên cổng 80 hoặc 25, do đó bạn sẽ phải sử dụng các cổng thay thế.

2

Một điều bạn nên chắc chắn xem xét là những cổng nào đang mở cho thế giới. Cá nhân tôi chỉ cần mở cổng 22 cho SSH và cổng 123 cho ntpd. Nhưng nếu bạn mở cổng 80 (http) hoặc ftp, hãy đảm bảo bạn tìm hiểu để biết ít nhất những gì bạn đang phục vụ cho thế giới và ai có thể làm những gì với điều đó. Tôi không biết nhiều về ftp, nhưng có hàng triệu hướng dẫn tuyệt vời của Apache chỉ là một tìm kiếm của Google.

5

Điều quan trọng là phải thực hiện các biện pháp bảo mật tốt nhất bất cứ khi nào có thể, nhưng bạn không muốn làm cho mọi thứ trở nên khó khăn cho bản thân hoặc mất ngủ đáng lo ngại về việc tiếp tục khai thác mới nhất.Theo kinh nghiệm của tôi, có hai điều quan trọng mà có thể giúp giữ cho máy chủ cá nhân của bạn đủ an toàn để ném lên trên mạng Internet trong khi vẫn giữ sự tỉnh táo của bạn:

1) An ninh thông qua tối tăm

Không cần phải nói, dựa vào điều này trong 'thế giới thực' là một ý tưởng tồi và không được giải trí. Nhưng đó là bởi vì trong thế giới thực, baddies biết những gì có và đó là loot để có được. Trên một máy chủ cá nhân, phần lớn các 'tấn công' bạn sẽ phải chịu sẽ đơn giản là quét tự động từ các máy đã bị xâm nhập, tìm kiếm các bản cài đặt mặc định của các sản phẩm được biết là dễ bị tổn thương. Nếu máy chủ của bạn không cung cấp bất cứ thứ gì hấp dẫn trên các cổng mặc định hoặc ở các vị trí mặc định, kẻ tấn công tự động sẽ di chuyển. Do đó, nếu bạn định chạy một máy chủ ssh, hãy đặt nó trên một cổng không chuẩn (> 1024) và có khả năng nó sẽ không bao giờ được tìm thấy. Nếu bạn có thể lấy đi với kỹ thuật này cho máy chủ web của bạn sau đó tuyệt vời, thay đổi đó đến một cổng tối nghĩa quá.

2) quản lý gói

Đừng biên dịch và cài đặt Apache hoặc sshd từ nguồn chính mình trừ khi bạn hoàn toàn phải. Nếu bạn làm như vậy, bạn sẽ chịu trách nhiệm cập nhật các bản vá bảo mật mới nhất. Hãy để những người bảo trì gói tốt đẹp từ các bản phân phối Linux như Debian hay Ubuntu thực hiện công việc cho bạn. Cài đặt từ các gói được biên dịch trước của distro và dòng điện trở thành vấn đề phát hành thỉnh thoảng cập nhật apt-get & & lệnh apt-get -u dist-upgrade hoặc sử dụng bất kỳ công cụ GUI ưa thích nào mà Ubuntu cung cấp.

+0

Miễn là nó cho phép lưu lượng truy cập bên ngoài, nó là một phần của 'thế giới thực'. – icedwater

1

Nếu bạn định làm điều này, hãy dành một chút tiền và ít nhất là mua một bộ định tuyến/tường lửa chuyên dụng với cổng DMZ riêng biệt. Bạn sẽ muốn tắt tường lửa bên trong mạng nội bộ của bạn từ máy chủ của bạn để khi (không nếu!) Máy chủ web của bạn bị xâm phạm, mạng nội bộ của bạn cũng không bị tổn thương ngay lập tức.

2

Bit-Tech.Net chạy một vài bài viết về cách thiết lập máy chủ gia đình bằng Linux. Dưới đây là các liên kết:

Article 1
Article 2

Hy vọng đó là những giúp đỡ một số.

2

@svrist đã đề cập EC2. EC2 cung cấp một API để mở và đóng cổng từ xa. Bằng cách này, bạn có thể giữ cho hộp của bạn chạy. Nếu bạn cần cung cấp cho một bản demo từ một quán cà phê hoặc văn phòng của khách hàng, bạn có thể lấy IP của bạn và thêm nó vào ACL.