интернет шлюз на базе debian

Knoppix

Модераторы: Warderer, Модераторы разделов

Raistlin
Сообщения: 26
ОС: Ubuntu, Debian

интернет шлюз на базе debian

Сообщение Raistlin »

Доброго дня. Название темы соответствует поисковому запросу, информации в интернетах очень много а толку мало, на этом форуме тоже находил подобную тему про поднятие шлюза но пользы она не принесла ибо информации в ней 0 , очень трудно собирать информацию по частицам и потом это кропотливо изучать-собирать на практике, я думаю многие меня поймут.
Что имеем:
debian 5.02
eth0 ( inet dhcp ) - приходит сетевой кабель провайдера
eth1 ( inet static address 192.168.1.1 ) - уходит в свитч
ppp0 - PPTP подключение поднимающиеся автоматом
по сути хотелось бы сделать роутер из всего этого, т.е с ppp0 должно раздавать на eth1 с использованием dhcp и прикрывать порты.
конфиг iptables (до этого был нормальный конфиг для клиента, блокирующий все как, теперь же в целях эксперемента все почистил)

Код: Выделить всё

# Generated by iptables-save v1.4.2 on Thu Jul 30 14:41:07 2009
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [931:61414]
:OUTPUT ACCEPT [931:61414]
-A POSTROUTING -o ppp0 -j MASQUERADE
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
# Completed on Thu Jul 30 14:41:07 2009
# Generated by iptables-save v1.4.2 on Thu Jul 30 14:41:07 2009
*filter
:INPUT ACCEPT [965:90787]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1960:160357]
-A INPUT -i ! ppp0 -m state --state NEW -j ACCEPT
-A FORWARD -i ppp0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o ppp0 -j ACCEPT
-A FORWARD -i ppp0 -o ppp0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i eth0 -o ppp0 -j REJECT --reject-with icmp-port-unreachable
COMMIT
# Completed on Thu Jul 30 14:41:07 2009

----------
iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state NEW

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
---

по гуглу нашел много чего, некоторые говорят что нужны dnsmasq , ipmasq а так же модули
iptable_filter
iptable_nat_ftp
ip_conntrack_ftp
iptable_nat
ip_nat_pptp
ip_nat_proto_gre - вот этот у меня не загружается, говорит нет его. насколько я понял нужно что-бы в ядре была его поддержка...может изза него у меня проблемы а может и нет.
затем подгружается конфиг iptables
роутинги, нужны ли?
up route add -net 192.168.1.0 255.255.255.0 dev eth1
up route add -net 0.0.0.0 255.255.255.255 dev ppp0

форвардинг включил.
dhcp3-server сервер вещает на eth1 подсеть 192.168.1.0 range до 192.168.1.10

без протокола gre в правилах iptables соединение не устанавливает, добавил - пошло. но сейчас все разрешено в чем проблема может быть?

win машина адрес получает но интернет нет. Может быть сразу какую нибуть статью путную кто посоветует? устал из них крупицы нужные собирать.
Спасибо сказали:
-sanches-
Сообщения: 333
ОС: Gentoo

Re: интернет шлюз на базе debian

Сообщение -sanches- »

Отключите dhcpd и руками все правьте. Фраза о том, что машина получает ип адрес еще не значит, что этого достаточно, ей нада много чего получать. Двигайтесь от простого к сложному.
Вот рабочие правила для ната (это необходимый минимум)

Код: Выделить всё

#Ип на ppp0 берется из файла
IP=`cat /tmp/ifconf`

#ип провайдера
IP_LOCAL=10.70.140.166

#офисная сеть
NET_LOCAL="192.168.5.0/24"

#к провайдеру
EXT_INT="eth0"

# в офис
LOCAL_INT="eth1"

iptables -F
iptables -t nat -F
iptables -t nat -A POSTROUTING -s $NET_LOCAL                       -j SNAT --to-source $IP

+ enable forwarding

iptables -F по вкусу, можете не делать, если уверены в правильности правил
Спасибо сказали:
Raistlin
Сообщения: 26
ОС: Ubuntu, Debian

Re: интернет шлюз на базе debian

Сообщение Raistlin »

окромя разрозненной информации и советов поставить FreeBSD(я может быть и не против, но серверы которые уже подняты под дебианом - против) или firestarter там ничего не нашел.
-sanches-
благодарю
Спасибо сказали:
Аватара пользователя
arkhnchul
Сообщения: 2284
Статус: Толчковый инженер
ОС: Debian, Fedora

Re: интернет шлюз на базе debian

Сообщение arkhnchul »

там - это где?
вообще, не концентрируйтесь на дебиане - такие вещи, как файрвол или сетевые сервисы во всех дистрах настраиваются и работают практически одинаково. "Роутер linux настройка" выдает просто массу результатов)
http://www.opennet.ru/base/net/debian_router.txt.html - первого параграфа вам за глаза хватит.
Losing is fun!
Спасибо сказали:
Raistlin
Сообщения: 26
ОС: Ubuntu, Debian

Re: интернет шлюз на базе debian

Сообщение Raistlin »

Вообщем сделал кое как, отдает интернет
мне нужно понять что не так в правилах вообще и почему не работают правила разрешающие форвординг , только после того как поставил FORWARD ACCEPT вместо DROP стало воркать, и пинг нужно было разрешить. с включенным модулем NAT забивает наглухо любые ответы от сервера и pptp соединение не устанавливает. модуля ip_nat_proto_gre ни в дебиане ни в ubuntu не предусмотрено (ну не идиоты же делают эти дистры?)

eth1 - интернет static 192.168.2.1, ppp0 работающие VPN соединение, eth0 локальная сеть 192.168.2.0/24

Код: Выделить всё

*mangle
:PREROUTING ACCEPT [1165:176976]
:INPUT ACCEPT [1067:142860]
:FORWARD ACCEPT [52:30118]
:OUTPUT ACCEPT [860:64324]
:POSTROUTING ACCEPT [322:57808]
COMMIT
*nat
:PREROUTING ACCEPT
:POSTROUTING ACCEPT
:OUTPUT ACCEPT
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
*filter
:INPUT DROP [256:27643]
[b]:FORWARD ACCEPT[/b] [0:0]
:OUTPUT DROP [13:988]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 13 -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
-A INPUT -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,RST FIN,RST -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,ACK FIN -j DROP
-A INPUT -p tcp -m tcp --tcp-flags PSH,ACK PSH -j DROP
-A INPUT -p tcp -m tcp --tcp-flags ACK,URG URG -j DROP
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.2.0/24 -i eth0 -p tcp -m tcp --dport 137:139 -j ACCEPT
-A INPUT -s 192.168.2.0/24 -i eth0 -p udp -m udp --dport 137:139 -j ACCEPT
-A INPUT -s 192.168.2.0/24 -p icmp -j ACCEPT
-A INPUT -s 192.168.2.0/24 -i eth0 -p tcp -m tcp --dport 445 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -s 192.168.2.0/24 -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p gre -j ACCEPT
-A INPUT -s 192.168.2.0/24 -i ppp0 -p tcp -m tcp --dport 1723 -j ACCEPT
-A INPUT -s 192.168.2.0/24 -i eth0 -m state --state NEW,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.2.0/24 -o ppp0 -j ACCEPT
-A FORWARD -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 32768:65535 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 32768:65535 -j ACCEPT
-A OUTPUT -s 192.168.2.0/24 -o eth0 -p tcp -m tcp --sport 137:139 -j ACCEPT
-A OUTPUT -s 192.168.2.0/24 -o eth0 -p udp -m udp --sport 137:139 -j ACCEPT
-A OUTPUT -s 192.168.2.0/24 -o eth0 -p tcp -m tcp --sport 445 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 80 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 21 -j ACCEPT
-A OUTPUT -s 192.168.2.0/24 -o eth0 -p tcp -m tcp --sport 22 -j ACCEPT
-A OUTPUT -p gre -j ACCEPT
-A OUTPUT -d 192.168.2.0/24 -o eth0 -m state --state NEW,ESTABLISHED -j ACCEPT
COMMIT
Спасибо сказали: