我有一个服务器客户端openvpn安装程序与所有客户端stream量通过udp通过隧道指示。 Id喜欢限制客户端可以使用什么types的应用程序,而连接到我的VPN。 就像客户端能够浏览的id一样。
你将如何去与iptables做这个?
你会在什么结束这些限制,即在服务器tun适配器或其面向公众的eth0适配器?
*******更新*****根据PQD的build议我更新了我的iptables,但由于某种原因,它允许其他端口上的stream量被转发。 testing我试图通过洪stream作为我的vpn上的客户端下载Ubuntu,并且它不应该(在torrent客户端的端口号不责怪)它工作正常。
任何人都可以在我的iptables发现一个错误?
#!/bin/bash SERVER_IP="***.***.***.***" HOME_IP="***.***.***.***" CLIENT_IP_RANGE="***.***.***.***/**" # Flush all current rules from iptables iptables -F # Allow SSH connections on tcp port 22 iptables -A INPUT -p tcp --dport 22 -s $HOME_IP -j ACCEPT iptables -A OUTPUT -p tcp --sport 22 -d $HOME_IP -j ACCEPT #Only ping my server from my home iptables -A INPUT -p icmp --icmp-type 8 -s $HOME_IP -j ACCEPT # Set default policies for INPUT, FORWARD and OUTPUT chains # iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # Set access for localhost # iptables -A INPUT -i lo -j ACCEPT # Accept packets belonging to established and related connections # iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #Setup OpenVpn iptables -A INPUT -i tun+ -j ACCEPT iptables -A OUTPUT -o tun+ -j ACCEPT iptables -A INPUT -i venet0 -p udp --dport 1194 -j ACCEPT iptables -A INPUT -i venet0 -p tcp --dport 1194 -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -s $CLIENT_IP_RANGE -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -s $CLIENT_IP_RANGE -p tcp --dport 8000 -j ACCEPT iptables -A FORWARD -s $CLIENT_IP_RANGE -p icmp -j ACCEPT iptables -A FORWARD -s $CLIENT_IP_RANGE -j DROP #Setup NAT for openvpn iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE # Save settings # /sbin/service iptables save
用iptables -nL FORWARD更新
Chain FORWARD (policy DROP) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT tcp -- 10.254.1.0/24 0.0.0.0/0 tcp dpt:80 ACCEPT tcp -- 10.254.1.0/24 0.0.0.0/0 tcp dpt:8000 ACCEPT icmp -- 10.254.1.0/24 0.0.0.0/0 DROP all -- 10.254.1.0/24 0.0.0.0/0
我会这样做,只是基于源IP [在这个例子中,我假设VPN用户从10.0.15.0/24添加]:
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -s 10.0.15.0/24 -p tcp --dport 80 --j ACCEPT iptables -A FORWARD -s 10.0.15.0/24 -p icmp --j ACCEPT iptables -A FORWARD -s 10.0.15.0/24 --j DROP
请记住,更聪明的用户可能通过http / https隧道发送不需要的stream量