Cấu hình Ubuntu server và cài đặt các bảo mật cần thiết:
1. Cài đặt tường lửa
2. Cài đặt antivirus
3. Cài đặt LAMP (Linux Apache, MySQL, PHP)
4. Cài đặt quản trị
Link server mẫu: http://megaurl.in/IZb9
1. CÀI ĐẶT VÀ BẢO MẬT
LINUX SERVER
GVHD: Nguyễn Hữu Hiếu
Lớp L03
STT Họ tên MSSV
1 Huỳnh Hồng Hiển 1411239
2 Hồ Ngọc Sơn 1413289
3 Lê Xuân Hải 1411055
4 Hồ Quang Thanh 1413494
2. Mật mã & An ninh mạng – Bài tập lớn 2 3
MỤC LỤC
I. Tóm tắt .......................................................................................................................................................5
1. Đề tài 1: ..................................................................................................................................................5
2. Giới hạn..................................................................................................................................................5
II. Các chức năng của hệ thống.............................................................................................................6
1. Cài đặt đầu tiên trên server..............................................................................................................6
a) Tạo user mới:......................................................................................................................................6
b) Lấy IP của server:...............................................................................................................................6
c) Cài đặt OpenSSH cho server ............................................................................................................6
d) Cài đặt Apache2 .................................................................................................................................6
e) Cài đặt SSL ..........................................................................................................................................7
f) Cài đặt MySQL ....................................................................................................................................8
g) Cài đặt PHP5.......................................................................................................................................9
h) Cài đặt phpMyAdmin:......................................................................................................................10
i) Cài đặt GUI cho server ....................................................................................................................11
2. Firewall: Shorewall............................................................................................................................11
a) Cài đặt ShoreWall. ...........................................................................................................................11
b) Những file cấu hình cho shorewall................................................................................................14
c) Testing...............................................................................................................................................15
d) Applying Setting ..............................................................................................................................15
e) Auto update blacklist IP. .................................................................................................................16
3. Lọc web: DansGuardian ...................................................................................................................17
a) Cài đặt lọc web: DansGuardian .....................................................................................................17
b) Cấu hình DansGuardian .................................................................................................................17
c) Cấu hình Tinyproxy..........................................................................................................................18
d) Khởi động service ............................................................................................................................18
e) Những file cần cấu hình..................................................................................................................18
4. Antivirus: Clam Antivirus.................................................................................................................18
3. Mật mã & An ninh mạng – Bài tập lớn 2 4
a) Cài đặt ClamAV.................................................................................................................................18
b) Chỉnh sửa file clamd.conf ...............................................................................................................19
c) Chỉnh sửa file freshclam.conf ........................................................................................................19
d) Mở clamav-daemon và khởi đông lại để cập nhật tùy chỉnh.....................................................20
e) Cập nhật cơ sở dữ liệu mới thủ công ............................................................................................20
f) Quét virus với lệnh: sudo clamdscan “đường dẫn file/thư mục”...............................................20
5. Quản trị: Webmin ..............................................................................................................................21
a) Thêm webmin repository ...............................................................................................................21
b) Cài đặt Webmin:...............................................................................................................................22
III. Tổng kết ...............................................................................................................................................23
IV. Phụ lục..................................................................................................................................................23
4. Mật mã & An ninh mạng – Bài tập lớn 2 5
I. Tóm tắt
1. Đề tài 1:
Trong bài tập lớn này, nhóm cần phải triển khai một hệ thống bức tường lửa với
nhiều chức năng bổ sung. Nhóm có thể dùng các mã nguồn mở có trên web như
Shorewall, Squid, SquidGuard, DansGuardian, ClamAV, Webmin,...
Hệ thống của nhóm phải có các chức năng sau:
Firewall: bộ lọc gói có trạng thái, không giới hạn số lượng giao tiếp mạng, nhiều
giao tiếp mạng trên một zone và nhiều zone trên một giao tiếp, quản lý địa chỉ
linh động (NAT, PAT).
Lọc Web: chặn dựa trên URL/Keyword/Pharse, chặn Java Applet, Cookies, Active
X.
Antivirus: Hỗ trợ lọc trên các giao thức HTTP/SMTP/POP3/IMAP/FTP/IM và cơ sở
dữ liệu về virus được cập nhật tự động.
AntiSpam: Hỗ trợ lọc dựa trên Real-Time Blacklist/Open Relay Database Server,
keyword/Phrase, IP Addresses Blacklist và cơ sở dữ liệu về các loại này được cập
nhật tự động.
Quản trị: Thông qua Web.
2. Giới hạn
Trong giới hạn đề tài, báo cáo này xin được trình bày về tác dụng, cách cài đặt (có
hình ảnh demo đi kèm) một số các công cụ mã nguồn mở đáp ứng được các chức
năng trên cho một server chạy hệ điều hành Ubuntu Server. Tất cả các câu lệnh,
thao tác trong báo cáo được thực hiện trên một máy chủ giả định cấu hình CPU 2
core, RAM 2 GB sử dụng Ubuntu Server phiên bản 16.04.
5. Mật mã & An ninh mạng – Bài tập lớn 2 6
II. Các chức năng của hệ thống
1. Cài đặt đầu tiên trên server
a) Tạo user mới:
sudo adduser <user name>
Trong trường hợp này:
sudo adduser thanh
Thêm user mới vào nhóm sudo (sudo group):
sudo usermod –aG sudo thanh
b) Lấy IP của server:
ip route get 8.8.8.8 | awk '{print $NF; exit}'
Server hiện tại có Internal IP: 192.168.242.133
c) Cài đặt OpenSSH cho server
sudo apt-get install openssh-server
d) Cài đặt Apache2
Cài đặt:
sudo apt-get update
6. Mật mã & An ninh mạng – Bài tập lớn 2 7
sudo apt-get install apache2
Sau khi cài thành công Apache2, ra ngoài trình duyệt ta kiểm tra bằng cách vào
địa chỉ http://192.168.242.133/
Nếu cài đặt thành công nó hiển thị trang web “It works!”
e) Cài đặt SSL
Khởi động SSL Module: sudo a2enmod ssl
Restart Apache: sudo service apache2 restart
Tạo thư mục mới chứa server key và certificate: sudo mkdir /etc/apache2/ssl
Tạo Self Signed SSL Certificate
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout
etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
7. Mật mã & An ninh mạng – Bài tập lớn 2 8
Cài đặt Certificate
sudo nano /etc/apache2/sites-available/default-ssl.conf
Thêm và sửa các dòng sau
ServerName demo.com:443
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
Kích hoạt SSL
sudo a2ensite default-ssl
Restart Apache2 để mọi cài đặt được áp dụng
sudo service apache2 reload
f) Cài đặt MySQL
Cài đặt:
sudo apt‐get install mysql‐server php‐mysql
Configuration: (Password cho root user là 123)
Cấu hình bảo mật cho MySQL server:
sudo mysql_secure_installation
8. Mật mã & An ninh mạng – Bài tập lớn 2 9
Kiểm tra MySQL server:
systemctl status mysql.service
g) Cài đặt PHP5
sudo apt-get install php libapache2-mod-php php-mcrypt
Để kiểm tra PHP và Apache có tương thích với nhau không, ta sẽ khởi động lại
Apache bằng câu lệnh:
sudo service apache2 restart
Sau đó, tạo 1 file test.php:
sudo nano /var/www/html/test.php
với nội dụng như sau:
9. Mật mã & An ninh mạng – Bài tập lớn 2 10
<?php
phpinfo();
Đăng nhập bằng địa chỉ: http://192.168.242.133/test.php trình duyệt hiển thị như
sau, ta đã cài đặt PHP thành công.
h) Cài đặt phpMyAdmin:
Bước đầu tiên, sử dụng lệnh sau để cài đặt phpMyAdmin:
sudo apt-get install phpmyadmin
Trong qúa trình cài đặt, hệ thống sẽ hỏi chúng ta chọn web server nào được tự
động cấu hình khi chạy phpMyAdmin. Chọn apache2.
Sau đó, hệ thống sẽ yêu cầu tạo mật khẩu cho phpMyAdmin: 123
Mở file /etc/apache2/apache2.conf thêm dòng này vào cuối file:
10. Mật mã & An ninh mạng – Bài tập lớn 2 11
Include /etc/phpmyadmin/apache.conf
Cuối cùng, khởi động lại Apache bằng lệnh:
sudo service apache2 restart
i) Cài đặt GUI cho server
sudo apt‐get install ubuntu‐desktop
2. Firewall: Shorewall
Mọi lưu thông mạng đều được gửi dạng packet. Một lượng lớn lưu thông được chia
ra thành những phần nhỏ dễ xử lý và được tập hợp lại khi đến đích. Packet header
của mọi packet chứa thông tin cách đến và nơi đến và thông tin này chính xác là
những thông tin mà firewall cần dùng để phát huy tính năng của mình:
Cho phép hoặc không cho phép packet dựa trên địa chỉ IP nguồn/đích
Cho phép hoặc không cho phép packet dựa trên cổng nguồn/đích
Cho phép hoặc không cho phép packet dựa trên giao thức
Cho phép hoặc không cho phép packet dựa trên cờ hiệu của giao thức xác định
Nói cách khác, firewall lọc theo thông tin trong header, không phải nội dung packet.
Nhờ vậy firewall dễ cài đặt, đơn giản, có thể dự báo trước các nguồn tấn công nhưng
lại không quét được các nội dung trong packet.
Ở đây nhóm sử dụng Shorewall – tên đầy đủ là Shoreline Firewall, là một công cụ
cấp cao cho phép tạo bộ lọc packet thông qua một số configuration file – để hiện
thực firewall cho hệ thống.
a) Cài đặt ShoreWall.
11. Mật mã & An ninh mạng – Bài tập lớn 2 12
sudo apt-get install shorewall
Set IP_FORWARDING = Keep IP_WORWARDING = On
Trong file (/etc/shorewall/shorewall.conf)
12. Mật mã & An ninh mạng – Bài tập lớn 2 13
Set Startup = 0 Starup = 1
Trong file (/etc/default/shorewall)
13. Mật mã & An ninh mạng – Bài tập lớn 2 14
b) Những file cấu hình cho shorewall.
Những file này chưa tồn tại, phải tạo mới và cấu hình chúng.
/etc/shorewall/interfaces
Tại đây, chúng ta liên kết các interface với zone. Ta có thển có nhiều interface
trên 1 zones. Và nhiều zones trên cùng 1 giao tiếp.
Trong phần OPTIONS chúng ta có thể thêm vào các tùy chọn như : routefilter,
tcpflags. Các tùy chọn này giúp lọc ra một số gói tin không hợp lệ và rác mà
chúng ta thường thấy trên internet.
/etc/shorewall/zones
Fw luôn luôn là LinuxShoreWall đang chạy, và hoàn toàn độc lập với
interfaces, địa chỉ ip, hoặc các cài đặt mạng khác.
Ở đây chúng ta đặt tên các zones và chỉ ra kiểu phiên bản IP.
/etc/shorewall/policy
Mỗi dòng cấu hình trong file policy có nghĩa là:
“Nếu một gói tin được gửi từ ___ đến ___ hãy ___ gói tin đó.”
/etc/shorewall/rules
Mỗi dòng cấu hình trong file rules có thể hiểu là:
14. Mật mã & An ninh mạng – Bài tập lớn 2 15
“___ gói tin nếu nó được gửi từ ___ đến ___ có giao thức là ___ đến cổng ___.”
/etc/shorewall/masq (NAT,PAT)
File này cần thiết nếu bạn muốn shorewall box của mình trở thành bộ định
tuyến.
Về cơ bản, PAT cho phép router liên lạc giữa địa chỉ External IP (trong hình là
ens33) với tất cả địa chỉ nội bộ (trong hình chưa có – có thể thêm vào tùy
theo máy chủ)
c) Testing
sudo shorewall check
d) Applying Setting
sudo shorewall restart
15. Mật mã & An ninh mạng – Bài tập lớn 2 16
e) Auto update blacklist IP.
Khi chạy file bên dưới sẽ tự đông cập nhật blacklist IP từ 2 tên miền đề cập trong
URL[0] và URL[1].
Tạo một file .sh như sau:
BLACKLIST="/etc/shorewall/blacklist"
URL[0]="http://feeds.dshield.org/block.txt"
URL[1]="http://www.spamhaus.org/drop/drop.lasso"
# Temporary dump staging folder
TMP=$(mktemp -d -t tmp.XXXXXXXXXX)
function finish {
rm -rf "$TMP"
}
trap finish EXIT
cat $BLACKLIST > "$TMP/blacklist"
16. Mật mã & An ninh mạng – Bài tập lớn 2 17
cat /dev/null > $BLACKLIST
echo "#AUTO LIST" >> "$TMP/blacklist"
## top 20 attacking class C (/24)
wget -q -O - ${URL[0]} | sed '1,/Start/d' | sed '/#/d' | awk '{print $1,$3}' | sed
's/ ///' >> "$TMP/blacklist"
## Spamhaus DROP List
wget -q -O - ${URL[1]} | sed '1,/Expires/d' | awk '{print $1}' >>
"$TMP/blacklist"
echo "#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT
REMOVE" >> "$TMP/blacklist"
cat "$TMP/blacklist" > $BLACKLIST
shorewall refresh &>/dev/nul
3. Lọc web: DansGuardian
a) Cài đặt lọc web: DansGuardian
Cài đặt: sudo apt-get install tinyproxy dansguardian
b) Cấu hình DansGuardian
sudo nano -c /etc/dansguardian/dansguardian.conf
Vô hiệu dòng 3 (đặt dấu “#” trước "UNCONFIGURED"),
Kiểm tra lại các thông số sau:
17. Mật mã & An ninh mạng – Bài tập lớn 2 18
filterport = 8080
proxyport = 3128
Sau đó lưu lại và thoát ra.
c) Cấu hình Tinyproxy
sudo nano -c /etc/tinyproxy.conf
Tùy vào phiên bản mà file config của Tinyproxy sẽ được đặt trong hoặc không
đặt trong thư mục /tinyproxy
Kiểm tra và sửa: Port 3128
d) Khởi động service
sudo /etc/init.d/dansguardian start
sudo /etc/init.d/tinyproxy start
e) Những file cần cấu hình
dansguardian.conf:
dansguardianf1.conf:
bannedsitelist: danh sách banned website
bannedurllist: ban 1 URL mặc định
bannedphraselist: ban từ khóa
bannediplist: Ban danh sách IP
exceptioniplist: White IP list
exceptionsitelist: Whitelist configurations cho 1 domain name
exceptionurllist: Whitelist configurations dành cho URL
exceptionphraselist: Whitelist configurations cho từ khóa
4. Antivirus: Clam Antivirus
a) Cài đặt ClamAV
sudo apt-get install clamav clamav-freshclam clamav-daemon libclamunrar7
18. Mật mã & An ninh mạng – Bài tập lớn 2 19
b) Chỉnh sửa file clamd.conf
sudo nano /etc/clamav/clamd.conf
Thêm 2 dòng sau, “ubuntusv” là username:
OfficialDatabaseOnly false
VirusEvent mv $CLAM_VIRUSEVENT_FILENAME /home/ubuntusv/quarantine
c) Chỉnh sửa file freshclam.conf
sudo nano /etc/clamav/freshclam.conf
4 dòng cuối để cập nhật tự động cơ sở dữ liệu về virus mỗi giờ.
19. Mật mã & An ninh mạng – Bài tập lớn 2 20
d) Mở clamav-daemon và khởi đông lại để cập nhật tùy chỉnh
sudo systemctl enable clamav-daemon
sudo systemctl restart clamav-daemon
e) Cập nhật cơ sở dữ liệu mới thủ công
Trong lần đầu thực thi lệnh “freshclam” để cập nhật cơ sở dữ liệu virus, vì
ClamAV mới được cài đặt nên vẫn chạy trong process, cần phải kill rồi mới thực
thi lệnh:
sudo freshclam
Sau khi cập nhật thành công reboot lại Ubuntu.
f) Quét virus với lệnh: sudo clamdscan “đường dẫn file/thư mục”
Đánh giá:
Cần tắt ClamAV mới có thể cập nhật thủ công.
Download hoặc copy ClamAV sẽ không quét nhưng duyệt web hoặc thực thi
lệnh, ... ClamAV sẽ quét. Nếu có bất kì phần mềm độc hại hoặc virus ClamAV
sẽ nhận ra và di chuyển tới thư mục "quarantine" đã tạo ở trên. Có thể kiểm
tra log tại "/var/log/clamav/clamav.log".
Testing :
Có thể cài đặt NO harm virus testing files for testing.
sudo apt-get install clamav-testfiles
The NO harm virus testing files are located at "/usr/share/clamav-testfiles".
20. Mật mã & An ninh mạng – Bài tập lớn 2 21
Example:
5. Quản trị: Webmin
a) Thêm webmin repository
Trước hết ta cần thêm Webmin repository để ta có thể dễ dàng install và update
Webmin. Thêm Webmin repository vào /etc/apt/sources.list
sudo nano /etc/apt/sources.list
Thêm dưòng này vào /etc/apt/sources.list:
deb http://download.webmin.com/download/repository sarge contrib
Thêm Webmin PGP key:
wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc
Update repository list
sudo apt-get update
21. Mật mã & An ninh mạng – Bài tập lớn 2 22
Để không bị lỗi “Unable to locate package” ta cần phải chạy update repository list
cho apt.
b) Cài đặt Webmin:
sudo apt-get install webmin
Thêm cổng 10000 vào Ubuntu firewall
sudo ufw allow 10000
Ta sẽ truy cập vào server thông qua địa chỉ; https://192.168.242.133:10000/
Do chúng ta có là Self Signed SSL Certificate vì thế sẽ có thông báo “Không bảo
mật” từ trình duyệt, chúng ta cứ tiếp tục, và có trang sau:
22. Mật mã & An ninh mạng – Bài tập lớn 2 23
Tại đây chúng ta có thể thực hiện quản trị server.
III. Tổng kết
Báo cáo thể hiện những phương pháp cơ bản để cấu hình 1 server quản trị thông thường,
thông qua đó giúp nhóm có thể review lại kiến thức và áp dụng kiến thức hiệu quả hơn vào
thực tiễn.
Nhóm xin trân trọng cảm ơn sự trợ giúp của các thầy.
Hướng phát triển trong tương lai:
Khắc phục các lỗi trong quá trình hiện thực server: Lỗi về ClamAV, khắc phục nhược
điểm của Dansguardian
Phát triển các tính năng khác: phát hiện DDOS, Real-time Blacklist,…
IV. Tài liệu tham khảo:
1. https://www.digitalocean.com/
2. askubuntu.com
3. http://stackoverflow.com/
4. https://help.ubuntu.com/lts/serverguide/
23. Mật mã & An ninh mạng – Bài tập lớn 2 24
V. Phụ lục
Phân công công việc giữa các thành viên:
STT Họ tên Nhiệm vụ Đóng góp
1
Huỳnh Hồng
Hiển
Cấu hình iptable
Cấu hình firewall: Shorewall
27%
2
Hồ Ngọc Sơn Cấu hình cơ bản: SSL
Antivirus: ClamAV
27%
3
Lê Xuân Hải Viết và định dạng báo cáo, tìm
hiểu sơ qua về các công cụ, đóng
góp ý kiến trong buổi họp.
19%
4
Hồ Quang Thanh Cấu hình cơ bản: LAMP, SSL.
Cấu hình quản trị Webmin
Cài đặt bộ lọc DansGuardian
27%