Поиск по этому блогу

среда, 20 января 2010 г.

NAT и iptables (Как раздать интернет ...

NAT и iptables (Как раздать интернет через вторую сетевую карту)


Дано:

Сетевая карточка eth0 подключенная с помощью PPPoE к интернету и

eth1 подключенная к сети с адресом 192.168.0.1 к которой подключена
сеть с адресами 192.168.0.* в которой нужно раздать интернет.


Для начала включим форвардинг:


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


Чтобы форвардинг автоматически включался при запуске системы


Открываем файл:


sudo nano /etc/sysctl.conf


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


net.ipv4.ip_forward = 1


Затем включаем NAT

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE


Где ppp0 название вашего интерфейса через который выходите в интернет.


Чтобы NAT работал после перезагрузки делаем следующее:


сохраняем настройки iptables в файл


sudo iptables-save > /etc/iptables.up.rules


И добавляем в конец файла:


sudo nano /etc/networks/interfaces


эту строчку, для автоматической подгрузке правил


pre-up iptables-restore < /etc/iptables.up.rules


Так же в этот файл добавляем правила роутинга:


up route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1
up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth0





ну если еще и ррр0...

тогда так


#!/bin/sh

PATH=/usr/sbin:/sbin:/bin:/usr/bin


#

# delete all existing rules.

#

iptables -F

iptables -t nat -F

iptables -t mangle -F

iptables -X


# Always accept loopback traffic

iptables -A INPUT -i lo -j ACCEPT


# Allow established connections, and those not coming from the outside

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -m state --state NEW -i ! ppp0 -j ACCEPT

iptables -A FORWARD -i ppp0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT


# Allow outgoing connections from the LAN side.

iptables -A FORWARD -i eth1 -o ppp0 -j ACCEPT


# Masquerade.

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE


# Don't forward from the outside to the inside.

iptables -A FORWARD -i ppp0 -o ppp0 -j REJECT

iptables -A FORWARD -i eth0 -o ppp0 -j REJECT

# Enable routing.

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