1

Я использую Openvpn, чтобы позволить людям выходить в интернет. Все работает нормально, но я хочу ограничить использование torrent/P2p трафика. Вместо того чтобы пытаться заблокировать это, пытаясь идентифицировать их всех по отдельности, я хочу разрешить только http и https и ограничить остальные, либо запретить их. Конфигурация iptables, которая у меня сейчас есть:

    # Generated by iptables-save v1.4.21 on Mon Dec 26 16:45:34 2016
*mangle
:PREROUTING ACCEPT [1412:290307]
:INPUT ACCEPT [668:148793]
:FORWARD ACCEPT [744:141514]
:OUTPUT ACCEPT [528:166065]
:POSTROUTING ACCEPT [1182:293750]
COMMIT
# Completed on Mon Dec 26 16:45:34 2016
# Generated by iptables-save v1.4.21 on Mon Dec 26 16:45:34 2016
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [343:139236]
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p icmp -m state --state NEW -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
-A INPUT -i eth0 -p udp -m state --state NEW -m udp --dport 1195 -j ACCEPT
-A INPUT -i eth0 -p udp -m state --state NEW -m udp --dport 1194 -j ACCEPT
-A INPUT -j DROP
-A FORWARD -i tun+ -j ACCEPT
-A FORWARD -i tun+ -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
COMMIT
# Completed on Mon Dec 26 16:45:34 2016
# Generated by iptables-save v1.4.21 on Mon Dec 26 16:45:34 2016
*nat
:PREROUTING ACCEPT [55:4133]
:INPUT ACCEPT [12:1368]
:OUTPUT ACCEPT [1:76]
:POSTROUTING ACCEPT [1:76]
-A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 145.131.3.243
-A POSTROUTING -s 10.8.1.0/24 -j SNAT --to-source 145.131.17.88
COMMIT
# Completed on Mon Dec 26 16:45:34 2016

Я только читал о возможности разрешить только http и https, но не смог найти способ реализовать это таким образом. Я думаю, что я должен добавить правила в цепочку FORWARD, которая теперь говорит, что вы можете делать то, что вы хотите через интерфейс Tun. Поскольку политика по умолчанию для цепочки FORWARD установлена в DROP, все, кроме трафика, который имеет правила, разрешающие это явно. Я прав насчет цепи, где я должен разместить правила?

1 ответ1

1

Протестировал его, и он работает, когда вы помещаете их в переднюю цепочку. Протестировал его над openvpn и положил (для тестирования!) это правило наверху цепочки. Все остальные сети могут проходить, и только трафик, поступающий из сети 10.8.1.0/24, не переходит через 443:

-A FORWARD -s 10.8.1.0/24 -p tcp --dport 443 -j DROP
-A FORWARD -i tun+ -j ACCEPT

Так что я был прав и могу решить это дальше.

Спасибо, что подумал со мной. ;)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .