2009-04-03 71 views
5

Tôi hiểu sự cần thiết phải đặt máy chủ web trong DMZ và chặn lưu lượng truy cập đến tất cả các cổng ngoại trừ 80 và 443. Tôi cũng có thể thấy lý do tại sao bạn cũng nên chặn hầu hết lưu lượng truy cập ra ngoài trong trường hợp máy chủ bị xâm nhập.Tường lửa của máy chủ web có chặn lưu lượng HTTP đi qua cổng 80 không?

Nhưng bạn có cần chặn lưu lượng truy cập HTTP đi qua cổng 80 không? Nếu vậy, tại sao? Rất nhiều ứng dụng web trong những ngày này dựa vào việc gửi/lấy dữ liệu từ các dịch vụ web bên ngoài và API, do đó, chặn lưu lượng gửi đi qua cổng 80 sẽ ngăn chặn khả năng này. Có một mối quan tâm an ninh nào đủ hợp lệ để biện minh cho điều này không?

Trả lời

7

Lý do duy nhất tôi có thể nghĩ là nếu máy của bạn bằng cách nào đó bị tổn hại từ xa thì nó sẽ không thể DDoS một trang web khác trên cổng 80. Đó không phải là điều tôi thường làm.

-2

ý của bạn là gì khi chặn lưu lượng truy cập ra ngoài qua cổng 80.

Bạn có hai khả năng. Quy tắc động của Gernerate cho phép truyền thông từ khách hàng đến máy chủ web của bạn cho phiên này. Tìm kiếm quy tắc tường lửa trạng thái.

Hoặc bạn thường cho phép các kết nối được thiết lập để liên lạc và gửi đi với nhau.

Nếu bạn thường chặn tất cả lưu lượng gửi đi qua Cổng 80, Máy chủ web của bạn không thể trả lời bất kỳ ứng dụng khách nào.

Cách khác, nếu máy chủ web của bạn cần nhận một số API, ví dụ: một thư viện jquery anh ta sẽ không sử dụng cổng 80 làm Cổng của mình để giao tiếp với Webserver, người nắm giữ API.

Máy chủ web của bạn thường chọn cổng> 1024 và sử dụng nó để yêu cầu nhận API từ máy chủ từ xa.

Vì vậy, chặn tất cả lưu lượng truy cập qua cổng 80 (vì cổng bạn kết nối từ) sẽ không ngăn Máy chủ của bạn gửi bất kỳ yêu cầu nào về apis và những thứ như vậy. bởi vì anh ta không sử dụng cổng 80 khi anh ta hoạt động như một khách hàng.

+0

Tôi đang nói về việc cho phép máy chủ web bắt đầu kết nối HTTP đi (cổng 80) với các máy chủ khác trên internet. Ví dụ, bạn có thể có một trang PHP có một widget thời tiết trên đó. Kịch bản đó sẽ cần phải yêu cầu dữ liệu thời tiết từ một dịch vụ web bên ngoài. –

+0

ah ok, tôi nghĩ bạn có nghĩa là chặn cổng 80 là cổng khởi tạo. Nếu bạn chặn này, sau đó bạn không thể tải apis và điều đó từ các trang khác. Bạn có thể thêm một số trang web mà bạn tin tưởng vào các quy tắc của mình. Nhưng tôi sẽ nói chặn cổng 80 thường không có ý nghĩa nhiều. – evildead

+0

từ một quan điểm khác, nếu máy chủ của bạn bị tấn công và bạn chặn lưu lượng truy cập đó, nó không thể tải mã abituary từ các trang web khác. Nhưng ai kiểm dịch rằng hacker/robot/bất cứ thứ gì đang sử dụng cổng 80 cho yêu cầu của mình :) – evildead

0

Thay vì chặn, hãy điều chỉnh nó. Sử dụng giới hạn iptables -m.

0

Tôi có một số ứng dụng web gọi các dịch vụ web bên ngoài, vì vậy tôi sẽ cho rằng đó là ý tưởng tồi để chặn lưu lượng HTTP đầu ra. Nếu bạn lo ngại về bảo mật, bạn có thể chặn nó và chỉ cho phép một số đích nhất định.

