You are on page 1of 81

BÀI TẬP GIAO THỨC AN TOÀN MẠNG

Sinh viên: Nguyễn Xuân Hiếu


Mã sinh viên: AT180417
Lớp: L01
Bộ môn: Giao thức an toàn mạng
Danh sách các bài đã làm
• Bài 1: Triển khai PAP và CHAP trên GNS3
• Bài 2: Triển khai Kerberos, MIT Kerberos
• Bài 3: Triển khai VPN sử dụng IPSEC, Tunneling, Transport, AH &
ESP
• Bài 4: Triển khai Telnet
• Bài 5: Triển khai SSH
• Bài 6: Triển khai POP3, SMTP
Bài 1
Mô hình thực hiện:
- Gồm hai router Cisco 7200
- Hai router được nối với nhau bằng dây Serial ở port
Se3/0 ở cả hai router
- Ứng dụng sử dụng: GNS3, Wireshark
Triển khai PAP

Cấu hình trên router NXH1 Cấu hình trên router NXH2
Bắt gói tin trên Wireshark
Phân tích:
- Gói tin Authenticate-Request
Type code = 1
Peer-ID length = 4
Password-length = 6
Peer-ID = nxh1
Password = hieune
Phân tích:
- Gói tin Authenticate-Request
Type code = 1
Peer-ID length = 4
Password-length = 6
Peer-ID = nxh2
Password = hieune
Phân tích:
- Gói tin Authenticate-Ack
Type code = 2
Gói tin không có Message
Triển khai PAP
Kết luận:
PAP (Password Authentication Protocol)
Là giao thức xác thực bắt tay 2 bước (2-way)
Xác thực bằng mật khẩu
Mật khẩu được truyền ở dạng rõ và đã bị chặn
thu trên đường truyền
Triển khai CHAP

Cấu hình trên router NXH1 Cấu hình trên router NXH2
Bắt gói tin trên Wireshark
Phân tích: Gói challange của NXH1
Giá trị ở trường Value là
một số ngẫu nhiên, được
sinh ra bởi thuật toán băm
- Độ dài của data là 25

Gói challange của NXH2


Phân tích:

Gói Response của NXH1

Gói Response của NXH2


Bài 2: Triển khai Kerberos
Mô hình thực hiện:
- Gồm server Windows 2012, 2 client Windows 7
- Hai máy chung đường mạng 10.1.20.0/24
- Ứng dụng sử dụng: VMWare workstation pro

10.1.20.108 10.1.20.8
Trên server: nâng cấp lên AD với domain:
nguyenxuanhieu-srv.class1

tạo user client1

cấu hình mạng


Trên Client1

join domain nguyenxuanhieu-srv.class1


Đặt IP
Đăng nhập trên Client1
Bắt gói tin trên Wireshark
Gói tin AS-REQ là yêu cầu người dùng xác thực ban đầu (khởi
tạo dịch vụ) yêu cầu này được chuyển trực tiếp tới các thành
phần được gọi là KDC Authentication Server (AS).
Gói tin AS-REP là trả lời của máy chủ xác thực để yêu cầu trước đó.

Về cơ bản nó chứa TGT (mã hóa bằng cách sử dụng khóa TGS bí mật) và khóa phiên (được mã hóa bằng khóa bí
mật của người dùng yêu cầu).
Gói tin TGS-REQ là yêu cầu từ khách hàng
đến Cấp vé máy chủ (TGS) cho một vé
thông hành.
Về cơ bản nó chứa TGT (mã hóa bằng
cách sử dụng khóa TGS bí mật) và khóa
phiên (được mã hóa bằng khóa bí mật
của người dùng yêu cầu).
Gói tin TGS-REP là trả lời của
Cấp vé máy chủ để yêu cầu trước
đó.
Nằm bên trong là vé dịch vụ theo
yêu cầu (được mã hóa với khóa
bí mật của dịch vụ) và phiên dịch
vụ một khóa tạo ra bởi TGS và
được mã hóa bằng khóa phiên
trước đó được tạo ra bởi AS.
MIT Kerberos

Ubuntu 22.04 Ubuntu server


