Hướng dẫn khắc phục lỗ hổng bảo mật CVE-2019-11477 trên Cloud365
Hướng dẫn khắc phục lỗ hổng bảo mật CVE-2019-11477 trên Cloud365
Nơi chứa các tài liệu tham khảo của dịch vụ Cloud365.
KVM được biết đến là một cơ sở hạ tầng ảo hóa cho nhân Linux. KVM cũng cung cấp các mô hình mạng trong việc ảo hóa network. Các mô hình bao gồm:
Ở bài trước tôi đã giới thiệu về mô hình mạng linux-bridge. Ở bài viết này tôi sẽ giới thiệu về mô hình NAT trên KVM.
Một máy chạy hệ điều hành CentOS 7 hoặc Ubuntu cài đặt KVM có một card mạng kết nối với internet và cài đặt một VM bên trong máy đó.
Chú ý máy vật lý ở đây là máy cài KVM. Máy này có thể là một máy ảo nhưng ở đây ta coi nó như một server vật lý.
Nếu như với mô hình linux bridge KVM tạo ra một virtual switch thì ta cũng có thể hình dung với mô hình mạng NAT này KVM sẽ tạo ra một thiết bị là virtual router. Khi ta tạo một dải mạng với mô hình NAT thì lúc này virtual router sẽ NAT từ dải mạng mà ta tạo ra ra địa chỉ của card mạng vật lý trên KVM host để đi ra ngoài internet.
Khi một dải mạng tạo ra ta sẽ thấy trên KVM host xuất hiện một thêm một card mạng. Card mạng này đóng vai trò là gateway cho dải mạng mà ta tạo ra.
Để hiểu rõ hơn về mô hình này cũng như đường đi của gói tin từ VM ra ngoài internet tôi sẽ dùng lệnh ping 8.8.8.8
sau đó bắt gói tin ở các vị trí mà gói tin có thể đi qua để ta có thể hình dung rõ cách hoạt động của nó. Ở đây tôi sẽ bắt tại các vị trí sau:
Trên card eth0
của VM
Trên card virbr2
là gateway của mạng
Và trên card enp0s25
của KVM host
Như vậy ta có thể thấy như sau
Như vậy VM có thể biết được địa chỉ ở bên ngoài internet nhưng các máy ở bên ngoài sẽ không thể thấy được VM. Như vậy địa chỉ của KVM host sẽ đại diện cho các VM khi giao tiếp với bên ngoài. Để thấy rõ hơn tôi sẽ sử dụng lệnh iptables
để thấy các rule được đặt để cho dải mạng được NAT đi ra ngoài.
Các rule trong bảng NAT.
Rule trong chain FORWARD
Ta thấy được KVM host cho phép forward tất cả các gói tin của dải mạng này theo cả 2 chiều vào và ra.
Ở đây tôi sử dụng công cụ virt-manager
để tạo và quản lý mô hình mạng này.
Trước tiên bạn vào công cụ virt-manager
trên thanh công cụ click vào Edit
chọn Connection Details
chọn Virtual Networks
và click vào biểu tượng dấu cộng như bên dưới
Đặt tên cho mạng bạn muốn tạo
Chọn dải mạng và địa dải địa chỉ IP cấp phát cho VM nếu dùng cấp phát DHCP. Sau đó click Forward
Nếu bạn muốn sử dụng cả IPv6 thì click chọn ở đây. Ở đây tôi không sử dụng đến nó nên tôi không chọn
Chỉ ra card mạng mà bạn muốn dùng nó để gắn vào virtual router để làm đường đi ra internet
Vào trong VM kết nối đến mạng này sau đó reboot lại VM
Ta có thể kiểm tra VM đã nhận đúng dải mạng
Ping thử để kiểm tra xem mạng có hoạt động
Như đã nói ở bên trên iptables có các rule để NAT địa chỉ mạng mạng này để ra ngoài. Bây giờ tôi thử xóa các rule trong bảng NAT đi
Tôi dùng lệnh ping để kiểm tra lại hoạt động của mạng thì lúc này mạng này đã không thể ra được internet
Bài viết có thể giúp bạn hiểu thêm về mô hình mạng NAT trong KVM. Trong bài viết chắc chắn còn nhiều thiếu sót rất mong được sự góp ý của các bạn.
Chúc bạn thành công!
Thực hiện bởi cloud365.vn