Переадресация портов macOS для удаленного входа в систему по ssh [закрыто]

Я хочу выполнять удаленный вход по ssh извне моей сети на сервер (macOS Sierra) в моей локальной сети, используя порт, отличный от 22. ([ Я слышал , что это повышает безопасность использования порта, отличного от порта по умолчанию. Верно ли это?)

Я успешно настроил свой маршрутизатор ( Cisco RV325 , который имеет фиксированный IP-адрес WAN. адрес, скажем, 99.99.99.99), чтобы я мог удаленно войти на сервер (со статическим IP-адресом в локальной сети 12.0.0.123) через порт 22, например:

$ ssh USERNAME@99.99.99.99 -p 22 

Это нормально работает. Теперь я хочу иметь возможность вести журнал через другой порт (скажем, 60022), вот так:

$ ssh USERNAME@99.99.99.99 -p 60022 

Я не понимаю, как перенаправить трафик с порта 60022 на 22. Это что-то, что я должен сделать на маршрутизаторе или на локальном сервере? Маршрутизатор " Порт Ран ge Forwarding Table "config действительно позволяет пересылать пакеты из заданного диапазона портов на определенный IP-адрес, но, похоже, не позволяет мне переводить с одного порта на другой.

Если это должно происходить на сервере, я не понимаю, как это сделать. И как мне заставить macOS даже начать прослушивание порта 60022?

Я безуспешно пытался адаптировать эти инструкции Ubuntu к Mac.Я пробовал использовать pfctl для настройки пересылки:

$ echo "
rdr pass inet proto tcp from any to any port 60022 -> 127.0.0.1 port 22
pass in proto tcp from any to any port 60022
" | sudo pfctl -f -
pfctl: Use of -f option, could result in flushing of rules
present in the main ruleset added by the system at startup.
See /etc/pf.conf for further details.

No ALTQ support in kernel
ALTQ related functions disabled
$

Кажется, это не открывает порт 60022, поскольку (1) порт не отображается, когда я выполняю sudo lsof - i -P | grep LISTEN и (2) в соединении отказано, когда я сижу за сервером и пытаюсь войти в систему:

$ ssh USERNAME@127.0.0.1 -p 60022 -v
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/USERNAME/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 102: Applying options for *
debug1: Connecting to 127.0.0.1 [127.0.0.1] port 60022.
debug1: connect to address 127.0.0.1 port 60022: Connection refused
ssh: connect to host 127.0.0.1 port 60022: Connection refused
$ 

В то время как вход в систему через порт 22 работает нормально:

$ ssh USERNAME@127.0.0.1 -p 22 -v
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/USERNAME/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 102: Applying options for *
debug1: Connecting to 127.0.0.1 [127.0.0.1] port 22.
debug1: Connection established.
...
Password:
$

В итоге:

  1. Как мне сказать macOS чтобы начать прослушивание порта 60022?
  2. Как мне указать macOS преобразовать порт 60022 в 22?
  3. Есть какие-нибудь хорошие вводные / учебные руководства о том, как это сделать?
  4. Стоит ли мне вообще пытаться перенаправить на 60022 (например), или достаточно ли безопасно использовать порт по умолчанию 22?
0
задан 25 August 2017 в 18:40
1 ответ

Как предположил @yoonix, вы можете достичь желаемой цели полностью в маршрутизаторе, не возясь с сервером (macOS или иначе). Сводные вопросы №1 и №2 (и даже название сообщения), возможно, немного вводят в заблуждение. Что касается сводного вопроса №4, см. Комментарий @Gordon Davisson.

Для достижения цели настройте маршрутизатор следующим образом:

  1. Войдите на страницу конфигурации RV325 в своем браузере. Выберите «Настройка»> «Преобразование адресов порта».
  2. В разделе «Таблица преобразования адресов портов» нажмите кнопку «Управление услугами ...». Во всплывающем окне нажмите «Добавить», затем введите имя службы (ваш удобный псевдоним для настройки преобразования адресов порта), выберите «TCP» во всплывающем меню, затем введите внешний порт (60022) и внутренний порт ( 22). Нажмите «Сохранить» и закройте всплывающее окно.
  3. Вернувшись в «Таблицу преобразования адресов портов», нажмите «Добавить». Выберите имя службы во всплывающем меню, введите IP-адрес пересылки (в примере 12.0.0.123) и установите флажок «Состояние», чтобы включить его. Нажмите «Сохранить».
  4. Перейдите в «Брандмауэр»> «Правила доступа» и нажмите кнопку «Управление службами ...». Во всплывающем окне нажмите «Добавить», затем введите имя службы (ваш псевдоним для этого правила доступа) и введите номер внешнего порта (или диапазон номеров портов), который вы хотите открыть (60022-60022 для этого пример). Нажмите «Сохранить» и закройте всплывающее окно.
  5. Наконец, в «Правилах доступа» нажмите «Добавить». Выберите «Разрешить» и имя службы, которое вы создали выше. Оставьте «IP-адрес источника» и «IP-адрес назначения» как «Любой». Нажмите «сохранить».

С этого момента маршрутизатор позаботится о необходимой переадресации и преобразовании портов, так что выполнение ssh (hidden) -p 60022 направит вас прямо к демону входа в систему на желаемый сервер по адресу 12.0.0.113.

0
ответ дан 5 December 2019 в 07:28

Теги

Похожие вопросы