[+] Debian 6 i konfiguracja mostu z VPN

Masz problemy z siecią bądź internetem? Zapytaj tu
neomammut
Posty: 8
Rejestracja: 28 października 2009, 16:11

[+] Debian 6 i konfiguracja mostu z VPN

Post autor: neomammut »

Witam!
Mam ruter, na którym mam zainstalowanego Debiana 6. Na nim chcę zrobić VPN jako most. Wszystko działa puki nie włączę VPN.

eth0 - interfejs zewnętrzny
eth1 - interfejs wewnętrzny
fox - nazwa hostu routera

Dokładnie jest tak, jeśli vpn jest wyłączony to mam tak:

Kod: Zaznacz cały

root@fox:~# ip route
87.204.10.240/29 dev eth0  proto kernel  scope link  src 87.204.10.242
192.168.69.0/24 dev eth1  proto kernel  scope link  src 192.168.69.1
default via 87.204.10.241 dev eth0

Kod: Zaznacz cały

root@fox:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
87.204.10.240   *               255.255.255.248 U     0      0        0 eth0
192.168.69.0    *               255.255.255.0   U     0      0        0 eth1
default         87-204-10-241.i 0.0.0.0         UG    0      0        0 eth0
Przy załączonym:

Kod: Zaznacz cały

root@fox:~# ip route
87.204.10.240/29 dev eth0  proto kernel  scope link  src 87.204.10.242
192.168.69.0/24 dev br0  proto kernel  scope link  src 192.168.69.1
default via 192.168.69.1 dev br0  scope link
default via 87.204.10.241 dev eth0

Kod: Zaznacz cały

root@fox:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
87.204.10.240   *               255.255.255.248 U     0      0        0 eth0
192.168.69.0    *               255.255.255.0   U     0      0        0 br0
default         fox.local       0.0.0.0         UG    0      0        0 br0
default         87.204.10.241   0.0.0.0         UG    0      0        0 eth0
Tworzą się interfejsy tap0 i br0, br0 przejmuje adresację eth1, dhcp działa, mogę bez problemu korzystać z usług wewnątrz sieci, ale zanika mi połączenie z internetem.

W firewallu mam dopisane takie regułki:

Kod: Zaznacz cały

iptables -A INPUT -p udp --dport 1194 -j ACCEPT
iptables -A INPUT -i tap0 -j ACCEPT
iptables -A INPUT -i br0 -j ACCEPT
iptables -A FORWARD -i br0 -j ACCEPT

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.69.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 192.168.69.0/24 -o eth0 -j MASQUERADE
Firewall uruchamiałem za pomocą tej strony: [url]http://iptables.rzeźniczak.pl/[/url], więc to co podałem musiałem dopisać.

Podaję konfig mostu:

Kod: Zaznacz cały

#!/bin/sh  
 
### BEGIN INIT INFO
# Provides:             bridge
# Required-Start:       $remote_fs $syslog
# Required-Stop:        $remote_fs $syslog
# Default-Start:        2 3 4 5
# Default-Stop:
# Short-Description:    Bridge for OpenVPN
### END INIT INFO
 
# Define Bridge Interface
br="br0"
# Define list of TAP interfaces to be bridged,
# for example tap="tap0 tap1".
tap="tap0"
# Define physical ethernet interface to be bridged
# with TAP interface(s) above.
eth="eth1"
eth_ip="192.168.69.1"
eth_netmask="255.255.255.0"
eth_broadcast="192.168.69.255"
gw="192.168.69.1"   
 
#################################
# Set up Ethernet bridge on Linux
# Requires: bridge-utils
#################################
start_bridge () {
        for t in $tap; do
                openvpn --mktun --dev $t
        done   
 
        brctl addbr $br
        brctl addif $br $eth
 
        for t in $tap; do
                brctl addif $br $t
        done
 
        for t in $tap; do
                ifconfig $t 0.0.0.0 promisc up
        done
        ifconfig $eth 0.0.0.0 promisc up
        ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast up
        route add default gw $gw $br
} 
 
