다음은 데비안 전송 사용자 그룹 (즉, 전송)이 VPN을 통해서만 데이터를 라우팅하는지 확인하는 데 필요한 NOOBS (데비안 사용)에 대한 완전한 'HOW TO'입니다.
복잡한 시스템 스크립트를 기반으로 VPN에 더 긴 '방법'을 사용하지 마십시오 ...! iptables는 최고입니다. -전송 사용자 및 그룹에 기반한 몇 가지 IPTABLE 룰을 사용하여 VPN을 제어하고 (시스템 스크립트, 위아래 스크립트 등을 사용하는 더 복잡한 '해킹'방법과는 달리 ...) 너무 간단합니다!
1 단계-설정 : (전송이 설치되었고 데비안 전송 사용자가 있다고 가정합니다!)
sudo apt-get install iptables
sudo apt-get install iptables-persistent
2 단계-transmission-ip-rules 파일 작성
sudo nano transmission-ip-rules
아래에서 시작하여 아래 코드 블록에 텍스트를 추가하십시오. #!/bin/bash
중대한
- 로컬 네트워크가 192.168.1.x 형식이 아닌 경우 NET 변수를 사용자 고유의 로컬 네트워크 주소 지정 형식에 맞게 변경하십시오 !!.
- 또한 192.168.1.0/25가 실제로 192.168.1.0-255의 범위를 제공한다는 단점을 알고 있어야합니다!
- 때로는 인터페이스 eth0, tun0 (vpn) 등이 다를 수 있습니다. 'ifconfig'로 확인하고 필요한 경우 변경하십시오.
#!/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
파일을 저장 한 후 실행
sudo iptables -F
sudo chmod +x transmission-ip-rules
sudo ./transmission-ip-rules
그런 다음 재부팅을 통해 다음 규칙을 유지하십시오.
sudo dpkg-reconfigure iptables-persistent
두 프롬프트에 모두 예를 탭하십시오. 끝난!
이 스크립트의 장점은 장치를 통해 모든 데이터를 추적한다는 것입니다! 발행 할 때
sudo iptables -L -v
VPN 인터페이스가 제대로 작동하는지 확인할 수 있도록 인터페이스 및 입력 또는 출력쪽에 얼마나 많은 데이터가 있는지 보여줍니다. 예를 들어;
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
이 스크립트는 VPN에서 연결, 연결 해제, 재부팅시 철저하게 테스트되었습니다. 잘 작동합니다. 전송은 VPN 만 사용할 수 있습니다. 이 스크립트가 다른 스크립트보다 큰 장점은iptables -L -v
) 데이터가 각 인터페이스 eth0, vpn (tun0)에 대해 INPUT (all) 및 Forward (all) 규칙을 추가하여 전송을 통해 풀링 된 데이터와 일치하는지 확인하십시오. 그래서 당신은 무슨 일이 일어나고 있는지 정확히 알고 있습니다! 데이터 총계는 전송과 정확하게 집계되지 않습니다. 불행히도 INPUT 쪽에서 debian-transmission 사용자로 구별 할 수 없으며 동일한 VPN을 사용하는 추가 오버 헤드와 다른 프로세스가있을 수 있지만 데이터는 대략적으로 키가 큽니다. 입력쪽에 있고 VPN의 작동을 확인하기 위해 OUTPUT의 절반 정도입니다. 주목해야 할 또 다른 점-VPN 연결이 끊어지면 (모든 트래픽이 전송으로 중지됨) 잠시 기다렸다가 새 VPN에서 '가져 오기'위해 전송을 위해 다시 연결하므로 다시 토런트를 시작하는 데 약 5 분이 걸리더라도 걱정하지 마십시오. .
팁-Google 'MAN iptables'를 사용 하고이 스크립트의 작동 방식을 한 줄씩 알고 싶다면 대역폭 모니터링에 대한 이 기사를 참조하십시오 ...