CEO @CyStack
Trong bài trước, chúng tôi đã hướng dẫn bạn cách cài đặt tường lửa UFW trên Ubuntu 16.04 để bảo vệ máy chủ khỏi các cuộc tấn công không mong muốn. Ở bài viết này, chúng tôi sẽ đưa ra một vài hướng dẫn sử dụng UFW.
Tham khảo phần 1 tại: https://vn.cystack.net/cach-cai-dat-tuong-lua-voi-ufw-tren-ubuntu-16-04-p1/
Hướng dẫn 1 – Cho phép kết nối khác
Lúc này, bạn nên cho phép tất cả các kết nối khác mà máy chủ của bạn cần đáp ứng, các kết nối đó phụ thuộc vào nhu cầu cụ thể của bạn. Bạn hãy thao tác như ở cổng 22 mà chúng tôi đã hướng dẫn. Bạn cũng có thể làm điều này cho:
- HTTP trên cổng 80 (giao thức mà máy chủ web không được mã hóa sử dụng), sử dụng sudo ufw allow http hoặc sudo ufw allow 80.
- HTTPS trên cổng 443 (máy chủ web được mã hóa sử dụng), sử dụng sudo ufw allow https hoặc sudo ufw allow 443.
- FTP trên cổng 21 được sử dụng để chuyển file không được mã hóa (mà có lẽ bạn không nên sử dụng anyway), sử dụng sudo ufw allow ftp hoặc sudo ufw allow 21/tcp.
Có một số cách khác để cho phép các kết nối khác ngoài việc xác định một cổng hoặc dịch vụ đã biết.
Các dải cổng cụ thể
Bạn có thể chỉ định các dải cổng với UFW. Có một số ứng dụng sử dụng nhiều cổng thay vì chỉ một cổng duy nhất. Ví dụ, để cho phép các kết nối X11 sử dụng cổng 6000-6007, hãy sử dụng các lệnh sau:
$sudo ufw allow 6000:6007/tcp $sudo ufw allow 6000:6007/udp
Khi chỉ định phạm vi cổng với UFW, bạn phải chỉ định giao thức (tcp hoặc udp) mà các quy tắc nên áp dụng cho.
Địa chỉ IP cụ thể
Khi làm việc với UFW, bạn cũng có thể chỉ định địa chỉ IP. Ví dụ, nếu bạn muốn cho phép kết nối từ một địa chỉ IP cụ thể, chẳng hạn như địa chỉ 15.15.15.51, bạn cần phải xác định nguồn gốc và địa chỉ IP:
$ sudo ufw allow from 15.15.15.51
Bạn cũng có thể chỉ định một cổng cụ thể mà địa chỉ IP được phép kết nối bằng cách thêm vào cụm từ to any port. Ví dụ: Nếu bạn muốn cho phép 15.15.15.51 kết nối đến cổng 22 (SSH), hãy sử dụng lệnh này:
$ sudo ufw allow from 15.15.15.51 to any port 22
Subnets
Nếu bạn muốn cho phép một subnet địa chỉ IP, bạn có thể sử dụng ký hiệu CIDR để chỉ định một netmask. Ví dụ: nếu bạn muốn cho phép tất cả địa chỉ IP từ 15.15.15.1 đến 15.15.15.254, bạn có thể sử dụng lệnh này:
$ sudo ufw allow from 15.15.15.0/24
Tương tự, bạn cũng có thể chỉ định cổng đích mà subnet 15.15.15.0/24 được phép kết nối. Một lần nữa, chúng ta sẽ sử dụng cổng 22 (SSH) làm ví dụ:
$ sudo ufw allow from 15.15.15.0/24 to any port 22
Kết nối với một giao diện mạng cụ thể
Nếu bạn muốn tạo một quy tắc tường lửa chỉ áp dụng cho một giao diện mạng cụ thể, bạn có thể chỉ định allow in on ngay sau tên của giao diện mạng. Có thể bạn muốn tìm kiếm các giao diện mạng của mình trước khi tiếp tục, sử dụng lệnh này:
$ ip addr
Output Excerpt: ... 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state ... 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default ...
Ở đầu ra, eth0 và eth1 là tên giao diện mạng nên nếu máy chủ của bạn có giao diện mạng công cộng được gọi là eth0, bạn có thể cho phép HTTP (cổng 80) truy cập bằng lệnh này:
$ sudo ufw allow in on eth0 to any port 80
Lệnh này cho phép máy chủ của bạn nhận yêu cầu HTTP trên Internet công cộng. Hoặc nếu bạn muốn máy chủ cơ sở dữ liệu MySQL của bạn (cổng 3306) nhận các kết nối trên giao diện mạng cá nhân eth1, bạn có thể sử dụng lệnh này:
$ sudo ufw allow in on eth1 to any port 3306
Lệnh này cho phép các máy chủ khác trong mạng riêng của bạn kết nối với cơ sở dữ liệu MySQL của bạn.
Hướng dẫn 2 – Từ chối Kết nối
Nếu bạn không thay đổi chính sách mặc định cho các kết nối đến, UFW sẽ từ chối tất cả các kết nối đến. Vì thế, bạn nên tạo ra một chính sách tường lửa an toàn bằng cách tạo ra các quy tắc rõ ràng cho phép một số cổng và địa chỉ IP cụ thể được kết nối. Tuy nhiên, đôi khi bạn sẽ muốn từ chối mọi kết nối đến để tránh máy chủ bị tấn công. Khi đó, bạn cần tạo quy tắc từ chối với bất kỳ dịch vụ hoặc địa chỉ IP nào mà bạn không muốn cho phép kết nối. Để viết quy tắc từ chối, bạn có thể sử dụng các lệnh trước đó, thay thế allow thành deny.
Hướng dẫn 3 – Xóa các quy tắc
Có hai cách để thực hiện xóa các quy tắc: theo số quy tắc và theo quy tắc thực tế (tương tự như cách chỉ định các quy tắc khi tạo ra).
Theo số quy tắc
Đầu tiên, bạn hãy lấy danh sách các quy tắc tường lửa. Lệnh UFW status có một tùy chọn để hiển thị các số bên cạnh mỗi quy tắc như dưới đây:
$ sudo ufw status numbered
Numbered Output: Status: active To Action From -- ------ ---- [ 1] 22 ALLOW IN 15.15.15.0/24 [ 2] 80 ALLOW IN Anywhere
Nếu muốn xóa rule 2, lệnh cho phép kết nối cổng 80 (HTTP), bạn có thể chỉ định trong lệnh UFW delete như sau:
$ sudo ufw delete 2
Lưu ý rằng nếu bạn đã bật IPv6, bạn cũng muốn xóa quy tắc IPv6 tương ứng.
Theo quy tắc thực tế
Việc thay thế cho số quy tắc là để xác định nguyên tắc thực tế để xóa. Ví dụ: nếu bạn muốn xóa quy tắc allow http, bạn có thể viết như sau:
$ sudo ufw delete allow http
Hay bạn cũng có thể thay thế allow http bằng allow 80. Phương pháp này sẽ xóa cả quy tắc IPv4 và IPv6 nếu chúng tồn tại.
Hướng dẫn 4 – Kiểm tra Trạng thái và Quy tắc UFW
Bất cứ lúc nào, bạn có thể kiểm tra trạng thái của UFW với lệnh này:
$ sudo ufw status verbose
Nếu UFW bị mặc định vô hiệu hóa, bạn sẽ thấy thông tin như sau:
Output Status: inactive
Nếu UFW đang hoạt động, đầu ra sẽ cho biết rằng UFW đang hoạt động và sẽ liệt kê bất kỳ quy tắc nào được thiết lập. Ví dụ: nếu tường lửa được thiết lập để cho phép các kết nối SSH (cổng 22) từ bất cứ đâu, đầu ra có thể giống như sau:
Output Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22/tcp ALLOW IN Anywhere
Sử dụng lệnh status nếu bạn muốn kiểm tra UFW đã cấu hình tường lửa như thế nào.
Hướng dẫn 5 – Tắt hoặc Reset UFW (tùy chọn)
Nếu bạn không muốn sử dụng UFW, bạn có thể tắt nó bằng lệnh sau:
$ sudo ufw disable
Bất kỳ quy tắc nào bạn đã tạo bằng UFW sẽ không còn hoạt động nữa. Bạn luôn có thể chạy sudo ufw enable nếu bạn cần kích hoạt nó sau. Nếu bạn đã có các quy tắc UFW được cấu hình nhưng bạn muốn reset, bạn có thể sử dụng lệnh đặt lại:
$ sudo ufw reset
Lệnh này sẽ vô hiệu hóa UFW và xóa mọi quy tắc đã xác định trước đó. Lưu ý rằng các chính sách mặc định sẽ không thay đổi đối với cài đặt ban đầu nếu bạn thay đổi chúng ở bất kỳ thời điểm nào.
Kết luận
Tường lửa của bạn giờ đây đã được cấu hình để cho phép kết nối SSH. Hãy chắc chắn đã thiết lập các quy tắc cho kết nối đến và kết nối đi để đảm bảo máy chủ hoạt động một cách an toàn và đúng chức năng.