1

Помогите кто нибудь пробросить порт. Мучаюсь уже третьи сутки.
Имеется шлюз на ubuntu 8.04 desktop, раздает инет на домашние компы.
2 сетевые карты
eth0 локалка билайна
eth1 192.168.0.1 домашняя сетка
ppp0 xxx.xxx.xxx.xxx внешний статик ип
Провайдер beeline, соединение L2TP.

в домашней сети находится сервер ubuntu 12.04 на нем висит апач и тп
ип сервака 192.168.0.2

Задача пробросить для начала 80 порт с шлюза на 192.168.0.2


iptables на шлюзе грузится с помощью записи в rc.local

конфиги
rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sh /etc/firevol.sh
exit 0

firevol.sh этот конфиг брал копипастом

#!/bin/bash
# Тут в принципе может и не надо этого всего но не помеха вдруг какой модуль не подгружен или форвардинг не включен
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

# Объявление переменных
export IPT="iptables"
# Интерфейс который смотрит в интернет
export LAN=ppp0
# Локальная сеть
export WAN=eth1
export WAN_IP_RANGE=192.168.0.0/24

# Очистка всех цепочек iptables
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Закрываем изначально ВСЁ (т.е. изначально все что не разрешено - запрещено):
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT

#$IPT -t nat -A PREROUTING -p tcp -d xxx.xxx.xxx.xxx --dport 80 -j DNAT --to-destination 192.168.0.2:80

#разрешаем локальный траффик для loopback и внутренней сети
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i $WAN -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A OUTPUT -o $WAN -j ACCEPT

# Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим
# признак ESTABLISHED.
# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -o $WAN -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -o $LAN -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i $WAN -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i $LAN -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

# Разрешаем доступ из внутренней сети наружу
$IPT -A FORWARD -i $WAN -o $LAN -j ACCEPT

# Включаем фрагментацию пакетов. Необходимо из за разных значений MTU
$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
$IPT -A INPUT   -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP
# Приводит к связыванию системных ресурсов, так что реальный обмен данными становится не возможным.
$IPT -A INPUT  -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

# Запрещаем доступ снаружи во внутреннюю сеть
#$IPT -A FORWARD -i $LAN -o $WAN -j REJECT

# Маскардинг
$IPT -t nat -A POSTROUTING -o $LAN -s $WAN_IP_RANGE -j MASQUERADE


$IPT -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT 

$IPT -A INPUT -p tcp -m tcp --sport 22 -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT


#Вывод информации
$IPT -L -n -t nat

если нужны еще какие то конфиги пишите выложу.

может кто нибудь написать правило которое нужно добавить что бы проброс с работал?
в лине я не спец только учусь.
iptables вообще темный лес для меня.

2

по моему я поспешил с созданием темы, не работал проброс банально из за того что не прописал в настройках интерфейсов gateway на серваке 192.168.0.2. тему можно закрыть, надеюсь больше проблем не возникнет.