Hướng dẫn bảo mật và bảo vệ Apache Tomcat

Hướng dẫn thực tế để tăng cường và bảo mật Máy chủ Apache Tomcat với các thực tiễn tốt nhất.


Tomcat là một trong những máy chủ Servlet và JSP Container phổ biến nhất. Nó được sử dụng bởi một số trang web lưu lượng truy cập cao sau đây:

  • LinkedIn.com
  • Dailymotionail.co.uk
  • Comcast.net
  • Wallmart.com
  • Reuters.com
  • Meetup.com
  • Webs.com

Biểu đồ dưới đây cho thấy vị trí thị trường của Tomcat trong máy chủ ứng dụng Java.

Nguồn: Plumbr

Về mặt kỹ thuật, bạn có thể sử dụng Tomcat làm máy chủ ngoại vi để phục vụ các yêu cầu trang web trực tiếp. Tuy nhiên, trong môi trường sản xuất, bạn có thể muốn sử dụng một số máy chủ web như Apache, Nginx làm giao diện người dùng để định tuyến các yêu cầu đến Tomcat.

Sử dụng một máy chủ web để xử lý các yêu cầu đưa ra hiệu suấtBảo vệ những lợi ích. Nếu bạn đang sử dụng Apache HTTP làm máy chủ web mặt trước, thì bạn cũng phải xem xét bảo mật điều đó.

Có cấu hình Tomcat mặc định có thể làm lộ thông tin nhạy cảm, giúp hacker chuẩn bị cho một cuộc tấn công vào ứng dụng.

Sau đây được thử nghiệm trên Tomcat 7.x, môi trường UNIX.

Khán giả

Điều này được thiết kế cho Quản trị viên Middleware, Hỗ trợ ứng dụng, Phân tích hệ thống hoặc bất kỳ ai đang làm việc hoặc mong muốn tìm hiểu Tomcat Hardening and Security.

Kiến thức tốt về Tomcat & Lệnh UNIX là bắt buộc.

Ghi chú

Chúng tôi yêu cầu một số công cụ để kiểm tra Tiêu đề HTTP để xác minh. Có hai cách bạn có thể làm điều này.

Nếu kiểm tra Đối mặt với Internet sau đó, bạn có thể sử dụng các công cụ HTTP Header sau để xác minh việc triển khai.

Và cho một Ứng dụng mạng nội bộ, bạn có thể sử dụng Google Chrome, công cụ dành cho nhà phát triển Firefox.

Là một thực hành tốt nhất, bạn phải có một sao lưu của bất kỳ tập tin nào bạn sắp sửa đổi.

Chúng tôi sẽ gọi thư mục Cài đặt Tomcat là $ tomcat trong suốt hướng dẫn này.

Hãy để Vượt qua khó khăn & đảm bảo thủ tục.

Xóa biểu ngữ máy chủ

Xóa biểu ngữ máy chủ khỏi HTTP Header là một trong những điều đầu tiên cần làm cứng.

Có một biểu ngữ máy chủ hiển thị sản phẩm và phiên bản bạn đang sử dụng và dẫn đến lỗ hổng rò rỉ thông tin.

Theo mặc định, một trang được phục vụ bởi Tomcat sẽ hiển thị như thế này.

Hãy để ẩn giấu chi tiết sản phẩm và phiên bản khỏi tiêu đề Máy chủ.

  • Chuyển đến thư mục $ tomcat / conf
  • Sửa đổi server.xml bằng cách sử dụng vi
  • Thêm sau vào cổng kết nối

Máy chủ =

Ví dụ: –

  • Lưu tệp và khởi động lại Tomcat. Bây giờ, khi bạn truy cập một ứng dụng, bạn sẽ thấy một giá trị trống cho tiêu đề Máy chủ.

Bắt đầu Tomcat với Trình quản lý bảo mật

