Задать вопрос
  • Как в iptables разрешить только туннельный трафик?

    @ITsis Автор вопроса
    Можно для совсем тупых? Ведь именно таким я себя и ощущаю...
    -P INPUT ACCEPT
    -P FORWARD ACCEPT
    -P OUTPUT ACCEPT
    -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT #разрешение SSH
    -A INPUT -i int2-j ACCEPT #разрешить весь входящий трафик на локальный интерфейс (может лишнее)
    -A FORWARD -i int2 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT #перенаправление всех новых и существующих соединений из локального интерфейса 
    -A FORWARD -i int1 -m state --state RELATED,ESTABLISHED -j ACCEPT #перенаправление всех существующих соединений из интернета(свистка)
    -A FORWARD -i int2 -o tun -j ACCEPT #разрешение всего трафика между локальным интерфейсом и тунелем
    -A FORWARD -i tun -o int2 -j ACCEPT 
    -A FORWARD -i int1 -j DROP #запретить получать всё через свитсок, что не разрешено выше
    -A FORWARD -o int1 -j DROP #запретить отправлять всё через свисток, что не разрешено выше
    -A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT #разрешить исходящий трафик для ssh
    -A OUTPUT -d IP-VPN-SERVER -o int1 -j ACCEPT #разрешить исходящие подключения на ВПН сервер через свисток
    -A OUTPUT -d 192.168.8.0/24 -o int1 -j ACCEPT #разрешить исходящие подключения с локального адреса свистка через его интерфейс
    -A OUTPUT -o int1 -j DROP #закрыть весь исходящий трафик в интернет


    В итоге после применения этого правила какое-то время моё ssh подключение держится, потом падает.
    Соответственно пинг не проходит, через туннель уже не подключиться на эту машину, хотя с неё доступ на другие ВПН клиенты есть.

    Что нужно прописать в FORWARD и OUTPUT Чтобы последние команды DROP не мешали получить доступ от других ВПН клиентов к этой машине?
    Ответ написан
    Комментировать