+0

Danh sách trắng là một gợi ý tốt, nhưng nó sẽ không hoạt động với OpenID, yêu cầu máy chủ web có thể yêu cầu bất kỳ URL nào được sử dụng một OpenID. –

+0

Không chỉ vậy, nó sẽ không hoạt động với bất kỳ trang web nào thay đổi địa chỉ IP. Đó là cách tường lửa mà tôi cần để yêu cầu thay đổi cho công trình - ở cấp IP, không phải cấp độ miền (tôi lấy nó là vì mục đích hiệu quả?) Đó là một nỗi đau thực sự vì một số IP thay đổi rất nhiều. –

+0

Ngoài ra, sẽ không phải lúc nào cũng có một số dịch vụ có thể, có thể tưởng tượng được, được sử dụng cho DDOS một máy chủ khác không? Ví dụ, trên máy chủ lưu trữ outbound-HTTP-lock của tôi, ping vẫn có thể liên lạc với bất kỳ máy chủ nào. –

0

Tùy thuộc vào phiên bản SQL của bạn, bạn có thể có thời gian thẩm định chứng chỉ ra các vấn đề với SQL server 2005.

0

Đệ Nhất - Tôi đồng ý với @vartec trên throttling "Thay vì sau đó chặn nó, throttle nó Sử dụng giới hạn iptables -m. "ít nhất là một phần của giải pháp.

Tuy nhiên, tôi có thể đưa ra một lý do khác để không chặn cổng 80 đi mọi lúc. Nếu bạn có bản cập nhật bảo mật tự động được bật trên máy chủ, không thể liên hệ với PPA qua cổng 80 để bắt đầu cập nhật bảo mật. Vì vậy, nếu bạn có bản cập nhật bảo mật tự động được thiết lập thì chúng sẽ không chạy. Trên ubuntu cập nhật tự động bảo mật được bật trong 14.04 LTS với:

sudo apt-get install unattended-upgrades update-notifier-common && \ 
sudo dpkg-reconfigure -plow unattended-upgrades 
(then select "YES") 

giải pháp More duyên dáng sẽ là kịch bản ansible mở cổng tự động, có thể cũng thay đổi một quy tắc nhóm an ninh AWS qua CLI ngoài iptables nếu bạn đang ở AWS. Tôi thích sửa đổi các quy tắc đi của tôi tạm thời thông qua AWS CLI được khởi tạo bởi một hộp tàng hình. Điều này lực lượng đăng nhập cập nhật lên trong thùng đăng nhập AWS S3 của tôi nhưng không bao giờ xuất hiện trong các bản ghi trên máy chủ chính nó.Hơn nữa, máy chủ khởi tạo cập nhật thậm chí không phải nằm trong mạng con riêng ACL.

Có thể làm cả hai? Bạn phải hình dung vào thời điểm một cuộc tấn công sẽ chuyển tiếp một IP nội bộ trong mạng con của bạn để có được công suất để tăng gấp đôi trong khi vẫn giữ khả năng tự động sao lưu và cập nhật bảo mật.

Tôi hy vọng điều này sẽ hữu ích. Nếu không trả lời và cung cấp thêm các ví dụ mã để cụ thể hơn và chính xác hơn. #giữ an toàn !

0

Nếu máy bị xâm phạm và lưu lượng gửi đi trên cổng 80 được cho phép, nó sẽ giúp cho những kẻ xâm nhập gửi lại dữ liệu được thu hoạch cho chính họ dễ dàng hơn. Cho phép lưu lượng gửi đi có nghĩa là bạn có thể bắt đầu kết nối từ máy tính của mình với thế giới bên ngoài. Cách tiếp cận tốt hơn sẽ cho phép lưu lượng truy cập ra ngoài chỉ đến một số trang web/địa chỉ mà bạn tin cậy (tức là Microsoft Windows Update, Google reCAPTCHA) thay vì bất kỳ điểm đến nào trên thế giới.

Các vấn đề liên quan