Bảo vệ các thư mục trang Web với mật khẩu

Một phần của tài liệu Đồ án xây dựng cấu hình các ứng dụng phía server trong hệ điều hành linux fedora 5 0 (Trang 89)

Sử dụng mật khẩu (password) để bảo vệ nội dung trong thư mục chính và thư mục con DocumentRoot .Ví dụ sau thể hiện cách sử dụng mật khẩu để bảo vệ thư mục:

/home/www/:

a) Sử dụng tiện ích mật khẩu htpasswd để tạo usename/password không phụ thuộc vào mật khẩu truy cập vào hệ thống. Người dùng phải định rõ vị trí đặt file mật khẩu, nếu như không tồn tại thì phải bao gồm một –c. Một cách khác đó là đặt file trong thư mục: /etc/httpd/conf, xa cây DocumentRoot tới những người sử dụng web có thể nhìn thấy được. Sau đây là ví dụ cho người dùng có tên là Dung và người thứ 2 là Quy:

[root@dhxd tmp]# htpasswd 9c /etc/httpd/conf/.htpasswd dung New password:

Re9type new password:

Adding password for user dung

[root@dhxd tmp]# htpasswd /etc/httpd/conf/.htpasswd quy New password:

Re9type new password:

Adding password for user quy [root@dhxd tmp]#

b) Tạo file: “.htpasswd” mà tất cả người dùng có thể đọc được

[root@dhxd tmp]# chmod 644 /etc/httpd/conf/.htpasswd

c) Tạo một file: “.htaccess” trong thư mục mà muốn điều khiển mật khẩu

AuthUserFile /etc/httpd/conf/.htpasswd AuthGroupFile /dev/null

AuthName EnterPassword AuthType Basic

require user dung

Mật khẩu này dùng để bảo vệ thư mục chính và tất cả các thư mục con,

“AuthUserFile” chỉ cho Apache để dùng file: “.htpasswd”. Câu lệnh: “require user”

hướng dẫn Apache chỉ cho phép người dùng “dung” trong file: “.htpasswd” mới có thể truy cập được. Nếu muốn tất cả người dùng trong file: “.htpasswd” được truy cập thì phải thay dòng lệnh này với người dùng theo yêu cầu. “AuthTypeBasic” chỉ thị cho Apache chấp nhận mật khẩu chưa được mã hoá từ người dùng ở xa khi trình duyệt Web.

d) Thiết lập file bảo vệ chính xác trên file: “.htaccess” trong thư mục: /home/www/.

e) Chắc chắn rằng file: /etc/httpd/conf/httpd.conf có khai báo AllowOverride trong <Directory> cho một vài cây phía trên: /home/www. Trong ví dụ dưới đây, tất cả các thư mục dưới: /var/www đều cần mật khẩu quyền hạn:

