Интернет-форум

Вернуться   Интернет в Санкт-Петербурге > Разное > Все о софте

>> Хостинг - 2 Gb-20 Gb, CPanel, SSH, Web Disk, Softaculous, FTP, MySql, SSL сертификат, BackUP
>> VDS от 200 рублей, активация от 1 до 5 минут, OS: Debian, CentOs, Ubuntu, 10-50 Gb защита от DDoS
>> Конструктор сайтов: 198 шаблонов в 22 категориях! SSL, e-commerce, веб-почта, статистика сайта, 50 мб бесплатно!
Все о софте Обсуждение программного обеспечения, проблемы и их решения - здесь.

 
Опции темы
Старый 16.04.2008, 23:16
  #1
Завсегдатай
 
Аватар для kokorom

Установка proxy сервера squid с авторизацией по паролю под UNIX

В топике Авангарда Прокси серверы "быстрых" абонентов - открываем!! - http://dslnet.ru/showthread.php?t=18494 пару человек просили написать как ставить proxy squid с авторизацией..

Итак руководство к действию под unix

1. Чтобы все подходило под практически любой *nix Качаем сами сырцы squid отсюда - http://www.squid-cache.org/Versions/. Последний раз я качал версию squid-2.6.STABLE9, так что последующие строчки работают с этой версией.

2. Распаковываем в какую-то директорию. Делаем ./configure --help, счотрим, что вам по душе. Я собирал с такими параметрами..
Код:
./configure --prefix=/usr/local/squid-auth --enable-default-err-language=Russian-koi8-r --enable-err-languages=Russian-koi8-r --disable-internal-dns -enable-basic-auth-helpers=NCSA
далее make, далее из под рута или sudo - make install

3. cd /usr/local/squid-auth - тут наш proxy
в каталоге ./etc - конфиги
./libexec - убедимся в наличие модуля авторизации ncsa_auth
./sbin - сам бинарник squid
./var - тут будут логи и кэш
в неупомянутые каталоги пока лазить не к чему

squid будет работать от пользователя nobody (в принципе этот пользователь есть наверно в каждом дистрибутиве по умолчанию) но все-таки проверьте что он есть, так на всякий случай. Проверить можно командой
Код:
mik@m1k:/usr/local/squid-auth$ cat /etc/passwd | grep nobody
nobody:x:99:99:nobody:/:
Если данного пользователя все-же нет, то можно либо его создать самому, либо задействовать какого-нибудь другого системного пользователя подходящего для запуска squid.

4. Итак, чтобы squid от пользователя nobody мог писать логи и кэш делаем от рута команду
Код:
chown -R nobody /usr/local/squid-auth/var
5. Вставляем примерный конфиг от пользователя root вместо ./etc/squid.conf
В конфиге буду подписывать важные моменты..
Код:
#порт где будет висеть proxy
http_port 3128

acl QUERY urlpath_regex cgi-bin \?
acl LOCALS url_regex my\.localcomputer\.com
no_cache deny QUERY
no_cache deny LOCALS

cache_mem 250 MB

cache_dir ufs /usr/local/squid-auth/var/cache 300 16 256

cache_access_log /usr/local/squid-auth/var/logs/access.log
cache_log /usr/local/squid-auth/var/logs/cache.log
cache_store_log /usr/local/squid-auth/var/logs/store.log
pid_filename /usr/local/squid-auth/var/logs/squid.pid

#параметры авторизации
auth_param basic program /usr/local/squid-auth/libexec/ncsa_auth 
#путь к файлу где прописаны пользователи и их пароли
/usr/local/squid-auth/etc/squid_users
#число процессов для пользователей.. Если одновременных пользователей больше 5 то squid для 6 пользователя уже будет недоступен..
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

#путь до файлов с ошибками
error_directory /usr/local/squid-auth/share/errors/Russian-koi8-r

#примеры различных разрешенных портов или сетей, нужные порты откройте или уберите..
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563 22 6667 1352 5190
acl Safe_ports port 80 8080 3128                # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443 563 22  6666 6667 # https, snews
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_nports port 280                # http-mgmtun
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT

#указание сети с которой к нам можно присоединяться без авторизации
acl net src 192.168.0.0/255.255.255.0
# указание для пользователей авторизации
acl MYUSERS proxy_auth REQUIRED

#пропуск для указанных выше портов. Порядок http_acces ВАЖЕН. Сверху вниз пропускаем или запрещаем..
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

#пропускаем без авторизации доверенную сеть пока закоментируем, пропуск только по паролю
#http_access allow net

#пропуск авторизовавшихся пользователей
http_access allow MYUSERS
#все что не попало под наши указания запрет
http_access deny all

#ну или пропуск =) Если что-то не работает, то лучше это правило двигайте вверх
##http_access allow all