10.1.20.105 10.1.20.8
Cài đặt MIT Kerberos bằng command
sudo apt install krb5-admin-server krb5-config
chỉnh sửa /etc/hosts để trỏ vào server
Sửa file /krb5dc/krb5.conf, tạo vùng mới
Tạo admin xác thực
Tạo user để xác thực bằng krb
Cài đặt krb5-user trên client
Sửa file config trên server
/etc/hosts và /etc/krb5.conf
Sửa file config để thêm domain ở
/etc/krb5dc/krb5.conf
Kiểm tra xác thực trên client
Gói tin AS-REQ
Gói tin AS-REP
Gói tin Client gọi dịch vụ từ server
Gói tin server phản hồi dịch vụ cho client
Bài 3: Triển khai VPN sử
dụng IPSEC
Mô hình thực hiện:
- Gồm server Ubuntu 22.04, client Ubuntu
- Hai máy chung đường mạng 10.1.20.0/24
- Ứng dụng sử dụng: VMWare workstation pro

VPN (Strongswan)

10.1.20.105 10.1.20.8
Trên máy chủ và máy khách
Cài đặt Strongswan
Chia sẻ khóa

Máy khách

Máy chủ
Thiết lập transport AH

Máy khách

Máy chủ
Kết quả Transport AH

=> Triển khai thành công transport AH


PHÂN TÍCH GÓI TIN AH / TRANSPORT

• Protocol: Authentication Header (51) : AH được


đóng gói bởi giao thức IP và trường protocol trong IP
là 51.
• Next header(1 byte): ICMP(1)_Gói tin ICMP code
bằng 1.
• Length (1 byte) = 4, phần payload có 4 byte_Chiều
dài của AH Header.
• Reserved:(2 byte) Giá trị được giành để sử dụng
trong tương lai ( cho đến thời điểm này nó được
biểu thị bởi các chỉ số 0).
• AH SPI(4 byte): Giá trị tuỳ ý mà IPSec lựa chọn, dùng
để nhận dạng cho kết nối.
• AH Sequence(4 byte) = 5: Số tuần tự của gói tin AH
( số này bắt đu từ số 1), chỉ số này tăng lên 1 cho mỗi
AH datagram khi một host gửi có liên quan đến
chính sách SA, nhằm chống lại các cuộc tấn công
phát lại bằng cách ngăn chặn truyền các datagram bị
bắt.
• AH ICV (12 byte): dữ liệu được xác thực. Có độ dài là
96 bit, là dãy số băm từ (IP Header + Payload + Key)
Thiết lập transport ESP

Máy khách

Máy chủ
Kết quả Transport ESP

=> Triển khai thành công transport ESP


PHÂN TÍCH GÓI TIN ESP / TRANSPORT

• Protocol: Encap Security Payload (50) : ESP được


đóng gói bởi giao thức IP và trường protocol trong IP
là 50.
• ESP SPI(4 byte): Giá trị tuỳ chọn, phía nhận sử dụng
giá trị SPI với địa chỉ IP đích và giao thức IPSec để
xác định chính sách SA duy nhất mà nó được áp cho
gói tin.
• ESP Sequence(4 byte): 1: Số tuần tự của gói tin ESP.
Trước khi mỗi gói tin được gửi, chỉ số này luôn tăng
lên 1 và được đặt trong ESP header.
Thiết lập tunnel AH

Máy khách

Máy chủ
Kết quả Tunnel AH

=> Triển khai thành công tunnel AH


PHÂN TÍCH GÓI TIN AH / TUNNEL

• Protocol: Authentication Header (51) : AH được


đóng gói bởi giao thức IP và trường protocol trong IP
là 51.
• Next header: IPIP (4) : Gói tin IPIP code bằng 1 =>
Chế độ Tunnel
• Length: 4 (24 bytes): Chiều dài của AH Header.
• AH SPI: Giá trị tuỳ ý mà IPSec lựa chọn, dùng để
nhận dạng cho kết nối.
• AH Sequense: 1: Số tuần tự của gói tin AH ( số này
bắt đầu từ số 1), chỉ số này tăng lên 1 cho mỗi AH
datagram khi một host gửi có liên quan đến chính
sách SA, nhằm chống lại các cuộc tấn công phát lại
bằng cách ngăn chặn truyền các datagram bị bắt.
• AH ICV: dữ liệu được xác thực. Có độ dài là 96 bit, là
dãy số băm từ (IP Header + Payload + Key)
Thiết lập tunnel ESP

Máy khách

Máy chủ
Kết quả Tunnel ESP

