Dưới đây là toàn bộ 'CÁCH' cho NOOBS (sử dụng debian) để đảm bảo nhóm người dùng truyền tải debian (tức là truyền) chỉ định tuyến dữ liệu qua vpn
KHÔNG sử dụng 'Cách làm' dài hơn cho vpn dựa trên các tập lệnh hệ thống phức tạp ...! iptables là PHƯƠNG PHÁP TỐT NHẤT (và hoàn hảo nhất) !!! - SỬ DỤNG MỘT QUY TẮC IPTABLE dựa trên người dùng và nhóm truyền để kiểm soát vpn (không giống như nhiều phương pháp 'hack' phức tạp hơn sử dụng tập lệnh systemd, tập lệnh lên và xuống, v.v.) và thật đơn giản!
Bước 1 - Thiết lập: (Giả sử truyền được cài đặt và do đó người dùng truyền debian tồn tại!)
sudo apt-get install iptables
sudo apt-get install iptables-persistent
Bước 2 - Tạo tệp quy tắc truyền ip
sudo nano transmission-ip-rules
và thêm văn bản trong khối mã bên dưới bắt đầu từ #!/bin/bash
QUAN TRỌNG
- Nếu mạng cục bộ của bạn không có dạng 192.168.1.x Thay đổi biến NET để tương ứng với định dạng địa chỉ mạng cục bộ của riêng bạn !!.
- Ngoài ra, hãy lưu ý đến vấn đề mà 192.168.1.0/25 thực sự mang lại cho phạm vi 192.168.1.0-255!
- Đôi khi các giao diện của bạn eth0, tun0 (là vpn), v.v. có thể khác - kiểm tra với 'ifconfig' và thay đổi nếu cần.
#!/bin/bash
# Set our rules so the debian-transmission user group can only route through the vpn
NET=192.168.1.0/25
GROUP=debian-transmission
IFACE_INTERNAL=eth0
IFACE_VPN=tun0
ALLOW_PORT_FROM_LOCAL=9091
iptables -A OUTPUT -d $NET -p tcp --sport $ALLOW_PORT_FROM_LOCAL -m owner --gid-owner $GROUP -o $IFACE_INTERNAL -j ACCEPT
iptables -A OUTPUT -d $NET -p udp --sport $ALLOW_PORT_FROM_LOCAL -m owner --gid-owner $GROUP -o $IFACE_INTERNAL -j ACCEPT
iptables -A OUTPUT -m owner --gid-owner $GROUP -o $IFACE_VPN -j ACCEPT
iptables -A OUTPUT -m owner --gid-owner $GROUP -o lo -j ACCEPT
iptables -A OUTPUT -m owner --gid-owner $GROUP -j REJECT
# not needed - but added these to properly track data to these interfaces....when using iptables -L -v
iptables -A INPUT -i $IFACE_VPN -j ACCEPT
iptables -A INPUT -i $IFACE_INTERNAL -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
# track any forward (NAT) data for completeness - don't care about interfaces
iptables -A FORWARD
Lưu tệp và sau đó chạy
sudo iptables -F
sudo chmod +x transmission-ip-rules
sudo ./transmission-ip-rules
sau đó đảm bảo các quy tắc này tồn tại giữa các lần khởi động lại với:
sudo dpkg-reconfigure iptables-persistent
và nhấn có vào cả hai dấu nhắc. LÀM XONG!
Điều tuyệt vời về kịch bản này là nó sẽ theo dõi tất cả dữ liệu thông qua thiết bị! Khi bạn phát hành
sudo iptables -L -v
nó sẽ hiển thị bao nhiêu dữ liệu sẽ được chuyển đến giao diện nào và INPUT hoặc OUTPUT bên nào để bạn có thể yên tâm rằng tập lệnh vpn đang hoạt động đúng. Ví dụ;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
1749K 661M ACCEPT all -- tun0 any anywhere anywhere
3416K 3077M ACCEPT all -- eth0 any anywhere anywhere
362K 826M ACCEPT all -- lo any anywhere anywhere
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 all -- any any anywhere anywhere
Chain OUTPUT (policy ACCEPT 2863K packets, 2884M bytes)
pkts bytes target prot opt in out source destination
1260 778K ACCEPT tcp -- any eth0 anywhere 192.168.1.0/ 25 tcp spt:9091 owner GID match debian-transmission
0 0 ACCEPT udp -- any eth0 anywhere 192.168.1.0/ 25 udp spt:9091 owner GID match debian-transmission
1973K 1832M ACCEPT all -- any tun0 anywhere anywhere owner GID match debian-transmission
8880 572K ACCEPT all -- any lo anywhere anywhere owner GID match debian-transmission
13132 939K REJECT all -- any any anywhere anywhere owner GID match debian-transmission reject-with icmp-port-unreachable
Kịch bản này đã được kiểm tra toàn diện về kết nối, ngắt kết nối, khởi động lại từ vpn. Nó hoạt động rất tốt. Truyền chỉ có thể sử dụng VPN. Ưu điểm lớn của kịch bản này so với các kịch bản khác là tôi đã chắc chắn như bạn có thể thấy (thông quaiptables -L -v
) rằng các số liệu dữ liệu của bạn với những gì được kéo qua truyền (bằng cách thêm các quy tắc INPUT (tất cả) và Chuyển tiếp (tất cả) cho mỗi giao diện eth0, vpn (tun0)). Vì vậy, bạn biết chính xác những gì đang xảy ra !!! Tổng số dữ liệu sẽ không chính xác với truyền - Thật không may, tôi không thể phân biệt được phía INPUT cho người dùng truyền debian, và sẽ có cả chi phí phụ và có lẽ các quy trình khác sử dụng cùng VPN, nhưng bạn sẽ thấy dữ liệu gần như là về phía INPUT và khoảng một nửa trên OUTPUT cho vpn xác nhận hoạt động của nó. Một điều khác cần lưu ý - phải mất một thời gian để ngắt kết nối vpn (tất cả các điểm dừng giao thông với truyền) và kết nối lại để truyền để 'đi' trên vpn mới, vì vậy đừng lo lắng nếu phải mất khoảng 5 phút để bắt đầu lại. .
MIPO - google 'MAN iptables' và xem bài viết này về giám sát băng thông nếu bạn muốn biết từng dòng cách tập lệnh này hoạt động ...