Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> настройка —> CVSUP и софт через Proxy

CVSUP и установка софта через Proxy.

Автор: Raven2000.


 При работе за прокси, люди испытывают неудобство при обновлении и установке портов.
Хотя, наверное, догадываются, что FreeBSD может элегантно обходить эти камни, но не знают как. Ну что же, поможем им еще полюбить фри за ее разносторонность. Обновление портов будем производить CVSUPом с использованием prtunnel. Это может быть из-за  отсутствия NAT, например, при некоторых конфигурациях спутникового интернета, религиозного вероисповедания начальства и т.п. Загружать исподники будем традиционно с помощью утилиты fetch только укажем, куда ей ходить

Список:

  • Обновление портов CVSUP через прокси
         Prtunnel
         Инсталлируем
         Настраиваем CVSUP для работы с prtunnel
         Создаем туннель синхронизируемся и закрываем его
  • Использования nc в качестве прокси для cvsup и csup.
  • Установка портов через прокси
  • Литература

  • Обновление портов CVSUP через прокси.
    Prtunnel это:
    prtunnel is a program that can tunnel TCP/IP connections in a variety of ways,
    including through HTTP and SOCKS5 proxy servers. Some if its possible uses include:
    
    1) Tunneling TCP connections from client programs to a remote server through an 
    HTTP or SOCKS5 proxy (useful if you're behind such a proxy and want to use a program
    that doesn't have native proxy support) 
    2) Tunneling TCP connections from SOCKS-capable client programs through an HTTP or 
    SOCKS5 proxy 
    3) Tunneling TCP connections from an IPv4 client program to an IPv6 server and 
    vice-versa 
    4) Forwarding TCP connections 
    5) Running as a simple SOCKS proxy server 
    
    prtunnel is open source software available under a BSD-style license. It has been 
    developed and used under Linux and BSD-based operating systems.
    

    Как видите, prtunnel можно применять для различных нужд. Не только для обновления портов, однако в данном случае, мы заставим его работать именно для обновления портов.

    Инсталлируем
    # cd /usr/ports/
    # make search name='prtunnel'
    Port:   prtunnel-0.2.7
    Path:   /usr/ports/net/prtunnel
    Info:   Tunnel for TCP connections using an HTTP or SOCKS5 proxy
    Maint:  vd@FreeBSD.org
    B-deps:
    R-deps:
    WWW:    http://joshbeam.com/software/prtunnel.php
    


    # cd //usr/ports/net/prtunnel && make install clean 
    ~~~~~~~~~~~~~~~~~~~~~~~~
    ===> SECURITY REPORT:
          This port has installed the following files, which may act as network
          servers and may therefore pose a remote security risk to the system.
    /usr/local/bin/prtunnel
    
          If there are vulnerabilities in these programs there may be a security
          risk to the system. FreeBSD makes no guarantee about the security of
          ports included in the Ports Collection. Please type 'make deinstall'
          to deinstall the port if this is a concern.
    
          For more information, and contact details about the security
          status of this software, see the following webpage:
    http://joshbeam.com/software/prtunnel.php
    ===>  Cleaning for prtunnel-0.2.7
    


    Настраиваем CVSUP для работы с prtunnel.
    Теперь необходимо поправить конфиг cvsup.conf, чтобы он смог работать через туннель
    В default host нужно указать 127.0.0.1, а не cvsupX.FreeBSD.org.
    *default host=127.0.0.1
    *default base=/usr
    *default prefix=/usr
    *default release=cvs
    
    *default tag=RELENG_6_4
    *default delete use-rel-suffix
    *default compress
    src-all
    *default tag=.
    ports-all
    doc-all
    


    Создаем туннель синхронизируемся и закрываем его.
    Создаем туннель с cvsup5.FreeBSD.org
    # prtunnel -t http -H IP_Proxy -P Port_Proxy -D 5999 cvsup5.FreeBSD.org 5999
    

    prtunnel daemon started
    Waiting for connection to port 5999...


    Флаги:
    -t <Типр прокси> По умолчанию стоит http (default), но можно использовать socks5, direct, direct6
    -H адрес прокси
    -P порт прокси
    -u имя пользователь
    -p пароль пользователя
    -D используемый порт

    Запускаем cvsup.
    # cvsup -g -L 2 -z /etc/cvsup.conf
    


    После синхронизации незабываем закрыть туннель.
    killall -9 prtunnel
    


  • Использования nc в качестве прокси для cvsup и csup.
    Есть еще один метод синхронизации портов с использованием netcat.
    В /etc/rc.conf добавляем:
    inetd_enable="YES"
    


    В настройку /etc/inetd.conf добавим следующее:
    cvsup stream tcp nowait root /usr/bin/nc -xIP_Proxy:Port_Proxy -Xconnect cvsup5.FreeBSD.org 5999


    Теперь необходимо поправить конфиг cvsup.conf и начать синхронизацию.
    В default host нужно указать 127.0.0.1, а не cvsupX.FreeBSD.org.
    *default host=127.0.0.1
    *default base=/usr
    *default prefix=/usr
    *default release=cvs
    
    *default tag=RELENG_6_4
    *default delete use-rel-suffix
    *default compress
    src-all
    *default tag=.
    ports-all
    doc-all
    


    Так же nc можно командой запустить:
    # nc -x192.168.0.8:3128 -Xconnect cvsup5.FreeBSD.org 5999
    OK 17 0 SNAP_16_1h CVSup server ready
    

    Проверяем и не прерывая сесии синхронизируемся.
    # sockstat |grep nc
    root nc 56423 3 tcp4 192.168.0.8:56595 192.168.0.8:3128


  • Установка портов через прокси.
    Как было упомянуто выше, будем использовать утилиту fetch.
    # мan 3 fetch
    

    нам говорит следующее:
    EXAMPLES
    To access a proxy server on proxy.example.com port 8080, set the
    HTTP_PROXY environment variable in a manner similar to this:

    HTTP_PROXY=http://proxy.example.com:8080

    If the proxy server requires authentication, there are two options avail-
    able for passing the authentication data. The first method is by using
    the proxy URL:

    HTTP_PROXY=http://<user>:<pwd>@proxy.example.com:8080

    The second method is by using the HTTP_PROXY_AUTH environment variable:

    HTTP_PROXY=http://proxy.example.com:8080
    HTTP_PROXY_AUTH=basic:*:<user>:<pwd>


    Исходя из рекомендаций в странице руководства пропишем в /etc/make.conf такие параметры.
    FETCH_ENV=FTP_PROXY=http://IP_Proxy:Port_Proxy
    FETCH_ENV=HTTP_PROXY=http://IP_Proxy:Port_Proxy
    


    При авторизации в прокси используем следующие значения в /etc/make.conf
    FETCH_ENV=FTP_PROXY=http://USER:PASS@IP_Proxy:Port_Proxy
    FETCH_ENV=HTTP_PROXY=http://USER:PASS@IP_Proxy:Port_Proxy
    


    Или следующий метод авторизации с применением HTTP_PROXY_AUTH
    HTTP_PROXY=http://IP_Proxy:Port_Proxy
    HTTP_PROXY_AUTH=basic:*:<USER>:<PASS>
    


    Что бы соединение и подключение происходил, в настройках прокси сервера разрешите метод http_connect на порт  5999

  • Литература:
    1) joshbeam.com - prtunnel
    2) Установка из портов через PROXY



    размещено: 2008-01-30,
    последнее обновление: 2008-12-04,
    автор: Raven2000


    Sash, 2008-01-30 в 19:54:00

    ой, пасибо огромное! :) ой, как вовремя )

    зы: не читал статью, но уже знаю, что будет нужно )

    JavaScript, 2008-01-31 в 1:21:56

    echo setenv HTTP_PROXY http://proxy.local:3128/ >> ~/.cshrc
    echo setenv FTP_PROXY http://proxy.local:3128/ >> ~/.cshrc

    portsnap отлично рулит через прокси, как и freebsd-update

    для cvsup прокидывал порт с помошью ssh (если есть возможность):
    ssh -f -L 5999:chsup2.ua.freebsd.org:5999 user@host sleep 60
    и в течении 60 секунд надо успеть запустить
    cvsup -g -L 2 -h localhost supfile

    но описаные автором способы намного удобней

    vadiko, 2008-01-31 в 10:09:11

    От себя могу добавить:
    если PROXY использует NTLM-протокол, то есть порт /usr/ports/net/ntlmaps - у меня так и не заработало:-(, а помогло добавление таких строчек в /etc/login.conf
    setenv HTTP_PROXY http://Domen_Name\\User:Pass@IP_Proxy:Port_Proxy/
    setenv FTP_PROXY http://Domen_Name\\User:Pass@IP_Proxy:Port_Proxy/
    !!! Обратите внимание на двойное "\\" - это не опечатка, а фича, без нее не работает.

    Wormer, 2008-01-31 в 23:22:37

    Отлично, все сразу в одной статье. Надо было мне раньше сподобиться, а то тока камент черканул к http://www.lissyara.su/?id=1012 на эту же тему))

    Raven2000, 2008-02-01 в 9:13:39

    :)
    2 Wormer
    Так взялся бы и написал! Пишем и не стесняемся, а то другие возьмут и напишут :)
    p.s. а голосовать? не забываем! :)

    akiril, 2008-02-03 в 2:16:55

    Может кто-нибдуь подробно опишет как пустить через ису с NTLM авторизацией, а то порт ntlmaps у меня не заработал. Особенно интересует как вводить русские имена пользователя и пароль.

    SynerGiX, 2008-02-05 в 8:57:09

    Интересует вопрос - будет ли это работать, в частности с prtunnel, если прокся работает только через 80 и 443 порт, а метод CONNECT запрещен?

    Raven2000, 2008-02-05 в 14:20:50

    to SynerGiX
    >> работает только через 80 и 443 порт
    Без разницы на каком порту прокся.
    Если запрещен CONNECT то навряд ли (но попробуй ;)).
    Через SOCKS можно и prtunnel и nc.

    vasap, 2008-03-24 в 5:25:46

    интересно, а пропустит ли пароль вида user@domen.com?
    строка будет следующей :

    setenv HTTP_PROXY http://Domen\\User_Login:user@domen.com@IP_Proxy:Port_Proxy/

    В линуксе так и не смог экран для @ в пароле поставить... =(

    Raven2000, 2008-03-25 в 9:47:56

    to vasap
    Таки попробуй =) Вот в таком виде как я и писал.
    HTTP_PROXY=http://<user>:<pwd>@proxy.example.com:8080
    The second method is by using the HTTP_PROXY_AUTH environment variable:
    HTTP_PROXY=http://proxy.example.com:8080
    HTTP_PROXY_AUTH=basic:*:<user>:<pwd>

    Mobilesfinks, 2008-11-06 в 17:53:18

    взял и написал скриптик для автоматизации процесса апдейта

    #!/bin/sh

    #Запускаем туннель
    prtunnel -t http -H IP_PROXY -P PORT_PROXY -D 5999 cvsup7.ru.FreeBSD.org 5999

    #Запускаем CVSUP и после завершения закрываем туннель
    cvsup -g -L 2 /usr/local/etc/ports-supfile

    killall -9 prtunnel

    #Проверяем убился ли туннель
    ps ax | grep prtunnel


    соответственно ports-supfile настроил согласно вышеуказанным рекомендациям
    Если слишком криво - не серчайте.

    vs, 2009-04-01 в 19:08:24

    Строка
    cvsup stream tcp nowait root /usr/bin/nc -xIP_Proxy:Port_Proxy -Xconnect cvsup5.FreeBSD.org 5999
    в inetd.conf не сработала, сработала такая
    cvsup stream tcp nowait root /usr/bin/nc nc -xIP_Proxy:Port_Proxy -Xconnect cvsup5.FreeBSD.org 5999
    (еще раз nc после /usr/bin/nc)

    FSA, 2009-05-08 в 12:18:41

    Вообще-то cvsup уже не рулит. Вместо него прекрасно справляется csup, который есть прямо в системе. Как у него на счёт прокси не знаю, нет необходимости разбираться.

    Raven2000, 2009-05-08 в 12:23:30

    to FSA
    Это давно уже всем известно про csup ;) ибо статья уже старовата.

    Nikolay, 2010-10-28 в 22:28:00

    Ни один из предложенных способов не помог обновиться что я только не делал и так и сяк. Не работет ни CSUP через прокси, ни CVSUP, не тунели ни какие даже nc не помог. Обновился и удивился :-).
    создаем файл для wget с ссылками на директорию http://ftp4.ru.freebsd.org/pub/FreeBSD/releases/i386/8.1-RELEASE/8.1-RELEASE/src/ закачиваем проверяем на checksum и запускаем sh ./install all(Ye или необходимые компоненты). Все. далее стандартная установка мира. Во время установки сырцов была одна проблема ошибки в файлах при скачивании, поэтому желательно все же проверить checksum md5 <file>

    deesel, 2012-02-01 в 11:47:46

    У меня за прокси ISA 2000 ни в какую не проходил вариант IP_Proxy:Port_Proxy
    Прошел только FQDN-server:Port_Proxy
    Короче, только с полным доменным именем хоста, а не IP



  •  

      Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
      Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

    © lissyara 2006-10-24 08:47 MSK

    Время генерации страницы 0.1625 секунд
    Из них PHP: 52%; SQL: 48%; Число SQL-запросов: 77 шт.
    Исходный размер: 36006; Сжатая: 9037