Get Adobe Flash player

postheadericon Как раздать интернет через NAT

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

  • один подключен к интернет-провайдеру (например, eth0);
  • второй включен во внутреннюю сеть (например, eth1).

Для раздачи интернета во внутреннюю сеть можно использовать:

  • NAT или, как он еще называется, IP маскарадинг
  • Прокси-сервер (например, squid).

NAT в отличие от Proxy, позволяет хорошо работать не только http, но и ftp, pop3, smtp, ssh, telnet, - то ест практически любому протоколу. При этом не нужно объяснять сервису, что он работает через прокси, прописывая соответствующие настройки в клиентские программы.

 

Для того, что начать раздавать в локальную сеть интернет через NAT на PCLinuxOS, нужно написать скрипт с таким содержанием:

#!/bin/sh
IPTABLES=/sbin/iptables
DEPMOD=/sbin/depmod
MODPROBE=/sbin/modprobe

# EXTIF - это интерфейс, который смотрит в сторону провайдера.
EXTIF="eth0"
# INTIF - это интерфейс, который смотрит  во внутреннюю сеть.
INTIF="eth1"

$DEPMOD -a

$MODPROBE ip_tables
$MODPROBE ip_conntrack
$MODPROBE ip_conntrack_ftp
$MODPROBE ip_conntrack_irc
$MODPROBE iptable_nat
$MODPROBE ip_nat_ftp
$MODPROBE ip_nat_irc

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr

$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT 
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT 
$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD 
$IPTABLES -t nat -F

$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
$IPTABLES -A FORWARD -j LOG

$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

echo -e "done.\n"

И сохранить его в файл, назвав, например, nat.sh.

Также можно закомментировать строку $IPTABLES -A FORWARD -j LOG, чтобы отключить логирование. Иначе, в больших сетях могут возникнуть проблемы с огромными размерами log файлов.

Далее необходимо запустить этот скрипт, чтобы локальная сеть получила интернет через NAT.

 

Примечания

* Посмотреть, что делает скрипт с iptables, можно командами:

# iptables -L

# iptables -L -t nat

** IP-маскарадинг можно использовать совместно с кэширующим прокси-сервером.

*** Существует более простой способ настройки NAT. По идее, чтобы все заработало, достаточно добавить в файл /etc/init.d/network следующие строки:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables-save
echo 1 > /proc/sys/net/ipv4/ip_forward


Скачать PCLinuxOS

Поиск
Язык сайта