---
title: 'Настроить переадресацию портов'
sidebar_label: 'Настроить переадресацию портов'
sidebar_position: 7
description: 'Как настроить переадресацию портов для доступа к серверам за межсетевым экраном'
---

import Formbricks from '@theme/MDXComponents/Formbricks';

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import { TabItemLabel } from '@selectel/docux/components';

# Настроить переадресацию портов

:::info

Это инструкция для настройки переадресации портов на межсетевом экране для доступа к серверам по SSH.

:::

Для доступа к серверу за межсетевым экраном можно настроить переадресацию портов (port forwarding).
Это позволяет подключаться к серверу по публичному IP-адресу межсетевого экрана без необходимости знать приватный адрес сервера.
Пользователи будут подключаться к серверу только по тем портам, которые вы укажете в настройках.

Настройки в инструкции актуальны для версий FortiOS 6.x и 7.x. Если у вас другая версия FortiOS, вы можете найти документацию для нее в панели управления FortiGate в верхнем правом углу или на [официальном сайте FortiGate](https://docs.fortinet.com).

Чтобы настроить переадресацию портов:

1. [Создайте виртуальный IP-адрес](#create-virtual-ip).
2. Опционально: [создайте группу виртуальных IP-адресов](#create-virtual-ip-address-group).
3. [Создайте политику безопасности](#create-security-policy).

## 1. Создать виртуальный IP-адрес \{#create-virtual-ip}

Виртуальный IP-адрес связывает публичный адрес межсетевого экрана с приватным адресом сервера за межсетевым экраном. Когда пользователь обращается по публичному адресу, FortiGate перенаправляет запрос на нужный сервер.

<Tabs queryString="create-virtual-ip">
  <TabItem value="graphic">
    <TabItemLabel>
      Графический интерфейс
    </TabItemLabel>

    <Tabs queryString="firmware">
      <TabItem value="fortios-6">
        <TabItemLabel>
          FortiOS 6.x
        </TabItemLabel>

        1. [Подключитесь к межсетевому экрану](/firewalls/fortigate/connect-to-firewall.mdx).

        2. Перейдите в раздел **Policy & Objects** → **Virtual IPs**.

        3. Нажмите **Create New** и выберите **Virtual IP**.

        4. В разделе **VIP Type** выберите **IPv4**.

        5. В поле **Name** введите имя виртуального IP-адреса.

        6. Опционально: в поле **Comments** введите комментарий для виртуального IP-адреса.

        7. В поле **Interface** укажите, через какой интерфейс межсетевого экрана будет доступен виртуальный IP-адрес:

           * чтобы IP-адрес был доступен только через один интерфейс, выберите этот интерфейс. Например, **wan1**;
           * чтобы IP-адрес был доступен через все интерфейсы, выберите **any**.

        8. В поле **External IP Address/Range** укажите публичный IP-адрес межсетевого экрана, который вы получили в тикете после [заказа услуги](firewalls/order/order-hardware-firewall.mdx).

        9. В поле **Mapped IP Address** укажите приватный адрес сервера за межсетевым экраном, к которому нужно настроить доступ по протоколу SSH.

        10. Включите тумблер **Port Forwarding**.

        11. В поле **Protocol** выберите **TCP**.

        12. В поле **External Service Port** укажите свободный порт на межсетевом экране. Например, `8080`.

        13. В поле **Map to Port** укажите порт, на котором запущена служба SSH на сервере за межсетевым экраном. По умолчанию это порт 22.

        14. Нажмите **OK**.
      </TabItem>

      <TabItem value="fortios-7">
        <TabItemLabel>
          FortiOS 7.x
        </TabItemLabel>

        1. [Подключитесь к межсетевому экрану](/firewalls/fortigate/connect-to-firewall.mdx).

        2. Перейдите в раздел **Policy & Objects** → **Virtual IPs**.

        3. Выберите **Virtual IP** и нажмите **Create New**.

        4. В поле **Name** введите имя виртуального IP-адреса.

        5. Опционально: в поле **Comments** введите комментарий для виртуального IP-адреса.

        6. В поле **Interface** укажите, через какой интерфейс межсетевого экрана будет доступен виртуальный IP-адрес:

           * чтобы IP-адрес был доступен только через один интерфейс, выберите этот интерфейс. Например, **wan1**;
           * чтобы IP-адрес был доступен через все интерфейсы, выберите **any**.

        7. В поле **External IP address/range** укажите публичный IP-адрес межсетевого экрана, который вы получили в тикете после [заказа услуги](firewalls/order/order-hardware-firewall.mdx).

        8. В поле **Map to IPv4 address/range** укажите приватный адрес сервера за межсетевым экраном, к которому нужно настроить доступ по протоколу SSH.

        9. Включите тумблер **Port Forwarding**.

        10. В поле **Protocol** выберите **TCP**.

        11. В поле **External service port** укажите свободный порт на межсетевом экране. Например, `8080`.

        12. В поле **Map to IPv4 port** укажите порт, на котором запущена служба SSH на сервере за межсетевым экраном. По умолчанию это порт 22.

        13. Нажмите **OK**.
      </TabItem>
    </Tabs>
  </TabItem>

  <TabItem value="cli">
    <TabItemLabel>
      CLI
    </TabItemLabel>

    1. [Подключитесь к межсетевому экрану](/firewalls/fortigate/connect-to-firewall.mdx).
    2. Создайте виртуальный IP-адрес:

       ```bash
       config firewall vip
          edit "<virtual_ip_name>"
             set extip <public_ip_address>
             set extintf "<eth_name>"
             set portforward enable
             set protocol tcp
             set extport <public_port>
             set mappedip "<private_ip_address>"
             set mappedport <private_port>
          next
        end
       ```

       Укажите:

       * `<virtual_ip_name>` — имя виртуального IP-адреса;
       * `<public_ip_address>` — публичный IP-адрес межсетевого экрана, который вы получили в тикете после [заказа услуги](firewalls/order/order-hardware-firewall.mdx). Например, `203.0.113.2`;
       * `<eth_name>` — имя интерфейса межсетевого экрана, чтобы IP-адрес был доступен только через этот интерфейс. Список интерфейсов можно посмотреть с помощью команды `show system interface`. Чтобы IP-адрес был доступен через все интерфейсы, укажите `any`;
       * `<public_port>` — свободный порт на межсетевом экране. Например, `8080`;
       * `<private_ip_address>` — приватный IP-адрес сервера за межсетевым экраном, к которому нужно настроить доступ по протоколу SSH. Например, `192.168.0.2`;
       * `<private_port>` — порт, на котором запущена служба SSH на сервере за межсетевым экраном. По умолчанию это порт 22.
  </TabItem>
</Tabs>

## 2. Опционально: создать группу виртуальных IP-адресов \{#create-virtual-ip-address-group}

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

<Tabs queryString="create-virtual-ip-address-group">
  <TabItem value="graphic">
    <TabItemLabel>
      Графический интерфейс
    </TabItemLabel>

    <Tabs queryString="firmware-version">
      <TabItem value="fortios-6">
        <TabItemLabel>
          FortiOS 6.x
        </TabItemLabel>

        1. В панели управления FortiGate перейдите в раздел **Policy & Objects** → **Virtual IPs**.

        2. Нажмите **Create New** и выберите **Virtual IP Group**.

        3. В поле **Type** выберите **IPv4**.

        4. В поле **Name** введите имя группы виртуальных IP-адресов.

        5. Опционально: в поле **Comments** введите комментарий для группы виртуальных IP-адресов.

        6. В поле **Interface** укажите, через какой интерфейс межсетевого экрана будет доступна группа виртуальных IP-адресов:

           * если все IP-адреса группы привязаны к одному интерфейсу, выберите этот интерфейс. Например, **wan1**;
           * если IP-адреса группы привязаны к разным интерфейсам, выберите **any**.

        7. В поле **Members** выберите виртуальные IP-адреса, которые нужно включить в группу, — виртуальный IP-адрес, который вы [создали на этапе 1](#create-virtual-ip), и другие IP-адреса.

        8. Нажмите **OK**.
      </TabItem>

      <TabItem value="fortios-7">
        <TabItemLabel>
          FortiOS 7.x
        </TabItemLabel>

        1. В панели управления FortiGate перейдите в раздел **Policy & Objects** → **Virtual IPs**.

        2. Выберите **Virtual IP Group** и нажмите **Create New**.

        3. В поле **Name** введите имя группы виртуальных IP-адресов.

        4. Опционально: в поле **Comments** введите комментарий для группы виртуальных IP-адресов.

        5. В поле **Interface** укажите, через какой интерфейс межсетевого экрана будет доступна группа виртуальных IP-адресов:

           * если все IP-адреса группы привязаны к одному интерфейсу, выберите этот интерфейс. Например, **wan1**;
           * если IP-адреса группы привязаны к разным интерфейсам, выберите **any**.

        6. В поле **Members** выберите виртуальные IP-адреса, которые нужно включить в группу, — виртуальный IP-адрес, который вы [создали на этапе 1](#create-virtual-ip), и другие IP-адреса.

        7. Нажмите **OK**.
      </TabItem>
    </Tabs>
  </TabItem>

  <TabItem value="cli">
    <TabItemLabel>
      CLI
    </TabItemLabel>

    1. [Подключитесь к межсетевому экрану](/firewalls/fortigate/connect-to-firewall.mdx).
    2. Создайте группу виртуальных IP-адресов:

       ```bash
       config firewall vipgrp
          edit "<group_name>"
             set interface <eth_name>
             set member <virtual_ip_1> <virtual_ip_2>
          next
       end
       ```

       Укажите:

       * `<group_name>` — имя группы виртуальных IP-адресов;
       * `<eth_name>` — имя интерфейса межсетевого экрана, если все IP-адреса группы привязаны к этому интерфейсу. Список интерфейсов можно посмотреть с помощью команды `show system interface`. Если IP-адреса группы привязаны к разным интерфейсам, укажите `any`;
       * `<virtual_ip_1>`, `<virtual_ip_2>` — имена виртуальных IP-адресов. Список виртуальных IP-адресов можно посмотреть с помощью команды `show firewall vip`.
  </TabItem>
</Tabs>

## 3. Создать политику безопасности \{#create-security-policy}

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

<Tabs queryString="create-security-policy">
  <TabItem value="graphic">
    <TabItemLabel>
      Графический интерфейс
    </TabItemLabel>

    <Tabs queryString="firmware-graphic">
      <TabItem value="fortios-6">
        <TabItemLabel>
          FortiOS 6.x
        </TabItemLabel>

        1. В панели управления FortiGate перейдите в раздел **Policy & Objects** → **IPv4 Policy**.

        2. Нажмите **Create New**.

        3. В поле **Name** введите имя политики безопасности.

        4. В поле **Incoming Interface** выберите публичный интерфейс межсетевого экрана.

        5. В поле **Outgoing Interface** выберите приватный интерфейс межсетевого экрана.

        6. В поле **Source** выберите **all**.

        7. В поле **Destination** выберите целевой адрес:

           * виртуальный IP-адрес, который вы [создали на этапе 1](#create-virtual-ip);
           * или группу IP-адресов, которую вы [создали на этапе 2](#create-virtual-ip-address-group).

        8. В поле **Schedule** выберите **always**.

        9. В поле **Service** выберите **all**.

        10. В поле **Action** выберите **Accept**.

        11. Выключите тумблер **NAT**. Серверы за межсетевым экраном будут получать исходные IP-адреса подключений.

        12. Нажмите **OK**.
      </TabItem>

      <TabItem value="fortios-7">
        <TabItemLabel>
          FortiOS 7.x
        </TabItemLabel>

        1. В панели управления FortiGate перейдите в раздел **Policy & Objects** → **Firewall Policy**.

        2. Нажмите **Create New**.

        3. В поле **Name** введите имя политики безопасности.

        4. В поле **Incoming Interface** выберите публичный интерфейс межсетевого экрана.

        5. В поле **Outgoing Interface** выберите приватный интерфейс межсетевого экрана.

        6. В поле **Source** выберите **all**.

        7. В поле **Destination** выберите целевой адрес:

           * виртуальный IP-адрес, который вы [создали на этапе 1](#create-virtual-ip);
           * или группу IP-адресов, которую вы [создали на этапе 2](#create-virtual-ip-address-group).

        8. В поле **Schedule** выберите **always**.

        9. В поле **Service** выберите **all**.

        10. В поле **Action** выберите **Accept**.

        11. Выключите тумблер **NAT**. Серверы за межсетевым экраном будут получать исходные IP-адреса подключений.

        12. Нажмите **OK**.
      </TabItem>
    </Tabs>
  </TabItem>

  <TabItem value="cli">
    <TabItemLabel>
      CLI
    </TabItemLabel>

    1. [Подключитесь к межсетевому экрану](/firewalls/fortigate/connect-to-firewall.mdx).

    2. Посмотрите занятые номера политик безопасности, для этого выведите информацию о настроенных политиках безопасности:

       ```bash
       show firewall policy
       ```

       В ответе появится информация о настроенных политиках безопасности. Например:

       ```bash
       config firewall policy
          edit 1
             set name "my_policy"
             set srcintf "lan"
             set dstintf "wan1"
             set action accept
             set srcaddr "all"
             set dstaddr "all"
             set schedule "always"
             set service "ALL"
             set nat enable
          next
       end
       ```

       Здесь `1` — номер политики безопасности.

    3. Создайте политику безопасности:

       ```bash
       config firewall policy
          edit <policy_number>
             set name "<policy_name>"
             set srcintf "<incoming_interface>"
             set dstintf "<outgoing_interface>"
             set srcaddr "all"
             set dstaddr [ <virtual_ip> | <virtual_ip_group> ]
             set action accept
             set schedule "always"
             set service "ALL"
             set nat disable
          next
       end
       ```

       Укажите:

       * `<policy_number>` — номер политики безопасности. Укажите свободный номер для создания новой политики;
       * `<policy_name>` — имя политики безопасности;
       * `<incoming_interface>` — имя публичного интерфейса межсетевого экрана. Список интерфейсов можно посмотреть с помощью команды `show system interface`;
       * `<outgoing_interface>` — имя приватного интерфейса межсетевого экрана. Список интерфейсов можно посмотреть с помощью команды `show system interface`;
       * целевой адрес:

         * `<virtual_ip>` — имя виртуального IP-адреса, который вы [создали на этапе 1](#create-virtual-ip), чтобы применить политику только к этому IP-адресу;
         * `<virtual_ip_group>` — имя группы виртуальных IP-адресов, которую вы [создали на этапе 2](#create-virtual-ip-address-group), чтобы применить политику к группе IP-адресов.
  </TabItem>
</Tabs>

<Formbricks />
