Cấu hình hệ thống

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu giải pháp đảm bảo an ninh an toàn thông tin cho các cổng,trang thông tin điện tử luận văn ths công nghệ thông tin 60 48 15 (Trang 73 - 78)

Chương 4 TRIỂN KHAI THỬ NGHIỆM

4.2. Cấu hình hệ thống

- Thiết lập lại chính sách mật khẩu: Để cơ chế mật khẩu mạnh phức tạp (từ 8 ký tự trở lên và bao gồm: ít nhất 1 ký tự in hoa, 1 ký tự in thường, 1 ký tự đặc biệt và 1 chữ số) nhằm chống lại các kiểu tấn công Brute force.

Dùng lệnh [root@vanbien ~]# vi /etc/login.defsthay đổi thông số trong tập tin /etc/login.defs như sau:

PASS_MAX_DAYS 99 (mật khẩu này được sử dụng tối đa 99 ngày) PASS_MIN_LEN 8 (yêu cầu mật khẩu có chiều dài ngắn nhất là 8) PASS_WARN_AGE (sẽ cảnh báo trước khi mật khẩu hết hạn 7 ngày) Thiết lập độ phức tạp mật khẩu:

Dùng lệnh [root@vanbien ~]# /etc/pam.d/system-auth thay đổi đổi dòng lệnh trong tập tin sau /etc/pam.d/system-auth như sau:

Máy chủ web, Máy chủ ứng dụng 123.30.209.22

Máy chủ cơ sở dữ liệu 123.30.209.168 Tường lửa

Password requisite pam_cracklib.so retry=3 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1

Ý nghĩa các thông số:

Retry=3 cho phép chọn mật khẩu 3 lần trước khi chương trình passwd hủy bỏ Difok=3 có ít nhất 3 ký tự khác với mật khẩu trước

Ucredit=-1 có ít nhất một chữ hoa Lcredit=-1 có ít nhất một chữ thường Ocredit=-1 có ít nhất một ký tự đặc biệt

Ngăn dùng lại mật khẩu cũ: Dùng lệnh [root@vanbien ~]# /etc/pam.d/system-auth thay đổi như sau:

password required pam_unix.so md5 remember=5 use_authtok

- Điều chỉnh các thông số mạng: tối ưu hóa một số thông tin trong tập tin /etc/sysctl.conf như sau: [root@vanbien ~]# vi /etc/sysctl.conf

Tối ưu hóa các thiết lập của TCP bằng cách thêm các dòng sau: net.ipv4.tcp_timestamps = 0

net.ipv4.tcp_sack = 1

net.ipv4.tcp_no_metrics_save = 1

Dòng đầu bỏ các dữ liệu thời gian, bớt được 12k cho mỗi gói tin. Dòng thứ hai kích hoạt việc xác nhận chọn lọc, bớt được các công đoạn kiểm tra mỗi gói tin do đó lưu thông sẽ nhanh hơn. Dòng thứ ba giúp tăng tốc kết nối bằng cách tránh không lưu TCP metric cho từng gói tin.

Thiết lập TCP window scaling, thiết lập này của TCP quy định kích thước gói tin tối thiểu và tối đa có thể gửi và nhận. Kết nối dial-up sẽ nhanh hơn khi kích thước gói nhỏ hơn, ngược lại kết nối băng rộng sẽ nhanh khi kích thước gói tin lớn.

net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_wmem = 10240 87380 16777216 net.ipv4.tcp_rmem = 10240 87380 16777216 net.ipv4.tcp_mem = 16777216 16777216 16777216 net.core.rmem_max = 16777216 net.core wmem_max = 16777216

- Gỡ bỏ các dịch vụ không cần thiết: để hạn chế khả năng tiếp cận của kẻ tấn công và cải thiện hiệu năng của hệ thống.

Dùng lệnh sau để xem các dịch vụ cần thiết:

