Openvpn sunucu ayarları

Başlatan RUsty, 27 Ağustos 2011 - 05:03:50

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

RUsty

Merhaba arkadaşlar,
Önceden vpn olarak astrill i kullanmaktaydım. Geçenlerde süresi bitti ve yeniden satın almadım. Hali hazırda minecraft oynamak için bir tane vps kiralayıp server ımı buraya yerleştirmiştim. Şimdi yeniden vpn parası ödememek için server ıma openvpn kurdum. Lakin bu server.conf dosyasını tam olarak yazamadım. Amacım tüm internet erişimimi vps üzerinden tunneling ile sağlamak.
Denemediğim kombinasyon kalmadı. Bütün gece uğraştım, karnıma sinirden ağrılar girdi lakin ip adreslerini yerleştirme konusunda başarısız oldum ve aşırı derecede kafam karışık. Bilen ve kurulumunu daha önce yapmış arkadaşlar yardımcı olabilirlerse sevaba girmiş olacaklar  :)


port 443
proto tcp
dev tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/servername.crt
key /etc/openvpn/easy-rsa/keys/servername.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
ifconfig-pool-persist ipp.txt
server 10.8.0.0 255.255.255.0
;server-bridge 10.1.0.1 255.255.255.0 10.1.0.236 10.1.0.245
;push .route 10.0.0.0 255.0.0.0
push redirect-gateway
keepalive 10 120
comp-lzo
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3

cagriemer

cat /etc/network/interfaces
cat /etc/openvpn/up.sh
cat /etc/openvpn/down.sh
ls -al /etc/openvpn


ciktilarini verir misiniz?

RUsty

hocam kusura bakmayın vps in ip sini ulu orta açık yazmak istemedim art niyet yoktur :) * ların hepsi hanesine göre aynı rakam

cat /etc/network/interfaces


### Hetzner Online AG - installimage
# Loopback device:
auto lo
iface lo inet loopback

# device: eth0
auto  eth0
iface eth0 inet static
  address   **.**.117.37
  broadcast **.**.117.47
  netmask   255.255.255.240
  gateway   **.**.117.33

# default route to access subnet
up route add -net **.**.117.32 netmask 255.255.255.240 gw **.**.117.33 eth0


up down için kullandığım script:

#!/bin/sh -e

### BEGIN INIT INFO
# Provides:          openvpn
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:     $network $remote_fs $syslog
# X-Interactive:     true
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Openvpn VPN service
### END INIT INFO

# Original version by Robert Leslie
# <rob@mars.org>, edited by iwj and cs
# Modified for openvpn by Alberto Gonzalez Iniesta <agi@inittab.org>
# Modified for restarting / starting / stopping single tunnels by Richard Mueller <mueller@teamix.net>

. /lib/lsb/init-functions

test $DEBIAN_SCRIPT_DEBUG && set -v -x

DAEMON=/usr/sbin/openvpn
DESC="virtual private network daemon(s)"
CONFIG_DIR=/etc/openvpn
test -x $DAEMON || exit 0
test -d $CONFIG_DIR || exit 0

# Source defaults file; edit that file to configure this script.
AUTOSTART="all"
STATUSREFRESH=10
if test -e /etc/default/openvpn ; then
  . /etc/default/openvpn
fi

start_vpn () {
    if grep -q '^[ ]*daemon' $CONFIG_DIR/$NAME.conf ; then
      # daemon already given in config file
      DAEMONARG=
    else
      # need to daemonize
      DAEMONARG="--daemon ovpn-$NAME"
    fi

    if grep -q '^[ ]*status ' $CONFIG_DIR/$NAME.conf ; then
      # status file already given in config file
      STATUSARG=""
    elif test $STATUSREFRESH -eq 0 ; then
      # default status file disabled in /etc/default/openvpn
      STATUSARG=""
    else
      # prepare default status file
      STATUSARG="--status /var/run/openvpn.$NAME.status $STATUSREFRESH"
    fi

    # Handle backwards compatibility
    if test -z "$( grep '^[[:space:]]*script-security[[:space:]]' $CONFIG_DIR/$NAME.conf )" ; then
        script_security="--script-security 2"
    fi

    STATUS=0
    # Check to see if it's already started...
    if test -e /var/run/openvpn.$NAME.pid ; then
      log_failure_msg "Already running (PID file exists)"
    else
      $DAEMON $OPTARGS --writepid /var/run/openvpn.$NAME.pid \
      $DAEMONARG $STATUSARG --cd $CONFIG_DIR \
      --config $CONFIG_DIR/$NAME.conf $script_security < /dev/null || STATUS=1
    fi
    log_end_msg $STATUS
}
stop_vpn () {
  kill `cat $PIDFILE` || true
  rm -f $PIDFILE
  rm -f /var/run/openvpn.$NAME.status 2> /dev/null
  log_end_msg 0
}

case "$1" in
start)
  log_action_begin_msg "Starting $DESC"

  # autostart VPNs
  if test -z "$2" ; then
    # check if automatic startup is disabled by AUTOSTART=none
    if test "x$AUTOSTART" = "xnone" -o -z "$AUTOSTART" ; then
      log_warning_msg "  Autostart disabled, no VPN will be started."
      exit 0
    fi
    if test -z "$AUTOSTART" -o "x$AUTOSTART" = "xall" ; then
      # all VPNs shall be started automatically
      for CONFIG in `cd $CONFIG_DIR; ls *.conf 2> /dev/null`; do
        NAME=${CONFIG%%.conf}
        log_daemon_msg "  Autostarting VPN '$NAME'"
        start_vpn
      done
    else
      # start only specified VPNs
      for NAME in $AUTOSTART ; do
        if test -e $CONFIG_DIR/$NAME.conf ; then
          log_daemon_msg "  Autostarting VPN '$NAME'"
          start_vpn
        else
          log_failure_msg "  Autostarting VPN '$NAME': missing $CONFIG_DIR/$NAME.conf file !"
          STATUS=1
        fi
      done
    fi
  #start VPNs from command line
  else
    while shift ; do
      [ -z "$1" ] && break
      NAME=$1
      if test -e $CONFIG_DIR/$NAME.conf ; then
        log_daemon_msg "  Starting VPN '$NAME'"
        start_vpn
      else
        log_failure_msg "  Starting VPN '$NAME': missing $CONFIG_DIR/$NAME.conf file !"
       STATUS=1
      fi
    done
  fi
  exit ${STATUS:-0}
  ;;
stop)
  log_action_begin_msg "Stopping $DESC"
  if test -z "$2" ; then
    PIDFILE=
    for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
      NAME=`echo $PIDFILE | cut -c18-`
      NAME=${NAME%%.pid}
      log_daemon_msg "  Stopping VPN '$NAME'"
      stop_vpn
    done
    if test -z "$PIDFILE" ; then
      log_warning_msg "  No VPN is running."
    fi
  else
    while shift ; do
      [ -z "$1" ] && break
      if test -e /var/run/openvpn.$1.pid ; then
        log_daemon_msg "  Stopping VPN '$1'"
        PIDFILE=`ls /var/run/openvpn.$1.pid 2> /dev/null`
        NAME=`echo $PIDFILE | cut -c18-`
        NAME=${NAME%%.pid}
        stop_vpn
      else
        log_failure_msg "  Stopping VPN '$1': No such VPN is running."
      fi
    done
  fi
  ;;
# Only 'reload' running VPNs. New ones will only start with 'start' or 'restart'.
reload|force-reload)
  log_action_begin_msg "Reloading $DESC"
  PIDFILE=
  for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
    NAME=`echo $PIDFILE | cut -c18-`
    NAME=${NAME%%.pid}
# If openvpn if running under a different user than root we'll need to restart
    if egrep '^[[:blank:]]*user[[:blank:]]' $CONFIG_DIR/$NAME.conf > /dev/null 2>&1 ; then
      log_daemon_msg "  Stopping VPN '$NAME'"
      stop_vpn
      sleep 1
      log_daemon_msg "  Restarting VPN '$NAME'"
      start_vpn
    else
      log_daemon_msg "  Restarting VPN '$NAME'"
      kill -HUP `cat $PIDFILE` || true
      log_end_msg 0
    fi
  done
  if test -z "$PIDFILE" ; then
    log_warning_msg "  No VPN is running."
  fi
  ;;
# Only 'soft-restart' running VPNs. New ones will only start with 'start' or 'restart'.
soft-restart)
  log_action_begin_msg "Soft-restarting $DESC"
  PIDFILE=
  for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
    NAME=`echo $PIDFILE | cut -c18-`
    NAME=${NAME%%.pid}
    log_daemon_msg "  Soft-restarting VPN '$NAME'"
    kill -USR1 `cat $PIDFILE` || true
    log_end_msg 0
  done
  if test -z "$PIDFILE" ; then
    log_warning_msg "  No VPN is running."
  fi
  ;;
restart)
  shift
  $0 stop ${@}
  sleep 1
  $0 start ${@}
  ;;
cond-restart)
  log_action_begin_msg "Restarting $DESC"
  PIDFILE=
  for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
    NAME=`echo $PIDFILE | cut -c18-`
    NAME=${NAME%%.pid}
    log_daemon_msg "  Stopping VPN '$NAME'"
    stop_vpn
    sleep 1
    log_daemon_msg "  Restarting VPN '$NAME'"
    start_vpn
  done
  if test -z "$PIDFILE" ; then
    log_warning_msg "  No VPN is running."
  fi
  ;;
status)
  GLOBAL_STATUS=0
  if test -z "$2" ; then
    # We want status for all defined VPNs.
    # Returns success if all autostarted VPNs are defined and running
    if test "x$AUTOSTART" = "xnone" ; then
      # Consider it a failure if AUTOSTART=none
      log_warning_msg "No VPN autostarted"
      GLOBAL_STATUS=1
    else
      if ! test -z "$AUTOSTART" -o "x$AUTOSTART" = "xall" ; then
        # Consider it a failure if one of the autostarted VPN is not defined
        for VPN in $AUTOSTART ; do
          if ! test -f $CONFIG_DIR/$VPN.conf ; then
            log_warning_msg "VPN '$VPN' is in AUTOSTART but is not defined"
            GLOBAL_STATUS=1
          fi
        done
      fi
    fi
    for CONFIG in `cd $CONFIG_DIR; ls *.conf 2> /dev/null`; do
      NAME=${CONFIG%%.conf}
      # Is it an autostarted VPN ?
      if test -z "$AUTOSTART" -o "x$AUTOSTART" = "xall" ; then
        AUTOVPN=1
      else
        if test "x$AUTOSTART" = "xnone" ; then
          AUTOVPN=0
        else
          AUTOVPN=0
          for VPN in $AUTOSTART; do
            if test "x$VPN" = "x$NAME" ; then
              AUTOVPN=1
            fi
          done
        fi
      fi
      if test "x$AUTOVPN" = "x1" ; then
        # If it is autostarted, then it contributes to global status
        status_of_proc -p /var/run/openvpn.${NAME}.pid openvpn "VPN '${NAME}'" || GLOBAL_STATUS=1
      else
        status_of_proc -p /var/run/openvpn.${NAME}.pid openvpn "VPN '${NAME}' (non autostarted)" || true
      fi
    done
  else
    # We just want status for specified VPNs.
    # Returns success if all specified VPNs are defined and running
    while shift ; do
      [ -z "$1" ] && break
      NAME=$1
      if test -e $CONFIG_DIR/$NAME.conf ; then
        # Config exists
        status_of_proc -p /var/run/openvpn.${NAME}.pid openvpn "VPN '${NAME}'" || GLOBAL_STATUS=1
      else
        # Config does not exist
        log_warning_msg "VPN '$NAME': missing $CONFIG_DIR/$NAME.conf file !"
        GLOBAL_STATUS=1
      fi
    done
  fi
  exit $GLOBAL_STATUS
  ;;
*)
  echo "Usage: $0 {start|stop|reload|restart|force-reload|cond-restart|soft-restart|status}" >&2
  exit 1
  ;;
