Debian настройка прокси

By admin | July 19, 2018

Два необычных имени в 1979 году в Пенсильвании были зарегистрированы для новорожденных – Пепси и Кола.

тоже может быть здесь. Начните писать статьи для Losst. Это просто! Смотрите подробнее как начать писать статьи - Пишите для нас

UPD:
Полностью автоматизированная система по настройке прокси, описанной в этом руководстве доступна по ссылке:
blog.vpsville.ru/blog/howto/149.html


Стоит задача настроить http proxy с рандомной выдачей IPv6 адресов каждому пользователю.
Шаг 1. Подготавливаем сервер и обновляем ядро:
apt-get update

apt-get install gcc++ git make screen mc wget


После установки debian jessie8 установится с 3-м ядром, в котором нет требуемой опции bind().
Обновление ядра требуется для установки net.ipv6.ip_nonlocal_bind = 1 которую мы сделаем на следующем шаге.
Эта опция доступна начиная с ядра 4.3

Добавим бэкпорты в репозиторий
echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list

И выполним команду
apt-get update

Установим требуемое ядро.
apt-get -t jessie-backports --yes --force-yes install linux-image-amd64

Перезагрузим сервер
reboot

После перезагрузки проверяем, что ядро обновилось
uname -a

Проверка версии ядра для настройки прокси IPv6
Шаг 2. Скачиваем ndppd
ndppd это NDP Proxy Daemon. Более подробно об этом протоколе можно почитать в этой
cd ~

git clone https://anonscm.debian.org/cgit/collab-maint/ndppd.git

cd ~/ndppd

make all && make install



Создаем конфигурационный файл в любимом текстовом редакторе, например mcedt:
nano /root/ndppd/ndppd.conf

Конфигурация
route-ttl 30000

proxy eth0 {

   router no

   timeout 500   

   ttl 30000

   rule 2a08:14c0:100:200::/64 {

      static

   }

}


Запускаем:
ndppd -d -c /root/ndppd/ndppd.conf


Шаг 3. На следующем этапе скачиваем и устанавливаем 3proxy
cd ~

git clone https://github.com/z3APA3A/3proxy.git

cd 3proxy/

make -f Makefile.Linux

Шаг 4. Создаем файл ip.list с нужным количеством ipv6 адресов сгенерированных в случайном порядке.

Для этого скачиваем скрипт генерации файла ip.list

Для сети с маской /48
wget http://blog.vpsville.ru/uploads/random-ipv6_48-address-generator.sh


Для сети с маской /64
wget http://blog.vpsville.ru/uploads/random-ipv6_64-address-generator.sh


В скрипте устанавливаем:
Количество ipv6 адресов которые нужно сгенерировать:
MAXCOUNT=1000


Префикс нашей сети
network=2a08:14c0:100:200


Устанавливаем права на выполнение
chmod +x random-ipv6_64-address-generator.sh


Генерируем список ipv6 адресов в файл ip.list
./random-ipv6_64-address-generator.sh > ip.list

Шаг 5. Создаем конфигурационный файл 3proxy.sh с помощью скрипта генерации конфигурационного файла 3proxy.

Прокси с одним пользователем и разные ipv6 адреса каждый на своем порте. Начиная с порта 30000 для каждого адреса из ip.list будет установлен свой порт.

Создаём конфигурационный файл
mcedit 3proxy.sh 


Вставляем в открывшийся редактор приведенный ниже скрипт и меняем ipv4 адрес на адрес Вашего сервера.
Вставка из буфера осуществляется комбинацией shift+insert
#!/bin/bash



echo daemon

echo maxconn 100

echo nscache 65536

echo timeouts 1 5 30 60 180 1800 15 60

echo setgid 65535

echo setuid 65535

echo flush

echo auth strong

echo users admin:CL:pass

echo allow admin



port=30000

count=1

for i in `cat ip.list`; do

    echo "proxy -6 -n -a -p$port -i185.118.66.204 -e$i"

    ((port+=1))

    ((count+=1))

    if [ $count -eq 10001 ]; then

        exit

    fi

done


Сохраняем конфигурационный файл и запускаем 3proxy
chmod +x 3proxy.sh

./3proxy.sh > 3proxy.cfg

/root/3proxy/src/3proxy /root/3proxy/3proxy.cfg

Шаг 6.Изменения в конфигурацию ядра, файл /etc/sysctl.conf
Откроем файл /etc/sysctl.conf
mcedit /etc/sysctl.conf

Добавим строки в самый конец файла
net.ipv6.conf.eth0.proxy_ndp=1

net.ipv6.conf.all.proxy_ndp=1

net.ipv6.conf.default.forwarding=1

net.ipv6.conf.all.forwarding=1

net.ipv6.ip_nonlocal_bind = 1

Сохраняем, закрываем файл.

Применить изменения
sysctl -p

Шаг 7. Настройка сети

Добавить адрес на eth0
ip -6 addr add 2a08:14c0:100:200::2/64 dev eth0

Добавить маршрут по умолчанию на etho


ip -6 route add default via 2a08:14c0:100:200::1

И прикрепить нашу сеть к lo
ip -6 route add local 2a08:14c0:100:200::/64 dev lo


Все, прокси работает. Для проверки можно в браузере настроить работу с прокси
Адреса 185.118.66.204:30001-31000
Шаг 8. Добавление в автозагрузку
Файл /etc/rc.local приведите к виду


#!/bin/bash

ulimit -n 600000

ulimit -u 600000

/sbin/ip -6 addr add 2a08:14c0:100:200::2/64 dev eth0

/sbin/ip -6 route add default via 2a08:14c0:100:200::1

/sbin/ip -6 route add local 2a08:14c0:100:200::/64 dev lo

