Tải bản đầy đủ (.pdf) (26 trang)

báo cáo bài lập lớn linux

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (7.09 MB, 26 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────

BÀI TẬP LỚN
MÔN: LINUX VÀ PHẦN MỀM NGUỒN MỞ

Họ tên
: Thái Văn Lâm
MSSV
: 20198237
Lớp
: IT-LTU
Giáo viên hướng dẫn : Bành Thị Quỳnh Mai


Phần 1: cài đặt Apache Virtual Host
1.Giới thiệu
Máy chủ web Apache là cách phổ biến nhất để phục vụ nội dung web trên internet. Nó chiếm hơn một nửa số trang
web đang hoạt động trên internet và cực kỳ mạnh mẽ và linh hoạt.
Apache chia chức năng và các thành phần của nó thành các đơn vị riêng lẻ có thể được tùy chỉnh và cấu hình độc lập.
Đơn vị cơ bản mô tả một trang web hoặc miền riêng lẻ được gọi là máy chủ ảo.
Các chỉ định này cho phép quản trị viên sử dụng một máy chủ để lưu trữ nhiều tên miền hoặc trang web trên một giao
diện hoặc IP duy nhất bằng cách sử dụng cơ chế đối sánh. Điều này có liên quan đến bất kỳ ai muốn lưu trữ nhiều
hơn một trang web trên một máy chủ duy nhất.
Mỗi miền được định cấu hình sẽ hướng khách truy cập đến một thư mục cụ thể chứa thơng tin của trang web đó,
khơng bao giờ chỉ ra rằng cùng một máy chủ cũng chịu trách nhiệm cho các trang web khác. Lược đồ này có thể mở
rộng mà khơng có bất kỳ giới hạn phần mềm nào miễn là máy chủ của bạn có thể xử lý tải.
2.Các bước thực hiện
B1: cài Apache
Bạn cũng sẽ cần phải cài đặt Apache để làm việc qua các bước này. Nếu bạn chưa làm như vậy, bạn có thể cài đặt


Apache trên máy chủ của mình thơng qua apt-get:

Sau khi các bước này hoàn tất, chúng ta có thể bắt đầu.
B2: Tạo cấu trúc thư mục
Bước đầu tiên mà chúng ta sẽ thực hiện là tạo một cấu trúc thư mục sẽ chứa dữ liệu trang web mà chúng ta sẽ phục
vụ cho khách truy cập.
Gốc tài liệu của chúng ta (thư mục cấp cao nhất mà Apache xem xét để tìm nội dung phục vụ) sẽ được đặt thành các
thư mục riêng lẻ trong thư mục / var / www. Chúng ta sẽ tạo một thư mục tại đây cho cả hai máy chủ ảo mà chúng ta
dự định tạo.
Trong mỗi thư mục này, chúng ta sẽ tạo một thư mục public_html sẽ chứa các tệp thực của chúng ta. Điều này mang
lại cho chúng ta một số tính linh hoạt trong lưu trữ của chúng ta.

B3: Cấp quyền
Bây giờ chúng ta có cấu trúc thư mục cho các tệp của mình, nhưng chúng thuộc sở hữu của người dùng gốc của
chúng ta. Nếu chúng tôi muốn người dùng thơng thường của mình có thể sửa đổi các tệp trong thư mục web của
chúng tôi, chúng tơi có thể thay đổi quyền sở hữu bằng cách thực hiện điều này:

Biến $ USER sẽ nhận giá trị của người dùng mà bạn hiện đang đăng nhập như khi bạn nhấn ENTER. Bằng cách làm
này, người dùng thông thường của chúng tôi hiện sở hữu các thư mục con public_html nơi chúng tôi sẽ lưu trữ nội
dung của mình.


Chúng tơi cũng nên sửa đổi các quyền của mình một chút để đảm bảo rằng quyền truy cập đọc được phép vào thư
mục web chung và tất cả các tệp và thư mục mà nó chứa để các trang có thể được phân phối chính xác:

Máy chủ web của bạn bây giờ sẽ có các quyền cần thiết để cung cấp nội dung và người dùng của bạn sẽ có thể tạo
nội dung trong các thư mục cần thiết.
B4: Tạo các trang demo cho mỗi máy chủ ảo
Tạo file index.html cho mỗi site


Chúng tơi có thể sao chép tệp này để sử dụng làm cơ sở cho trang web thứ hai, thứ ba của mình bằng cách nhập:

Sau đó, chúng tơi có thể mở tệp và sửa đổi các phần thơng tin có liên quan:
TencuaSV1:


tencuaSV2:

Lưu và đóng tệp này. Bây giờ bạn có các trang cần thiết để kiểm tra cấu hình máy chủ ảo.
B5: Tạo tệp máy chủ ảo mới
Tệp máy chủ ảo là tệp chỉ định cấu hình thực của máy chủ ảo của chúng tôi và chỉ định cách máy chủ web Apache sẽ
phản hồi với các yêu cầu miền khác nhau.
Apache đi kèm với một tệp máy chủ ảo mặc định có tên 000-default.conf mà chúng ta có thể sử dụng làm điểm khởi
động. Chúng tơi sẽ sao chép nó để tạo tệp máy chủ ảo cho từng miền của chúng tôi.
Chúng tôi sẽ bắt đầu với một tên miền, định cấu hình nó, sao chép nó cho tên miền thứ hai và sau đó thực hiện một
vài điều chỉnh cần thiết. Cấu hình Ubuntu mặc định yêu cầu mỗi tệp máy chủ ảo phải kết thúc bằng .conf.
-Creating the First Virtual Host File


Mở tệp mới trong trình chỉnh sửa của bạn với đặc quyền root:

Phần máy chủ ảo này khớp với bất kỳ yêu cầu nào được thực hiện trên cổng 80, cổng HTTP mặc định.
Đầu tiên, chúng ta cần thay đổi chỉ thị ServerAdmin thành một email mà quản trị viên trang web có thể nhận email
thơng qua.

Sau đó, chúng ta cần thêm hai chỉ thị. Đầu tiên, được gọi là ServerName, thiết lập miền cơ sở phù hợp với định nghĩa
máy chủ ảo này. Đây rất có thể sẽ là miền của bạn. Thứ hai, được gọi là ServerAlias, xác định các tên khác phải khớp
như thể chúng là tên cơ sở. Điều này hữu ích cho các máy chủ phù hợp mà bạn đã xác định, như www:

tệp virtualhost của chúng tôi sẽ trông như thế này:


Sao chép máy chủ ảo đầu tiên và tùy chỉnh cho tên miền thứ hai, thứ ba:
Bây giờ chúng ta đã thiết lập tệp máy chủ ảo đầu tiên, chúng ta có thể tạo tệp thứ hai, thứ ba bằng cách sao chép tệp
đó và điều chỉnh nó nếu cần.

Mở tệp mới với đặc quyền root trong trình chỉnh sửa của bạn:


Bây giờ bạn cần sửa đổi tất cả các phần thông tin để tham chiếu đến miền thứ hai của mình. Khi bạn hồn thành, nó
có thể trơng giống như sau:

Mở tệp mới với đặc quyền root trong trình chỉnh sửa của bạn:

Bây giờ bạn cần sửa đổi tất cả các phần thông tin để tham chiếu đến miền thứ ba của mình. Khi bạn hồn thành, nó
có thể trơng giống như sau:

B6: Bật tệp máy chủ ảo mới
Bây giờ chúng ta đã tạo các tệp máy chủ ảo của mình, chúng ta phải kích hoạt chúng. Apache bao gồm một số công
cụ cho phép chúng tôi thực hiện điều này.
Chúng tơi có thể sử dụng cơng cụ a2ensite để kích hoạt từng trang web của chúng tơi như sau:

Tiếp theo, vơ hiệu hóa trang web mặc định được xác định trong 000-default.conf:


Khi hoàn tất, bạn cần khởi động lại Apache để những thay đổi này có hiệu lực:

B7: Thiết lập tệp máy chủ lưu trữ cục bộ
Điều này sẽ chặn bất kỳ yêu cầu nào đối với các miền mà bạn đã định cấu hình và trỏ chúng đến máy chủ của bạn,
giống như hệ thống DNS sẽ làm nếu bạn đang sử dụng các miền đã đăng ký. Tuy nhiên, điều này sẽ chỉ hoạt động
trên máy tính của bạn và đơn giản là hữu ích cho các mục đích thử nghiệm.

Đảm bảo rằng bạn đang hoạt động trên máy tính cục bộ của mình cho các bước này chứ không phải máy chủ của bạn.
Bạn cần biết mật khẩu quản trị của máy tính hoặc nếu khơng thì phải là thành viên của nhóm quản trị.

(để chung ip với localhost)
B8: kiểm tra kết quả
Bây giờ bạn đã định cấu hình các máy chủ ảo của mình, bạn có thể kiểm tra thiết lập của mình một cách dễ dàng
bằng cách truy cập các miền bạn đã định cấu hình trong trình duyệt web của mình:

Phần 2: Bật mod ssl cho trang web của bạn và hiển thị thành công trên trình duyệt web


Định cấu hình kết nối SSL (Lớp cổng bảo mật), cho phép bạn thêm một giao thức mã hóa bất đối xứng bổ sung vào
HTTP chung. Giao thức SSL có thể hữu ích để tăng cường hệ thống xác thực của trang web hoặc trao đổi dữ liệu
giữa ứng dụng và máy chủ.
1. bật mod_ssl
mod_ssl là mô-đun apache cho phép ssl / https.

Khởi động lại apache2:

2. Tạo chứng chỉ SSL
Lệnh sau sẽ tạo chứng chỉ tự ký với khóa cơng khai và riêng tư có tên ssl1. Cet sẽ có hiệu lực trong 1 năm (365 ngày)

3. Định cấu hình Apache để sử dụng SSL
Chúng ta cần tạo tệp cấu hình mới trong / etc / apache2 / sites-available để cho phép ssl hoạt động.


Bây giờ chúng tơi sẽ kích hoạt cấu hình của mình bằng cách nhập

Sau đó, chúng tơi sẽ kiểm tra nó bằng cách nhập


Chúng tơi cũng cần khởi động lại máy chủ web apache2 của bạn

Testing:

Chúng tơi cũng có thể xem chi tiết chứng chỉ. Trang web sử dụng chứng chỉ mà chúng tơi đã tạo trước đó.


Phần 3: Bảo mật thư mục bằng mật khẩu
2. Định cấu hình Apache để cho phép xác thực .htaccess
Bạn có thể thực hiện việc này bằng cách chỉnh sửa tệp cấu hình Apache:

Tìm phần bắt đầu bằng Directory “/var/www/thaivanlam.com” và thay đổi dòng từ AllowOverride
none đến AllowOverride AuthConfig


3. Tạo tệp mật khẩu
Bạn có thể dùng htpasswd dịng lệnh để tạo tệp mật khẩu mà Apache có thể sử dụng để xác thực người dùng. Bây
giờ, hãy tạo một tệp .htpasswd ẩn trong /etc/apache2 thư mục cấu hình.

Thao tác này sẽ yêu cầu bạn cung cấp và xác nhận mật khẩu cho authuser1.
Bạn có thể xem tên người dùng và mật khẩu được mã hóa cho mỗi bản ghi bằng cách chạy:

4. Định cấu hình xác thực mật khẩu Apache
Bạn cần tạo một .htaccess trong thư mục web mà bạn muốn hạn chế.

Đây là ý nghĩa của đoạn mã trên:
 AuthType: Tùy chọn này xác định loại xác thực.
 AuthName: Đây là nội dung hiển thị trên trang web khi được nhắc nhập tên người dùng và mật khẩu.
 AuthUserFile: Tùy chọn này chỉ định vị trí của thông tin đăng nhập người dùng.
 yêu cầu người dùng hợp lệ: Điều này chỉ ra rằng chỉ những yêu cầu được xác thực thành cơng mới có thể tải

trang.
Lưu và đóng tệp, đồng thời khởi động lại Apache để những thay đổi này có hiệu lực.


5. Kiểm tra xác thực mật khẩu
hãy truy cập trang web của bạn trong trình duyệt web. Bạn sẽ được nhắc với tên người dùng và mật khẩu để truy cập
trang web.
Nếu bạn nhập đúng thông tin đăng nhập của người dùng, bạn sẽ được phép truy cập nội dung. Nếu bạn nhập sai
thông tin đăng nhập người dùng hoặc nhấn Cancel, bạn sẽ thấy Không được phép lỗi.

Phần 4: Cài bind9 là DNS server trên Ubuntu
Định cấu hình Máy chủ DNS BIND9
1.Cài đặt BIND9

Điều đầu tiên bạn cần làm là cập nhật danh sách gói và cài đặt BIND9.


Sau khi q trình cài đặt hồn tất, bạn có thể kiểm tra xem BIND9 đã hoạt động chưa.

2. Cấu hình BIND9
Máy chủ DNS hoạt động ngay sau khi cài đặt. Bạn cần cấu hình tùy theo mục đích sử dụng của mình. Đầu tiên, cho
phép BIND9 hoạt động thơng qua tường lửa.

Tệp cấu hình chính có tên.conf.options, hãy mở nó.


Định cấu hình BIND9 làm DNS chính
1.Tạo vùng DNS
Hãy thêm thơng tin khu vực vào cấu hình.


2. Zone file configuration
Tạo một tệp vùng từ mẫu và mở nó.
sudo cp /etc/bind/db.local /etc/bind/db.thaivanlam.com


Phần cuối của tệp chứa các bản ghi DNS. Định dạng của bản ghi: tên máy chủ <tab> class <tab> Loại bản ghi DNS
<tab> giá trị. Ở đâu:
tên máy chủ - thường giá trị này là tên miền cấp ba và “domain-name.com” được điền tự động. @ hoặc khơng có
nghĩa là một mục nhập cho tên vùng (trong trường hợp này là domain-name.com). Bạn cũng có thể chỉ định FQDN
bằng dấu chấm ở cuối (ví dụ: ns.domain-name.com.);
lớp là IN (Internet), cho biết loại mạng;
Các loại bản ghi DNS phổ biến nhất: A, NS, MX, CNAME, TXT. "A" chứa địa chỉ IP của tên miền, "NS" là địa chỉ
IP của máy chủ DNS của vùng, "MX" - máy chủ thư, "CNAME" - bí danh đề cập đến giá trị của bản ghi được chỉ
định, "TXT" - nhập cảnh;
giá trị - địa chỉ IP, tên máy chủ, thông tin văn bản.


3.Testing
Để tìm địa chỉ IP của máy chủ, chỉ cần nhập tên máy chủ
Để thực hiện tra cứu DNS ngược, hãy nhập địa chỉ IP của máy chủ

Phần 5: Cài posfix là email server và 2 users
1.Install Postfix Email Server
Bây giờ là lúc để cài đặt Postfix. Postfix là một máy chủ email được viết bằng C. Đặc điểm chính của nó là tốc độ
thực thi và bản chất mã nguồn mở. Cài đặt nó bằng lệnh sau:


Sau khi chạy lệnh trên bạn cần
 Chọn “Local only”
Sau đó, chúng ta phải nhập tên của máy chủ


Cấu hình firewall cho phép Postfix hoạt động

2.thêm User
Tạo 2 user: user1, user2

Sau đó, chúng tơi phải thêm người dùng của mình vào thư nhóm:


Điều này phải được thực hiện vì chỉ những người dùng trong nhóm thư mới có thể sử dụng tiện ích này.
3.Test the Ubuntu Mail Server
Tiếp theo, chúng tôi gửi một email đến người dùng tài khoản email khác có tên là user2. Sau đó, nhấn CTRL + D để
hồn tất. Để bắt đầu viết email, hãy nhập lệnh sau:

Bây giờ chúng ta có thể đăng nhập vào một người dùng khác và kiểm tra tiện ích mail. Ở đó, sau khi chạy lệnh mail,
chúng ta sẽ thấy email mà chúng ta vừa gửi cho người dùng thử nghiệm khác. Để truy cập email, chỉ cần viết số của
thư, trong trường hợp này là 1.

Phần 6: Thực hành tạo site cá nhân cho người sử dụng server: />Rewrite URLs with mod_rewrite for Apache
1.Introduction
Mô-đun mod_rewrite của Apache cho phép bạn viết lại URL theo cách rõ ràng hơn, dịch các đường dẫn mà con
người có thể đọc được thành các chuỗi truy vấn thân thiện với mã. Nó cũng cho phép bạn viết lại URL dựa trên các
điều kiện.
Tệp .htaccess cho phép bạn tạo và áp dụng các quy tắc viết lại mà khơng cần truy cập tệp cấu hình máy chủ. Bằng
cách đặt tệp .htaccess vào thư mục gốc của trang web của bạn, bạn có thể quản lý các đoạn viết lại trên cơ sở từng
trang hoặc từng thư mục.
2.bật mod_rewrite
Để Apache hiểu các quy tắc viết lại, trước tiên chúng ta cần kích hoạt mod_rewrite. Nó đã được cài đặt, nhưng nó bị
tắt trên cài đặt Apache mặc định. Sử dụng lệnh a2enmod để bật mô-đun:



Thao tác này sẽ kích hoạt mơ-đun hoặc thơng báo cho bạn rằng mô-đun đã được bật. Để những thay đổi này có hiệu
lực, hãy khởi động lại Apache.

mod_rewrite hiện đã được kích hoạt hồn tồn. Trong bước tiếp theo, chúng tôi sẽ thiết lập tệp .htaccess mà chúng
tôi sẽ sử dụng để xác định quy tắc ghi lại cho chuyển hướng.
3.thiết lập .htaccess
Tệp .htaccess cho phép chúng tôi sửa đổi các quy tắc viết lại của mình mà khơng cần truy cập tệp cấu hình máy chủ.
Vì lý do này, .htaccess rất quan trọng đối với bảo mật của ứng dụng web của bạn. Dấu chấm đứng trước tên tệp đảm
bảo rằng tệp được ẩn.
Trước khi bắt đầu sử dụng tệp .htaccess, bạn cần thiết lập và bảo mật một số cài đặt khác.
Theo mặc định, Apache cấm sử dụng tệp .htaccess để áp dụng các quy tắc viết lại, vì vậy trước tiên bạn cần cho phép
các thay đổi đối với tệp. Mở tệp cấu hình Apache mặc định bằng nano hoặc trình soạn thảo văn bản yêu thích của
bạn.

Bây giờ, hãy tạo một tệp .htaccess trong thư mục gốc của web.

Thêm dòng này ở đầu tệp mới để kích hoạt cơng cụ viết lại.

Giờ đây, bạn có một tệp .htaccess đang hoạt động mà bạn có thể sử dụng để quản lý các quy tắc định tuyến của ứng
dụng web của mình.
4. Configuring URL Rewrites


Ở đây, chúng tơi sẽ thiết lập một trình ghi lại URL cơ bản để chuyển đổi các URL đẹp thành đường dẫn thực tế đến
các trang. Cụ thể, chúng tôi sẽ cho phép người dùng truy cập http: //thaivanlam.com/user, nhưng hiển thị một trang
có tên user.html.
Thay vào đó, để truy cập trang bằng /user, chúng tôi sẽ tạo quy tắc viết lại.

Hãy tạo quy tắc ghi lại URL của chúng tơi. Mở tệp .htaccess.


5.Test
Site chính

Site cá nhân của người dùng

Phần 7: Thực hành tắt chế độ duyệt thư mục nếu bạn khơng có file index.htm hoặc index.html với Options -Indexes


1.Introduction
In Apache, directory listing is a default behavior that displays the contents of a directory if there is no default index
file such as index.php or index.html. In a production environment, enabling directory browsing is not recommended
since it may lead to information leakage and help attackers to determine how a website or web application is
structured and increase the attack surface.
2. Check the default directory listing behaviour
When you install Apache for the first time, it will display the default web page as shown below:

Since we want to check the default directory listing behaviour, we are going to create a directory on the root of the
website. The default virtual host is located on the directory /var/www/html.
So we are going to create one directory using the command below:

Next we create two files using a nano editor as shown below:


Remember to press CTRL+X and Y to save the files.
Next we are going to request the directory on a browser using the public IP address of our Ubuntu

As you can see above, the information we are displaying to our web visitors is quite dangerous. A malicious hacker
would just need to click any of these files to get the information. Even if you write the file in a server side scripting
language like PHP, still, this would give any attacker valuable information before they take the next step to get the

file contents.
3. Disabling the Apache directory browsing on Ubuntu


We need to change the Options directive from Options Indexes FollowSymLinks to Options -Indexes
+FollowSymLinks

Please note adding a “-” sign disables an option while a “+” sign enables the option.
Once you are done, press CTRL+X and Y to save the changes.
4. Restart Apache

5. Confirming the changes
If you try to visit the address http://127.0.0.1 /config on your browser, you will now get a forbidden error message,
“You don’t have permission to access /config/ on this server.


Phần 8: Bonus: Try to send an email from your system to another mail server such as google mail server and report
what has happened

[smtp.gmail.com]:587 :PASSWORD
PASSWORD: mật khẩu tài khoản gmail


You should get an email that comes from the SMTP account you configured.
report what has happened:


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×