Перейти до

Проблема с нат


Рекомендованные сообщения

На клиентских машинах инета нет, авторизатор работает

Сервер подключен по адсл (pppoe), реальный айпи, интерфейс PPP0(212.0.86.23)

и есть сетевая карта eth0 (192.168.0.0/24),смотрящая в локалку.

как я понял траф не надо считать на ppp0 а надо на eth0 , подскажите как сделать чтобы все работало

Вот мои конфиги: ( система linux asp 10, iptables v1.2.11, stargazer-2.014.7.6-RC2.i386.rpm)

 

/etc/stargazer/fw - "инициализация файрвола"

[root@server stargazer]# cat fw

#!/bin/bash

 

#Машина администратора

admin=192.168.0.2

 

#Адреса роутера

server0=192.168.0.1

server1=212.0.86.23

 

 

 

 

# Интерфейс смотрящий на клиентов

iface_cli=eth0

 

# Интерфейс смотрящий во внешний мир

iface_world=ppp0

 

 

 

#Порты, на которых работает конфигуратор и авторизатор

conf_port=5555

user_port1=5555

user_port2=5555

 

# Разрешаем форвардинг пакетов между интерфейсами

# Эта штука необязательна, просто в некоторых дистрибутивах

# по умолчанию форвардинг разрешен, а в некоторых - запрещен

# Если мы подстрахуемся, хуже не бкдет

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

 

# Очищаем правила файрвола

#/sbin/iptables -t filter -F

#/sbin/iptables -t filter -X

/sbin/iptables -t nat -F

/sbin/iptables -t nat -X

 

# Политика по умолчанию DROP: всем всё запрещено

/sbin/iptables -t filter -P INPUT DROP

/sbin/iptables -t filter -P FORWARD DROP

/sbin/iptables -t filter -P OUTPUT DROP

 

# Разрешаем пингам ходить всюду и всегда

/sbin/iptables -t filter -A INPUT -p icmp -j ACCEPT

/sbin/iptables -t filter -A FORWARD -p icmp -j ACCEPT

/sbin/iptables -t filter -A OUTPUT -p icmp -j ACCEPT

 

# Разрешаем всё на локальном интерфейсе

/sbin/iptables -t filter -A INPUT -d 127.0.0.1 -j ACCEPT

/sbin/iptables -t filter -A OUTPUT -s 127.0.0.1 -j ACCEPT

 

# Разрешить серверу общаться со внешним миром

/sbin/iptables -t filter -A INPUT -i $iface_world -j ACCEPT

/sbin/iptables -t filter -A OUTPUT -o $iface_world -j ACCEPT

 

 

# DNS. Замечу, ДНС работает и по TCP и по UDP

/sbin/iptables -t filter -A INPUT -p tcp --sport 53 -j ACCEPT

/sbin/iptables -t filter -A FORWARD -p tcp --sport 53 -j ACCEPT

/sbin/iptables -t filter -A FORWARD -p tcp --dport 53 -j ACCEPT

/sbin/iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT

/sbin/iptables -t filter -A INPUT -p udp --sport 53 -j ACCEPT

/sbin/iptables -t filter -A FORWARD -p udp --sport 53 -j ACCEPT

/sbin/iptables -t filter -A FORWARD -p udp --dport 53 -j ACCEPT

/sbin/iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT

 

# SSH

/sbin/iptables -t filter -A INPUT -p tcp -s $admin -d $server0 --dport 22 -j ACCEPT

/sbin/iptables -t filter -A OUTPUT -p tcp -d $admin -s $server0 --sport 22 -j ACCEPT

 

# Stargazer configurator

/sbin/iptables -t filter -A INPUT -p tcp -s 192.168.1.0/24 -d $server0 --dport $conf_port -j ACCEPT

/sbin/iptables -t filter -A OUTPUT -p tcp -d 192.168.1.0/24 -s $server0 --sport $conf_port -j ACCEPT

# UDP stargazer InetAccess

/sbin/iptables -t filter -A INPUT -p udp -s 192.168.0.0/24 --sport $user_port2 -d $server0 --dport $user_port1 -j ACCEPT

