Как на маршрутизаторе Cisco 881‑K9 открыть UDP‑порт в обоих направлениях (входящем и исходящем) только для заданного диапазона IP‑адресов?

Дипсик советует сделать так: <br/> enable <br/> configure terminal <br/> ip access-list extended ALLOW-WEB <br/> permit tcp 192.168.1.0 0.0.0.255 any eq 80. При вводе команды «permit tcp …» появляется синтаксическая ошибка. <br/> <br/> Пробовал также: ip access-list extended OPEN-UDP и ip nat inside source static udp interface dealer0. На локальном компьютере в фаерволе открыл входящие соединения. Ничего не помогает. Ранее с этим маршрутизатором не работал — какие команды и в каком порядке нужно вводить, чтобы разрешить HTTP (порт 80) и UDP?
  • 19 марта 2026 г. 10:01
Ответы на вопрос 2
Ниже — понятное пошаговое объяснение и конкретные команды. Сначала — коротко о том, как всё работает, потом — готовые примеры под типичную схему (LAN 192.168.1.0/24, сервер 192.168.1.10, внешний интерфейс Dialer0).

Ключевые моменты
- HTTP = TCP порт 80. UDP — отдельный протокол, и его порты указываются отдельной командой.
- На Cisco вы используете:
  - ACL (ip access-list … или access-list N …) чтобы разрешать/запрещать трафик;
  - ip nat inside / ip nat outside на интерфейсах;
  - ip nat inside source static tcp|udp … interface … для проброса порта (если у вас один внешний IP).
- Синтаксис расширенного ACL: permit <prot> <src> <src-wildcard> <dst> <dst-wildcard> [eq <порт>]
  Пример корректной строки: permit tcp 192.168.1.0 0.0.0.255 any eq 80

Если у вас была синтаксическая ошибка при вводе permit …:
- Убедитесь, что вы в режиме глобальной конфигурации (configure terminal), и если вы используете именованный ACL — в режиме ip access-list extended NAME — затем вводите строки permit. Альтернативно можно использовать numbered ACL: access-list 101 permit tcp 192.168.1.0 0.0.0.255 any eq 80.

Пример 1 — разрешить исходящие HTTP/UDP из LAN и ответы (обычно NAT + stateful трансляция позволяют ответы без дополнительных правил)
(замените FastEthernet0/Dialer0/адреса на ваши)

configure terminal
! пометить интерфейсы
interface FastEthernet0
 ip address 192.168.1.1 255.255.255.0
 ip nat inside
!
interface Dialer0
 ip address dhcp
 ip nat outside
!
! если у вас нет ACL, исходящие соединения и так обычно проходят; но если нужен контроль:
ip access-list extended LAN-OUT
 permit tcp 192.168.1.0 0.0.0.255 any eq 80
 permit udp 192.168.1.0 0.0.0.255 any eq 1234    ! пример UDP-порта 1234
 deny ip any any
!
interface FastEthernet0
 ip access-group LAN-OUT out
end

Пример 2 — проброс порта (внешний интернет -> ваш внутренний сервер) и ограничение доступа только для заданного диапазона внешних IP
Сценарий: у вас внешний интерфейс Dialer0 с публичным IP, внутри сервер 192.168.1.10. Разрешаем доступ к TCP 80 и UDP 5000 только из внешней подсети 203.0.113.0/24.

configure terminal
! интерфейсы и NAT
interface FastEthernet0
 ip address 192.168.1.1 255.255.255.0
 ip nat inside
!
interface Dialer0
 ip address dhcp
 ip nat outside
!
! проброс портов: внешний IP (интерфейс) -> внутренний хост
ip nat inside source static tcp 192.168.1.10 80 interface Dialer0 80
ip nat inside source static udp 192.168.1.10 5000 interface Dialer0 5000
!
! ACL на внешнем интерфейсе: разрешаем только нужный источник в направлении к внешнему интерфейсу (in)
ip access-list extended WAN-IN
 permit tcp 203.0.113.0 0.0.0.255 host <ваш_внешний_IP> eq 80
 permit udp 203.0.113.0 0.0.0.255 host <ваш_внешний_IP> eq 5000
 deny ip any any
!
interface Dialer0
 ip access-group WAN-IN in
end

Примечания и советы
- В ACL порядок важен: первый подходящий мач даёт действие. В конце implicit deny ip any any.
- В строке ACL dst можно писать host 192.168.1.10 (для внутреннего адреса) или host <внешний_IP>. Если вы используете NAT-to-interface (ip nat inside source static ... interface Dialer0), тогда трафик приходит на внешний IP интерфейса — ACL, применённый inbound на внешнем интерфейсе, должен смотреть на этот внешний IP как на dst.
- Если у вас динамический внешний IP (Dialer0 получает по DHCP), используйте interface адрес в командах NAT (как в примере) — но в ACL придётся подставить реальный внешний IP. Можно временно разрешить по dst any и ограничить исходниками, но это менее безопасно.
- Альтернативный способ ввода ACL (если пробовали и у вас была ошибка): в глобальном режиме можно сделать:
  access-list 101 permit tcp 192.168.1.0 0.0.0.255 any eq 80
  затем interface FastEthernet0; ip access-group 101 out
  Номерной ACL иногда удобнее для быстрой проверки.

Если пришлёте:
- точные имена интерфейсов (какой интерфейс — внешний у вас: Dialer0 / FastEthernet4 / GigabitEthernet0 и т.п.),
- внутренний сервер (IP) и какой UDP‑порт нужно открыть,
- диапазон внешних IP, который нужно разрешить,
я подготовлю точный минимальный конфиг, ready-to-paste.
ACL ALLOW-WEB должен быть к чему то привязан. <br/> Хорошо бы нарисовать схему, например откуда тут появился NAT
Похожие вопросы