Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witam z tego co patrzylem na forum nie znalazlem nic konkretnego na temat instalacji openvpn nawet zadalem kilka pytan na ktore nikt nie odpowiedzial wiec postanowilem napisac tutorial krok po kroku jak co gdzie. Podam tez skrypty do klienta windows i serwera linux.
INSTALACJA NA DEBIANIE
1. Instalujemy pakiet OpenVPN
root:~# apt-get install openvpn
Po wydaniu tego polecenia powinien sie bez problemowo zainstalowac pakiet openvpn
Teraz przejdzmy do czesci konfiguracyjnej.
2. Konfiguracja serwera openvpn
root:~# cd /etc/openvpn root:~# touch openvpn-serwer.conf
Wchodzimy do katalogu openvpn wydajac pierwsze polecenie oraz tworzymy plik openvpn-serwer.conf
Teraz trzeba wyedytowac plik .conf. Ja to zrobilem za pomoca mc.
Wpisujemy ponizszy kod:
dev tap0 port 5000 #<=Port na ktorym bedzie dzialal nasz serwer proto udp ifconfig 10.3.0.1 255.255.0.0 #<=adres ip na ktory bedziemy sie logowali klientem #keepalive 10 120 status /tmp/openvpn-status.log ping 15 ping-restart 45 ping-timer-rem verb 3 secret /etc/openvpn/static.key #<=klucz autoryzacji polaczenia inactive 3600 push "ping 10" push "ping-restart 60" push "route 192.168.0.0 255.255.255.0" #<= Ta opcja odpowiada za routing serwer siec lokalna
Teraz zostalo nam wygenerowanie klucza autoryzacji.
3. Generujemy klucz w tym samym katalogu co sie znajdujemy czyli /etc/openvpn
root:~# openvpn --genkey --secret static.key
Dodajmy reguly do firewala bo bez tego nie bedzie nam dzialal serwer
4. Dodawanie reguly iptables. Ja stworzylem sobie plik w ktorym dziele lacze na klika komputerow i tam mam iptables blokujacy i przepuszczający ruch w sieci
Kazdy moze sobie taki plik wykonywalny stworzyc.
root:~# cd /etc/init.d root:~# touch rc.firewall root:~# chmod a+z rc.firewall
I dodajemy takie regulki
echo "1" > /proc/sys/net/ipv4/ip_forward #forwardowanie pakietow iptables -A INPUT -i tap0 -j ACCEPT iptables -A FORWARD -o tap0 -j ACCEPT #otwieranie portow dla serwera i klienta openvpn iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 5000 -j ACCEPT #openvpn iptables -A INPUT -p udp -m state --state NEW -m udp --dport 5000 -j ACCEPT #openvpn #routing dla adresu ip klienta iptables -t nat -A POSTROUTING -s 10.3.0.2/255.255.0.0 -j MASQUERADE iptables -A FORWARD -s 10.3.0.2/255.255.0.0 -j ACCEPT
Na sam koniec zaznacze ze aby rc.firewal ladnie smigal trzeba jeszcze pododawac sporo funkcji ja tu napisalem polecenia potrzebne do uruchomienia openvpn
Jezeli juz mamy to wszystko zrobione to uruchamiany server i nasz firewall
root:~# cd /etc/init.d/ root:~# ./rc.firewall root:~# cd /etc/openvpn root:~# openvpn --config openvpn-serwer.conf
W tym momencie uruchomi sie w konsoli log do serwera i bedziemy mogli zobaczyc jak przebiega praca z serwerem
5.Instalacja klienta OpenVPN na WindowsXP
Przebiegu samej instalacji nie bede opisywal bo jest prosta i taka sama jak innych programow pod winde.
Konfiguracja Klienta OpenVPN
6. Po instalacji przechodzimy do katalogu klienta
C:\Program Files\OpenVPN\config
Kopiujemy plik Client z katalogu
C:\Program Files\OpenVPN\sample-config
Oraz go edytujemy kasujemy wszystko co sie w nim znajduje i wpisujemy swoje regulki ktore beda wygladaly nastepujaco
dev tap proto udp remote PUBLICZNY_ADRES_SERWERA 5000 #<= Tu podajemy publiczny adres serwera lub domene na ktorym stoi serwer OpenVPN oraz podajemy port 5000 ping 15 ping-restart 45 ping-timer-rem push "ping 10" push "ping-restart 60" ifconfig 10.3.0.2 255.255.0.0 #<= Tu podajemy adres ip ktory bedzie przydzielony naszemu klientowi resolv-retry infinite nobind mute-replay-warnings secret static.key verb 1 float
7. Teraz trzeba z serwera skopiowac plik static.key ktory umieszczamy w folderze C:\Program Files\OpenVPN\config
8. Po uruchomieniu programu OpenVPN pojawi sie ikonka na dolnym pasku naszego systemu
Klikamy prawym klawiszem myszki na czerwone monitorki i dajemy Connect
Jezeli wszystko jest ok klient powinien nawiazac polaczenie z serwerem.
Teraz sprawdzimy czy polaczenie jest dostepne pingujac adresy.
9. Pingujemy serwer od strony klienta
ping 10.3.0.1
Jezeli ping jest ok powinno wszystko dzialac
Mozemy tez sprawdzic czy serwer pinguje klienta
root:~# ping -c 5 10.3.0.2
Konczymy zabawe z konfiguracja i zaczynamy z naszya Wirtualna Siecia Prywatna
[b]Wszystkie polaczenia do serwera na ktorym stoi openvpn dokonujemy przez adres 10.3.0.1[/b]
Jezeli sa jakies pytania prosze pisac
Config dziala bez problemu kwestia tylko otwierania portow na samym firewalu.
Życze milej zabawy
Ostatnio edytowany przez czarny30 (2009-11-24 15:45:18)
Offline
No to ja proponuje moje howto na temat openvpn w debianie
http://rpc.one.pl/index.php/lista-artykulow/36-debian/66-openvpn-czyli-twrzenie-tunelu-z-autoryzacja-rsa-skryptem-hasem
Pozdrawiam
Rafał
Offline
Super tutek ale nie widze jak tworzyc pliki certyfikatu i dlatego ja utworzylem swoj bez certyfikatow poniewaz mialem z tym wielkie problemy nie chcialo mi utworzyc urzedu CA i zaniechalem dalszych dzialan w tym kierunku.
Offline
Eee źle patrzyłeś
http://rpc.one.pl/index.php/lista-artykulow/36-debian/61-generowanie-certyfikatow-openssl-x509
tam jest wszystko co trzeba reszta w artykule o openvpn
Offline
Witam serdecznie!
Postawiłem openvpn na Debian 5.0.4 wg howto http://rpc.one.pl/index.php/lista-artykulow/36-debian/66-openvpn-czyli-twrzenie-tunelu-z-autoryzacja-rsa-skryptem-hasem.
Wszystko fantastycznie działa tylko, że tak naprawdę działa wyłącznie jeden mechanizm zabezpieczenia - wyłącznie PAM.
Wystarczy, że utworzymy na serwerze dowolnego użytkownika, podając klucze dowolnego użytkownika i wchodzimy przez klienta Openvpn.
Czy ktoś z Was weryfikował zabezpieczenia?
Poza tym artykuł jest super
Offline
inne były założenia jak to tworzyłem ale już zmieniłem wedle sugestii
openvpn teraz sprawdza czy użytkownik w linux jest tym który jest w certyfikacie
definiuje się w pliku userlist.txt np. wedle
Jan_Kowalski jkowalski
co oznacza, iż user jkowalski będący w /etc/passwd jest przypisany do certyfikatu z polem CommonName Jan_Kowalski
zapraszam do zmienionego tekstu ponownie
[url]http://rpc.one.pl/index.php/lista-artykulow/36-debian/66-openvpn-czyli-twrzenie-tunelu-z-autoryzacja-rsa-skryptem-hasem[/url]
Offline
taka drobna uwaga odnośnie "firewall"
echo "1" > /proc/sys/net/ipv4/ip_forward
#forwardowanie pakietow
Kod: iptables -A INPUT -i tap0 -j ACCEPT iptables -A FORWARD -o tap0 -j ACCEPT #otwieranie portow dla serwera i klienta openvpn iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 5000 -j ACCEPT #openvpn iptables -A INPUT -p udp -m state --state NEW -m udp --dport 5000 -j ACCEPT #openvpn
ta część nie ma sensu jeżeli nie ustawimy polityki na drop
#routing dla adresu ip klienta iptables -t nat -A POSTROUTING -s 10.3.0.2/255.255.0.0 -j MASQUERADE
jeżeli chodzi o maskowanie tutaj warto by dodać flagę -o wan (gdzie wan to nasz interfejs na świat) aby komputery wenątrz sieci lokalnej widziały poprawne adrsy, a nie adres serwera.
przy czym ma to sens tylko wtedy gdy klient vpn ma korzystać z internetu za pośrednictwem połączenia vpn.
iptables -A FORWARD -s 10.3.0.2/255.255.0.0 -j ACCEPT
też bez sensu skoro nie zmieniliśmy polityki.
Ostatnio edytowany przez bobycob (2010-06-14 01:46:58)
Offline
Ciąg dalszy zmagań..
Wszystko śmiga ale jedna ważna kwestia:
1. Jestem zalogowany na dwóch stacjach bez problemu łączę się korzystając z mstsc ale po ok. 20-30 min. wurzuca obydwu klientów. Wygląda na to, że sesja została zakończona. Zestawia się samoczynnie połączenie - ale niestety muszę powtórnie wpisywać hasło na hostach.
Nie wiem jak sobie z tym poradzić. Czy jest to ustawianie długości sesji klienta? Czy może też kwestia przełącznika --inactive w server.conf ?
2. Prosiłbym o rzucenie okiem na firewall'a czy jest wystarczająco poprawny i szczelny:
#OpenVPN firewall by JoshuaVH ## wlaczenie w kernelu forwardowania echo 1 > /proc/sys/net/ipv4/ip_forward ##czyscimy reguly iptables -F ## Ustawiamy domyslne polisy iptables -P OUTPUT DROP iptables -P INPUT DROP iptables -P FORWARD DROP ## #laczymy sie z VPN z konkretnych hostow iptables -I INPUT -p tcp -s 800.502.205.298 --dport 7500 -j ACCEPT iptables -I INPUT -p tcp -s 800.502.205.297 --dport 7500 -j ACCEPT #laczymy sie z SSH z odpowiednich hostow po odpowiednim porcie iptables -I INPUT -p tcp -s 800.502.205.298 --dport 22 -j ACCEPT iptables -I INPUT -p tcp -s 800.502.205.297 --dport 22 -j ACCEPT #wpuszczamy ruch do VPN z konkretnych hostow iptables -A INPUT -i tun+ -s 10.3.0.0/24 -j ACCEPT #umozliwiamy odpowiedni forward iptables -A FORWARD -i tun+ -s 10.3.0.0/24 -d 800.502.205.296 -j ACCEPT #wypuszczamy caly ruch ale wylacznie do konkretnych hostow iptables -A OUTPUT -d 800.502.205.298 -j ACCEPT iptables -A OUTPUT -d 800.502.205.297 -j ACCEPT iptables -A OUTPUT -d 10.3.0.0/24 -j ACCEPT
Ostatnio edytowany przez joshuavh (2010-06-17 16:09:28)
Offline
ad.1 jak robiłeś wedle mojego howto hmm. Ja też mam zdalną pracę i nie ma z tym problemu. Sesja trzyma. Najdłużej to z 5 godzin pracowałem więc.? Zdarzały mi się zerwania połączenia ale zawsze wynikały z winy łącza np.adsl wtedy zmienia się ip. Rzadko wina to była wifi. Zawsze jednak openvpn próbował sam parę razy z automatu połączyć. Przy zmianie ip wymaga wpisania ponownie hasła.
ad.2 no mnie brakuje RELATED ESTABLISHED no i bym wywalił port 113 i 1080
iptables -A INPUT -i tun+ -s 10.3.0.0/24 -j ACCEPT
tu bym się zastanowił czy to potrzebne. pewnie potrzebujesz forward lub tylko INPUT pojedynczych portów a tak otwierasz router/hosta dla klientów a nie wiem czy to bezpiecznie. Ja bym jeżeli już udostępnił tylko konkretne porty i protokoły
no to w sumie nie wiem czy to router czy komputer końcowy
Offline
Witam chciałbym odgrzać temat związany z Twoim tutorialem, przerobiłem już wiele konfiguracji i doszedłem do punktu w którym widzę zasoby serwera vpn (debian+samba) oraz mogę zpingować maszyny w obie strony. Połączenie zestawione na podstawie książki M. Serafina "sieci vpn zdalna praca i bezpieczeństwo danych" na interfejsach TUN. Aczkolwiek w tej konfiguracji miałem problem z połączeniem z komputerami z sieci lokalnej w której znajduje się server VPN (zapewne coś pokopałem w routingu). Tak więc przekopałem się przez DUG.net.pl i znalazłem Twój tutek. Podczas konfiguracji mam problem z interfejsem TAP pod linuxem, a mianowicie po zmianie w config opcji "dev tun" na dev "tap0" i zrestartowaniu openvpn wyskakuje błąd:
/etc/openvpn# service openvpn restart Stopping virtual private network daemon:. Starting virtual private network daemon: server failed!
próbowałem już dodać interfejs TAP0 poleceniem
openvpn --mktun --dev tap0 Fri May 31 13:03:44 2013 TUN/TAP device tap0 opened Fri May 31 13:03:44 2013 Persist state set to: ON
jeśli będzie trzeba dorzucę pliki konfiguracyjne klienta i serwera (ale są zjechane z tutka żywcem, oczywiście pozmieniałem certy i adresy)
To mój 1 post (zazwyczaj jestem biernym użytkownikiem :) ) proszę o wyrozumiałość !
mój konfig sieci na wszelkie w
[url=http://pokazywarka.pl/u1f54j/]Konfiguracja testowa[/url]
[img]http://s1.pokazywarka.pl/i/2048105/284889/rysunek1-1.jpg[/img]
Ostatnio edytowany przez luk1515 (2013-06-03 08:14:34)
Offline
Serwer:
# ~> egrep -v '#' openvpn.conf local 0.0.0.0 port 1978 proto udp dev tap5 ca ca.crt cert server.crt key server.key dh dh2048.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt keepalive 10 120 comp-lzo user openvpn group openvpn persist-key persist-tun status tmp/openvpn-status.log verb 3 chroot /var/openvpn management 127.0.0.1 6001 cipher AES-256-CBC tls-auth /etc/openvpn/ta.key 0 plugin /usr/lib/openvpn/openvpn-auth-pam.so system-auth
Klient:
# ~> egrep -v '#' clients.conf client dev tap1 proto udp remote {domek-adres} 1978 resolv-retry infinite nobind persist-key persist-tun ca /etc/openvpn/clients/ca.crt cert /etc/openvpn/clients/client.crt key /etc/openvpn/clients/client.key remote-cert-tls server tls-auth /etc/openvpn/ta.key 1 auth-user-pass auth-nocache cipher AES-256-CBC comp-lzo verb 3
Kiedy ostatnio używałem OpenVPN (jakiś rok temu), to tak działalo, -certyfikaty wygenerowane przez easy-rsa, do tego klucz ta, i autoryzacja hasłem w pam.
Maksymalne bezpieczeńswo, jakie mozna osiągnać w OpenVPN.
Robiłem głównie wg tego:
http://openvpn.net/index.php/open-source/documentation/howto.html#server
Jedna uwaga, w tych konfigach OpenVPN po obu stronach jest w chroocitach, i nie może ustawić interfejsów tap i routingu, to trzeba było ustawiać ręcznie, czyli w praktyce przez skrypty do odpalania tunelu (serwera i klienta) .
Na szczęście komendy [b]tunctl[/b] i [b]route[/b] nie są zbyt skomplikowane.
Pozdrawiam
;-)
Ostatnio edytowany przez Jacekalex (2013-05-31 14:40:19)
Offline
Musisz pokazać logi openvpna przy przeładowywaniu demona. Jeśli za mało pokazuje to verb ustaw powyżej 3
Offline
Po 1 na wstępie dzięki za takie zainteresowanie postem :)
Faktycznie miałem problem z routingiem, więc żeby nie dokładać sobie problemu z niewstającym "TAP" odpaliłem to jednak na TUN-ach, pozmieniałem reguły w ip tables , generalnie problem dalej istnieje ponieważ natrzaskałem niezliczoną ilość reguł, i oczywiście nie wiem która wpłynęła na rozwiązanie problemu. Powyższy config działa świetnie na interfejsie TUN zarówno po stronie klienta jak i serwera. Poniżej zamieszczam skrypcik który desperacko napisałem w przypływie gniewu na podstawie kilku wątków z tego forum. Zależy mi na tym aby ktoś obeznany napisał co z niego wywalić. Poniżej znajdziecie działające pliki konfiguracyjne. Przypominam tylko że są one przerobione pod certyfikaty. Docelowo ma być to rozwiązanie zastępcze gdyż chciałbym w tym przypadku zastosować IP sec na open swanie i certyfikatach, może macie jakieś doświadczenia przy zestawianiu takich połączeń, czy nie będzie problemu przy konfiguracji sieci z mojego 1 postu (rysunek).
[edit 1]
W tym skrypcie reguły są na 1 klienta, podejrzewam że zastosowanie adresu podsieci zamiast konkretnego klienta sprawi że routing będzie na całą pulę adresów. I tutaj nasuwa się pytanie czy wpisywać tam adres podsieci czy zadziała również zakres ? np 10.0.0.[1-20]
ustawienia ip tables (proszę się nie śmiać, niezły burdel tam zrobiłem i generalnie liczę na was że pomożecie mi w sprzątaniu)
#!/bin/sh echo "czszczenie wszystkiego w ip tables" iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT echo "firewall jest ogarniety" echo echo echo "1" > /proc/sys/net/ipv4/ip_forward #forwardowanie pakietow iptables -A INPUT -i tun0 -j ACCEPT iptables -A FORWARD -o tun0 -j ACCEPT iptables -A INPUT -i tun -j ACCEPT iptables -A FORWARD -o tun -j ACCEPT #otwieranie portow dla serwera i klienta openvpn iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 5000 -j ACCEPT #openvpn iptables -A INPUT -p udp -m state --state NEW -m udp --dport 5000 -j ACCEPT #openvpn #routing dla adresu ip klienta iptables -t nat -A POSTROUTING -s 10.8.0.6/255.255.255.0 -j MASQUERADE iptables -A FORWARD -s 10.8.0.6/255.255.255.0 -j ACCEPT iptables -A INPUT -i tun+ -s 10.8.0.0/24 -j ACCEPT iptables -I INPUT -i tun+ -p udp --dport 53 -j ACCEPT iptables -I FORWARD -i tun+ -j ACCEPT echo "reguly dodane do iptables"
config klienta (działający)
client dev tun remote aaaaa.dyndns.biz 5000 persist-key persist-tun proto udp ping 15 ping-restart 45 ping-timer-rem push "ping 10" push "ping-restart 60" ifconfig 10.8.0.2 255.255.255.0 resolv-retry infinite nobind mute-replay-warnings float ca cacert.pem cert user.crt key user.key comp-lzo verb 3
config serwera
dev tun local 10.0.0.168 proto udp port 5000 user openvpn group openvpn ca cacert.pem cert servercert.pem key serverkey.pem_bezhasla dh dh1024.pem server 10.8.0.0 255.255.255.0 ifconfig 10.8.0.1 255.255.255.0 status openvpn-status.log client-config-dir ccd keepalive 10 120 comp-lzo push "ping 10" push "ping-restart 60" push "route 10.0.0.0 255.0.0.0"
Ostatnio edytowany przez luk1515 (2013-06-03 08:14:57)
Offline
A ja dostrzegam dość spore nieścisłości w wymienionych tutaj opisach.
Mianowicie chodzi mi o to że sama instalacja i pliki konfiguracyjne rozpisane są idealnie, natomiast certyfikaty już wcale.
Jest manual jak je generować, jednak w configu jest znacznie więcej plików *.pem niż w opisie generowania, ponad to mają inne nazwy i są w inntch miejscach.
Tak więc ktoś kto chciał by się posiłkować tymi opisami może stracić sporo czasu na testach...
na przykład:
ca /etc/ssl/cacert.pem # certyfikat CA -------------- wygenerował się
cert /etc/ssl/certs/newcert.pem # certyfikat serwera --------------- coś takiego nie istnieje
key /etc/ssl/private/newkey.pem # klucz prywatny serwera wygeneruj bez hasła opcja CA.pl - newreq-nodes --------------- wygenerował się
crl-verify /etc/ssl/crl.pem --------------------- coś takiego nie istnieje
ponad to VPN z takim plikiem konfiguracyjnym serwera nie wstaje....
Offline
@R_Przemek
W OpenVPN certy się generuje przez pkitool - są do tego skrypty easy-rsa.
apt-cache search easy-rsa easy-rsa - Simple shell based CA utility
Jak widać, te skrypty są w każdym repo Debiana. ;)
Offline
Strony: 1
Time (s) | Query |
---|---|
0.00013 | SET CHARSET latin2 |
0.00005 | SET NAMES latin2 |
0.00114 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.143.218.180' WHERE u.id=1 |
0.00078 | UPDATE punbb_online SET logged=1732303082 WHERE ident='3.143.218.180' |
0.00058 | SELECT * FROM punbb_online WHERE logged<1732302782 |
0.00091 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=15583 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00355 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=15583 ORDER BY p.id LIMIT 0,25 |
0.00084 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=15583 |
Total query time: 0.00803 s |