<Directory /home/www/*> AllowOverride AuthConfig </Directory>

f) Chắc chắn rằng đã có <VirtualHost> mà định nghĩa truy cập tới /home/www hoặc thư mục khác cao hơn trong cây thư mục:

<VirtualHost *>

ServerName 97.158.253.26 DocumentRoot /home/www </VirtualHost>

g) Khởi động lại Apache

h) Kiểm thử bằng cách truy cập vào trang web khi đó nó sẽ yêu cầu mật khẩu truy cập 4.10 Thư mục conf.d

Các file trong thư mục: /etc/httpd/conf.d đươc đọc ra và tự động nối thêm dữ liệu tới cấu hình trong file: httpd.conf mỗi lần Apache khởi động. Trong nội dung cấu hình mà một webserver phục vụ nhiều host trên nhiều Website, người dùng có thể tạo một file cấu hình cho mỗi Website với <Virtual> và <Directory>. Có thể cấu hình quản lý Website đơn giản hơn bằng cách như sau:

Sao lưu file: httpd.conf tránh trường hợp bị mất

Tạo các file đặt tại thư mục này mà Apache yêu cầu <VirtualHost> và <Directory>

Nếu mỗi site có một địa chỉ IP riêng biệt, sau đó đặt các khai báo NameVirtualHost tương đương các file trong thư mục conf.d. Nếu nó được chia sẻ, nó cần để giữ nguyên file: httpd.conf chính.

Tháo bỏ các lời chỉ dẫn tương đương từ file: httpd.conf

Khởi động lại Apache và kiểm tra.

Các file đặt trong thư mục conf.d không phải có tên đặc biệt và không cần phải quy chúng vào trong file httpd.conf.

4.11 Xử lý các sự cố Apache

pháp không chính xác trong khai báo <VirtualHost>. Sau đây là các lỗi mà người dùng hay gặp phải nhất.

4.11.1 Kiểm tra kết nối HTTP

Bước đầu tiên là để xác định webserver có thể truy cập trên TCP cổng 80, do không có kết nối có thể do tường lửa, NAT, hay luật gửi qua cổng tới webserver . Một vài lỗi khác bao gồm Apache không khởi động, server hoặc mạng bị lỗi.Nếu có thể kết nối qua cổng 80 nhưng không có trang nào được hiển thị thì vấn đề thường là do ứng dụng web lỗi, không do phần mềm web server. Một cách tốt nhất để kiểm tra từ cả bên trong mạng và từ Internet với TELNET.

4.11.2 Bản tin “403 Forbidden”

Nguyên nhân ở đây thường là do file permissions và xuất hiện ngữ cảnh bảo mật. Các vấn đề có liên quan tới bảo mật như bản tin: “avc: denied” trong file: /var/log/messages.

Nov 21 20:41:23 dhxd kernel: audit(1101098483.897:0): avc: denied { getattr } for

pid=1377 exe=/usr/sbin/httpd path=/home/www/index.html dev=hda5 ino=12

scontext=root:system_r:httpd_t tcontext=root:object_r:home_root_t tclass=file

4.11.3 Chỉ xuất hiện trang Apache mặc định

Khi chỉ xuất hiện trang Apache mặc định, có 2 nguyên nhân chính.

. Thứ nhất đó là do không có file: index.html trong thư mục DocumentRoot của website

. Thứ hai là thường do có liên quan tới ngữ cảnh bảo mật không chính xác 4.11.4 File httpd.conf không tương thích khi nâng cấp

Các file cấu hình cũ sẽ không tương thích khi nâng cấp từ Apache bản 1.3 tới bản 2.x. Trong Fedora, bản mới 2.x, file cấu hình mặc định được lưu trong file:

/etc/httpd/conf/httpd.conf.rpmnew. Đối với ví dụ host ảo đơn giản ở trên cách đơn giản

nhất là:

Lưu file httpd.conf cũ với tên khác, sao chép ServerName, NameVirtualHost, và Virtual Host từ file cũ và đặt chúng trong và đặt chúng vào trong file

httpd.conf.rpmnew mới.

Sao chép file httpd.conf.rpmnew và đặt tên lại là: httpd.conf

Khởi động lại Apache

4.11.5 Lỗi ServerName

Tất cả các chỉ dẫn ServerName phải đưa vào trong một miền mà DNS có thể phân giải được, nếu không sẽ xuất hiện lỗi khi httpd khởi động.

Starting httpd: httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

Starting httpd: [Wed Feb 04 21:18:16 2004] [error] (EAI 2)Name or service not known: Failed to resolve server name for 192.16.1.100 (check DNS) __ or specify an explicit ServerName

Có thể tránh lỗi này bằng cách thêm một ServerName mặc định ở phần cuối nội dung file: httpd.conf, ví dụ:

#ServerName new.host.name:80 ServerName localhost

4.11.6 File ghi trạng thái Apache

File: /var/httpd/access_log được cập nhật sau mỗi truy vấn HTTP và là nguồn thông tin tổng quát về website. Đó là một kiểu định dạng cố định với mỗi mục vào được phân chia bằng các không gian hoặc các dấu ngoặc kép. Dưới đây là danh sách cách bố trí:

Field Number

Miêu tả (description) Separator

1 Địa chỉ IP của web ở xa Khoảng trống

2 Tem thời gian (Time Stamp) Dấu ngoặc vuông

. [ ] 3 Truy vấn HTTP bao gồm trang web được phục

cụ

Lời dẫn . " "

4 Mã kết quả HTTP Khoảng trống

5 Số lượng dữ liệu trong các byte gửi tới trình duyệt web ở xa

Khoảng trống

6 Trang Web chứa liên kết tới trang đã phục vụ Lời dẫn – “ ” 7 Phiên bản của trình duyệt web để lấy trang Lời dẫn – “ ”

Mã trạng thái có thể cung cấp vài thông tin bên trong các hoạt động và giúp cô lập các vấn đề. Ví dụ, mã lỗi 404 xuất hiện khi ai đó cố gắng truy cập tơi trang web không tồn tại, có thể do liên kết URL không chính xác. Sau đây là vài ví dụ phổ biến:

Code Miêu tả

200 Yêu cầu thành công

304

Yêu cầu thành công nhưng trang web đã yêu cầu không được sửa chữa từ khi các bản hiện tại trong trình duyệt web của cache. Có nghĩa là trang web không được gửi tới trình duyệt ở xa.

401 Truy cập không được phép. Ai đó sử dụng một tài khoản không chính xác

403 Thường xuất hiện khi file trang web được sở hữu bởi người quản trị mạng

404 Không tìm thấy. Trang yêu cầu không tồn tại

500 Lỗi server bên trong. Thường do các tập lệnh CGI, cần kiểm tra file error_log.

Bảng 4.4: Ví dụ mã trạng thái

4.11.7 File ghi lỗi Apache

File /var/log/httpd/error_log chứa các thông tin hữu ích về các lỗi, không giống như file: /var/log/httpd/access_log chúng không có định dạng chuẩn. Kiểu lỗi thường thấy là các truy vấn không tồn tại hay yêu cầu không hợp lệ. File này bao gồm các các lỗi khi khởi động Apache. File này cũng là vị trí mà các lỗi tập lệnh CGI được viết. Nhiều trường hợp các tập lệnh CGI bị lỗi với màn hình trống trên trình duyệt, thì vấn đề do file: /var/log/httpd/error_log là phù hợp nhất.

4.12 Tổng kết

Các Website cá nhân hay các tổ chức thương mại là rất phổ biến rộng rãi và tiện ích vì mọi người có thể chia sẻ các thông tin thú vị cho nhau và cho phép mọi người có thể những người bạn mới hoặc gặp đối tác làm ăn,vv… Apach là một trong những công nghệ mạnh nhất hiện này, với việc cấu hình thành công Apache cũng như giải quyết các vấn đề liên quan trợ giúp rất tốt khi triển khai xây dựng các ứng dụng khác.

KẾT LUẬN

Đồ án đã xây dựng được chương trình theo đúng các bước và yêu cầu mà bài toán đã đặt ra ban đầu. Các chương trình có những ưu, nhược điểm sau:

Ưu điểm:

Nghiên cứu cơ sở lý thuyết và cơ chế hoạt động của DHCP, DNS, APACHE từ đó xây dựng quy trình chung cho việc xây dựng các ứng dụng không chỉ trên hệ điều hành Linux mà trong mọi hệ điều hành khác.

Cấu hình được các ứng dụng và đã chạy thử chương trình thành công. Hình thành các bước cơ bản để xây dựng các ứng dụng trong hệ điều hành Linux nói chung.

Có thể triển khai các ứng dụng DHCP, DNS, Apache ngay vào trong thực tế. Nhược điểm:

Phần cấu hình phía khách (client) chưa hoàn thiện. Do thời gian không cho phép nên phần cấu hình cho các máy khách chưa thể sử dụng được các ứng dụng như đã đề cập ở trên.

Khi cấu hình các ứng dụng trên các hệ điều hành khác hay bản khác của Fedora có thể phải thay đổi cách cấu hình.

Hướng phát triển trong tương lai:

Hoàn thiện phần cấu hình ở phía khách (client) cho các ứng dụng.

Cấu hình các ứng dụng khác dựa trên nền các ứng dụng trên như: TFTP, Sendmail, Samba,...

Do thời gian nghiên cứu và làm đồ án có hạn và trình độ bản thân còn hạn chế nên đồ án không thể tránh khỏi những thiếu sót. Em rất mong được sự đóng góp ý kiến của các thầy cô giáo và các bạn. Một lần nữa em xin chân thành cảm ơn các thầy, cô giáo khoa Công nghệ thông tin trường Đại học Xây dựng và đặc biệt là Thạc sĩ Bùi Thanh Hương đã giúp đỡ em hoàn thành đồ án này!

TÀI LIỆU THAM KHẢO

Tài liệu tiếng Việt

1. Nguyễn Thúc Hải (1999), Mạng máy tính và các hệ thống mở, NXB Giáo dục, Hà Nội

2. Nguyễn Thanh Thuỷ (2000), Nhập môn hệ điều hành Linux, NXB KH&KT, Hà Nội

Tài liệu tiếng Anh

1. Bud Millwood (2004), DHCP Turbo Administrator’s Guide, http://www.weird.solutions.com

2. Gerhard Mourani (2000), Securing and Optimizing Linux, Open Network Architecture ® and OpenDocs Publishing

3. Không biết tên, Apache web server administration, Publisher International Technology Solutions, Inc (2001)

4. Matt Welsh, Phil Hughes,... (1998), Linux Installation and Getting Started, http://ssc.com

5. Olaf Kirch (1994), The Linux Network Administrator’s Guide, okir@monad.swb.de

6. Patric Volkerding, Kevin Reichard,...(2001), Linux Configuration and Installation, Publisher IDG Books Worldwide, Inc.

Trang Web 1. http:// www.manguon.com 2. http://www.apache.org 3. http:// www.cisco.com 4. http://www.linuxhomenetworking.com 5. http://www.redhat.com

Một phần của tài liệu Đồ án xây dựng cấu hình các ứng dụng phía server trong hệ điều hành linux fedora 5 0 (Trang 89)

Tải bản đầy đủ (PDF)

(95 trang)