=> Triển khai thành công tunnel ESP


PHÂN TÍCH GÓI TIN ESP / TUNNEL

• Protocol: Encap Security Payload (50) : ESP được


đóng gói bởi giao thức IP và trường protocol trong IP
là 50.
• ESP SPI: Giá trị tuỳ chọn, phía nhận sử dụng giá trị
SPI với địa chỉ IP đích và giao thức IPSec để xác định
chính sách SA duy nhất mà nó được áp cho gói tin.
• ESP Sequence: 2: Số tuần tự của gói tin ESP. Trước
khi mỗi gói tin được gửi, chỉ số này luôn tăng lên 1
và được đặt trong ESP header.
Bài 4: Triển khai telnet
Mô hình thực hiện:
- Gồm server Ubuntu 22.04, client windows 7 Pro
- Hai máy chung đường mạng 10.1.20.0/24
- Ứng dụng sử dụng: VMWare workstation pro,
Putty

telnet (Putty)

10.1.20.129 10.1.20.8
Command:
sudo apt install telnetd
sudo ufw allow 23
=> Cài đặt telnetd và mở port 23 để cho
phép telnet
Trên Server sudo apt install bind9
sudo nano /etc/bind/named.conf.local

(2)

sudo nano
/etc/bind/db.nguyenxuanhieu-srv.class1
=> Config cho bind9

(3)
(1)
Ping từ máy khách Windows 7, ta có thể
thấy đã đặt domain name cho server
thành công
Trên windows 7, sử dụng ứng dụng Putty Kết nối thành công
để kết nối tới host name:
nguyenxuanhieu-srv tại port 23
Sử dụng wireshark ta bắt
được rất nhiều gói tin, mỗi gói
tin có phần Data là một kí tự
ta đã nhập, khi đó ta dùng
chức năng TCP Follow của
Wireshark để dễ quan sát.
Kết quả:
Ta nhận được dòng dữ liệu TCP hoàn
toàn không được mã hóa, hoàn toàn dữ
liệu ở dạng plain text
=> Đúng như lý thuyết
=> Giao thức telnet là không đủ an toàn
trong trường hợp xảy ra chặn bắt trên
đường truyền (Man-in-the-middle attack)
Bài 5: Triển khai SSH
Mô hình thực hiện:
- Gồm server Ubuntu 22.04, client windows 7 Pro
- Hai máy chung đường mạng 10.1.20.0/24
- Ứng dụng sử dụng: VMWare workstation pro,
MobaXterm

SSH (MobaXterm)

10.1.20.129 10.1.20.8
Windows 7 Pro Ubuntu
Command:
sudo apt install openssh-server
systemctl status sshd.service
=> Cài đặt SSH, kiểm tra trạng thái SSH thì
thấy đang active
Trên Server

(2)

ssh-keygen -t rsa
=> Tạo ra khóa công khai và khóa bí mật bằng thuật toán RSA
mv /home/hieunx/.ssh/id_rsa.pub
/home/hieunx/.ssh/authorized_keys (3)
=> Đổi tên file id_rsa.pub thành authorized_keys để máy chủ
(1)
chấp nhận khóa xác thực vừa tạo
Trên
Client

(1)

Chuyển khóa bí mật sang Client

Trong ứng dụng MobaXterm, chọn


Session và điền các thông tin IP,
Username, và file khóa
Kết quả: Đã triển khai SSH bằng mật
mã khóa công khai thành công
Bắt gói tin trên Wireshark

Xác thực bằng mật khẩu


Bài 6: Cài đặt SMTP, POP3

10.1.20.100 10.1.20.1
Ubuntu Windows
server 2012
Bài 6: Cài đặt SMTP, POP3
• Trên server

Cài đặt Thunderbird Cài đặt Mdaemon


Cấu hình IP Server Cấu hình IP
Client
Trên server
Cài đặt Domain
Tạo tài khoản cho
client1
Đăng nhập vào thunderbird trên
server
Đăng nhập vào thunderbird trên
client
Trên Server và Client,
gửi thư để kiểm tra
Chặn bắt gói tin trên
Wireshark
Client gửi EHELO đến Server
Gửi thư bằng SMTP
Bắt đầu phiên TLS
Nhận thư bằng POP3
Nội dung thư bị mã hóa
Nội dung thư bị mã hóa

You might also like