Danh sách các dịch vụ cần thiết: Crond, da-popb4smtp, directadmin, exim, http, iptables, modules_dep, mysqld, netfs, network, pure-ftpd, rsyslog, sshd, startips, udev-post, vzreboot.

Chỉ sử dụng các dịch vụ này còn các dịch vụ không cần thiết khác sẽ gỡ bỏ hoặc tắt đi. Dùng lệnh sau để tắt các dịch vụ:

chkconfig tên_dịch_vụ off

Dùng lệnh grouplist để xem các nhóm phần mềm đã được cài đặt:

yum grouplist

Dùng lệnh gỡ lần lượt các lệnh với tên nhóm, ngoại trừ "Utilities":

yum groupremove "Tên_nhóm"

- Tạo người dùng khác root để thực thi máy chủ: thêm người dùng mới là bien với lệnh:

[root@vanbien ~]# useradd bien [root@vanbien ~]# passwd bien

Mật khẩu cho tài khoản bien sẽ được đặt theo chính sách ở trên là: Hoang*0515 Tạo nhóm người dùng quantri bằng cách mở tập tin sudoers:

[root@vanbien ~]# vi /etc/sudoers

Viết đoạn lệnh sau vào dưới (# %wheel ALL=(ALL) ALL):

%quantri ALL=(ALL) ALL

Những thành viên trong nhóm quản trị được phép sử dụng tất cả các dòng lệnh. Thêm người dùng có tên bien vào nhóm quản trị:

Usermod –G quantri bien

- Giới hạn người dùng được phép sử dụng quyền sudo thông qua các tập tin /etc/pam.d/su như sau:

Mở tập tin /etc/pam.d/su:

[root@vanbien ~]# vi /etc/pam.d/su

Thêm 2 dòng lệnh:

auth sufficient /lib/security/pam_rootok.so debug

auth required /lib/security/pam_quantri.so group=quantri

Hai dòng lệnh trên có nghĩa rằng chỉ những tài khoản thuộc nhóm quantri có quyền su lên root.

Tiếp theo để thêm một tài khoản có quyền su lên root làbien

Không cho đăng nhập bằng tài khoản root để đảm bảo bảo mật hơn. - Thay đổi port để kết nối SSH sang một port khác port mặc định 22:

[root@vanbien ~]# vi /etc/ssh/sshd_config Đổi dòng #port 22 thành port 1110

- Sử dụng kết nối SSH thay cho các kênh kết nối không an toàn như Telnet, FTP, v.v

- Kết nối SSH thông qua khóa bí mật và khóa công khai:Sử dụng PuTTy Key Generator để tạo khóa.

Public Key (khóa công khai):lưu vào một tập tin, đồng thời chéppublic key này và sẽ bỏ vào tập tin ~/.ssh/authorized_keys trên server.

Đưa khóa công khai vào một tập tin trên máy chủ: [root@vanbien ~] # mkdir ~/ .ssh

[root@vanbien ~] # chmod0700 ~/.ssh

[root@vanbien ~] # touch ~/ .ssh/authorized_keys

[root@vanbien ~] # chmod 0644 ~/ .ssh/authorized_keys [root@vanbien ~] # vi/.ssh/authorized_keys

Sau đó thêm đoạn mã khóa công khai ở trên vào tập tin này và lưu lại. Private Key (khóa bí mật): được lưu lại với tên bien.ppk

Keypharse (Mật khẩu để mở private key): lưu lại mật khẩu này để khi đăng nhập vào máy chủ nó sẽ hỏi.

Giờ có thể sử dụng khóa công khai và khóa bí mật để đăng nhập vào máy chủ, có thể tắt chức năng đăng nhập bằng mật khẩu để đảm bảo an toàn.

- Ghi nhật ký (log files): log files sẽ được lưu trữ tập trung trong thư mục /var/log.

4.2.1. Cấu hình Apache

Trong phần này tôi sẽ thực hiện một số cấu hình cho máy chủ Apache để đảm bảo an toàn.

- Thực hiện gỡ bỏ những thành phần sau mod_userid, mod_info, mod_status, mod_include ra khỏi Apache do những thành phần này không cần thiết.

- Điều khiển truy cập: Sử dụng các chỉ mục (Directory) để điều khiển quá trình truy cập đến các thư mục hệ thống, hạn chế quyền thâm nhập các thư mục (ví dụ như các thư mục: root, admin, administrator). Không cho phép duyệt qua thư mục root. Cấu hình được thiết lập trong tập tin cấu hình httpd.conf như sau:

vi /etc/httpd/conf/httpd.conf <Directory/>

order deny, allow deny from all </Directory>

<Directory /www/htdocs> order allow, deny allow from all </Directory>

Không cho hiển thị danh sách trong các thư mục

<Directory /var/www/html> Options -Indexes

</Directory>

- Hạn chế việc sử dụng: MultiViews, ExecCGI, FollowSymLinks, SymLinksIfOwnerMatch bằng cách chỉnh trong tập tin httpd.conf (ví dụ: Directory /> Options -FollowSymLinks </Directory>) khi nào cần sử dụng sẽ điều chỉnh trong tập tin .htaccess (ví dụ: options +FollowSymLinks). Bảo vệ các tập tin cấu hình .htaccess bằng cách chỉnh chmod là 644.

- Ghi nhật ký: nhật ký Error Log được ghi trong mục /var/log/httpd/error_log, cấu hình nhật ký Access Log /var/log/httpd/access_log

LogLevel notice

LogFormat “%a %l %u %t \’’%r\’’ %>s %O \”%{Referer}i\” \”%{User- Agent}i\””

combined

CustomLog log/access_log combined - Hạn chế các thông tin về Web Server:

ServerTokens Prod ServerSignature Off

- Điều chỉnh các thông số như dưới đây để tối ưu để bảo vệ tấn công từ chối dịch vụ. Timeout 100 KeepAlive On MaxKeepAliveRequests 500 KeepAliveTimeout 15 LimitRequestline 512 LimitRequestFields 100 LimitRequestFieldsize 1024

LimitRequestBody 102400

TimeOut: thời gian máy chủ chờ một kết nối, mặc định 300 giây

MaxKeepAliveRequests: số lượng yêu cầu tối đa được sử dụng cho mỗi kết nối KeepAliveTimeout: thời gian đợi đóng một kết nối

LitmitRequestFields: giới hạn số lượng HTTP Request header được chấp nhận bởi client. LimitRequestFieldsize: giới hạn kích thước HTTP request header

LimitRequestBody: giới hạn kích thước yêu cầu

4.2.2. Cấu hình MySQL

- Sử dụng phiên bản MySql 5.5.41 mới nhất hiện tại.

- Đã gỡ bỏ những cơ sở dữ liệu không cần thiết, chỉ sử dụng cơ sở dữ liệu cần thiết là demo.

- Khóa tất cả các kết nối từ hệ thống hoặc từ ứng dụng khác ngoài ứng dụng web và máy chủ web, không cho phép bất kỳ kết nối trực tiếp nào từ Internet đến database.

- Giới hạn truy cập đối với các tài khoản sử dụng (không có quyền xóa hoặc thay đổi cấu trúc cơ sở dữ liệu).

- Phân quyền cho các tài khoản và các tập tin hệ thống.

- Thực hiện gỡ bỏ các tài khoản không cần thiết, thay đổi mật khẩu của tài khoản (root, admin của MySQL).

- Cấu hình thực hiện việc sao lưu cơ sở dữ liệu hàng tuần vào 5 giờ sáng ngày thứ 2.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu giải pháp đảm bảo an ninh an toàn thông tin cho các cổng,trang thông tin điện tử luận văn ths công nghệ thông tin 60 48 15 (Trang 73 - 78)