esac

exit 0

# vim:set ai sts=2 sw=2 tw=0:


ls -al /etc/openvpn çıktısı


total 28
drwxr-xr-x  3 root root 4096 2011-08-27 04:11 .
drwxr-xr-x 87 root root 4096 2011-08-27 04:29 ..
drwxr-xr-x  3 root root 4096 2011-08-24 23:22 easy-rsa
-rw-------  1 root root   17 2011-08-27 19:59 ipp.txt
-rw-r--r--  1 root root  419 2011-08-27 05:07 server.conf
-rw-r--r--  1 root root  413 2011-08-27 04:11 server.conf.save
-rwxr-xr-x  1 root root 1352 2010-07-20 15:45 update-resolv-conf







cagriemer

#3
Tam olarak hangi asamalari gectiginizi bilmedigim icin ben once ne yaptigimi anlatayim size sonra da ayar dosyalarimi vereyim. Aradan neyi eksik yaptiginizi bulmanizi saglayabiliriz belki boylece.

Oncelikle openvpn'i kuruyoruz. Daha sonra haberlesmenin sifrelenmesi icin gerekli olan sertifikalari olusturuyoruz. Istemcimize ca.crt client1.crt client1.key -bu sizin istemci icin hangi adla sertifika olusturdugunuza bagli- dosyalarinin bir kopyasini aliyoruz. Sunucuda ise ca.crt ca.key dh1024.pem -bu 2048 de olabilir durumunuza gore- server.crt ve server.key dosyalari kaliyor.Daha sonra asagida verdigime benzer sekilde ayar dosyalarini olusturuyoruz.

etc/sysctl.conf dosyasina net.ipv4.ip_forward=1 parametresini ekliyoruz.
echo 1 > /proc/sys/net/ipv4/ip_forward ile icinde bulundugumuz oturumun ip forward yapmasini sagliyoruz.

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE


ile gerekli ayarlamalari yapiyoruz. Bunlari /etc/rc.local a ekleyebilirsiniz acilista otomatik yapilmasi icin. Simdi openvpn servisini yeniden baslattigimizda sunucumuz hazir.

Istemci icin de openvpn paketini kurup sunucudan indirdigimiz sertifikalari /etc/openvpn altina tasiyoruz ve openvpn servisini yeniden baslatiyoruz. Su halde 10.8.0.1 adresine istemcinizden ping atabiliyor olmaniz lazim. Butun intenet trafiginiz sunucunuz uzerinden gececek sekilde ayarlanmis oluyor boylece. Kapatmak istediginizde ifconfig tun0 down kullanip openvpn servisini durdurabilirsiniz istemcide. Ayar dosyalarinda da sunucunun IP adresini, sertifika isimlerini ve yollarini ve port numarasini kendinize gore degistirebilirsiniz.

/etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0


server.conf

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3


client.conf

client
dev tun
proto udp
remote 192.168.10.134 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
comp-lzo
verb 3

RUsty

teşekkürler yanıtınız için.
Gerekli düzenlemeleri tekrar yaptım. Bu sefer bağlantı problemsiz gibi lakin internet erişimi yok malesef. Kendi shell im kopmuyor, hatta serverdaki teamspeak server ım çalışmaya devam ediyor lakin başka hiç bir şey açılmıyor.
ayrıca tracert ile paketin neden bu kadar dolaştığını anlayamadım  :-\

cagriemer

#5
Merhaba, VPN baglantisi kurulmus vaziyette ekran goruntusunden anladigim kadariyla. Sunucunuzda

echo 1 > /proc/sys/net/ipv4/ip_forward

komutunu calistirdiniz mi VPN servisini baslatmadan once? Bir de openvpn-status.log dosyasinin icerigini gorebilir miyiz?

Eger bir cozum bulamazsak direkt olarak OpenVPN Access Server kurmayi da deneyebiliriz. Boylece yonetimi web arayuzunden yapabilirsiniz. Tabii onun da problemli tarafi lisans alinmadan ayni anda sadece 2 farkli istemciden baglanabilmeye izin vermesi. Yalnizca kendiniz kullanacaksaniz uygundur.

