Настройка NATa: различия между версиями

Материал из FedoraMD.org Wiki
Перейти к навигации Перейти к поиску
(Новая: {{Суперпользователь}} SNAT используется для преобразования сетевых адресов (Source Network Address Translation), т.е. из...)
 
м (sysctl usage)
 
Строка 10: Строка 10:
 
<source lang="bash">
 
<source lang="bash">
 
# echo 1 > /proc/sys/net/ipv4/ip_forward
 
# echo 1 > /proc/sys/net/ipv4/ip_forward
 +
</source>
 +
или, для включения режима при каждом запуске:
 +
<source lang="bash">
 +
# echo net.ipv4.ip_forward = 1 > /etc/sysctl.conf
 +
# sysctl -p /etc/sysctl.conf
 
</source>
 
</source>
  

Текущая версия на 11:34, 30 марта 2010

ВНИМАНИЕ: команды предваряемые символом '#' должны выполняться с правами root (Суперпользователь). Открыв терминал (или находясь в консоли) с правами обычного пользователя, введите команду $ su - для повышения уровня привелегий. Символы '$' и '#' в начале строки не являются частью команды и не должны вводится. Прочие команды могут выполняться с правами обыкновенного пользователя.


SNAT используется для преобразования сетевых адресов (Source Network Address Translation), т.е. изменение исходящего IP адреса в IP заголовке пакета. Например, это действие можно использовать для предоставления выхода в Интернет другим компьютерам из локальной сети, имея лишь один уникальный IP адрес. Для этого. необходимо включить пересылку пакетов (forwarding) в ядре и затем создать правила, которые будут транслировать исходящие IP адреса нашей локальной сети в реальный внешний адрес. В результате, внешний мир ничего не будет знать о нашей локальной сети, он будет считать, что запросы пришли с нашего брандмауэра.

SNAT допускается выполнять только в таблице nat, в цепочке POSTROUTING. Другими словами, только здесь допускается преобразование исходящих адресов. Если первый пакет в соединении подвергся преобразованию исходящего адреса, то все последующие пакеты, из этого же соединения, будут преобразованы автоматически и не пойдут через эту цепочку правил.


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

# echo 1 > /proc/sys/net/ipv4/ip_forward

или, для включения режима при каждом запуске:

# echo net.ipv4.ip_forward = 1 > /etc/sysctl.conf
# sysctl -p /etc/sysctl.conf

Чтобы при загрузке данная опция сохранялась необходимо в файле /etc/sysctl.conf отредактировать net.ipv4.ip_forward = 1

2. Разрешаем FORWARD:

# iptables -t filter -A FORWARD -s {LOCAL_IP} -j ACCEPT
# iptables -t filter -A FORWARD -d {LOCAL_IP} -j ACCEPT

где {LOCAL_IP} - подсеть или локальная IP.

3. Устанавливаем NAT:

# iptables -t nat -A POSTROUTING -s {LOCAL_IP} -j SNAT --to-source {EXTERNAL_IP}

где {EXTERNAL_IP} - внешняя IP или диапазон внешних IP.

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

# service iptables save

Возможно использовать вместо SNAT - MASQUERADE, но он белее ресурсоёмкий из-за того, что iptables автоматически выбирает внешний интерфейс. Рекомендуется использовать при динамически назначаемом внешнем IP-адресе.


Источники: