@hemir

Какое решение killswitch для iptables лучше?

Привет.

Делаю VPN killswitch на linux ноутбуке и среди рекомендаций нашел два очень похожих набора правил для iptables. Хочу вас спросить, идентичны ли они? Или какой-то из них предпочтительнее для выбора?

Первое решение:

iptables --flush
iptables --delete-chain
iptables -t nat --flush
iptables -t nat --delete-chain
iptables -P OUTPUT DROP
iptables -A INPUT -j ACCEPT -i lo
iptables -A OUTPUT -j ACCEPT -o lo
iptables -A OUTPUT -j ACCEPT -d 169.38.69.24/32 -o wlp6s0 -p udp -m udp --dport 1194
iptables -A INPUT -j ACCEPT -s 169.38.69.24/32 -i wlp6s0 -p udp -m udp --sport 1194
iptables -A INPUT -j ACCEPT -i tun0
iptables -A OUTPUT -j ACCEPT -o tun0


Второе решение:

iptables --flush
iptables --delete-chain
iptables -t nat --flush
iptables -t nat --delete-chain
iptables -P OUTPUT DROP
iptables -A INPUT -j ACCEPT -i lo
iptables -A OUTPUT -j ACCEPT -o lo
iptables -A OUTPUT -j ACCEPT -d 169.38.69.24
iptables -A OUTPUT -j ACCEPT -o tun0


Я не очень "сетевой" парень. Для меня оба решения выглядит почти одинаково. Только не понимаю почему в первом случае мы отдельно разрешаем INPUT на tun0 и на VPN сервер, а во втором случае такого правила нет. В остальном второе решение смотрится лаконичнее.
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
hint000
@hint000
у админа три руки
Нет здесь правил для INPUT с действием DROP, а значит и нет смысла добавлять что-то в INPUT с действием ACCEPT, оно и так по-умолчанию будет. Можно написать и более лаконично:

iptables --flush
iptables --delete-chain
iptables -t nat --flush
iptables -t nat --delete-chain
iptables -P OUTPUT DROP
iptables -A OUTPUT -j ACCEPT -o lo
iptables -A OUTPUT -j ACCEPT -p udp --dport 1194
iptables -A OUTPUT -j ACCEPT -o tun+

Отличие в том, что можно подключаться к любому OpenVPN-серверу, т.к. ограничение задано по номеру порта, но не по адресу сервера. Также запись tun+ позволит работать через любой туннель, если будет создано несколько туннелей (tun0, tun1, tun2,..) - ну мало ли как и что захочется добавить в будущем.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы