LinuxForum.Fans
Тема

iptables проброс порта

Автор: veno 2 сообщений 1771 просмотров
#295355

Помогите кто нибудь пробросить порт. Мучаюсь уже третьи сутки.
Имеется шлюз на 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

text
#!/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 этот конфиг брал копипастом

text
#!/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 вообще темный лес для меня.

#295412

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

Войдите или зарегистрируйтесь, чтобы ответить.