RUsty

#6
Evet komutu yazmıştım. Hatta bir daha yazıp tekrar restart ettim. Değişen bir şey yok şimidlik.
Bu arada evet bir tek ben kullanacağım. Çözüm olacaksa Access Server kurabilirim.

openvpn-status.log içeriği:

OpenVPN CLIENT LIST
Updated,Mon Aug 29 15:13:42 2011
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
Rusty,95.7.134.241:51966,191704,161089,Mon Aug 29 15:11:43 2011
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
10.8.0.6,Rusty,95.7.134.241:51966,Mon Aug 29 15:13:41 2011
GLOBAL STATS
Max bcast/mcast queue length,0
END




bu arada bir ekleme yapayım:
vpn ihtiyacımı gidermek için pptpd kurmuştum.(Lakin güvenliği çok az). Openvpn bu esnada server da hala kurulu ve çalışmakta. Lakin pptp ile bağlandığımda yine internete giremiyordum. Sonra şu komutları ekledim:

modprobe ipt_MASQUERADE
iptables -F; iptables -t nat -F; iptables -t mangle -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward


Sonradan sizin verdiğiniz komutlar:

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE


bunları server a girince yine pptpd ile bağlandığımda internete girememe sorunlar başladı. Önceki komutları tekrar girdim. Bu hali ile tekrar denedim. pptpd üzerinden internet çalışıyor lakin hala ovpn üzerinden internet gelmiyor malesef. :(

cagriemer

O zaman once openvpn ile ilgili paketleri ayar dosyalari ile birlikte silin. wget ile sunucunuza http://swupdate.openvpn.org/as/openvpn-as-1.8.3-Ubuntu10.amd_64.deb adresindeki paketi indirip dpkg -i ile kurun. Kurulum bittikten sonra /usr/local/openvpn_as/bin/ovpn-init --force komutunu calistirip sordugu sorulara istediginiz sekilde yanit verin. Lisans sorusunu enter'a basip gecebilirsiniz. Bu islemler sonucunda size https:// onekli iki adres verecek. Biri istemci icin biri de admin icin. Eger admin icin openvpn diye bir kullanici olusturmasini soylediyseniz yapilandirmaya verdiginiz cevaplarda, openvpn kullanicisina bir sifre atayin. Daha sonra herhangi bir bilgisayardan admin arayuzune openvpn kullanicisi ile erisip ince ayarlari yapabilirsiniz. Varsayilanlari degistirmenize gerek yok aslinda yine de bakarsiniz durumunuza gore. Son olarak istemci bilgisayarinizdan, saniyorum Windows 7, size verilen normal kullanici adresine gidip, sunucudaki kullaniciniz ile baglandiginizda bilgisayariniza ufak boyutlu bir program indirip baglantiyi sunucunuza yonlendirecek. Baglanti kurulduktan sonra istemci bilgisayarinizdan bir IP algilama sitesine girip bakabilirsiniz ne sekilde gorundugune. Ozetle komutlar soyle;

sudo ifconfig tun0 down
sudo apt-get remove --purge openvpn
wget http://swupdate.openvpn.org/as/openvpn-as-1.8.3-Ubuntu10.amd_64.deb
sudo dpkg -i openvpn-as-1.8.3-Ubuntu10.amd_64.deb
sudo /usr/local/openvpn_as/bin/ovpn-init --force
sudo passwd openvpn


Onemli oldugu icin ekleyeyim adreslerin basina https koymaniz gerekti http uzerinden calismayacaklardir.

hesapm

Arkadaşlar Merhaba;

VPS servere Openvpn kurulumu yaptım. Client olarak windows termainalden bağlandım, bağlantı gerçekleşiyor fakat ping alamıyorum, ip numarası değişmiyor. konu hakkında yarımcı olabilir misiniz?

i.ç


heartsmagic

Bu durumda bağlantı gerçekleşmemiş ya da sağlıklı değil demektir. Ayrıntıları bilmeden bir şeyler söylemek de güç.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.