Buổi 5. SAMBA, DNS và Firewall
📝 ĐỀ BÀI
1. Cài đặt CentOS
Câu 1.1
Thực hiện cài đặt
CentOS 6(hoặcCentOS 7,8) vào máy tính cá nhân (hoặc máy ảo)
Link file ISO CentOS 8
Câu 1.2
Cài đặt dịch vụ
Web Servertrên máy ảo. Tạo một trang web đơn giảnindex.htmllưu vào thư mục/var/www/html/myweb
Đã làm trong bài thực hành Buổi 4
2. Cài đặt và cấu hình SAMBA
💡 KIẾN THỨC
Samba là dịch vụ chia sẻ file giữa các nền tảng khác nhau như Windows và Linux bằng cách sử dụng giao thức SMB/CIFS.
Câu 2.1
Cài đặt dịch vụ
Sambabằng lệnh :$ yum install samba

==> Bạn có thể gõ samba --version để kiểm tra đã cài đặt chưa.
Câu 2.2
Tạo người dùng và nhóm người dùng chia sẻ dữ liệu:
$ adduser tuanthai $ passwd tuanthai $ groupadd lecturers $ usermod -aG lecturers tuanthai

Câu 2.3
Tạo thư mục cần chia sẻ và phân quyền :
$ mkdir /data $ chgrp lecturers /data $ chmod -R 775 /data

Câu 2.4
Cấu hình dịch vụ
SAMBA$ cp /etc/samba/smb.conf /etc/samba/smb.conf.orig $ nano /etc/samba/smb.conf... [data] comment = Shared folder for lecturers path = /data browsable = yes writable = yes read only = no valid users = @lecturers

💡 GIẢI THÍCH
comment: chú thíchpath: đường dẫn đến thư mục cần kết nốiSambabrowsafe: kiểm soát việc chia sẻ file có được nhìn thấy trong chế độ thựcwritable: Cho phép ghi file (đảo ngược vớiread only)read only: Chỉ cho phép đọc (đảo ngược vớiread only)valid users: người dùng có hiệu lực
==> Tham khảo cách config tại đây
Câu 2.5
Thêm người dùng cho dịch vụ
SAMBAbằng lệnh :$ smbpasswd -a tuanthai

Câu 2.6
Cấu hình
SELINUXcho phépSamba$ setsebool -P samba_export_all_rw on $ setsebool -P samba_enable_home_dirs on
samba_export_all_rw: cho phép xuất bất kỳfileshaydiretoriesnào, cho phép quyền đọc và ghisamba_enable_home_dirs on: cho phép chia sẻ thư mục chính của người dùng
==> Tham khảo tại đây
Câu 2.7
Tắt tường lửa
$ service iptables stop

Câu 2.8
Khởi động lại dịch vụ
Samba:$ service smb start

Câu 2.9
Trên máy
Windows, bật tính năng hỗ trợSMB1:Mở
Control Panel➞Programs➞Turn Windows feature on or off➞SMB 1.0/CIFS FIle Sharing Support➞ ChọnSMB 1.0/CIFS Client
==> Cài CentOS trên ổ cứng, không sử dụng máy ảo, nên không làm bước này
Câu 2.10
Trên
File Exployer, chọn tính năngAdd a network locationđể kết nối tớiSamba serversử dụng địa chỉ\\<IP máy CentOS>\data
Thực hiện các bước sau để kết nối giao thức Samba trên CentOS :
B1: Vào
Nautilus(hay còn gọi là Finder) ⇨ ChọnOther Locations⇨ ĐiềnIPcủa máy chạySamba⇨ ChọnConnect
B2: Chọn
Registerd Uservà điền tài khoản và mật khẩu đăng kýSambaở trên ⇨ ChọnConnect
B3: Bạn có thể tạo
file(ví dụ tạofile1như sau)
💡 FACT
Vào máy kết nối
Sambakiểm tra như sau :
==> Như đã thấy
file1đã xuất hiện
3. Cài đặt và cấu hình dịch vụ DNS
💡 KIẾN THỨC
DNS (Domain Name System) là giải pháp dùng tên miền thay cho địa chỉ IP khó nhớ khi sử dụng các dịch vụ mạng. Truy cập đến website của Khoa CNTT-ĐH Cần Thơ bằng địa chỉ nào dễ hơn ?
| http://203.162.36.146 | http://cit.ctu.edu.vn |
|---|
Bạn cần phải cài đặt phần mềm BIND trên CentOS để phân giải tên miền qtht.com.vn
Câu 3.1
Cài đặt
BINDvà các công cụ cần thiết :$ yum install bind bind-utils

==> Bạn có thể gõ named -v để kiểm tra bind-utils đã cài chưa.
Câu 3.2
Cài hình
DNS server:$ nano /etc/named.conf... option { listen-on port 53 { 127.0.0.1; any;}; ... allow-query { localhost; any;}; recursion yes; ... }; loggin { ... }; }; zone "." IN { ... }; zone "<tên miền>" IN { type master; file "forward.qtht"; allow-update { none; }; }; zone "<24bit mạng đảo chiều>.in-addr.arpa" IN { type master; file "reverse.qtht"; allow-update { none; }; }; ...


