LINUX.ORG.RU
ФорумAdmin

Разрешить Cisco AnyConnect

 , cisco anyconnect, ,


0

1

Имеется домашний сервер с Linux'ом и белым ip. Что нужно разрешить в iptables, чтобы ноутбук с Cisco AnyConnect, подключненный через домашний сервер, мог соединяться?

Думал, что из домашней сети форвардится вообще весь трафик. Но что-то AnyConnect'у не нравится - не может начать сессию. Забавный момент, что если открыть сессию не через домашний сервер, а через телефон, потом можно переключиться на домашний сервер и VPN продолжает работать.

Текущие правила iptables для FORWARD:

:PREROUTING ACCEPT [3848:186272]
:POSTROUTING ACCEPT [873:48418]
:OUTPUT ACCEPT [1279:69120]
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
-A FORWARD -d 192.246.40.244 -j DROP
-A FORWARD -i eth0 -o ppp0 -j ACCEPT
-A FORWARD -i ppp0 -o ppp0 -j DROP

Разве "-A FORWARD -i eth0 -o ppp0 -j ACCEPT" - без указания протокола, не разрешает перенаправлять вообще всё? Или для UDP нужно отдельное правило?

★★★★★

Думаю, что для корректной работы с этими пакетами нужен какой-то специфический модуль ядра, который надо загрузить. Можно посмотреть, где лежат модули iptables, и там поискать, что ещё не загружено. Например, ip_conntrack_h323 и ip_nat_h323.

В дебиане этих модулей не нашел (может, просто по-другому называются, или этот функционал реализован более общим модулем), в центоси (Scientific Linux, но пофиг) - есть.

Почему переключение, которое вы описали, помогает обойти проблему, моя теория не объясняет.

pianolender ★★★
()

Разве "-A FORWARD -i eth0 -o ppp0 -j ACCEPT" - без указания протокола, не разрешает перенаправлять вообще всё?

Разрешает. А обратно-то как?

pianolender ★★★
()
Ответ на: комментарий от pianolender

-A FORWARD -d 192.246.40.244 -j DROP

а это что вообще?

Было нужно несколько лет назад, чтобы играть в дум. Не помню уже, толи линуксная версия не могла авторизоваться, толи я играл в просроченную демо версию.

alt-x ★★★★★
() автор топика
Ответ на: комментарий от pianolender

Разрешает. А обратно-то как?

Можно подробнее? Вроде, если я сервер на ноутбуке не поднимаю, обратно не нужно?

а, ну и да. iptables -I FORWARD -p 47 -j ACCEPT

А разве "-A FORWARD -i eth0 -o ppp0 -j ACCEPT" не форвардит и 47 протокол?

alt-x ★★★★★
() автор топика
Ответ на: комментарий от alt-x

разве "-A FORWARD -i eth0 -o ppp0 -j ACCEPT" не форвардит и 47 протокол?

А я писал, видимо, до того, как ваше общее правило увидел.

Можно подробнее? Вроде, если я сервер на ноутбуке не поднимаю, обратно не нужно?

Пакеты, уходящие в интернет, несут в себе какую-то информацию, они дойдут до адресата, адресат захочет ответить (хотя бы подтвердить начало tcp-сессии), и пошлет какой-то пакет обратно, а у вас обратный форвард запрещен политикой по умолчанию. Нужно разрешить форвард пакетов обратно, чтобы могли приходить ответы. Достаточно, думаю, будет

iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

Только модули какие-то все равно, боюсь, понадобятся, может, и не те, что я написал. Если это vpn-клиент, то, возможно, нужны какие-то gre-шные модули. Покажите

ls /lib/modules/<ваше ядро>/kernel/net/ipv4/netfilter

Но что-то AnyConnect'у не нравится

Поостерегся бы я таких программных продуктов, про которые нельзя точно сказать, что именно им не нравится..

pianolender ★★★
()

1) Покажите выхлоп

lsmod |grep -i -e 'nat\|conn\|nf_'
2) Не факт, что проблема в вашем роутере, провайдеры частенько ломают VPN (с умыслом или в рамках борьбы с торрентами, результат един - VPN не работает или работает очень медленно)

af5 ★★★★★
()
Ответ на: комментарий от pianolender

хм... и правда. Что-то въелось в голову что с -I индекс обязателен с чего не помню даже

af5 ★★★★★
()
Ответ на: комментарий от af5

lsmod |grep -i -e 'nat\|conn\|nf_'