Trình quản lý bảo mật bảo vệ bạn khỏi một applet không đáng tin cậy đang chạy trong trình duyệt của bạn.

Chạy Tomcat với trình quản lý bảo mật tốt hơn chạy không có. Tomcat có tài liệu tuyệt vời về Quản lý bảo mật Tomcat.

Điểm hay của việc này là bạn không cần phải thay đổi bất kỳ tập tin cấu hình nào. Nó chỉ là cách bạn thực hiện tập tin startup.sh.

Tất cả những gì bạn phải làm là bắt đầu tomcat với đối số bảo mật.

[[email được bảo vệ] bin] # ./startup.sh-bảo mật
Sử dụng CATALINA_BASE: / opt / tomcat
Sử dụng CATALINA_HOME: / opt / tomcat
Sử dụng CATALINA_TMPDIR: / opt / tomcat / temp
Sử dụng JRE_HOME: / usr
Sử dụng CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Sử dụng Trình quản lý bảo mật
Tomcat bắt đầu.
[[email được bảo vệ] thùng rác]#

Kích hoạt SSL / TLS

Phục vụ các yêu cầu web qua HTTPS là điều cần thiết để bảo vệ dữ liệu giữa máy khách và Tomcat. Để ứng dụng web của bạn có thể truy cập thông qua HTTPS, bạn cần triển khai chứng chỉ SSL.

Giả sử, bạn đã có sẵn kho khóa với chứng chỉ, bạn có thể thêm dòng dưới đây vào tệp server.xml trong phần cổng Trình kết nối.

SSLEnables ="thật" sơ đồ ="https" keystoreFile ="ssl / bloggerflare.jks" keystorePass ="chandan" clientAuth ="sai" sslProtocol ="TLS"

Thay đổi tên và mật khẩu tệp Keystore bằng tên của bạn.

Nếu bạn cần giúp đỡ với kho khóa & Quá trình CSR, sau đó tham khảo hướng dẫn này.

Thi hành HTTPS

Điều này chỉ áp dụng khi bạn bật SSLve. Nếu không, nó sẽ phá vỡ ứng dụng.

Khi bạn đã bật SSL, sẽ rất tốt khi buộc chuyển hướng tất cả các yêu cầu HTTP sang HTTPS để liên lạc an toàn giữa người dùng với máy chủ ứng dụng Tomcat.

  • Chuyển đến thư mục $ tomcat / conf
  • Sửa đổi tệp web bằng cách sử dụng vi
  • Thêm theo sau cú pháp

Bối cảnh được bảo vệ
/ *

BÍ MẬT

  • Lưu tệp và khởi động lại Tomcat

Thêm an toàn & Cờ httpOnly vào Cookie

Có thể đánh cắp hoặc thao túng phiên ứng dụng web và cookie mà không cần cookie an toàn. Nó có một cờ được chèn trong tiêu đề phản hồi.

Điều này được thực hiện bằng cách thêm vào bên dưới dòng trong phần cấu hình phiên của tệp web.xml

thật
thật

Ảnh chụp màn hình cấu hình:

Lưu tệp và khởi động lại Tomcat để kiểm tra tiêu đề phản hồi HTTP.

Chạy Tomcat từ Tài khoản không có đặc quyền

Thật tốt khi sử dụng một người dùng không có đặc quyền riêng cho Tomcat. Ý tưởng ở đây là bảo vệ các dịch vụ khác đang hoạt động trong trường hợp bất kỳ tài khoản nào bị xâm phạm.

  • Tạo một người dùng UNIX, hãy nói với tomcat

người dùng tomadd

  • Dừng Tomcat nếu chạy
  • Thay đổi quyền sở hữu $ tomcat thành người dùng tomcat

chown -R tomcat: tomcat tomcat /

Khởi động Tomcat và đảm bảo nó chạy với người dùng tomcat

Xóa ứng dụng mặc định / không mong muốn