#не помню уже что значит эти 3 строчки =) может и не нужны..
http_reply_access allow all
icp_access deny all
miss_access allow all

#от какого пользователя запущен squid
cache_effective_user nobody
cache_effective_group nobody

coredump_dir /usr/local/squid-auth/var/cache
6. Делаем базу кэша.
Запускаем из под рута ./sbin/squid -z
через некоторое время в ./var/cache должны появиться директории 00 01 & etc

7. Создаем пустой файлик в ./etc/squid_users
а вот тут самое интересное.. Чтобы сгенерировать шифрованный пароль для пользователя надо воспользоваться утилитой htpasswd, которая идет вместе с web сервером apache.. Как по другому сделать я не знаю. Ставить из-за этого apache или искать бинарник в инете решать вам.. Я просто напишу строку как генерить пользователя test с паролем test
Код:
htpasswd -n test
New password:
Re-type new password:
test:v7nO2.ZNM9du.
итак копируем строку "test:v7nO2.ZNM9du." в файл ./etc/squid_users без кавычек.. Следующего пользователя в файле squid_users вставляем на новую строку и т.д.

8. Запускаем squid как демон, командой ./sbin/squid -D сперва смотрим директорию логов, находим в файле лога cache.log примерно такое
Код:
2008/03/29 00:16:40| Accepting proxy HTTP connections at 0.0.0.0, port 3128, FD 20.
2008/03/29 00:16:40| Accepting ICP messages at 0.0.0.0, port 3130, FD 21.
2008/03/29 00:16:40| WCCP Disabled.
2008/03/29 00:16:40| Ready to serve requests.
2008/03/29 00:16:41| Done reading /usr/local/squid-auth/var/cache swaplog (540 entries)
2008/03/29 00:16:41| Finished rebuilding storage from disk.
2008/03/29 00:16:41|       539 Entries scanned
2008/03/29 00:16:41|         0 Invalid entries.
2008/03/29 00:16:41|         0 With invalid flags.
2008/03/29 00:16:41|       539 Objects loaded.
2008/03/29 00:16:41|         0 Objects expired.
2008/03/29 00:16:41|         0 Objects cancelled.
2008/03/29 00:16:41|         1 Duplicate URLs purged.
2008/03/29 00:16:41|         0 Swapfile clashes avoided.
2008/03/29 00:16:41|   Took 1.2 seconds ( 435.7 objects/sec).
2008/03/29 00:16:41| Beginning Validation Procedure
2008/03/29 00:16:41|   Completed Validation Procedure
2008/03/29 00:16:41|   Validated 538 Entries
2008/03/29 00:16:41|   store_swap_size = 7744k
2008/03/29 00:16:42| storeLateRelease: released 0 objects
9. Настраиваем браузер на наш прокси, пробуем соединиться..
Любое изменение в конфиге squid.conf надо перезапускать squid. Корректней всего командой
./sbin/squid -k reconfigure

выключить proxy
./sbin/squid -k shutdown

10. Прописываем squid стартовать при запуск вашей ОС..

Удачи! Ну и поправьте меня если что забыл..

Последний раз редактировалось kokorom; 16.04.2008 в 23:19..
kokorom вне форума   Ответить с цитированием
Эти 6 пользователей(ля) поблагодарили kokorom за это Полезное сообщение:
Alex (17.04.2008), Char (17.04.2008), EugPol (17.04.2008), POL (18.04.2008), Zabor (17.04.2008), Макс (17.04.2008)
Старый 17.04.2008, 17:37
  #2
Долгожитель
 
Аватар для Макс

А теперь руководство к действию под windows... Кто напишет?
Макс вне форума   Ответить с цитированием
Старый 17.04.2008, 19:03
  #3
Мастер
 
Аватар для Char

Скрыто содержимое: OFF
Мну вот щас пытается под фряхой сделать авторизацию по VPN виндового типа
Char вне форума   Ответить с цитированием
Старый 17.04.2008, 21:34
  #4
Долгожитель
 
Аватар для basf

Установка OpenVPN под фряхой


Скачиваем последний дистрибутив версии OpenVPN с сайта http://www.openvpn.net . Это может быть архив source в формате .tar.gz или src.rpm . Если дистрибутив установленной OS имеет уже готовый rpm, то лучше установить его. Например, для fedora core 4 выполняем:

yum install openvpn

Для Debian-based дистрибутивов:

apt-get install openvpn

Теперь нужно создать папку /etc/openvpn (если она еще не создана) и скопировать туда папку с сертификатами и конфигами. Примеры того и другого лежат с корне архива .tar.gz, если была установка из source, иначе они будут разбросаны по всей системы на усмотрение того, кто делал rpm. Вот некоторые варианты, где можно найти эти папки:

