Список форумов nostalgy.net.ru nostalgy.net.ru
форум сайта "Ностальгия"
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

irssi через http-proxy с авторизацией

 
Начать новую тему   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов nostalgy.net.ru -> Утилиты и драйверы
Предыдущая тема :: Следующая тема  
Автор Сообщение
Nikodim
постоянный посетитель


Зарегистрирован: 14.01.2007
Сообщения: 3050
Откуда: г. Новосибирск

СообщениеДобавлено: Ср Апр 21, 2010 4:46 pm    Заголовок сообщения: irssi через http-proxy с авторизацией Ответить с цитатой

Имеется консольный IRC-клиент irssi.

Для своей локали UTF-8 я настроил в нём поддержку кодировки Windows-1251 (Кириллица Windows) для разных IRC-серверов:

Код:
/set recode_fallback cp1251
/set recode_out_default_charset cp1251
/set recode_transliterate off
/set recode_autodetect_utf8 on
/set term_charset utf-8
/quit


Теперь остаётся открытым вопрос: как выйти в Интернет в irssi через HTTP-proxy-сервер, если на последнем имеется авторизация по паре логин/пароль? (Что-то типа http://user:password@proxy.lan:3128)
Смотрел аналогичную проблему на форуме, но решения с авторизованным proxy-сервером так и не было найдено. Кто занимается Линуксом, помогите, плз.
_________________
DOS not dead!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Nikodim
постоянный посетитель


Зарегистрирован: 14.01.2007
Сообщения: 3050
Откуда: г. Новосибирск

СообщениеДобавлено: Пн Июл 12, 2010 1:54 pm    Заголовок сообщения: Ответить с цитатой

В общем, похоже никто здесь ничё не знает по этой проблеме.
Порыскал я по манулам, почитал, поисследовал и нашёл-таки сам решение... Правда, для HTTP-proxy без авторизации.

Источник - официальный сайт проекта "Irssi".

К примеру, пусть имеется HTTP-proxy-сервер "director.pol15.ru:3128".
Тогда: запускаем irssi:

Код:
irssi


Вводим в нём последовательно следующие команды:

Код:
/SET use_proxy ON
/SET proxy_address director.pol15.ru
/SET proxy_port 3128
/SET -clear proxy_string
/SET -clear proxy_password
/SET proxy_string_after conn %s %d
/EVAL SET proxy_string CONNECT %s:%d HTTP/1.0\n\n
/SERVER ADD -auto -network paravozek irc.ru54.com 6667
/QUIT


Запускаем irssi снова:

Код:
irssi --connect=irc.ru54.com --port=6667 --nick=mylinux


Коннект к сети "Паравозека" успешно производится через HTTP-proxy-сервер.
_________________
DOS not dead!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Astyanax
постоянный посетитель


Зарегистрирован: 17.06.2010
Сообщения: 34
Откуда: Одесса

СообщениеДобавлено: Вс Июл 18, 2010 12:38 am    Заголовок сообщения: Ответить с цитатой

Я предлагаю воспользоваться пакетом proxychains, которые позволяет использовать socks и http-прокси даже в тех программах, которые этого не поддерживают.
Она уже имеется в репозитории, поэтому в Debian/Ubuntu ее можно установить при помощи команды:

Код:

apt-get install -y proxychains


Настройка довольно проста. Вместо того прокси, что там прописан, мы впишем свой:

В /etc/proxychains.conf:

Код:

http 10.10.10.10 3120 spongebob PaRTyh8899u


Через пробел (или табуляцию) здесь указываются следующие параметры прокси:
протокол IP-адрес порт логин пароль

В настройках irssi нужно сбросить настройки прокси и запустить его командой:
Код:

proxychains irssi


Остальные программы запускаются аналогично - proxychains wget http://site.com/file.zip, proxychains lynx и т.д.

Примечание 1: На моем рабочем прокси почему-то proxychains не сработал. Настройки в links работают, а proxychains links выдает мне сообщение denied. Но это рабочий прокси с авторизацией, который используется у меня на работе для доступа к некоторым внутренним ресурсам и поэтому может иметь некоторые ограничения.

Примечание 2: Можно еще воспользоваться пакетами corkscrew и connect-proxy. Но в их man страницах есть пример только для программы ssh, как воспользоваться созданным ими соединением в других программах я пока еще не разобрался.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Yahoo Messenger MSN Messenger
Nikodim
постоянный посетитель


Зарегистрирован: 14.01.2007
Сообщения: 3050
Откуда: г. Новосибирск

СообщениеДобавлено: Пн Июл 19, 2010 3:44 pm    Заголовок сообщения: Ответить с цитатой

Astyanax писал(а):
Я предлагаю воспользоваться пакетом proxychains, которые позволяет использовать socks и http-прокси даже в тех программах, которые этого не поддерживают.


Проблема с resolving'ом DNS-имён. Почитал статью, даже по её рекомендации попробовал сделать скрипт "/bin/proxyresolv" (естественно, права 777). Всё равно DNS имена не определяются.
При попытке определить домен "www.ya.ru" (Яndex) скрипт возвращает ошибки:

Код:
user@ubuntu-s01:/etc$ /bin/proxyresolv www.ya.ru
ERROR: ld.so: object 'libproxychains.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'libproxychains.so' from LD_PRELOAD cannot be preloaded: ignored.
dig: couldn't get address for '': not found
pol15@ubuntu-s01:/etc$ sudo /bin/proxyresolv www.ya.ru
ERROR: ld.so: object 'libproxychains.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'libproxychains.so' from LD_PRELOAD cannot be preloaded: ignored.
dig: couldn't get address for '': not found


Хотя, стоит признать, по IP утилита "proxychains" успешно возвращает ответы.
Вообще в сети доменные имена резолвятся через DNS proxy - возможно, в этом проблема...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Nikodim
постоянный посетитель


Зарегистрирован: 14.01.2007
Сообщения: 3050
Откуда: г. Новосибирск

СообщениеДобавлено: Вт Июл 20, 2010 3:39 pm    Заголовок сообщения: Ответить с цитатой

Есть ещё 1 способ обойти в Линуксе HTTP-proxy-сервер с авторизацией для тех программ, которые с таким типом прокси работать попросту не умеют (как, например, тот же "irssi").
Итак, шаги поэтапно (предполагается, что пользователь работает в ОС Ubuntu Server):

1. Заходим на новый официальный сайт "Small HTTP Server" или на его старую версию.
2. Скачиваем оттуда версию дистрибутива "Small HTTP Server" для операционной системы Linux.
3. Каким-либо образом (по сети, через флэшку или как-то иначе) копируем этот дистрибутив в файловую систему ОС Linux в папку "/shs".
3.1. Папку "/shs" лучше создать из-под root'а, дав ей соответствующие права:
Код:
sudo mkdir /shs
sudo chmod 777 /shs

SHS - это условно аббериатура от Small HTTP Server.
4. Распаковываем архив дистрибутива "shttplnx.tgz":
Код:
cd /shs
tar zxvf /shs/shttplnx.tgz

Источник: тема "как распаковать файл .tgz ?"
5. Далее по команде:
Код:
ls -l /shs

смотрим, какие файлы какие права имеют.
Если у файла права "rwx" для текущего пользователя (root'а), то командой "chmod" назначаем этому файлу права 777. Если права "rw", то, соотвестенно, назначаем права 666. В общем, чтобы для пользователя, группы и "остальных" права были идентичны. (Это чтобы потом из-под обычной учётной записи юзера не мучиться с программой из-за каких-либо ограничений; тем более, что программа запускается на сервере, где доступ лиц ограничен, а админ, предполагается, - это адекватное лицо, и никакую вирусную и троянскую хрень с игрушками и прочим он там запускать не будет.)
6. Всё: работа из-под root'а на данном этапе завершена! По команде:
Код:
logout

выходим из него и затем логинимся из-под обычного (ограниченного) юзера. Учитывая, что права на файлы мы установили верно, команда "sudo" нам, по идее, больше не понадобится.
7. Далее приступаем к редактированию файла "/shs/httpd.cfg". Запускаем консольный, удобный текстовый редактор "nano":
Код:
nano /shs/httpd.cfg

8. Чтобы долго не размусоливать каждую строчкую конфига, напишу, что файл конфигурации должен иметь следующий контент:


Код:


# Общие параметры
logday
from_same_host=0
ip_range="1.0.0.1-254.254.254.254"
ip_deny=""
ip6_range="::1-FFFF:FFFF:FFFF:FFFF::"
ip6_deny=""
cryptpwd
adm_range="127.0.0.1"
adm_deny=""
adm6_range="::1"
adm6_deny=""

# Параметры прокси сервера:
proxy_max=16
proxy=3128
proxy_time=31
# параметр 'proxyusers' используется лишь для авторизованных пользователей
# см. вкладку 'Other' ниже
# proxyusers
proxy_range="127.0.0.1,192.168.100.1-192.168.100.254"
proxy_deny=""
proxy_speed=0
proxy_spdusr=0
proxy_tryes=1000
proxy_same=0
# параметр 'upproxy' задаёт proxy верхнего уровня, если такой используется
upproxy="pol15.ru"
# параметр 'up_user' задаёт логин:пароль для proxy верхнего уровня,
# если он с авторизацией
upproxy_port=3128
up_user="artem:stat103"
ever_upproxy
proxy_timeout=120

# HTTP server setting:
# max=32
# port=80
# dir="/var/www"
# def="index.*"

# Other
mime=.jad;text/vnd.sun.j2me.app-descriptor;.jar;application/java-archive.bin;application/octet-stream;.oda;application/oda;.pdf;application/pdf;.ai;application/postscript;.eps;application/postscript;.ps;application/postscript;.rtf;application/rtf;.mif;application/x-mif;.csh;application/x-csh;.dvi;application/x-dvi;.hdf;application/x-hdf;.latex;application/x-latex;.nc;application/x-netcdf;.cdf;application/x-netcdf;.sh;application/x-sh;.tcl;application/x-tcl;.tex;application/x-tex;.texinfo;application/x-texinfo;.texi;application/x-texinfo;.t;application/x-troff;.tr;application/x-troff;.roff;application/x-troff;.man;application/x-troff-man;.me;application/x-troff-me;.ms;application/x-troff-ms;.src;application/x-wais-source;.zip;application/zip;.bcpio;application/x-bcpio;.cpio;application/x-cpio;.gtar;application/x-gtar;.shar;application/x-shar;.sv4cpio;application/x-sv4cpio;.sv4crc;application/x-sv4crc;.tar;application/x-tar;.ustar;application/x-ustar;.au;audio/basic;.snd;audio/basic;.aif;audio/x-aiff;.aiff
user=strelzov;+79C196F5ZD90C7EDB;;H
#user=leila;ausheva;;H

Лог обращений при такой конфигурации будет вестись не в файл, а на экран в реальном времени (очень актуально для систем, у которых мало дискового пространства).
9. После того как файл конфигурации отредактирован, запускаем, собственно, сам proxy-сервер "Small HTTP Server", причём в фоновом (резидентном) режиме для последующей передачи управления командной строкой пользователю (программа, как процесс, будет просто висеть в памяти и работать). Для этого используем следующую команду:
Код:
/usr/bin/nohup /shs/httpd.exe >/dev/null &

Источник: тема "Как запустить программу в фоновом режиме?"
10. Проверяем то, что процесс успешно запустился:
Код:
ps -aef | grep httpd.exe

Утилита "grep" в связке с "ps" должна вернуть что-то типа этого:

Цитата:
user 3770 3499 0 14:58 pts/1 00:00:00 /shs/httpd.exe
user 3789 3499 0 15:08 pts/1 00:00:00 grep --color=auto httpd.exe


Собственно, 1-я строчка, которую я выделил жирным шрифтом, и подтверждает то, что старт осуществлён успешно: программа висит в памяти ОЗУ. 1-я колонка в информации - это имя учётной записи (в данном случае, "user"), от которой был запущен процесс; 2-я колонка - это ID процесса (так называемый, PID), который впоследствии может быть использован в команде "kill" для "убивания" программы (синтаксис: kill PID).

Таким образом, система каскадных proxy-серверов организована успешно, причём последний в связке (то есть наш) работает без авторизации, а более верхний, к которому он обращается, - с авторизацией.
Соответственно, любая локальная программа, не умеющая работать с HTTP-proxy с авторизацией, просто обращается к локальному proxy-серверу "Small HTTP Server" через IP-адрес сетевой петли: 127.0.0.1:3128.
Также он будет доступен и для "внешних" компьютеров локальной сети в диапазоне IP-адресов 192.168.100.1 - 192.168.100.254 (см. параметр "proxy_range" в файле конфигурации)... Естественно, уже не по localhost'у, а по своему IP-адресу в ЛВС.

P.S.: чтобы "убить" сервер, как процесс, достаточно воспользоваться следующей командой:

Код:
kill $(ps -A | grep 'httpd.exe' | awk '{print($1)}')
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Nikodim
постоянный посетитель


Зарегистрирован: 14.01.2007
Сообщения: 3050
Откуда: г. Новосибирск

СообщениеДобавлено: Чт Июл 22, 2010 10:10 am    Заголовок сообщения: Ответить с цитатой

to Astyanax:
В общем, когда я, к примеру, в сети организую такую схему - "3-ный HTTP-proxy без авторизации (локальный в Линуске, доступен по http://127.0.0.1:3128) -> 2-ный HTTP-proxy с авторизацией -> 1-ный HTTP-proxy без авторизации," - то web-обозреватели (что в Линуксе, что в других рабочих станциях) успешно с ней работают, и сайты открываются; однако IRC-клиенты с такой схемой в упор не хотят работать.
Когда я в сети организую такую схему - "3-ный HTTP-proxy без авторизации (локальный в Линуске, доступен по http://127.0.0.1:3128) -> 1-ный HTTP-proxy без авторизации," - то web-обозреватели (что в Линуксе, что в других рабочих станциях) успешно с ней работают, и сайты открываются; IRC-клиенты также с такой схемой функционируют.
Я предполагаю, что когда в цепи каскадных HTTP-proxy-серверов есть хотя бы 1, который работает с авторизацией, то при работе с протоколом IRC возникают какие-то проблемы. Когда же все прокси без авторизации, то можно хоть сколько длинной построить цепь из каскадных proxy-серверов.
Вот мои исследования в этом вопросе.


схема каскадных HTTP-proxy-серверов, в цепочке которых есть хотя бы 1 с авторизацией (в IRC с такой схемой не выйдешь - только на сайты по HTTP)



схема каскадных HTTP-proxy-серверов без авторизации (такая схема даёт доступ и в IRC, и на сайты)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Nikodim
постоянный посетитель


Зарегистрирован: 14.01.2007
Сообщения: 3050
Откуда: г. Новосибирск

СообщениеДобавлено: Сб Окт 23, 2010 9:22 pm    Заголовок сообщения: Ответить с цитатой

Хорошая статья про связку серверов DHCP + proxy (прозрачный) на Linux - http://www.tuxnotes.ru/articles.php?a_id=6
Системным администраторам на заметку.
_________________
DOS not dead!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Nikodim
постоянный посетитель


Зарегистрирован: 14.01.2007
Сообщения: 3050
Откуда: г. Новосибирск

СообщениеДобавлено: Чт Дек 22, 2011 5:08 pm    Заголовок сообщения: Ответить с цитатой

Astyanax писал(а):
В настройках irssi нужно сбросить настройки прокси и запустить его командой:
Код:

proxychains irssi


Ура! Наконец-то, удалось запустить "irssi" через "proxychains".

Всё делается достаточно легко.
Сначала надо проверить, что в переменных окружения "http_proxy" и "https_proxy" ничего не содержится. Проверяется это так:

Код:
printenv | grep 'http'


Если что-то есть, то "обнуляем" их:

Код:
export http_proxy=
export https_proxy=


Далее, как ранее отмечал Astyanax, производим настройки файла конфигурации /etc/proxychains.conf: в разделе "[ProxyList]" прописываем proxy-сервер, через который надо выходить. Smile
_________________
DOS not dead!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов nostalgy.net.ru -> Утилиты и драйверы Часовой пояс: GMT + 7
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB

Anti Bot Question MOD - phpBB MOD against Spam Bots
Заблокировано регистраций / сообщений: 640301 / 0