Настройка системы для выхода в интернет через socks5 прокси

Discussion in 'Linux, Freebsd, *nix' started by likesoft, 23 May 2017.

  1. likesoft

    likesoft Member

    Joined:
    23 Sep 2016
    Messages:
    66
    Likes Received:
    6
    Reputations:
    0
    Стоит Ubuntu 16.04.2, имеется Socks5 прокси (запароленный)
    Нужно настроить систему на работу через этот прокси.
    Повторюсь, именно всю систему, так как мне нужно чтобы все приложения работали через этот прокси, а не отдельные.

    Прежде чем написать сюда перелопатил терабайт информации в гугле и все безрезультатно :(

    Какие действия предпринимались:
    1. Запись строки socks_proxy="socks://user: pass@proxy: port/" в файл /etc/environment - чтобы изменения вступили в силу нужно перезагрузить компьютер, но после перезагрузки изза этой "чудо строчки" не запускаются сетевые сервисы (на ноуте полностью отсутствуют какие либо признаки наличия сетевых адаптеров)

    2. Настройка через GUI - Настройки -> Сеть -> Прокси сервер - Режим: Настроить самостоятельно -> Узел Socks - после этих действий при попытке открыть какой либо сайт в браузерах выдает ошибку: Страница по адресу https://адрес сайта/ может быть временно недоступна или перемещена на новый адрес

    3. Читал информацию про dante-client, но как я понял что для того чтобы запустить какую нибудь программу, при этом чтобы она работала через прокси, нужно в терминале писать команду socksify <имя программы>. Но такой вариант запуска программ для меня как для новичка в Linux это маразм :D

    4. Читал информацию про proxychain, но насколько я понял, с помощью нее можно только консольные приложения запускать через прокси.


    Исходя из всего вышесказанного назревает вопрос, есть ли в Linux, в частности в Ubuntu "человеческий" способ настроить прокси в одном месте и забыть об этом?
    По крайней мере до тех пор пока не придется сменить адрес прокси.
     
  2. cybertramp

    cybertramp New Member

    Joined:
    11 Apr 2017
    Messages:
    7
    Likes Received:
    1
    Reputations:
    0
    https://github.com/tomflannaghan/proxy-switcher
     
  3. likesoft

    likesoft Member

    Joined:
    23 Sep 2016
    Messages:
    66
    Likes Received:
    6
    Reputations:
    0
    К сожалению этот вариант подходит только для GNOME SHELL оболочки, у меня Unity.
    Gnome Shell терпеть не могу (
     
  4. Tw!m4

    Tw!m4 Elder - Старейшина

    Joined:
    15 Jun 2007
    Messages:
    187
    Likes Received:
    19
    Reputations:
    0
  5. devton

    devton Elder - Старейшина

    Joined:
    26 Oct 2007
    Messages:
    3,364
    Likes Received:
    5,122
    Reputations:
    48
    и лучше чтоб прокс поддерживал remote dns resolve
     
  6. likesoft

    likesoft Member

    Joined:
    23 Sep 2016
    Messages:
    66
    Likes Received:
    6
    Reputations:
    0
  7. likesoft

    likesoft Member

    Joined:
    23 Sep 2016
    Messages:
    66
    Likes Received:
    6
    Reputations:
    0
    Проблема уже не актуальна! Настроил "глобальное" прокси через iptables + redsocks
     
  8. devton

    devton Elder - Старейшина

    Joined:
    26 Oct 2007
    Messages:
    3,364
    Likes Received:
    5,122
    Reputations:
    48
    а днс-запросы у тебя делаются локально (с твоего компа улетают по UDP на 53 порт какого-нибудь 8.8.8.8) или dns reslove при твоей схеме делает сокспрокс?

    ну и ты молодец, что извернулся и нашел способ )) но под линух проще будет на будущее выяснить штатный способ
     
  9. likesoft

    likesoft Member

    Joined:
    23 Sep 2016
    Messages:
    66
    Likes Received:
    6
    Reputations:
    0
    DNS у меня прописаны в роутере (сервера opendns)
     
  10. likesoft

    likesoft Member

    Joined:
    23 Sep 2016
    Messages:
    66
    Likes Received:
    6
    Reputations:
    0
    Такового на данный момент не существует. Это можно понять, если "внимательно" прочитать мой первый пост.
    Штатные средства не дали нужного результата ((

    Поэтому и пришлось заморачиваться с iptables
     
  11. devton

    devton Elder - Старейшина

    Joined:
    26 Oct 2007
    Messages:
    3,364
    Likes Received:
    5,122
    Reputations:
    48
    если внимательно почитаешь, то поймешь, что со штатными средствами не заработало, тк твой socks-прокc не умеет remote dns resolve
     
  12. likesoft

    likesoft Member

    Joined:
    23 Sep 2016
    Messages:
    66
    Likes Received:
    6
    Reputations:
    0
    Хорошо, пусть будет так:
    проблема в том что штатные средства не умеют работать с прокси которые не умеют remote dns resolve.
     
  13. totenkopf

    totenkopf Elder - Старейшина

    Joined:
    19 Jul 2010
    Messages:
    92
    Likes Received:
    64
    Reputations:
    19
    Неплохо бы описать как решили проблему Интересная задача.
    А пинг у вас проходит через сокс или напрямую?
     
  14. likesoft

    likesoft Member

    Joined:
    23 Sep 2016
    Messages:
    66
    Likes Received:
    6
    Reputations:
    0
    Пожалуйста, мне не жалко ))

    Конф redsocks:
    Code:
    base {
        log_debug = off;
        log_info = off;
        log = "file:/var/log/redsocks.log";
        daemon = on;
        redirector = iptables;
    }
    redsocks {
        local_ip = 0.0.0.0;
        local_port = 8123;
        ip = ip_addres;
        port = 8080;
        # Если есть авторизация
        //login = "";
        //password = "";
        type = socks5;
    }
    
    Скрипт для записи в iptables:
    Code:
    IPTABLES="iptables"
    REDSOCKS="redsocks"
    REDSOCKSCFG="/etc/redsocks.conf"
    if [ "$1" = "start" ]; then
            echo '(Re)starting redsocks...'
            pkill -U $USER redsocks 2>/dev/null
            sleep 1
            $REDSOCKS -c $REDSOCKSCFG
            iptables -t nat -N REDSOCKS
            iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
            iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
            iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
            iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
            iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
            iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
            iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
            iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN
            iptables -t nat -A REDSOCKS -p tcp --dport 80 -j REDIRECT --to-ports 8123
            iptables -t nat -A REDSOCKS -p tcp --dport 8080 -j REDIRECT --to-ports 8123
            iptables -t nat -A REDSOCKS -p tcp --dport 443 -j REDIRECT --to-ports 8123
            iptables -t nat -A OUTPUT -p tcp -j REDSOCKS
            iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDSOCKS
            iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDSOCKS
            iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDSOCKS
            echo IPtables reconfigured.
            exit 0;
    elif [ "$1" = "stop" ]; then
            $IPTABLES -t nat -F
            $IPTABLES -t nat -X
            killall redsocks
            exit 0;
            echo All be back
    else
            exit 1;
    fi
    
     
    MonoDemocracy and totenkopf like this.
  15. likesoft

    likesoft Member

    Joined:
    23 Sep 2016
    Messages:
    66
    Likes Received:
    6
    Reputations:
    0
    Пинг идет напрямую
     
  16. BlagoYar

    BlagoYar New Member

    Joined:
    24 Aug 2018
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Правила это я так понимаю предварительно нужно цепочку REDSOCKS создать. Верно?