/etc/share/openvpn /usr/share/doc/openvpn /usr/share/doc/packages/openvpn

Итак, надо скопировать папки easy-rsa и sample-config-files. На самом деле, примеры конфигов можно не копировать, а скопировать оттуда только файл server.conf.

Идем в /etc/openvpn/easy-rsa и выполняем следующим команды:

. ./vars
./clean-all
./build-ca

Будут спрашивать данные для сертификата, лучше отвечать ближе к правде, хотя и не обязательно. Важно обязательно что-то писать в поле, не оставлять пустыми.

./build-key-server server

Аналогично, отвечать нужно на все вопросы. Common name должно быть server. На 2 вопроса отвечать y

./build-dh

Теперь делаем сертификат для клиента. Если у нас несколько клиентов, то повторяем этот шаг несколько раз, меняя номер клиента.

./build-key client1

Если Вы хотите защитить сертификат паролей то используйте

./build-key-pass client1

Важно с поле Common Name писать соответствующее имя, например client1

Настраиваем конфиг для сервера. Он должен находится в /etc/openvpn и называтся server.conf. Все что нам нужно изменить в примера конфига:

ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
push "redirect-gateway def1"
push "dhcp-option DNS 10.8.0.1"
push "dhcp-option WINS 10.8.0.1"
user nobody
group nobody
Сохраняем файл.

Выполняем

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forwardНа VPS на базе Virtuozzo вместо первой команды надо выполнить:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j SNAT --to-source IP_АДРЕС_ВАШЕГО_ВДС'аЗапускаем OpenVPN:

service openvpn start

Для Debian:

/etc/init.d/openvpn startТеперь ставим OpenVPN клиент для Windows. Его можно скачать здесь: http://openvpn.se. После установки заходим в папку установки программы, например: C:\Program and Files\OpenVPN\sample-config. Открываем текстовым редактором (блокнотом) файл client.ovpn и пишем в строке

remote my-server-1 1194
IP своего сервера вместо my-server-1. Больше ничего не трогаем, сохраняем и закрываем файл.

Последнее что надо сделать, это скачать с сервера 3 файла сертификатов в эту же папку, где только что редактировали файл. Итак, скачать нужно следующие файлы:

/etc/openvpn/easy-rsa/keys/ca.crt
/etc/openvpn/easy-rsa/keys/client1.crt
/etc/openvpn/easy-rsa/keys/client1.key

client1 соответственно нужно заменить на нужный номер клиента. После этого переименовываем файлы, убирая цифры номера клиент, т.е. из client1.crt делаем client.crt и т.д.

Все готово для подключения и проверки.

Нажимаем правой кнопкой на файл client.ovpn и выбираем Start OpenVPN on this config file. Убеждаемся, что соединение установлено правильно. Делаем пинг до сервера 10.8.0.1. Сейчас весь трафик ходит через VPN в зашифрованном виде.

добавлено через XXX минут



-----------------------------------------------------------------------------------------------

Установка socks5 за пару минут
Устанавливаем socks5 из портов:

cd /usr/ports/net/socks5
make
make install

Файл конфигурации у меня не создался, поэтому создаём файл /usr/local/etc/socks5.conf и вбиваем в него:

SET SOCKS5_BINDINTFC 1.2.3.4:8080
set SOCKS5_NOREVERSEMAP
set SOCKS5_NOSERVICENAME
set SOCKS5_NOIDENT
set SOCKS5_MAXCHILD 128
set SOCKS5_TIMEOUT 10

auth - - u
permit u - - - - - -

Вместо 1.2.3.4:8080 указываем наш IP (особенно полезно, если компьютер имеет несколько IP-адресов) и порт, который будет слушать socks5.

Создаём файл /usr/local/etc/socks5.passwd, в котором вписываем логины и пароли пользователей в формате:

имя пароль

Например:

admin adminpass

Запускам прокси:

/usr/local/bin/socks5 -f -s

Если прокси установился корректно, то будет вывод на экран с соответствующим сообщением.

А дальше уже пользуемся им в тех целях, для которых создавали прокси.

добавлено через 3 минуты
-------------------------------------------------------------------------------



Установка 3proxy

Некоторые люди хотят установить у себя на сервере proxy-сервер. Squid который также описан выше потребляет много ресурсов, да и сложнее в настройке. Поэтому рассмотрим установку простого и легкого сервера с поддержкой протоколов http и socks. Ни в коем случае не устанавливайте сервер без авторизации, т.к. этим незамедлительно воспользуются злоумышленники и создадут большой трафик и рассылку спама через сервер.

Итак, далее краткое описание установки и настройки.

Установка производится на системе FreeBSD из портов:

# cd /usr/ports/net/3proxy/
# make install clean

