Tôi gặp sự cố OpenVPN/UFW gây tò mò trên Ubuntu 20.04.
Tôi có một bộ quy tắc để cho phép lưu lượng truy cập đi qua tun0: ufw chèn 1 cho phép thoát trên tun0 từ bất kỳ đến bất kỳ
. Các giá trị mặc định của UFW được đặt thành từ chối, cả trong và ngoài: ufw mặc định từ chối gửi đi
& ufw mặc định từ chối đến
.
Tôi chỉ có thể định tuyến lưu lượng truy cập qua tun0 khi UFW đang chạy, nếu tôi thực hiện điệu nhảy kỳ lạ sau đây mỗi lần tôi muốn kết nối với VPN:
ufw vô hiệu hóa
(tắt UFW, như bạn mong muốn, để cho phép VPN kết nối với máy chủ)
- Kết nối với VPN (kết nối được thiết lập thành công)
kích hoạt ufw
(bật lại UFW) - Cho đến nay, như mong đợi - bây giờ tôi mong muốn lưu lượng truy cập được gửi qua tun0 mà không gặp bất kỳ sự cố nào ... nhưng không. Bây giờ tôi phải làm như sau ...
- Thêm một quy tắc để cho phép tất cả các kết nối gửi đi thông qua bất kỳ giao diện nào:
ufw chèn 1 cho phép từ bất kỳ đến bất kỳ
- Thiết lập kết nối ở bất cứ đâu - ví dụ:
ping 1.1.1.1
. Đây là bước quan trọng - nếu không có thì các kết nối tiếp theo thông qua tun0 sẽ không thành công
- Xóa quy tắc tôi vừa thêm cho phép tất cả các kết nối đi qua bất kỳ giao diện nào (vì đó rõ ràng không phải là điều chúng tôi muốn - ý định là giới hạn các kết nối ở tun0 theo quy tắc hiện có):
uw xóa 1
Bây giờ, tôi có thể thiết lập kết nối thông qua đường hầm VPN, như mong đợi. Tuy nhiên nếu không có bước 4 & 5, tất cả các kết nối sẽ bị chặn bởi UFW; Tôi không thể kết nối qua tun0 - mặc dù có một quy tắc UFW rõ ràng được đặt để cho phép điều đó.
Đây là tệp user.rules UFW của tôi (tôi cũng có quy tắc SSH):
*lọc
:ufw-user-input - [0:0]
:ufw-user-output - [0:0]
:ufw-user-forward - [0:0]
:ufw-before-log-input - [0:0]
:ufw-before-log-output - [0:0]
:ufw-before-log-forward - [0:0]
:ufw-user-log-input - [0:0]
:ufw-user-log-output - [0:0]
:ufw-user-log-forward - [0:0]
:ufw-after-log-input - [0:0]
:ufw-after-log-output - [0:0]
:ufw-after-log-forward - [0:0]
:ufw-log-deny - [0:0]
:ufw-log-allow - [0:0]
:ufw-giới hạn người dùng - [0:0]
:ufw-user-limit-accept - [0:0]
### QUY TẮC ###
### tuple ### cho phép bất kỳ 22 0.0.0.0/0 bất kỳ 192.168.0.0/16 nào trong
-A ufw-user-input -p tcp --dport 22 -s 192.168.0.0/16 -j CHẤP NHẬN
-A ufw-user-input -p udp --dport 22 -s 192.168.0.0/16 -j CHẤP NHẬN
### tuple ### cho phép bất kỳ 0.0.0.0/0 bất kỳ 0.0.0.0/0 out_tun0
-A ufw-user-output -o tun0 -j CHẤP NHẬN
### tuple ### từ chối bất kỳ 0.0.0.0/0 bất kỳ 0.0.0.0/0 nào
-A ufw-user-output -j DROP
### tuple ### từ chối bất kỳ 0.0.0.0/0 bất kỳ 0.0.0.0/0 nào trong
-A ufw-user-input -j DROP
### QUY TẮC KẾT THÚC ###
### ĐĂNG NHẬP ###
-A ufw-after-logging-input -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-A ufw-after-logging-output -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-A ufw-after-log-forward -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-I ufw-logging-deny -m conntrack --ctstate INVALID -j RETURN -m limit --limit 3/min --limit-burst 10
-A ufw-logging-deny -j LOG --log-prefix "[UFW BLOCK]" -m limit --limit 3/min --limit-burst 10
-A ufw-log-allow -j LOG --log-prefix "[UFW ALLOW]" -m limit --limit 3/min --limit-burst 10
### KẾT THÚC ĐĂNG NHẬP ###
### GIỚI HẠN TỶ SUẤT ###
-A ufw-user-limit -m limit --limit 3/minute -j LOG --log-prefix "[UFW GIỚI HẠN KHỐI] "
-A ufw-user-limit -j TỪ CHỐI
-A ufw-user-limit-accept -j CHẤP NHẬN
### GIỚI HẠN TỶ SUẤT KẾT THÚC ###
LÀM
Bất kỳ ý tưởng tại sao hành vi kỳ lạ này đang xảy ra?