####################################
# Tear Down Ethernet bridge on Linux
####################################
stop_bridge () {
        ifconfig $br down
        brctl delbr $br
        for t in $tap; do
                openvpn --rmtun --dev $t
        done
        ifconfig $eth $eth_ip netmask $eth_netmask broadcast $eth_broadcast up
        route add default gw $gw $eth
}  
 
####################################
# OPTIONS
####################################
case "$1" in
        start)
          echo -n "Starting Bridge"
          start_bridge
          ;;
        stop)
          echo -n "Stopping Bridge"
          stop_bridge
          ;;
        restart)
          stop_bridge
          sleep 2
          start_bridge
          ;;
        *)
#          echo "Usage: $0 {start|stop|restart}" >&2
          exit 1
          ;;
esac

oraz konfig od openvpn:

Kod: Zaznacz cały

port 1194
proto udp
dev tap0
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
ifconfig-pool-persist ipp.txt
server-bridge 192.168.69.233 255.255.255.0 192.168.69.234 192.168.69.254
keepalive 10 120
comp-lzo
persist-key
persist-tun
log /var/log/openvpn.log
log-append /var/log/openvpn.log
status /var/log/openvpn-status.log
verb 3
 
#===================================================#
# Client Settings
#===================================================#
# If you need to push routes you can do so here for example:
#push "route 192.168.69.0 255.255.255.0 192.168.69.1"
 
push "ping 10"
push "ping-restart 60"

push "redirect-gateway def1" 
#push "dhcp-option DOMAIN example.local"
push "dhcp-option DNS 192.168.69.1"
#push "dhcp-option DNS 83.238.255.76"
#push "dhcp-option WINS 192.168.255.1"
push "route-delay 5"

 
push "echo "
push "echo Welcome to the Network!"
push "echo "


Jeśli potrzeba czegoś więcej, to mówcie!

Z góry dziękuję za pomoc!
piroaa
Beginner
Posty: 324
Rejestracja: 11 kwietnia 2008, 14:46

Post autor: piroaa »

Witam.
Tak na szybko, na pewno routing jest skopany:

Kod: Zaznacz cały

root@fox:~# ip route 87.204.10.240/29 dev eth0  proto kernel  scope link  src 87.204.10.242 192.168.69.0/24 dev br0  proto kernel  scope link  src 192.168.69.1 default via 192.168.69.1 dev br0  scope link default via 87.204.10.241 dev eth0
daj:

Kod: Zaznacz cały

ip route del 0/0 via 192.168.69.1
A jak to nie pomoże to będziemy szukać dalej.
P.S.
Do testów wyłącz całkowicie firewall.
Pozdrawiam.
neomammut
Posty: 8
Rejestracja: 28 października 2009, 16:11

Post autor: neomammut »

Będę dzisiaj w robocie około 17:00, dam znać to z tego wyszło, dziękuję!

Dodane:
Mam już internet wewnątrz, zadziałało, ale teraz po wpisaniu nazwy domeny głównej, na której jest strona www mojej firmy przeglądarka nic nie wyświetla - cały czas szuka adresu. Sytuacja ma miejsce tylko z wewnątrz sieci, z zewnątrz można się dostać.

Nie mogę też z zewnątrz wysłać sygnału ping do serwera.
piroaa
Beginner
Posty: 324
Rejestracja: 11 kwietnia 2008, 14:46

Post autor: piroaa »

Witam.
Napisałeś bardzo nieprecyzyjnie:
ale teraz po wpisaniu nazwy domeny głównej, na której jest strona www mojej firmy przeglądarka nic nie wyświetla - cały czas szuka adresu. Sytuacja ma miejsce tylko z wewnątrz sieci
Przez jaki nuner IP powinieneś się dostać z wewnątrz sieci?