/sbin/iptables -t filter -A OUTPUT -p udp -d 192.168.0.0/24 --dport $user_port1 -s $server0 -j ACCEPT

 

#Маскарад

/sbin/iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -j MASQUERADE

 

OnConnect

[root@server stargazer]# cat OnConnect

#!/bin/bash

 

ip=$2

 

/sbin/iptables -t filter -A INPUT -s $ip -j ACCEPT

/sbin/iptables -t filter -A FORWARD -s $ip -j ACCEPT

/sbin/iptables -t filter -A FORWARD -d $ip -j ACCEPT

/sbin/iptables -t filter -A OUTPUT -d $ip -j ACCEPT

 

OnDisconnect

[root@server stargazer]# cat OnDisconnect

#!/bin/bash

 

ip=$2

 

/sbin/iptables -t filter -D INPUT -s $ip -j ACCEPT

while [ $? -eq 0 ]

do

/sbin/iptables -t filter -D INPUT -s $ip -j ACCEPT

done

 

##################################

 

/sbin/iptables -t filter -D FORWARD -s $ip -j ACCEPT

while [ $? -eq 0 ]

do

/sbin/iptables -t filter -D FORWARD -s $ip -j ACCEPT

done

 

##################################

 

/sbin/iptables -t filter -D FORWARD -d $ip -j ACCEPT

while [ $? -eq 0 ]

do

/sbin/iptables -t filter -D FORWARD -d $ip -j ACCEPT

done

 

##################################

 

/sbin/iptables -t filter -D OUTPUT -d $ip -j ACCEPT

while [ $? -eq 0 ]

do

/sbin/iptables -t filter -D OUTPUT -d $ip -j ACCEPT

done

 

 

 

iptables -L

 

[root@server stargazer]# /sbin/iptables -L

Chain INPUT (policy ACCEPT)

target     prot opt source               destination

LOG        all  --  anywhere             anywhere            LOG level debug prefix `BANDWIDTH_IN:'

RH-Firewall-1-INPUT  all  --  anywhere             anywhere

 

Chain FORWARD (policy ACCEPT)

target     prot opt source               destination

LOG        all  --  anywhere             anywhere            LOG level debug prefix `BANDWIDTH_OUT:'

LOG        all  --  anywhere             anywhere            LOG level debug prefix `BANDWIDTH_IN:'

RH-Firewall-1-INPUT  all  --  anywhere             anywhere

 

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination

LOG        all  --  anywhere             anywhere            LOG level debug prefix `BANDWIDTH_OUT:'

 

Chain RH-Firewall-1-INPUT (2 references)

target     prot opt source               destination

ACCEPT     all  --  anywhere             anywhere

ACCEPT     all  --  anywhere             anywhere

ACCEPT     all  --  anywhere             anywhere

ACCEPT     icmp --  anywhere             anywhere            icmp any

ACCEPT     ipv6-crypt--  anywhere             anywhere

ACCEPT     ipv6-auth--  anywhere             anywhere

ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED

ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:http

ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:https

ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ftp

ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh

ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:10000

ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:6669

ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:6666

REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

 

rules

[root@server stargazer]# cat rules

ALL    192.168.0.0/24  DIR1

ALL    0.0.0.0/0      DIR0

Подскажите что где подправить

Ссылка на сообщение
Поделиться на других сайтах

1. Кинь сюда результаты команды iptables -t filter -nL

iptables -t nat -nL, при этом хоть один пользователь должен быть подключен.

2.попробуй в OnConnect подставить IP пользователя и запустить русками.

Ссылка на сообщение
Поделиться на других сайтах

[root@server stargazer]# /sbin/iptables -t filter -nL

Chain INPUT (policy DROP)

target    prot opt source              destination

ACCEPT    icmp --  0.0.0.0/0            0.0.0.0/0

ACCEPT    all  --  0.0.0.0/0            127.0.0.1

ACCEPT    all  --  0.0.0.0/0            0.0.0.0/0

ACCEPT    tcp  --  0.0.0.0/0            0.0.0.0/0          tcp spt:53

ACCEPT    udp  --  0.0.0.0/0            0.0.0.0/0          udp spt:53

