SAMBA
, DNS
và Firewall
Buổi 5. 📝 ĐỀ 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 Server
trên máy ảo. Tạo một trang web đơn giảnindex.html
lưu vào thư mục/var/www/html/myweb
Đã làm trong bài thực hành Buổi 4
SAMBA
2. Cài đặt và cấu hình 💡 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ụ
Samba
bằ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ốiSamba
browsafe
: 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ụ
SAMBA
bằng lệnh :$ smbpasswd -a tuanthai
Câu 2.6
Cấu hình
SELINUX
cho 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ỳfiles
haydiretories
nà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 server
sử 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ềnIP
của máy chạySamba
⇨ ChọnConnect
B2: Chọn
Registerd User
và đ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ạofile1
như sau)💡 FACT
Vào máy kết nối
Samba
kiểm tra như sau :==> Như đã thấy
file1
đã xuất hiện
DNS
3. Cài đặt và cấu hình dịch vụ 💡 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
BIND
và 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 Server
làIP
của máy ảoCentOS
. Sau đó mở trình duyệtweb
và 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
)
iptables
4. Cấu hình tường lửa 💡 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
rules
hiệ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
rules
cho phép các máy khác truy cập tới dịch vụWeb
trê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 Server
bằng lệnh trên :
Câu 4.4
Tạo
rules
để cho máy vật lý có thểping
tớ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
rules
chặnping
:Android
sử dụngping
CentOS
sử dụngping
==> Cả hai vẫn
ping
đượcSau khi thiết lập
rules
chặnping
bằng lệnh trên :🤔 LƯU Ý
qtht.com.vn
tương đương192.168.10.135
vì đã cấu hìnhDNS
bên trênAndroid
sử dụngping
CentOS
sử 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áyCentOS
truy 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
rules
củ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)