Kod: Zaznacz cały

dig adres.twojej.strony.pl
i zobacz co dostaniesz, czy jest to zgodne z tym co sobie wymarzyłeś, jeśli nie to popraw!
Nie mogę też z zewnątrz wysłać sygnału ping do serwera.

Na jaki numer IP? Zewnętrzny, czy będąc połączony do VPN? Jeśli zewnętrzny to czy reguły blokujące zostały wyłączone do testów tak jak radziłem wyżej?
Pozdrawiam.
neomammut
Posty: 8
Rejestracja: 28 października 2009, 16:11

Post autor: neomammut »

piroaa pisze:Witam.
Napisałeś bardzo nieprecyzyjnie:
...
Z sieci wewnętrznej nie mogę się dostać na główną stronę mojej firmy. Moja domena to

Kod: Zaznacz cały

trtech.pl
Więc, będąc w sieci wewnętrznej, po wpisaniu:

Kod: Zaznacz cały

trtech.pl
nie mogę się dostać na stronę. Tak samo nie mogę się dostać przez adres wewnętrzny rutera, którym jest numer IP 192.168.69.1

Z zewnątrz, będąc w domu np. i nie będąc podłączonym poprzez VPN, po wpisaniu:

Kod: Zaznacz cały

 trtech.pl
strona się ładuje.

Taka sama sytuacja tyczy się pakietów ping. Będąc w domu nie mogę wysłać sygnału ping do serwera ani przez nazwę domeny, ani przez wpisanie adresu ip.

Firewall jest wyłączony podczas testów. Ale nawet jeśli był by włączony to pakiety ICMP są odblokowane.

Most VPN działa poprawnie po połączeniu się z zewnątrz do sieci.

PS. Zainstalowałem kiedyś pakiet DNSMASQ, wpisałem tam takie wartości do konfigu:

Kod: Zaznacz cały

listen-address=127.0.0.1,192.168.69.1
bind-interfaces
Może tu jest pies pogrzebany?
piroaa
Beginner
Posty: 324
Rejestracja: 11 kwietnia 2008, 14:46

Post autor: piroaa »

Witam.
Specjalnie przetestowałem taką konfigurację i wszystko działa.
Na początek:
1. Wyczyść cały iptables:

Kod: Zaznacz cały

iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -F PREROUTING
iptables -t nat -F POSTROUTING

Następnie dodaj tylko NAT:

Kod: Zaznacz cały

iptables -t nat -A POSTROUTING -s 192.168.69.0/24 -o eth0 -j MASQUERADE

Teraz, sprawdź z wewnątrz czy działa. Jeśli jakimś cudem nie to zrób tak:

Będąc podpięty wewnątrz:

Kod: Zaznacz cały

ping trtech.pl
Sprawdź jaki numer IP będzie ci pingować i daj znać.

Z jakiego DNS-a korzystasz w swojej sieci, masz coś uruchomione na tym ruterze, czy korzystasz z czegoś ogólnodostępnego typu 8.8.8.8.

Z wewnątrz wykonaj:

Kod: Zaznacz cały

nmap -sS 192.168.69.1
nmap -sS 87.204.10.242

Pozdrawiam.
neomammut
Posty: 8
Rejestracja: 28 października 2009, 16:11

Post autor: neomammut »

Dziękuję! Jednak tablice iptables się nie czyściły, więc odinstalowałem iptables i zainstalowałem od nowa, teraz wszystko działa. Jednak sygnał ping jest nadal blokowany z zewnątrz. Wewnątrz sieci działa prawidłowo. Chyba nasz dostawca blokuje ping.

Mam tylko jeszcze problem z proftpd, ale z tym już sobie poradzę.

Jeszcze raz bardzo serdecznie dziękuję!

Edycja:
Zadzwoniłem do swojego usługodawcy internetowego i przez przypadek zablokowali pakiety icmp, teraz już działa.
ODPOWIEDZ