Câu 3.3
Tạo tập tin cấu hình phân giải xuôi:
$ cp /var/named/named.localhost /var/named/forward.qtht $ chgrp named /var/named/forward.qtht $ nano /var/named/forward.qtht$TTL 1D @ IN SOA @ <tên miền>. ( 0 ;Serial 1D ;Refresh 1H ;Retry 1W ;Expire 3H ;Minimum TTL ) @ IN NS dns.qtht.com.vn. dns IN A <IP máy> www IN A <IP máy> htql IN A 8.8.8.8

Câu 3.4
Tạo tập tin cấu hình phân giải ngược :
$ cp /var/named/forward.qtht /var/named/reverse.qtht $ chgrp named /var/named/reverse.qtht $ nano /var/named/reverse.qtht$TTL 1D @ IN SOA @ qtht.com.vn. ( 0 ;Serial 1D ;Refresh 1H ;Retry 1W ;Expire 3H ;Minimum TTL ) @ IN NS dns.qtht.com.vn. dns IN A <IP máy> 245 IN PTR www.qtht.com.vn.

Câu 3.5
Tắt tường lửa
$ service iptables stop

Câu 3.6
Khởi động dịch vụ
DNS$ service named start

Câu 3.7
Kiểm tra kết quả
$ nslookup www.qtht.com.vn <địa chỉ IP máy>
Phân giải xuôi

Phân giải ngược

Câu 3.8
Trên máy vật lý, cấu hình
DNS ServerlàIPcủa máy ảoCentOS. Sau đó mở trình duyệtwebvà truy cập vào địa chỉhttp://www.qtht.com.vn/myweb

💡 FACT
Cũng có thể dùng điện thoại để kết nối (Yêu cầu xài chung Wifi và thiết lập DNS custom )

4. Cấu hình tường lửa iptables
💡 KIẾN THỨC
iptables là một bộ công cụ được tích hợp trên hệ điều hành Linux để thực hiện chức năng tường lửa theo cơ chế lọc gói tin (package filtering). Iptables theo dõi lưu lượng mạng đến và đi của một máy tính và lọc nó dựa trên các luật (rules) do người dùng tự định nghĩa trước đó.
Câu 4.1
Thực thi tường lửa
$ service iptables start

Câu 4.2
Hiển thị các
ruleshiện có trêniptables$ iptables -v -L --line-numbers

💡 GIẢI THÍCH

| Giải thích | INPUT | FORWARD | OUTPUT |
|---|---|---|---|
| Trừu tượng | Kiểm soát các gói đến từ route đến server của bạn | Kiểm soát các gói bắt nguồn từ server của bạn đến nhà mạng | Kiểm soát các gói được chuyển tiếp bởi server của bạn |
| Dễ hiểu | Lọc các gói dành cho server củ bạn | Lọc các gói đến server của bạn mà card wifi khác có thể truy cập | Lọc các gói có nguồn gốc từ server của bạn |
Câu 4.3
Tạo
rulescho phép các máy khác truy cập tới dịch vụWebtrênserver$ iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Tham khảo cách dùng iptables căn bản tại đây
Trước khi cho máy khác truy cập với dịch vụ
Web Server:
Sau khi cho máy khác truy cập tới dịch vụ
Web Serverbằng lệnh trên :

Câu 4.4
Tạo
rulesđể cho máy vật lý có thểpingtớiserver, các máy khác KHÔNGpingđược$ iptables -I INPUT 2 -p icmp -s <IP cho phép> -j ACCEPT
Sử dụng
Termux của Android để thao tác các lệnh
🤔 LƯU Ý
Android đang sử dụng chung mạng Wifi của máy dùng iptables và có IP như sau : 192.168.10.101 (riêng máy này thôi !)
Trước khi thiết lập
ruleschặnping:
Androidsử dụngping
CentOSsử dụngping
==> Cả hai vẫn
pingđượcSau khi thiết lập
ruleschặnpingbằng lệnh trên :
🤔 LƯU Ý
qtht.com.vntương đương192.168.10.135vì đã cấu hìnhDNSbên trên
Androidsử dụngping
CentOSsử dụngping
==> Sau khi thiết lập rules chỉ có máy có IP:192.168.10.135 là ping được đến server.
Câu 4.5
Tạo
rulesđể KHÔNG cho người dùng trên máyCentOStruy cập tới địa chỉfacebook.com$ iptables -A OUTPUT -p tcp -m string --string facebook --algo kmp -j REJECT
Sử dụng lệnh trên để gửi gói truy cập đến server của Facebook :

==> Sau khi đã áp dụng rules thì chúng ta không thể truy cập facebook được nữa :

Câu 4.6
Lưu và phục hồi các
rulescủaiptables$ cp /etc/sysconfig/iptables /etc/sysconfig/iptables.orig $ iptables-save > /etc/sysconfig/iptables $ iptables-restore < /etc/sysconfig/iptables
Trước khi tắt iptables, ta nên sao lưu (backup) lại rules bằng lệnh :
$ iptables-save > /etc/sysconfig/iptables
🤔 LƯU Ý
Vì sau khi tắt iptables và khởi động lại, các rules thiết lập trước đó sẽ reset như sau :

==> Khi đó ta có thể khôi phục (restore) lại rules đã sao lưu (backup) bằng lệnh sau:
$ iptables-restore < /etc/sysconfig/iptables
🧚 KẾT QUẢ

(Vì mình đã xoá rules chặn facebook trước đó nên không còn ở OUTPUT nữa)

