1. QUẢN TRỊ HỆ THỐNG LINUX 3
Nhóm 1 Trang 1
TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THỦ ĐỨC
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN
QUẢN TRỊ HỆ THỐNG LINUX 3
ĐỀ TÀI 1
OPEN VPN
TP.HCM, tháng 4 năm 2021
Nhóm 1
1. Carya
2. Lê Thanh Tùng
3. Lê Hữu Nhân
4. Hồ Văn Tùng
5. Châu Văn Quang
GVHD: Nguyễn Thanh Vũ
2. QUẢN TRỊ HỆ THỐNG LINUX 3
Nhóm 1 Trang 2
MỤC LỤC
CHƯƠNG I: GIỚI THIỆU ĐỒ ÁN ...........................................................................................3
1 Nội dung đồ án: ..............................................................................................3
1.1 OPEN VPN là gì ?..........................................................................................................3
1.2 Ưu điểm của OPEN VPN.........................................Error! Bookmark not defined.
1.3 Các thành phần của OPEN VPN:............................Error! Bookmark not defined.
1.4 Các loại OPEN VPN......................................................................................................3
CHƯƠNG II: TRIỄN KHAI ĐỒ ÁN:.......................................................................................4
2.1.Chuẩn bị:....................................................Error! Bookmark notdefined.
2.2.Thực hiện:...................................................Error! Bookmark notdefined.
3. QUẢN TRỊ HỆ THỐNG LINUX 3
Nhóm 1 Trang 3
CHƯƠNG I: GIỚI THIỆU ĐỒ ÁN
1 Nội dung đồ án:
1.1 Open VPN là gì?
Mạng riêng ảo (VPN) cho phép bạn truy cập các mạng không tin cậy như thể bạn
đang ở trên một mạng riêng. Nó cho phép bạn tự do truy cập Internet một cách an
toàn và bảo mật từ điện thoại thông minh hoặc notebook của bạn khi được kết nối
với mạng không tin cậy , như WiFi tại khách sạn hoặc quán cà phê.
Khi được kết hợp với kết nối HTTPS , cài đặt này cho phép bạn bảo mật thông tin
đăng nhập và giao dịch không dây của bạn . Bạn có thể vượt qua các hạn chế địa
lý và kiểm duyệt, đồng thời che chắn vị trí của bạn và bất kỳ lưu lượng truy cập
HTTP không được mã hóa nào khỏi mạng không tin cậy .
OpenVPN là một giải pháp VPN Lớp cổng bảo mật (SSL) open-souce đầy đủ tính
năng, có thể đáp ứng nhiều loại cấu hình. Trong hướng dẫn này, bạn sẽ cài đặt
OpenVPN trên server CentOS 7, sau đó cấu hình nó để có thể truy cập được từ
client .
1.2 Các loại Open VPN:
ExpressVPN: OpenVPN client tốt nhất. Nó có một mạng lưới lớn các máy chủ tốc
độ cao, giúp bạn bảo mật tại nhà và khi đang di chuyển cùng các ứng dụng tuyệt
vời.
NordVPN : Đáng đồng tiền bát gạo và có một OpenVPN client siêu bảo mật. Nó
cũng có các máy chủ hỗ trợ P2P và chuyển tiếp cổng
PrivateVPN: Dịch vụ VPN rẻ nhất với mã hóa OpenVPN trên ứng dụng cho tất cả
các thiết bị phổ biến và không có chính sách ghi nhật ký.
IPVanish: Máy chủ nhanh, giúp bạn phát trực tuyến, tải xuống hoặc thực hiện các
tác vụ khác một cách tuyệt vời mà không làm bạn bị chậm lại
VPNArea: Dịch vụ bảo mật nhất trong danh sách. Chính sách không ghi nhật ký
và bảo vệ chống rò rỉ DNS cho phép bạn duyệt web ẩn danh
4. QUẢN TRỊ HỆ THỐNG LINUX 3
Nhóm 1 Trang 4
CHƯƠNG II: TRIỄN KHAI ĐỒ ÁN:
2.1 Mô hình OpenVPN
VPN CENTOS7 VPN SERVER WIN 7
Vnnet2 192.168.10.136 192.168.10.137
Internet NAT NAT
Gateway 192.168.10.137
2.2 Các bước cài đặt Open VPN:
Để bắt đầu, ta sẽ cài đặt OpenVPN trên server :
sudo yum update -y
sudo yum install epel-release -y
sudo yum install -y openvpn wget
Sử dụng wget , download Easy RSA.:
wget -O /tmp/easyrsa https://github.com/OpenVPN/easy-rsa-
old/archive/2.3.3.tar.gz
5. QUẢN TRỊ HỆ THỐNG LINUX 3
Nhóm 1 Trang 5
Tiếp theo, extract file nén bằng tar
tar xfz /tmp/easyrsa
Tạo một folder mới trên server của bạn có tên easy-rsa-2.3.3 . Tạo một folder con mới
trong /etc/openvpn và đặt tên là easy-rsa :
sudo mkdir /etc/openvpn/easy-rsa
Sao chép file Easy RSA đã extract vào folder mới:
sudo cp -rf easy-rsa-old-2.3.3/easy-rsa/2.0/*
/etc/openvpn/easy-rsa
Khi các chương trình này được cài đặt , bước tiếp theo ta sẽ thực hiện cấu hình openvpn
2.3 Cấu hình OpenVPN
Đầu tiên, sao chép file server.conf :
sudo cp /usr/share/doc/openvpn-2.4.11/sample/sample-config-
files/server.conf /etc/openvpn
yum install nano
sudo nano /etc/openvpn/server.conf
etc/openvpn/server.conf
Để bắt đầu, hãy tìm và bỏ comment bằng cách xóa ; ở đầu dòng. push "redirect-gateway
def1 bypass-dhcp" .
push "redirect-gateway def1 bypass-dhcp"
Bỏ ghi chú cả hai dòng push "dhcp-option DNS ..." và sử dụng các server DNS công
cộng của Google có IP là 8.8.8.8 và 8.8.4.4 .
6. QUẢN TRỊ HỆ THỐNG LINUX 3
Nhóm 1 Trang 6
push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS
8.8.4.4"
Ta muốn OpenVPN chạy mà không có quyền khi nó đã khởi động, vì vậy ta cần yêu cầu
nó chạy với user và group không ai cả . Để kích hoạt điều này, hãy bỏ ghi chú user
nobody và group nobody dòng:
user nobody
group nobody
Tiếp theo, bỏ comment topology subnet . Điều này, cùng với dòng server 10.8.0.0
255.255.255.0 bên dưới, cấu hình cài đặt OpenVPN của bạn để hoạt động như một mạng
con và cho client biết địa chỉ IP nào nó nên sử dụng. Trong trường hợp này, server sẽ trở
thành 10.8.0.1 và client đầu tiên sẽ trở thành 10.8.0.2 :
topology subnet
7. QUẢN TRỊ HỆ THỐNG LINUX 3
Nhóm 1 Trang 7
Comment dòng trong file cấu hình chứa tls-auth ta.key 0 bằng cách thêm dấu chấm phẩy
vào trước
Và thêm dòng
Tls-crypt client.tlsauth
Tại dòng này thêm dòng
Auth SHA512
Lưu và thoát khỏi file cấu hình
2.4 Tạo khóa và certificate
Tạo khóa bằng lệnh sau:
sudo openvpn --genkey --secret /etc/openvpn/client.tlsauth
8. QUẢN TRỊ HỆ THỐNG LINUX 3
Nhóm 1 Trang 8
Ta sẽ bắt đầu quá trình tạo khóa và certificate bằng cách tạo một folder nơi Easy RSA sẽ
lưu trữ bất kỳ khóa và certificate nào bạn tạo:
sudo mkdir /etc/openvpn/easy-rsa/keys
sudo nano /etc/openvpn/easy-rsa/vars
Cuộn xuống cuối file và thay đổi các giá trị bắt đầu bằng export KEY_ và thay đổi chúng
như sau:
KEY_CN : Tại đây, hãy nhập domain hoặc domain phụ phân giải cho server của
bạn.
KEY_NAME : Bạn nên nhập server tại đây. Nếu bạn nhập một cái gì đó khác, bạn
cũng sẽ phải cập nhật các file cấu hình tham chiếu server.key và server.crt .
Các biến khác trong file này mà bạn có thể cần thay đổi là:
KEY_COUNTRY : Đối với biến này, hãy nhập tên viết tắt gồm hai chữ cái của quốc
gia cư trú của bạn.
KEY_PROVINCE : Đây phải là tên hoặc chữ viết tắt của tiểu bang nơi cư trú của
bạn.
KEY_CITY : Tại đây, hãy nhập tên city bạn đang sống.
KEY_ORG : Đây phải là tên của tổ chức hoặc công ty của bạn.
KEY_EMAIL : Nhập địa chỉ email mà bạn muốn được kết nối với certificate bảo
mật.
KEY_OU : Đây phải là tên của “Đơn vị tổ chức” mà bạn thuộc về, thường là tên
của phòng ban hoặc group của bạn.
9. QUẢN TRỊ HỆ THỐNG LINUX 3
Nhóm 1 Trang 9
Sau khi bạn đã áp dụng các thay đổi của bạn , file sẽ trông giống như sau:
Lưu và đóng file .
Để bắt đầu tạo khóa và certificate , hãy chuyển vào folder easy-rsa và source trong các
biến mới mà bạn đặt trong file vars :
cd /etc/openvpn/easy-rsa
source ./vars
Chạy tập lệnh clean-all của Easy RSA để xóa mọi khóa và certificate đã có trong folder
và tạo cơ quan cấp certificate :
./clean-all
Tiếp theo, xây dựng tổ chức phát hành certificate với script build-ca . Bạn có thể
nhấn ENTER để chấp nhận các giá trị mặc định cho từng cái:
./build-ca
Tiếp theo, tạo khóa và certificate cho server bằng tập lệnh build-key-server :
./build-key-server server
10. QUẢN TRỊ HỆ THỐNG LINUX 3
Nhóm 1 Trang 10
Phần cuối cùng của việc tạo khóa server và certificate là tạo file trao đổi khóa Diffie-
Hellman. Sử dụng tập lệnh build-dh :
./build-dh
Quá trình này có thể mất vài phút để hoàn thành.
Sau khi server của bạn hoàn tất việc tạo file trao đổi khóa, hãy sao chép các khóa server
và certificate từ folder keys vào folder openvpn :
cd /etc/openvpn/easy-rsa/keys
sudo cp dh2048.pem ca.crt server.crt server.key /etc/openvpn
cd /etc/openvpn/easy-rsa
./build-key client
Cuối cùng, sao chép file cấu hình OpenSSL version , openssl-1.0.0.cnf , sang tên không
có version , openssl.cnf . Không làm như vậy có thể dẫn đến lỗi trong đó OpenSSL không
thể tải cấu hình vì nó không thể phát hiện version của nó:
cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-
rsa/openssl.cnf
2.5 Mở Port và định tuyến
Chạy các lệnh filewall sau:
sudo firewall-cmd --get-active-zones
sudo firewall-cmd --zone=trusted --add-service openvpn
sudo firewall-cmd --zone=trusted --add-service openvpn --
permanent
sudo firewall-cmd --list-services --zone=trusted
11. QUẢN TRỊ HỆ THỐNG LINUX 3
Nhóm 1 Trang 11
sudo firewall-cmd --add-masquerade
sudo firewall-cmd --permanent --add-masquerade
sudo firewall-cmd --query-masquerade
Tiếp theo, chuyển tiếp định tuyến tới mạng con OpenVPN:
SHARK=$(ip route get ip_vpn_server | awk 'NR==1 {print $(NF-
2)}')
sudo firewall-cmd --permanent --direct --passthrough ipv4 -t
nat -A POSTROUTING -s 10.8.0.0/24 -o $SHARK -j MASQUERADE
sudo firewall-cmd --reload
Tiếp theo, bật chuyển tiếp IP:
sudo nano /etc/sysctl.conf
Sau đó, thêm dòng sau vào đầu file :
net.ipv4.ip_forward = 1
Cuối cùng, khởi động lại dịch vụ:
12. QUẢN TRỊ HỆ THỐNG LINUX 3
Nhóm 1 Trang 12
sudo systemctl restart network.service
2.6 Khởi chạy OpenVPN:
Bật server OpenVPN bằng cách thêm nó vào systemctl
sudo systemctl -f enable openvpn@server.service
Sau đó khởi động dịch vụ OpenVPN:
sudo systemctl start openvpn@server.service
Kiểm tra kỹ xem dịch vụ OpenVPN có đang hoạt động hay không bằng lệnh sau:
sudo systemctl status openvpn@server.service
Hiện ta đã hoàn thành cấu hình phía server cho OpenVPN. Tiếp theo, bạn sẽ cấu hình
client của bạn và kết nối với server OpenVPN.
2.7 Cấu hình trên Client Win 7
Copy các file này vào client.:
/etc/openvpn/easy-rsa/keys/ca.crt
13. QUẢN TRỊ HỆ THỐNG LINUX 3
Nhóm 1 Trang 13
/etc/openvpn/easy-rsa/keys/client.crt
/etc/openvpn/easy-rsa/keys/client.key
/etc/openvpn/client.tlsauth
Ta dùng WINSCP để lấy các file từ VPNserver về máy client
Cài đặt OPENVPN copy các file vào đường dẫn C:program filesOPENVPNconfig
Ta vào phần client và chỉnh sữa như sau:
client
;dev tap
dev tun
;proto tcp
proto udp
remote ip_vpn_server 1194
14. QUẢN TRỊ HỆ THỐNG LINUX 3
Nhóm 1 Trang 14
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
#tls-auth ta.key 1
tls-crypt tên file client mà ta đã đặt ở tls.crypt
cipher AES-256-CBC
auth SHA512
#comp-lzo
verb 3
;mute 20
15. QUẢN TRỊ HỆ THỐNG LINUX 3
Nhóm 1 Trang 15
Connet openvpn:
Máy client đã sinh ra cổng VPN tunnel
Máy client đã ping được vpnserver và vpn centos 7