Tôi đã sử dụng hướng dẫn sau để thiết lập pi mâm xôi của mình làm điểm truy cập:
Raspberry Pi 3 làm điểm truy cập wifi
Tôi chuyển wlan0
đến eth0
và NATing tất cả lưu lượng của tôi. Hoạt động tuyệt vời!
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
Bây giờ tôi muốn thiết lập các quy tắc tương tự ngoại trừ sử dụng giao diện tun0-00
và chuyển tiếp tất cả lưu lượng truy cập của tôi thông qua đường hầm vpn của tôi. Tôi muốn gửi tất cả, không muốn bất cứ điều gì rò rỉ vào mạng máy chủ. Nghĩ rằng nó đi một cái gì đó như thế này:
sudo iptables -t nat -A POSTROUTING -o tun0-00 -j MASQUERADE
sudo iptables -A FORWARD -i tun0-00 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o tun0-00 -j ACCEPT
Thật không may, tôi biết rằng các quy tắc iptables này không hoàn thành ... Vấn đề là eth0
ở lại; quy tắc ban đầu để chuyển tiếp lưu lượng eth0
vẫn còn tồn tại.
Tôi muốn gửi tất cả lưu lượng truy cập của mình qua đường hầm nếu đường hầm được mở; nếu không, tôi tốt với nó bằng cách sử dụng eth0
.
Cập nhật:
Đã sử dụng cờ -I để chèn quy tắc của tôi:
sudo iptables -t nat -I POSTROUTING 1 -o tun0-00 -j MASQUERADE
sudo iptables -I FORWARD 1 -i tun0-00 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -I FORWARD 1 -i wlan0 -o tun0-00 -j ACCEPT
Chuỗi FORWARD:
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT all -- wlan0 tun0-00 0.0.0.0/0 0.0.0.0/0
2 0 0 ACCEPT all -- tun0-00 wlan0 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
3 0 0 ACCEPT all -- eth0 wlan0 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
4 0 0 ACCEPT all -- wlan0 eth0 0.0.0.0/0 0.0.0.0/0
5 0 0 ACCEPT all -- wlan1 wlan0 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
6 0 0 ACCEPT all -- wlan0 wlan1 0.0.0.0/0 0.0.0.0/0
Vẫn không có niềm vui, việc chuyển tiếp dường như không hoạt động.
Cấu hình VPN máy khách
Tôi đã loại bỏ những thứ có vẻ nhạy cảm:
dev tun
persist-tun
persist-key
cipher AES-256-CBC
auth SHA1
tls-client
client
resolv-retry infinite
remote XXX.XXX.XXX.XXX PORT_NUM udp
lport XXX
verify-x509-name "VPN_Certificate" name
pkcs12 CERT_NAME.p12
tls-auth CERTIFICATE-tls.key 1
ns-cert-type server
redirect-gateway local def1
Các pi kết nối tốt và phản ánh một IP công cộng khác nhau. Các khách hàng vẫn hiển thị pi là cổng của họ nhưng họ không thể kết nối được nữa.
Giải pháp
Đầu tiên tôi cần thêm redirect-gateway def1
vào tập tin .ovpn trên pi.
Sau đó, tôi cần phải nhập tên giao diện của mình một cách chính xác ... Ugh. Tôi cảm thấy như một người điên, nhưng rõ ràng tôi đã nhìn thấy tun0-00
ngay từ đầu và đó là lần duy nhất nó tồn tại. Giao diện thực sự chỉ là tun0
.
Vì vậy, các lệnh iptables thích hợp là:
sudo iptables -t nat -I POSTROUTING 1 -o tun0 -j MASQUERADE
sudo iptables -I FORWARD 1 -i tun0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -I FORWARD 1 -i wlan0 -o tun0 -j ACCEPT
Hoạt động tuyệt vời bây giờ!