Theo mặc định, Tomcat đi kèm với các ứng dụng web sau, có thể cần hoặc không cần trong môi trường sản xuất.

Bạn có thể xóa chúng để giữ sạch sẽ và tránh mọi rủi ro bảo mật đã biết với ứng dụng mặc định Tomcat.

  • ROOT – Trang chào mừng mặc định
  • Tài liệu – Tài liệu Tomcat
  • Ví dụ – JSP và servlets để trình diễn
  • Quản lý, quản lý máy chủ – quản trị Tomcat

Chúng có sẵn trong thư mục $ tomcat / webapps

[[email được bảo vệ] ứng dụng web] # ls -lt
drwxr-xr-x 14 tomcat tomcat 4096 ngày 29 tháng 9 15:26 tài liệu
drwxr-xr-x 7 tomcat tomcat 4096 ngày 29 tháng 9 15:26 ví dụ
drwxr-xr-x 5 tomcat tomcat 4096 29 tháng 9 29 15:26 chủ quản lý
drwxr-xr-x 5 tomcat tomcat 4096 Ngày 29 tháng 9 15:26 người quản lý
drwxr-xr-x 3 tomcat tomcat 4096 ngày 29 tháng 9 15:26 ROOT
[[email được bảo vệ] ứng dụng web] #

Thay đổi cổng và lệnh SHUTDOWN

Theo mặc định, tomcat được cấu hình để tắt trên cổng 8005.

Bạn có biết bạn có thể tắt phiên bản tomcat bằng cách thực hiện telnet sang IP: port và ban hành lệnh SHUTDOWN?

Chandans # telnet localhost 8005
Đang thử :: 1 … telnet:
kết nối với địa chỉ :: 1:
Kết nối đã từ chối Dùng thử 127.0.0.1…
Đã kết nối với localhost.
Nhân vật thoát là ‘^]’.
Kết nối SHUTDOWN bị đóng bởi máy chủ nước ngoài.
Chandans #

Nguy hiểm!

Bạn thấy, có cấu hình mặc định dẫn đến rủi ro bảo mật cao.

Nó khuyên bạn nên thay đổi cổng tắt tomcat và lệnh mặc định thành một thứ không thể đoán trước.

  • Sửa đổi các mục sau trong server.xml

8005 – Thay đổi sang một số cổng không sử dụng khác

SHUTDOWN – Thay đổi thành một cái gì đó phức tạp

Ví dụ-

Thay thế trang 404, 403, 500 mặc định

Có trang mặc định không tìm thấy, bị cấm, lỗi máy chủ hiển thị chi tiết phiên bản.

Hãy nhìn vào trang 404 mặc định.

Để giảm thiểu, trước tiên bạn có thể tạo một trang lỗi chung và định cấu hình tệp web.xml để chuyển hướng đến một trang lỗi chung.

  • Truy cập ứng dụng $ tomcat / webapps / $
  • Tạo một tệp error.jsp bằng vi biên tập

Trang lỗi

Đó là một lỗi!

  • Chuyển đến thư mục $ tomcat / conf
  • Thêm phần sau vào tệp web.xml. Đảm bảo bạn thêm trước cú pháp

404
/error.jsp

403
/error.jsp

500
/error.jsp

  • Khởi động lại máy chủ tomcat để kiểm tra nó

Tốt hơn nhiều!

Bạn cũng có thể làm điều này cho java.lang.Exception. Điều này sẽ giúp không làm lộ thông tin phiên bản tomcat nếu có ngoại lệ java lang.

Chỉ cần thêm theo sau trong web.xml và khởi động lại máy chủ tomcat.

java.lang.Exception
/error.jsp

Tôi hy vọng hướng dẫn trên cung cấp cho bạn một ý tưởng về việc bảo vệ Tomcat. Nếu bạn đang muốn tìm hiểu thêm về quản trị Tomcat, thì hãy xem điều này khóa học trực tuyến.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map