Обмен соединением – IPTABLES

Вопрос или проблема

Я пытался настроить IPTABLES на своем сервере, чтобы поделиться интернетом с другой машиной. IP сервера 192.168.10.1 (eth0), соединение поступает с 192.168.0.6 (eth0:2), клиент 192.168.10.10 (eth1 на машине). Я пробовал использовать команды с

https://help.ubuntu.com/community/Internet/ConnectionSharing

с правильными изменениями, но я не могу добиться, чтобы это работало, клиент может пинговать 192.168.0.1 (откуда поступает интернет), но не может подключиться к интернету вообще.

Сервер:

eth0 192.168.10.1
eth0:2 192.168.0.6
В данный момент есть соединение как с клиентом, так и с интернетом

Маршрутизатор:

192.168.0.1

Клиент:

eth1 192.168.10.10
Может пинговать как маршрутизатор, так и сервер

Отредактируйте /etc/sysctl.conf и раскомментируйте:

# net.ipv4.ip_forward=1

А часть iptables должна выглядеть примерно так, где eth0 – это интернет, а eth1 – локальная сеть:

INTERNET_INTERFACE=eth0
LAN_INTERFACE=eth1

iptables -t nat -A POSTROUTING -o $INTERNET_INTERFACE -j MASQUERADE
iptables -A FORWARD -i $LAN_INTERFACE -o $INTERNET_INTERFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $INTERNET_INTERFACE -o $LAN_INTERFACE -j ACCEPT

Если у вас есть 2 физических сетевых интерфейса на сервере, то это должно работать, вы не можете использовать сервер в качестве интернет-шлюза, если у него только 1 физический интерфейс.

Ответ или решение

Настройка IPTABLES для совместного использования интернета на сервере

Если вы пытаетесь настроить IPTABLES на своем сервере для совместного использования исходящего интернет-соединения с другим устройством, важно придерживаться правильной последовательности шагов и убедиться, что все параметры прописаны корректно. В этом руководстве мы рассмотрим, как правильно настроить IPTABLES, чтобы ваш клиентский компьютер (192.168.10.10) получил доступ к интернету через сервер (192.168.10.1), который в свою очередь получает интернет от другого IP-адреса (192.168.0.6).

Шаг 1: Включение IP-прокси

Первым делом необходимо активировать функцию маршрутизации IP на сервере. Для этого откройте файл конфигурации sysctl.conf:

sudo nano /etc/sysctl.conf

Найдите строку:

# net.ipv4.ip_forward=1

И уберите символ #, чтобы она выглядела так:

net.ipv4.ip_forward=1

Сохраните изменения и примените их, выполнив команду:

sudo sysctl -p

Шаг 2: Настройка IPTABLES

Теперь перейдем к настройке IPTABLES. Предполагаем, что ваш сервер имеет две сетевые карты: eth0 для соединения с интернетом и eth1 для локальной сети. Определите, какая из них используется для интернета (в вашем случае это eth0, где IP 192.168.0.6) и какая для локальной сети (eth1, где IP 192.168.10.1).

Используйте следующие команды для настройки IPTABLES:

# Определяем интерфейсы
INTERNET_INTERFACE=eth0
LAN_INTERFACE=eth1

# Настройка NAT для выхода в интернет
iptables -t nat -A POSTROUTING -o $INTERNET_INTERFACE -j MASQUERADE

# Разрешаем трафик для локальной сети
iptables -A FORWARD -i $LAN_INTERFACE -o $INTERNET_INTERFACE -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $INTERNET_INTERFACE -o $LAN_INTERFACE -m state --state RELATED,ESTABLISHED -j ACCEPT

Шаг 3: Сохранение правил IPTABLES

После успешной настройки IPTABLES, правила должны быть сохранены, чтобы они применялись при перезагрузке сервера. Для этого можно использовать следующий пакет:

sudo apt-get install iptables-persistent

Во время установки вас спросят, хотите ли вы сохранить текущие правила. Выберите «Да».

Шаг 4: Проверка конфигурации

Теперь, чтобы убедиться в правильности работы настройки, проверьте следующее:

  1. Убедитесь, что клиент (192.168.10.10) может пинговать сервер (192.168.10.1).
  2. Убедитесь, что клиент может пинговать роутер (192.168.0.1).
  3. Попробуйте выполнить команду curl или ping на внешний адрес, чтобы проверить выход в интернет.

Если клиент не может получить доступ к интернету, проверьте настройки на самом клиенте, а также убедитесь, что на нем настроены правильные параметры DNS.

Заключение

Если все шаги выполнены правильно, ваш клиентский компьютер должен теперь иметь доступ к интернету через сервер. Если у вас возникнут дополнительные проблемы, рекомендуется проверить журналы IPTABLES для выявления возможных ошибок:

sudo iptables -L -v

Такое решение обеспечит надежную маршрутизацию и совместное использование интернет-соединения в вашей локальной сети.

Оцените материал
Добавить комментарий

Капча загружается...