Các bước cấu hình WebServer Tomcat nhằm nâng cao bảo mật, ATTT

 1. Cài đặt Web Server đảm an toàn. 

- Web Server phải được cài đặt trên hệ điều hành an toàn, đã được thiết lập cấu hình chính sách bảo mật theo tiêu chuẩn ATTT hệ điều hành. 

- Phiên bản Web Server Tomcat không mắc lỗ hổng bảo mật, được cập nhật tất cả bản vá security.

2. Gỡ/tắt bỏ các thành phần mặc định khi cài đặt Web Server 

- Gỡ bỏ các thư mục/trang mặc định. 

+ Xóa file, thư mục tại đường dẫn CATALINA_HOME/webapps (ROOT, balancer, jsp-examples, servlet-examples, tomcat-docs, webdav, manager, docs, examples) 

+ Xóa file CATALINA_HOME/conf/Catalina/localhost/hostmanager.xml và CATALINA_HOME/conf/Catalina/localhost/manager.xml. 

- Tắt các Module/Extension không sử dụng 

+ Trên file server.xml tại đường dẫn CATALINA_HOME/conf/server.xml, tìm dòng và chuyển sang dạng ghi chú.

<!-- Define an AJP 1.3 Connector on port 8009 -->
<!-- <Connector port = "8009" protocol = "AJP/1.3" redirectPort = "8443"/> -->

+ Restart lại Tomcat.

3. Thay đổi các thành phần mặc định.

- Thay đổi thông báo lỗi mặc định của Web Server.

+ Tạo các error.html ở thư mục gốc của ứng dụng với nội dung phù hợp với từng ứng dụng.

+ Mở file web.xml tại đường dẫn CATALINA_HOME/conf/web.xml, thay đổi thông báo lỗi với các mã lỗi 400, 401, 402, 403, 404, 500, 501, 502, 503, bằng cách thêm các nội dung sau vào trước thẻ đóng </web-app>

<error-page>
<error-code>400</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>401</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>402</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>501</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>502</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/error.html</location>
</error-page
>

+ Restart lại Tomcat.

- Chỉ cho phép thực thi các phương thức GET, POST, HEAD

+ Mở file web.xml tại đường dẫn CATALINA_HOME/conf/web.xml thêm các dòng sau ở cuối file trước thẻ đóng </web-app>

<security-constraint>
<web-resource-collection>
<web-resource-name>restricted methods</web-resourcename>
<url-pattern>/*</url-pattern>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>OPTIONS</http-method>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint />
</security-constraint> 

+ Restart lại Tomcat. 

+ Chú ý: có thể bổ sung sử dụng PUT, DELETE với trường hợp sử dụng webservice RESTful và giao thức push của Apple

4. Cấu hình giới hạn truy cập. 

- Tắt chức năng quản trị từ xa cho Web Server, giới hạn địa chỉ IP truy cập vào trang, chức năng quản trị. 

+ Mở file server.xml tại đường dẫn CATALINA_HOME/conf/server.xml -> Thêm ký tự !-- và -- vào trước và sau dòng Server address ...... "SHUTDOWN" để vô hiệu hóa truy cập từ xa:

<!--Server address="127.0.0.1" port="8005" shutdown="SHUTDOWN"-->

+ Restart lại Tomcat. 

- Không cho phép liệt kê file, thư mục. 

+ Mở file web.xml tại đường dẫn CATALINA_HOME/conf/web.xml tìm section trong section với ” default” thay đổi thuộc tính listings là false

<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param> 

+ Restart lại Tomcat. 

+ Đối với các trường hợp cần cấu hình cho phép Domain khác truy cập nội dung (Cross-origin resource sharing - CORS), chỉ được thêm từng domain cụ thể, không được thêm nhóm domain hoặc tất cả domain. 

5. Cấu hình phân quyền ứng dụng Web Server. 

- Chạy tiến trình Web Server với tài khoản user được giới hạn quyền (không phải tài khoản quản trị, hoặc có quyền tương đương với tài khoản quản trị). 

+ Tạo user riêng không thuộc nhóm tài khoản quản trị (root). 

+ Đăng nhập và khởi chạy ứng dụng sử dụng tài khoản vừa tạo. 

- Không cho phép thực thi các câu lệnh CGI, SSI: Mặc định Tomcat đã tắt CGI.

6. Sử dụng cơ chế mã hóa an toàn. 

- Không sử dụng SSL version 2.0, SSL version 3.0. 

+ Mở file server.xml tại đường dẫn CATALINA_HOME/conf/server.xml, tìm và gỡ bỏ nội dung: sslProtocols=”TLS”. 

+ Thêm nội dung: sslEnabledProtocols=”TLSv1, TLSv1.1, TLSv1.2” 

+ Restart lại Tomcat. 

- Không sử dụng các SSLCipherSuite không an toàn: EXPORT, NULL, MD5, DES, RC4. 

+ Mở file server.xml tại đường dẫn CATALINA_HOME/conf/server.xml. Tìm đến phần cấu hình SSL.

+ Cấu hình trường ciphers chỉ sử dụng các cipher an toàn:

ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA"

Cipher an toàn

+ Restart lại Tomcat.

7. Cấu hình ghi log Web Server an toàn 

- Web Server cần được thiết lập bật chế độ ghi log, ghi luân phiên/xoay vòng log file theo ngày 

+ Mở file server.xml tại đường dẫn CATALINA_HOME/conf/server.xml. 

+ Bổ sung thêm đoạn cấu hình sau vào server.xml nếu chưa có: 

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="<TEN APP>_" suffix=".log" pattern="%h %{X-Forwarded-For}i %l %u %t &quot;%r&quot; %s %b&quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot;" resolveHosts="false" fileDateFormat="yyyy-MM-dd" rotatable="true" />

+ Trong đó:

- directory: Thư mục đặt file log.

- prefix: Tiền tố tên file.

- suffix: Phần tên đuôi file.

- pattern: Định nghĩa các trường ghi trong access log

- resolveHosts: Có phân giải IP thành tên miền hay không? (true, false)

- fileDateFormat: Là định dạng in ngày tháng, mặc định nếu không đặt thì mặc định sẽ là “yyyy-MM-dd”

- rotatable: là biến cho phép rotate log hàng ngày, mặc định là true, tuy nhiên nếu là false thì biến fileDateFormat sẽ không có tác dụng.

+ Restart lại Tomcat.

- Định dạng dữ liệu log phải có đủ thông tin phục vụ cho việc điều tra, truy vết vi phạm ATTT khi cần thiết

- Log cần được lưu trữ tối thiểu 03 tháng trên máy chủ. 

Chúc các Bạn thành công !

Đăng nhận xét

Tin liên quan