/root/ndppd/ndppd -d -c /root/ndppd/ndppd.conf

/root/3proxy/src/3proxy /root/3proxy/3proxy.cfg

exit 0


Дополнительно. Шаг 9. Тюнинг ядра
Если вы планируете запускать большое число потоков, обязательно ознакомьтесь с инструкцией по тонкой настройке ядра
blog.vpsville.ru/blog/pro/137.html
Потребуется сервер с большим объемом памяти для запуска большого числа потоков из-за встроенных ограничений в ядро и модификация параметров vm.max_map_count и kernel.pid_max

P.S.
Так же желательно ознакомиться с другими статьями в нашем блоге которые затрагивают тематику использования ipv6 и настройки прокси:
Настройка IPv6 в Debian, Ubuntu
Обновление ядра Debian Wheezy
Подключение IPv6 в CentOS
Тюнинг ядра для IPv6 прокси

Стоит задача настроить http proxy с рандомной выдачей IPv6 адресов каждому пользователю.После установки debian jessie8 установится с 3-м ядром, в котором нет требуемой опции bind().Обновление ядра требуется для установки net.ipv6.ip_nonlocal_bind = 1 которую мы сделаем на следующем шаге.Эта опция доступна начиная с ядра 4.3Добавим бэкпорты в репозиторийИ выполним командуУстановим требуемое ядро.Перезагрузим серверПосле перезагрузки проверяем, что ядро обновилосьndppd это NDP Proxy Daemon. Более подробно об этом протоколе можно почитать в этой статье или же на странице ndppd Создаем конфигурационный файл в любимом текстовом редакторе, например mcedt:КонфигурацияЗапускаем:Для этого скачиваем скрипт генерации файла ip.listДля сети с маской /48Для сети с маской /64В скрипте устанавливаем:Количество ipv6 адресов которые нужно сгенерировать:Префикс нашей сетиУстанавливаем права на выполнениеГенерируем список ipv6 адресов в файл ip.listПрокси с одним пользователем и разные ipv6 адреса каждый на своем порте. Начиная с порта 30000 для каждого адреса из ip.list будет установлен свой порт.Создаём конфигурационный файлВставляем в открывшийся редактор приведенный ниже скрипт и меняем ipv4 адрес на адрес Вашего сервера.Вставка из буфера осуществляется комбинацией shift+insertСохраняем конфигурационный файл и запускаем 3proxyОткроем файл /etc/sysctl.confДобавим строки в самый конец файлаСохраняем, закрываем файл.Применить измененияДобавить адрес на eth0Добавить маршрут по умолчанию на ethoИ прикрепить нашу сеть к loВсе, прокси работает. Для проверки можно в браузере настроить работу с проксиАдреса 185.118.66.204:30001-31000Файл /etc/rc.local приведите к видуЕсли вы планируете запускать большое число потоков, обязательно ознакомьтесь с инструкцией по тонкой настройке ядраПотребуется сервер с большим объемом памяти для запуска большого числа потоков из-за встроенных ограничений в ядро и модификация параметров vm.max_map_count и kernel.pid_maxP.S.Так же желательно ознакомиться с другими статьями в нашем блоге которые затрагивают тематику использования ipv6 и настройки прокси:

В корпоративной среде основанной на продуктах Microsoft, достаточно часто можно встретить использование прокси-сервера встроенного в ISA Server/Forefront TMG. Как правило, авторизация пользователей на таком прокси производится c помощью NTLM.

Если на сегодняшний день в Windows большинство программ имеют встроенную поддержку NTLM, то Linux этим похвастаться не может. Связи с чем, в данной статье речь пойдет о механизме использования прокси с NTLM аутентификацией в Linux.

Для этого мы будем использовать cntlm — небольшой, быстрый промежуточный HTTP-прокси, который возьмет функцию NTLM аутентификации на себя. Его задача пропускать через себя запросы от программ к прокси-серверу.

Установка cntlm

Чтобы установить cntlm в Debian/Ubuntu выполните следующую команду:

# apt-get install cntlm

Для установки cntlm в CentOS/RHEL необходимо подключить репозиторий Epel. После чего выполнить команду:

# yum -y install cntlm
Настройка cntlm

Откройте конфигурационный файл:

# nano /etc/cntlm.conf

Установите имя пользователя, домен, адрес и порт прокси-сервера, локальный интерфейс и порт на котором cntlm будет принимать входящие соединения:

Username        user
Domain          domain.net
Proxy           192.168.1.1:8080
Listen          127.0.0.1:3128

Запускаем cntlm:

# cntlm -c /etc/cntlm.conf

Выясним какой тип авторизации использует наш прокси-сервер:

# cntlm -c /etc/cntlm.conf -M http://ya.ru
Password:
Config profile  1/4... OK (HTTP code: 200)
----------------------------[ Profile  0 ]------
Auth            NTLMv2
PassNTLMv2      C9ACE7FB80841EB5B94D1C4E10D7DB5B
------------------------------------------------

Теперь когда мы знаем тип используемой аутентификации и хеш нашего пароля. Необходимо добавить в сntlm.conf следующие параметры:

Username        user
Domain          domain.net
Proxy           192.168.1.1:8080
Listen          127.0.0.1:3128
Auth NTLM
PassNTLMv2      C9ACE7FB80841EB5B94D1C4E10D7DB5B

Для использования cntlm в качестве локального прокси в Linux, нужно настроить переменные окружения http_proxy, https_proxy, ftp_proxy:

# export {http,https,ftp}_proxy="http://127.0.0.1:3128/"

Чтобы отключить прокси, выполните команду:

# unset {http,https,ftp}_proxy
Previous Яндекс как изменить прокси
Next Как поменять ip на сервере