ACCEPT    tcp  --  192.168.0.2          192.168.0.1        tcp dpt:22

ACCEPT    tcp  --  192.168.1.0/24      192.168.0.1        tcp dpt:5555

ACCEPT    udp  --  192.168.0.0/24      192.168.0.1        udp spt:5555 dpt:5555

ACCEPT    all  --  192.168.0.2          0.0.0.0/0

 

Chain FORWARD (policy DROP)

target    prot opt source              destination

ACCEPT    icmp --  0.0.0.0/0            0.0.0.0/0

ACCEPT    tcp  --  0.0.0.0/0            0.0.0.0/0          tcp spt:53

ACCEPT    tcp  --  0.0.0.0/0            0.0.0.0/0          tcp dpt:53

ACCEPT    udp  --  0.0.0.0/0            0.0.0.0/0          udp spt:53

ACCEPT    udp  --  0.0.0.0/0            0.0.0.0/0          udp dpt:53

ACCEPT    all  --  192.168.0.2          0.0.0.0/0

ACCEPT    all  --  0.0.0.0/0            192.168.0.2

 

Chain OUTPUT (policy DROP)

target    prot opt source              destination

ACCEPT    icmp --  0.0.0.0/0            0.0.0.0/0

ACCEPT    all  --  127.0.0.1            0.0.0.0/0

ACCEPT    all  --  0.0.0.0/0            0.0.0.0/0

ACCEPT    tcp  --  0.0.0.0/0            0.0.0.0/0          tcp dpt:53

ACCEPT    udp  --  0.0.0.0/0            0.0.0.0/0          udp dpt:53

ACCEPT    tcp  --  192.168.0.1          192.168.0.2        tcp spt:22

ACCEPT    tcp  --  192.168.0.1          192.168.1.0/24      tcp spt:5555

ACCEPT    udp  --  192.168.0.1          192.168.0.0/24      udp dpt:5555

ACCEPT    all  --  0.0.0.0/0            192.168.0.2

 

[root@server stargazer]# /sbin/iptables -t nat -nL

Chain PREROUTING (policy ACCEPT)

target    prot opt source              destination

 

Chain POSTROUTING (policy ACCEPT)

target    prot opt source              destination

MASQUERADE  all  --  0.0.0.0/0            0.0.0.0/0

 

Chain OUTPUT (policy ACCEPT)

target    prot opt source              destination

 

Клиент подключен, запустил OnConnect вручную,

[root@server stargazer]# ./OnConnect

Bad argument `ACCEPT'

Try `iptables -h' or 'iptables --help' for more information.

Bad argument `ACCEPT'

Try `iptables -h' or 'iptables --help' for more information.

Bad argument `ACCEPT'

Try `iptables -h' or 'iptables --help' for more information.

Bad argument `ACCEPT'

Try `iptables -h' or 'iptables --help' for more information.

 

Инет заработал :)

но не работает днс?

в браузере адреса www...ru не открываются, только по их айпи адресам.

Прописал в настройки подключения на клиентской машине днс 192,168,0,1 и днс провайдера-тоже самое...

Ссылка на сообщение
Поделиться на других сайтах

с клиента пингуется маил ру например ?

если нет, то проверь пингуется ли по адресу.

кинь трасу до майла посмотри где обрывается.

если будет обрываться на адресе сервера значит не работает маскарад.

судя по тому как ругается у тебя скрипт ОнКоннект, то он нормально не отрабатывает.

попробуй поудалять неправильные концы строк в скриптах

 

на сервере надо прописать в resolv.conf адреса ДНС сервера провайдера.

Ссылка на сообщение
Поделиться на других сайтах

нет, с клиента не пингуется по имени, но пингуется по адресу..

спасибо попробую подправить onconnect

а днс прописаны:

/etc/resolv.conf

[root@server stargazer]# cat /etc/resolv.conf

search vs

nameserver 212.0.65.2

nameserver 212.0.67.58

Ссылка на сообщение
Поделиться на других сайтах

лол

у меня на клиентской машине инет есть даже при выключенном старгейзере, появляется после запуска скрипта fw

а тут в чем проблема?

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...