PDA

Просмотр полной версии : Nat через Iptables


Fenya
25.04.2007, 12:20
Помогите с натом через IPTABLES

eth0 - внутрення сетевуха
ppp0 - Инет через PPPoE
Задача дать инет компьютерую в локальной сети


Поидее вот

Сбрасываем все правила
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
Потом разрешаем
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P FORWARD ACCEPT

и как я почитал мануалы то поднимаем NAT
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 111.111.111.111(инет айпи)

или так

iptables -t nat -A POSTROUTING -p tcp -s 192.168.38.58 -j SNAT --to-source 111.111.111.111(инет айпи)


В чём косяк или я тупой, почему не поднимается NAT, помогите настроить

Deem3n®
25.04.2007, 13:26
echo "1" > /proc/sys/net/ipv4/ip_forward

Linuxoid
25.04.2007, 13:45
И так. Мануал.
(c) SeverskLUG.info




PC ----------------------------> Шлюз ------------------------> Internet
eth0 eth1
IP: 192.168.0.2 IP: 192.168.0.2
Gateway: 192.168.0.1 Gateway: REAL_IP
Netmask: 255.255.255.0 Netmask: 255.255.255.0
eth0
IP: REAL_IP
Gateway: REAL_GATEWAY
Netmask: REAL_MASK

Имеется шлюз - машина имеющая активное подключение к Internet.
Задача ораганизовать сеть так, чтобы через шлюз в Internet могли ходить 1-254 других машин.
Решение довольно простое:
1. необходима вторая сетевая карта для шлюза
2. на PC настраиваем TCP/IP как показано выше, те раздаем фейковые адреса всем машинам сети (192.168.0.2-192.168.0.254). Адреса 192.168.0.0 и 192.168.0.255 являются запрещенными.
3. если машина всего одна, то соединаем сетаевые карты: PC-шлюз-Internet, если машин несколько, то придется разорится на свич (5 портов ~800р)
4. на шлюзе от имени root прописываем:

$ ifconfig eht1 192.168.0.1
$ iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -j SNAT --to-source REAL_IP
$ route add -net 192.168.0.0 netmask 255.255.255.0 eth1
$ echo "1" > /proc/sys/net/ipv4/ip_forward

5. enjoy

Fenya
25.04.2007, 14:05
Вроде так всё сделал, но почемуто при подключениии инет нельзя пинговать сервер т.е вообще доступа к нему нет по внутренней локалке, и не может раздавать инет =\

Я получается чёто натворил,

Fenya
25.04.2007, 20:56
Вроде установив убунту на сервер всё настроил, заработало

Не подскажите как портмапинг сделать, т.е если человек конектится к серверу по порту например 15000 то перенапрвлялся бы пакет на внутренню локалу на машину с ипом 192.168.0.5 например на порт 4899 к примеру

ShadOS
25.04.2007, 22:10
Вроде установив убунту на сервер всё настроил, заработало

Не подскажите как портмапинг сделать, т.е если человек конектится к серверу по порту например 15000 то перенапрвлялся бы пакет на внутренню локалу на машину с ипом 192.168.0.5 например на порт 4899 к примеру
ищи софтинку под названием datapipe. Реализаций её полно практически на чём угодно. Наверное, одной из самых простеньких и известных является datapipe от Cutter.

andy13
26.04.2007, 08:29
Fenya,
Проброс порта внутрь сети через NAT в Linux (http://www.opennet.ru/base/net/nat_redirect.txt.html)
там это делается с помощью iptables.