# lsmod |grep -i -e 'nat\|conn\|nf_'
nf_conntrack_ftp       12913  0
iptable_nat             6158  1
nf_nat                 22759  2 ipt_MASQUERADE,iptable_nat
nf_conntrack_ipv4       9506  5 iptable_nat,nf_nat
nf_defrag_ipv4          1483  1 nf_conntrack_ipv4
ip_tables              17831  2 iptable_filter,iptable_nat
nf_conntrack_ipv6       8748  4
nf_defrag_ipv6         11981  1 nf_conntrack_ipv6
nf_conntrack           79453  7 nf_conntrack_ftp,ipt_MASQUERADE,iptable_nat,nf_nat,nf_conntrack_ipv4,nf_conntrack_ipv6,xt_state
ipv6                  322637  27 nf_conntrack_ipv6,nf_defrag_ipv6,ip6t_REJECT

провайдеры частенько ломают VPN (с умыслом или в рамках борьбы с торрентами, результат един - VPN не работает или работает очень медленно)

Торренты работают на ура. Трудно поверить, что VPN зажат у провайдера - телефон от него же, а через телефон - работает.

iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

не помогло.

alt-x ★★★★★
() автор топика
Ответ на: комментарий от pianolender

/lib/modules/<ваше ядро>/kernel/net/ipv4/netfilter

arptable_filter.ko  iptable_nat.ko       ipt_CLUSTERIP.ko   ipt_REDIRECT.ko       nf_nat_ftp.ko         nf_nat_proto_gre.ko
arp_tables.ko       iptable_raw.ko       ipt_ecn.ko         ipt_REJECT.ko         nf_nat_h323.ko        nf_nat_proto_sctp.ko
arpt_mangle.ko      iptable_security.ko  ipt_ECN.ko         ipt_ULOG.ko           nf_nat_irc.ko         nf_nat_proto_udplite.ko
ip_queue.ko         ip_tables.ko         ipt_LOG.ko         nf_conntrack_ipv4.ko  nf_nat.ko             nf_nat_sip.ko
iptable_filter.ko   ipt_addrtype.ko      ipt_MASQUERADE.ko  nf_defrag_ipv4.ko     nf_nat_pptp.ko        nf_nat_snmp_basic.ko
iptable_mangle.ko   ipt_ah.ko            ipt_NETMAP.ko      nf_nat_amanda.ko      nf_nat_proto_dccp.ko  nf_nat_tftp.ko
alt-x ★★★★★
() автор топика
Ответ на: комментарий от alt-x

Странно, должно работать. У нас работает.
А что в INPUT? Рискну предположит проблему с MTU и в частности с PMTUD (если столь же нелюбезно режите ICMP), попроуй на всякий случай что-нибудь из этого:

iptables -I INPUT -p icmp -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
iptables -I FORWARD -p icmp -j ACCEPT

af5 ★★★★★
()
Последнее исправление: af5 (всего исправлений: 1)
Ответ на: комментарий от alt-x

Трудно поверить, что VPN зажат у провайдера - телефон от него же, а через телефон - работает.

Еще бывает что провайдеры для разных сервисов разные каналы используют. Дайте-ка выхлоп

traceroute -n ya.ru
tracepath -n ya.ru
через мобилу и через наземный канал

af5 ★★★★★
()
Ответ на: комментарий от af5

А, так INPUT идёт до FORWARD! Ну, так там я его и отрезал. Блин, каждый раз перед использованием читаю мануал на iptables, но за годы между перенастройками успеваю забыть, как оно работает...

Всем спасибо за помошь, всё заработало. Доп. модули не нужны.

alt-x ★★★★★
() автор топика
Ответ на: комментарий от alt-x

Что-то не понял, после чего заработало то?

af5 ★★★★★
()
Ответ на: комментарий от af5

это не так

Тогда не понял. Зачем тогда

iptables -I INPUT -p icmp -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
? Заработало после полного открытия INPUT:

  iptables -I INPUT -i ppp0 -p udp -m udp -j ACCEPT
  iptables -I INPUT -i ppp0 -p tcp -m tcp  -j ACCEPT

Решил, что что-то режет в INPUT. Дойду до дома - перепроверю сам (пока что жена тестировала, может, какой-то раз несинхронно получилось и сработали предыдущие изменения).

alt-x ★★★★★
() автор топика
Ответ на: комментарий от alt-x

icmp может понадобиться для корректной работы PMTUD. ESTABLISHED,RELATED просто должен быть, потому что без него мало что будет работать вообще и не понятно как вы без этого вообще жили. А вот полностью открывать инпут это ни куда не годится.

af5 ★★★★★
()
Q. What ports need to be opened both ways on a client in order for AnyConnect to function properly?

    A. For AnyConnect 3.0, these ports need to be allowed:
        TLS (SSL)          – TCP 443
        SSL Redirection    – TCP 80   (optional)
        DTLS               – UDP 443  (optional but HIGHLY recommended)
        IPsec/IKEv2        – UDP 500, UDP 4500  (and the client services port used for SSL)

IPSec/IKEv2 поддерживается только в довольно свежих IOS и ASA, т.е. весьма вероятно, что это не твой случай.

frob ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.