Page 1 of 17 12311 ... LastLast
Results 1 to 15 of 242

Thread: Установка OpenVPN в основную память для НОВИЧКОВ

  1. #1

    Post Установка OpenVPN в основную память для НОВИЧКОВ

    Значится так, все описанное здесь было сделано по просьбе моего друга известного здесь как Polll (вот его проблема http://wl500g.info/showthread.php?t=8710).
    Задача звучала так:
    на работе закрыты все порты наружу (http идеть через проксю) кроме TCP 5190, нужно получить полноценный инет. Дома стоит WL500gP с реальным IP на WAN, но без подключенного харда или флэшки.
    Так как он в linux`e полный ноль, то пришлось написать скрипт который сделает все сам. Сразу оговорюсь что скрипт писался исходя из условий что в WL500gP никто по телнету на "лазил грязными ногами" была только залита прошивка Олега и настроено все через веб морду. Соответственно считалось по умолчанию что скрипт ничего настроенного (до его запуска) через телнет не сломает (если что-то делали ранее нужно закоментировать соответствующие строки).
    Расписано все так чтобы было понятно даже новичку. И так начнем ...
    Для начала нужно скачать и установить на винду openvpn http://openvpn.se/download.html
    openvpn-2.0.9-gui-1.0.3-install.exe.

    После установки переименовываем новое сетевое соединение в "tun0".

    Генерим ключик:
    cd C:\Program Files\OpenVPN\config
    openvpn --genkey --secret static.key


    С помощью блокнота создаем в директории C:\Program Files\OpenVPN\config файл client.ovpn следующего содержания:
    remote myhost
    dev tun0
    port 5190
    proto tcp-client
    ifconfig 10.8.0.2 10.8.0.1
    secret static.key
    redirect-gateway

    где "muhost" IP-адрес WAN роутера, порт 5190 выбран изза условия (можно поставить любой выше 1024)
    С виндой мы разобрались теперь займемся роутером.

    Нужно любым способом перебросить файлик ключа static.key на роутер в директорию /tmp/local. Это можно

    сделать несколькими способами, вот два самых простых:

    1) Временно подключить жесткий диск или флэшку к роутеру и по фтп скинуть на него файлик, после чего в

    телнете выполнить команду
    cp /tmp/harddisk/ftp_pub/static.key /tmp/local

    2) Временно выложить файлик где нить в инете и в телнете выполнить команды
    cd /tmp/local
    wget http://адрес_где_лежит_файл/static.key


    Все будем ставить в встроенный флеш.

    Вот файл скрипта inst_openvpn

    #!/bin/sh

    # Создаем директорию куда все будем ставить
    mkdir /tmp/local/opt

    # Монтируем ее в /opt
    mount /tmp/local/opt /opt

    # Обновляем список доступных для установки пакетов
    ipkg.sh update

    # Устанавливаем установщик пакетов ipkg
    ipkg.sh install ipkg

    # Перенастраиваем ipkg на нужный нам репозитарий пакетов
    echo "src unslung http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable" > /opt/etc/ipkg.conf
    echo "dest root /" >> /opt/etc/ipkg.conf


    # Обновляем список доступных для установки пакетов
    ipkg update

    # Последовательно ставим необходимые для выполнения нащей задачи пакеты
    ipkg install uclibc-opt
    ipkg install openssl
    ipkg install lzo
    ipkg -force-depends install openvpn


    # Создаем виртуальный сетевой интерфейс
    mkdir /dev/net
    mknod /dev/net/tun c 10 200


    # Создаем файл конфигурации openvpn сервера
    echo "dev tun0" > /opt/etc/openvpn/server.conf
    echo "port 5190" >> /opt/etc/openvpn/server.conf
    echo "proto tcp-server" >> /opt/etc/openvpn/server.conf
    echo "ifconfig 10.8.0.1 10.8.0.2" >> /opt/etc/openvpn/server.conf
    echo "secret static.key" >> /opt/etc/openvpn/server.conf


    # Создаем директорию для пользовательских скриптов
    mkdir /usr/local/sbin

    # Создаем в ней файл post-boot и прописываем в него
    # монтирование /opt и запуск openvpn сервера после загрузки роутера
    echo "#!/bin/sh" > /usr/local/sbin/post-boot
    echo "mount /tmp/local/opt /opt" >> /usr/local/sbin/post-boot
    echo "/opt/etc/init.d/S24openvpn" >> /usr/local/sbin/post-boot


    # Делаем файл скрипта исполняемым
    chmod +x /usr/local/sbin/post-boot

    # Создаем в ней файл post-firewall и прописываем в него
    # нужные нам правила файрвола для работы сервера
    echo "#!/bin/sh" > /usr/local/sbin/post-firewall
    echo "iptables -D INPUT -j DROP" >> /usr/local/sbin/post-firewall
    echo "iptables -I INPUT -p tcp --dport 5190 -j ACCEPT" >> /usr/local/sbin/post-firewall
    echo "iptables -t nat -I PREROUTING -i eth1 -p tcp --dport 5190 -j DNAT --to-destination \$4:5190" >> /usr/local/sbin/post-firewall
    echo "iptables -A INPUT -j DROP" >> /usr/local/sbin/post-firewall
    echo "iptables -I INPUT -i tun0 -j ACCEPT" >> /usr/local/sbin/post-firewall
    echo "iptables -I FORWARD -i tun0 -j ACCEPT" >> /usr/local/sbin/post-firewall
    echo "iptables -I FORWARD -o tun0 -j ACCEPT" >> /usr/local/sbin/post-firewall
    echo "iptables -I OUTPUT -o tun0 -j ACCEPT" >> /usr/local/sbin/post-firewall


    # Делаем файл скрипта исполняемым
    chmod +x /usr/local/sbin/post-firewall

    # Создаем файл запуска openvpn сервера
    echo "#!/bin/sh" > /opt/etc/init.d/S24openvpn
    echo 'if [ -n "`pidof openvpn`" ]; then' >> /opt/etc/init.d/S24openvpn
    echo "/bin/killall openvpn 2>/dev/null" >> /opt/etc/init.d/S24openvpn
    echo "fi" >> /opt/etc/init.d/S24openvpn
    echo "/sbin/insmod tun" >> /opt/etc/init.d/S24openvpn
    echo "echo 1 > /proc/sys/net/ipv4/ip_forward" >> /opt/etc/init.d/S24openvpn
    echo "/opt/sbin/openvpn --cd /opt/etc/openvpn --daemon --log-append /var/log/openvpn.log --config server.conf" >> /opt/etc/init.d/S24openvpn


    # Делаем файл скрипта исполняемым
    chmod +x /opt/etc/init.d/S24openvpn

    # Говорим роутеру что мы хотим сохранять во флэш наши скрипты
    echo "/usr/local/sbin/post-firewall" > /usr/local/.files
    echo "/usr/local/sbin/post-boot" > /usr/local/.files


    # перемещаем ключ в нужное место
    mv /tmp/local/static.key /opt/etc/openvpn

    # Сохраняем все во флэш и перегружаем роутер
    flashfs save
    flashfs commit
    flashfs enable
    reboot


    После ребута роутера пробуем законектится с винды ... Если удачно то весь интернет трафик теперь пойдет через этот тунель.

    Если нет желания вводить команды руками можно взять готовый скрипт (см. вложение) переместить его на роутер в /tm/local также как файл ключа сделать исполняемым
    chmod +x /tmp/local/inst_openvpn

    и запустить его
    /tmp/local/inst_openvpn

    Удачи всем ...
    Attached Files Attached Files

  2. #2
    Как доходит установка до ipkg install openssl
    то пишется следующее:

    Installing openssl (0.9.7m-1) to root...
    Downloading http://ipkg.nslu2-linux.org/feeds/op...m-1_mipsel.ipk
    ipkgipkg: : gzip aborted

    gzip aborted

    Connection closed by foreign host.

    После этого... интернета нет

  3. #3
    Quote Originally Posted by manyuk View Post
    Как доходит установка до ipkg install openssl
    то пишется следующее:

    Installing openssl (0.9.7m-1) to root...
    Downloading http://ipkg.nslu2-linux.org/feeds/op...m-1_mipsel.ipk
    ipkgipkg: : gzip aborted

    gzip aborted

    Connection closed by foreign host.

    После этого... интернета нет
    Странно этот скрипт обкатал уже на 3-х WL500gP ... а что до этого с коробочкой делал через телнет??

  4. #4
    ничего не делал. подумал что может из-за маленького встроеного флеша. подключил внешний винт. и проблема все авно осталась помогите плиззз. с затврашнего дня переходит провайдер на опенвпн
    Last edited by manyuk; 07-04-2007 at 23:01.

  5. #5
    Quote Originally Posted by manyuk View Post
    ничего не делал. подумал что может из-за маленького встроеного флеша. подключил внешний винт. и проблема все авно осталась помогите плиззз. с затврашнего дня переходит провайдер на опенвпн
    Да нет размер флэша здесь не причем попробуй очистить все и заново запустить мой скрипт целиком как есть ... если все пройдет как надо потом перенастроим на твою задачу ... Очищаем так:
    заходим телнетом на роутер и выполняем эти команды
    umount /opt
    rm -r /tmp/local/opt
    rm -r /usr/local/sbin
    rm /usr/local/.files
    flashfs save
    flashfs commit
    flashfs enable
    reboot


    После перезагрузки кладешь мой скрипт в /tmp/local и запускаешь его ... если все встанет тогда уже будем править конфиги ...
    Кстате а какая прошивка стоит ??? на текущий момент нужно ставить 1.9.2.7-7g http://wl500g.info/showpost.php?p=51576&postcount=7
    Last edited by Mirage-net; 08-04-2007 at 08:09.

  6. #6
    Выявил проблему. Оказалось надо было установить gzip. После этого все спокойно установилось. Но у меня другая проблема - почему то пакеты, которые я устанавливаю после перезагрузки не сохраняются. Например ipkg после перезагрузки надо снова ставить

  7. #7
    Quote Originally Posted by manyuk View Post
    Выявил проблему. Оказалось надо было установить gzip. После этого все спокойно установилось. Но у меня другая проблема - почему то пакеты, которые я устанавливаю после перезагрузки не сохраняются. Например ipkg после перезагрузки надо снова ставить
    если ставить во встроенный флэш то после установки нужно делать flashfs save
    flashfs commit
    flashfs enable
    reboot

    по поводу отсутствия gzip это вопрос уже к Олегу ... вообще он входит в изначальную его прошивку ... скорее всего был сбой при скачки пакета и при попытке его разархивирования и вылетала ошибка т.к. файл был не полный...

  8. #8
    а если не в встроенный? я подключил внешний хард

  9. #9
    Quote Originally Posted by manyuk View Post
    а если не в встроенный? я подключил внешний хард
    на внешнем харде и так все остается ... единственное что нужно сделать это вставить в post-mount монтирование папки в /opt как сделать смотри в http://www.wl500g.info/showthread.php?t=2391 и http://www.wl500g.info/showthread.php?t=3171

  10. #10
    Скажите, а как вернуть загрузку с встроенного флеша. я деал nvram set boot_dev="/dev/scsi/host0/bus0/target0/lun0/part1. Как теперь правильно вернуть?

  11. #11
    Join Date
    Dec 2003
    Location
    Russian Federation
    Posts
    8,356
    nvram unset boot_dev
    nvram commit

    или удалить директорию /mnt

  12. #12
    Уважаемые, установил все! Все прошло удачно! Спасибо большое! Теперь, подскажите пожалуйста как производить натсройки.
    Очень прошу, отозваться как можно скорее.

  13. #13
    Пока ждал, решил поэкспериментировать. Записал все, что было в client.ovpn в server.conf.
    в логах опенвпн начало активно писаться что-то.
    Логи прикрпеляю. Надеюсь на вашу помощь
    Attached Files Attached Files

  14. #14
    Quote Originally Posted by manyuk View Post
    Пока ждал, решил поэкспериментировать. Записал все, что было в client.ovpn в server.conf.
    в логах опенвпн начало активно писаться что-то.
    Логи прикрпеляю. Надеюсь на вашу помощь
    Судя по логам ругается на МАС адрес ... склонироуй МАС с сетевухи компа на роутер ... и client.ovpn в студию ... там в отличии от винды нужно немного поправить ... и файлы ключевые нужно скопировать в /opt/etc/openvpn
    Last edited by Mirage-net; 10-04-2007 at 08:16.

  15. #15
    MAC адрес роутера использовался раньше и для обычного соединения. Так что не вижу смысла вставлять МАС сетевой компа.
    client.ovpn
    client
    float
    dev tap
    proto udp
    remote vpn.normaplus.com 1120
    nobind
    persist-key
    persist-tun
    ca ca.crt
    key F703618B7560D38C6C2BD7663691D8E28629D6A3.key
    cert F703618B7560D38C6C2BD7663691D8E28629D6A3.crt
    ns-cert-type server
    verb 3

    все ключи кинул туда

Page 1 of 17 12311 ... LastLast

Similar Threads

  1. FireFly медиа-сервер для iTunes
    By name_zh in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 72
    Last Post: 02-05-2017, 21:59
  2. Не получается открыть 80 порт
    By kiryap in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 220
    Last Post: 11-06-2014, 20:50
  3. Replies: 7
    Last Post: 14-03-2010, 13:11

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •