LINUX.ORG.RU
ФорумAdmin

Не могу пробросить telnet с основного шлюза на коммутатор.

 , ,


0

1

Здравствуйте. Я не гуру системного администрирования на линуксе. Только учусь. Стоит у меня UBUNTU 18.10 (GNU/Linux 4.18.0). Настроил я основной шлюз на нём. Дело обстоит так:

  • ens32 - смотрит во внешнюю сеть. IP 192.168.0.35.
  • enp2s1 - смотрит в локальную сеть. На этом интерфейсе настроены 3 вилана. Работаю я сейчас только с одним виланом v10. IP 192.168.10.3

В локальной сети есть коммутатор Dlink DES 3200 26 (доступ по телнету по IP 192.168.10.1). Кабель с enp2s1 подключён в тегированный порт коммутатора. Ну а дальше локальные машины по стандарту. Я знаю что давать подключение по телнету из внешней сети это ой как не безопасно. Моя цель посмотреть как происходит проброс портов. То есть этот проброс делается с целью обучения.

Я хочу из внешней сети через основной шлюз по 23 порту подключиться к коммутатору.

Для наведения порядка в сети я использовал iptables. Настроил я так: Вывод командой iptables -S

-P INPUT ACCEPT //Разрешил всё от безысходности
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -s 192.168.10.63/32 -p tcp -m tcp --dport 2002 -j //Тут я разрешил подключение по SSH
-A INPUT -m state --state INVALID -j DROP // отбрасываю неизвестные пакеты
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP // защита от syn-flood"а

-A FORWARD -p tcp -m tcp --dport 23 -j ACCEPT //разрешаю транзитный пакеты на телнет 
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT // разрешаю устанавливать соединение 
-A FORWARD -i snp2s1 -o ens32 -j ACCEPT //разрешаю ходить пакетам с одной интерфейса на другой
-A FORWARD -i ens32 -o enp2s1 -j ACCEPT
-A FORWARD -s 192.168.10.0/24 -d 192.168.20.0/24 -j REJECT --reject-with icmp-port-unreachable //Тут я просто запрещаю ходить с одного вилана на другой 
-A FORWARD -s 192.168.10.0/24 -d 192.168.30.0/24 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -s 192.168.20.0/24 -d 192.168.30.0/24 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -s 192.168.20.0/24 -d 192.168.10.0/24 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -s 192.168.30.0/24 -d 192.168.10.0/24 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -s 192.168.30.0/24 -d 192.168.20.0/24 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -m state --state INVALID -j DROP //не хочу что бы неизвестные пакеты бегали через фаервол

-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -o enp2s1 -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP

-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT

-A PREROUTING -d 192.168.0.35/32 -p tcp -m tcp --dport 23 -j DNAT --to-destination 192.168.1.10 //Пытался пробросить 23 порт на коммутатор 
-A POSTROUTING -o ens32 -j SNAT --to-source 192.168.0.35 // nat для доступа в интернет из локальной сети

Вывод командой iptables -L --line-numbers

hain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  anywhere             anywhere
2    ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
3    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
4    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
5    ACCEPT     tcp  --  192.168.10.63        anywhere             tcp dpt:2002
6    DROP       all  --  anywhere             anywhere             state INVALID
7    DROP       tcp  --  anywhere             anywhere             tcp flags:!FIN,SYN,RST,ACK/SYN state NEW

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:telnet
2    ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
3    ACCEPT     all  --  anywhere             anywhere
4    ACCEPT     all  --  anywhere             anywhere
5    REJECT     all  --  192.168.10.0/24      192.168.20.0/24      reject-with icmp-port-unreachable
6    REJECT     all  --  192.168.10.0/24      192.168.30.0/24      reject-with icmp-port-unreachable
7    REJECT     all  --  192.168.20.0/24      192.168.30.0/24      reject-with icmp-port-unreachable
8    REJECT     all  --  192.168.20.0/24      192.168.10.0/24      reject-with icmp-port-unreachable
9   REJECT     all  --  192.168.30.0/24      192.168.10.0/24      reject-with icmp-port-unreachable
10   REJECT     all  --  192.168.30.0/24      192.168.20.0/24      reject-with icmp-port-unreachable
11   DROP       all  --  anywhere             anywhere             state INVALID

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  anywhere             anywhere
2    ACCEPT     all  --  anywhere             anywhere
3    ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
4    DROP       tcp  --  anywhere             anywhere             tcp flags:!FIN,SYN,RST,ACK/SYN state NEW

Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination
1    DNAT       tcp  --  anywhere             gateway              tcp dpt:telnet to:192.168.1.10

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination
1    SNAT       all  --  anywhere             anywhere             to:192.168.0.35

В коммутаторе вилан для управления v10. То есть именно тот, на который я и пробрасываю входящее соеденение по телнету. Я так понимаю что если проброс удачный, то я должен подключиться через putty на 192.168.0.35:23 и попасть на 192.168.10.1:23? Помогите разобраться.

$ iptables -A PREROUTING -i ens32 -p tcp -m tcp --dport 23 -j DNAT --to-destination 192.168.10.1
Может и ваше правило заработает, если в адресе назначения ошибку исправить.

anonymous ()
Ответ на: комментарий от Frairs

Если вы её добавили к уже существующей записи то не сработает. Покажите выхлоп iptables-save с правильной записью.

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

Если вы про такую запись:

Я про то, что у вас сейчас указан не 192.168.10.1, а 192.168.1.10

то я пытался.

--to-destination 192.168.10.1:23

Тут только ip, для порта --dport 23

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

--to-destination 192.168.10.1:23

Тут только ip, для порта --dport 23

Тут вы не совсем правы, по умолчанию если в to-destination не указан порт то будет использован тот же что и в dport но ничего плохого нет в том что указан такой же в to-destination.
Другой момент который я пропустил, приведенная ТС команда однозначно содержит ошибку -t nat не хватает. Да и запуск от пользователя как бэ намекает.

anc ★★★★★ ()

UBUNTU 18.10 (GNU/Linux 4.18.0)

Ubuntu GNU/Linux 18.10 (Linux 4.18.0). Вот так правильно. // Тред не читал

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

Прошу прощение за такую глупую ошибку в IP адресе. Просто было бесчисленное количество попыток пробросить порт, и у меня мозги заплыли совсем. На самом деле в правиле стоит такая строка:

sudo iptables -t nat -A PREROUTING -d 192.168.0.35 -p tcp -m tcp --dport 23 -j DNAT --to-destination 192.168.10.1

Может быть нужно ещё цепочку FORWARD как то хитро настроить для этих целей? Сам telnet на сервере отключен. Да и не нужен он если я правильно понимаю. Ведь у меня не входящее соединение, а проходящее? То есть пакеты попадают в цепочку PREROUTING, перенаправляются в FORWARD и оттуда уже до коммутатора. Коммутатор в свою очередь отправляет ответ о том, что он готов к соединению. Туда и обратно пакеты должны гулять по 23 порту, и я не вижу ни каких препятствий. Пробовал добавить такое правило:

sudo iptables -t nat -A POSTROUTING -d 192.168.10.1 -p tcp -m tcp --dport 23 -j SNAT --to-destination 192.168.0.35
Нечего не изменилось. Почитал кучу статей по этому поводу, начинаю уже думать что я, идиот, делаю ересь.

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

Вам повторить? Покажите выхлоп iptables-save

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