Создадайте файл конфигурации на основе файла-образца:

# cp /usr/local/etc/3proxy.cfg.sample /usr/local/etc/3proxy.cfg

Создайте директорию под лог-файлы

# mkdir /var/log/3proxyОтредактируйте его

# vi /usr/local/etc/3proxy.cfg

Пример файла конфигурации 3proxy.cfg, который должен у вас получиться после его редактирования:

# Пропишите правильные серверы имен посмотрев их на своем VDS в /etc/resolv.conf
#

nserver 82.146.40.4
nserver 82.146.40.6

# Оставьте размер кэша для запросов DNS по умолчанию
#

nscache 65536

# Равно как и таймауты
#

timeouts 1 5 30 60 180 1800 15 60

# Создайте пользователей proxyuser1 и proxyuser2, пароль простым текстом
#

users proxyuser1:CLassword1
users proxyuser2:CLassword2

# укажите режим запуска как deamon
#

daemon

# путь к логам и формат лога, к имени лога будет добавляться дата создания
#

log /var/log/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"

# сжимать логи при помощи gzip
#

archiver gz /usr/bin/gzip %F

# и хранить их 30 дней
#

rotate 30


# Конфигурация http(s) proxy
#
# включаем авторизацию по логинам и паролям
#

auth strong

# ограничим доступ по портам через http(s)-proxy
#

allow * * * 80-88,8080-8088 HTTP
allow * * * 443,8443 HTTPS

# запускаем http-proxy без поддержки ntlm-авторизации
#

proxy -n


# Конфигурация socks5-proxy
#
# включаем авторизацию по логинам и паролям
#

auth strong

# очищаем список access-листов которые остались от http-proxy
#

flush

# ставим ограничение на 32 одновременных подключения
#

maxconn 32

# запускаем socks
#

socks

Ограничьте права доступа к файлу только пользователю root (поскольку в файле хранятся пароли доступа, для безопасности)

# chmod 600 /usr/local/etc/3proxy.cfg

Добавьте 3proxy в автозапуск:

echo 'threeproxy_enable="YES"' >> /etc/rc.conf

И запустите его:

# /usr/local/etc/rc.d/3proxy start

Настройка закончена. На порту 3128 теперь у вас работает http-proxy, на порту 1080 socks-proxy

Комментарии к сообщению (репутация)
Char , положительно: Вот пасибо

Последний раз редактировалось basf; 17.04.2008 в 21:34.. Причина: Добавлено сообщение
basf вне форума   Ответить с цитированием
Эти 2 пользователей(ля) поблагодарили basf за это Полезное сообщение:
Char (18.04.2008), kokorom (17.04.2008)
Старый 18.04.2008, 10:13
  #5
Мастер
 
Аватар для Char

basf,
Ты это на ходу пишеш или от кудато береш?
Char вне форума   Ответить с цитированием
Старый 25.10.2010, 15:11
  #6
Незнакомец

#путь к файлу где прописаны пользователи и их пароли
/usr/local/squid-auth/etc/squid_users
Squid на отрез отказывается это понимать версия Squid 2.7,
help me please!!!!!
falcon83 вне форума   Ответить с цитированием
Старый 25.10.2010, 17:17
  #7
Завсегдатай
 
Аватар для andy-none

Цитата:
Сообщение от falcon83 Посмотреть сообщение
#путь к файлу где прописаны пользователи и их пароли
/usr/local/squid-auth/etc/squid_users
Squid на отрез отказывается это понимать версия Squid 2.7,
help me please!!!!!
ls -la /usr/local/squid-auth/etc/squid_users

добавлено через 1 минуту
Цитата:
Сообщение от Char Посмотреть сообщение
Мну вот щас пытается под фряхой сделать авторизацию по VPN виндового типа
pptp? Цели какие? Если 2 подразделения соединить, то не лучший вариант. Я бы ipsec/ike использовал.

Последний раз редактировалось andy-none; 25.10.2010 в 17:17.. Причина: Добавлено сообщение
andy-none вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQUID ошибка NIS/YP при компиляции boaboa Все о софте 4 26.03.2011 17:25
Web-proxy cheek Сетевые технологии 20 22.07.2010 09:13
Проблемы с авторизацией! darkleo "Ростелеком-Северо-Запад" 7 17.11.2008 19:29
Не сохраняются пароли на форумах (проблема с авторизацией) Paulus Все о софте 6 21.04.2007 23:15
Proxy у В+. benxx Обсуждение "Web Plus" 22 25.09.2005 12:49


Часовой пояс GMT +3, время: 13:15.


DSLnet.ru © 2004-2012. Все права защищены.
vBulletin® Version 3.8.2 Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Rambler's Top100 Рейтинг@Mail.ru