У цій статті буде розказано про ES Proxy – безкоштовне консольному проксі-сервер для Windows. У статті подано приклад установки і налаштування проксі-сервера. По кроках будуть розібрані основні моменти конфігурування ES Proxy.

На що здатний і де скачати ES Proxy?

Нагору



З найбільш значущих переваг програми:

  • Він безкоштовний. Цитата з сайту проекту:
    Дана програма може використовуватися будь-якою особою чи організацією для будь-яких цілей, що не суперечать закону, в тому числі комерційних, без якої-небудь оплати авторам. Ні зараз, ні коли-небудь в майбутньому ніхто не має права вимагати якої б то не було оплати за використання даної програми. Допускається лише отримання плати за надання консультацій, проведення робіт по установці, налаштуванні і супроводу даного сервера.
  • Це консольний проксі-сервер, якому для роботи не потрібна графічна оболонка. Завдяки цьому сервер працює дуже швидко, навіть на «слабкому» комп’ютері.
  • В ES Proxy реалізована система квотування, яка дозволяє організувати вихід в Internet кількох комп’ютерів одночасно через один зовнішній канал, при цьому його «ширина» розподіляється динамічно між активними користувачами. Це реалізовано шляхом присвоєння кожній групі користувачів індивідуального значення ваги, пропорційно якому буде відбуватися розподіл Internet-каналу.
  • Настроюваний шейпер швидкості.
  • Підтримка батьківського проксі (актуально для супутникового Internet’а).
  • Хороша реалізація кешування.
  • Виставлення обмежень для груп користувачів:
    • споживання денного вхідного/вихідного трафіку, тижневого та місячного;
    • вказати робочі дні;
    • вказати «чорний» список url-адрес;
  • Настроюється перенаправлення портів.
  • Всі дії користувачів вносяться в log-файл. При необхідності можна вимкнути.

Завантажити ES Proxy можна на ITShaman або на офіційному сайті.
Рекомендую скачати з сайту ITShaman, так як після установки цієї збірки потрібно мінімальна налаштування «під себе».

Установка ES Proxy.

Нагору


Нижче описана установка ES Proxy, скачаного з сайту ITShaman. Більш детальну інформацію про встановлення та налаштування програми можна знайти на офіційному сайті програми.

Установка ES Proxy по кроках:

  • Розпаковуємо скачані файли в папку C:/Program Files/ES Proxy
  • Встановлюємо програму в якості системної служби, для цього в Windows-консолі набираємо:
    # sc create “es” binpath= “C:/Program Files/ES Proxy/espsrv.exe” start= auto displayname= “es proxy”

    В останньому параметрі можна вказати будь-яке інше, вибране Вами значення, яке буде відповідати імені процесу в ОС. Більш детальніше про установці програм в якості системних служб можна прочитати в статті “Робота з системними службами з консолі Windows: створення, видалення, запуск, зупинка і зміна параметрів”.

  • Запускаємо системну службу:
    # net start es
  • Налаштування ES Proxy.

    Нагору


    ES Proxy складається з:

    • esps40.ini — основного конфігураційного файлу, в якому містяться основні відомості роботи проксі-сервера: батьківський проксі, HTTP-порт, параметри використання кеш і т. д.
    • users.ini — конфігураційний файл, в якому міститься вся інформація про групи користувачів: групи, логіни, IP-адреси та права користувачів, а так само призначається вага групи (квотування).
    • esps4_cache_rules.ini — конфігураційний файл, у якому містяться правила кешування різних об’єктів: *.gif, *.png, *.html і т. д.
    • esps4_routers_list.ini — конфігураційний файл, в якому міститься інформація про перенаправлення портів.

    Всі конфігураційні файли для зручності розбиті на секції. Всі пробіли, і переноси в файлах ігнорується і потрібні лише для зручності візуального системного адміністратора. Після кожної команди і між параметрами ставиться знак “:“.

    Нижче наведено вміст конфігураційних файлів з коментарями ключових моментів проксі-сервера.

    Спойлер: вміст esps40.ini (натиснути для розгортання)

    [Server]
    Master=

    # IP-адреса батьківського проксі-сервера. Якщо він відсутній, то поле залишається порожнім.

    Port=80

    # Порт для підключення користувачів по протоколу HTTP.

    Idle Thread Time=100

    # Час в мілісекундах холостого ходу робочих потоків.

    Threads=100

    # Ціле позитивне число кількості робочих потоків.

    Threads Type=1

    [FTP]
    Enable=1

    # (0 або 1) дозвіл на роботу фтп-проксі.

    Port=21

    # Порт для підключення користувачів по протоколу FTP.

    Scan for server name from the begin=0

    Log Enable=1

    # (0 або 1) ведення log-файлу.

    Log File Name=C:\Program Files\ES proxy\esps4_ftp.log

    # Шлях до log-файлу.

    Info Log Enable=0

    # (0 або 1) ведення log-файла з додатковою інформацією.

    ;Info Log File Name=C:\Program Files\ES proxy\esps4_ftp_info.log

    ;Шлях до log-файлу
    [Connect]
    Enable=1

    # (0 або 1) Глобальне дозвіл використання HTTPS-протоколу за методом Connect.

    Use Parent=1

    # (0 або 1) дозвіл роботи через батьківський проксі.

    Log Enable=1

    # (0 або 1) ведення log-файлу.

    Log File Name=C:\Program Files\ES proxy\esps4_https.log

    # Шлях до log-файлу.
    [Statistics]
    Show Zero Day Users=1

    Show Zero Week Users=1

    Show Zero Month Users=1

    [Users]
    Groups File=C:\Program Files\ES proxy\user.ini

    # Шлях до конфігураційного файлу, який містить налаштування груп користувачів.

    Count=3

    # Кількість користувачів, що підключаються до проксі-сервера.

    Wait Free Thread=100

    # Час чекання (у секундах) звільнення потоків для системи квотування.

    Threads Limit=32

    # Кількість вхідних потоків, які розподіляються між користувачами системою квотування.

    Input Rate Limit=1048576

    # Швидкість вхідного потоку в байтах (1Мб/сек = 1048576).

    Output Rate Limit=1048576

    # Швидкість вихідного потоку в байтах (1Мб/сек = 1048576).

    Save Users File Name=C:\Program Files\ES proxy\user.dat

    # Шлях до файлу для зберігання тимчасової інформації під час зупинки системної служби.

    Show Names=1

    Show MAC=0

    Report Disable URLs=1

    [Main Log]
    Enable=1

    # (0 або 1) ведення log-файлу

    File Name=C:\Program Files\ES proxy\esps4_m.log

    # Шлях до log-файлу запуску і зупинки сервера.
    [Access Log]
    Enable=1

    # (0 або 1) ведення log-файлу

    File Name=C:\Program Files\ES proxy\esps4_http.log

    # Шлях до log-файлу реєстрації доступу клієнтів по HTTP.
    [Error Log]
    Enable=0

    # (0 або 1) ведення log-файлу.

    ;File Name=C:\Program Files\ES proxy\esps4_errors.log

    # log-файл реєстрації помилок.
    [Cache]
    Enable=1

    # (1 або 0) дозвіл чи заборона роботи кеша.

    Path=C:\Program Files\ES proxy\Cache

    # Шлях до директорії містить кеш.

    Rules File=C:\Program Files\ES proxy\esps4_cache_rules.ini

    # Шлях до файлу, в якому містяться правила зберігання для різних типів об’єктів в кеші.

    Max Size=50

    # Максимально допустимий розмір кешу Мб.

    Test Time=1800

    # Періодичність перевірки (у секундах) сервером свого кешу.

    Clear Log Enable=0

    # (0 або 1) ведення log-файлу очищення кешу.

    ;Clear Log File Name=C:\Program Files\ES proxy\esps4_clear_cache.log

    # Шлях до log-файлу.
    [Wait Socket]
    Retry Connect=1

    # Кількість повторів при невдачі зв’язатися з віддаленим сокетом.

    Retry DNS=1

    # Кількість повторів при невдачі визначення IP-адреси по імені запитаного ресурсу.

    Write Local=1000

    # Допустимий таймаут на запис для локальних сокетів.

    Read Local=1000

    # Допустимий таймаут на читання до локальних сокетів.

    Read Remote=1000

    # Допустимий таймаут на читання для віддалених сокетів.

    Write Remote=1000

    # Допустимий таймаут на запис для віддалених сокетів.
    [Routers]
    Enable=1

    # (0 або 1) дозвіл використання перенаправлення портів TCP.

    List File Name=C:\Program Files\ES proxy\esps4_routers_list.ini

    # Шлях до файлу, де знаходяться налаштування перенапрвления портів TCP.

    Threads=32

    # Ціле позитивне число кількості робочих потоків роутінга портів.

    Log Enable=1

    # (0 або 1) ведення log-файлу.

    Log File Name=C:\Program Files\ES proxy\esps4_routers_list.log

    # Шлях до log-файлу.
    [UDP Routers]
    Enable=0

    # (0 або 1) дозвіл використання перенаправлення портів UDP.

    ;List File Name=C:\Program Files\ES proxy\esps4_udp_routers_list.ini

    # Шлях до файлу, де знаходяться налаштування перенапарвления портів UDP.

    ;Threads=32

    # Ціле позитивне число кількості робочих потоків роутінга портів.

    Log Enable=0

    # (0 або 1) ведення log-файлу.

    ;Log File Name=C:\Program Files\ES proxy\esps4_udp_routers_list.log

    # Шлях до log-файлу.
    [Exclude From Limits]
    Enable=0
    ;List File Name=

    Спойлер: вміст users.ini (натиснути для розгортання)

    GROUP : admin :
    # Ім’я першої групи (груп може бути кілька).

    USER : 192.168.1.1 : 255.255.255.255 :

    # В групі один користувач з IP-адресою 192.168.1.1

    Enable HTTPS Port : 443 :

    # Можна HTTPS з’єднання для групи на 443 порту.

    Weight : 3 :

    # Вага групи, учитывающийся при розподілі вхідного каналу.

    Show Statistics : 1 :

    # (0 або 1) забороняє або дозволяє перегляд статистики.
    GROUP : користувачі :
    # Ім’я другої групи.

    USER : 192.168.0.2 : 255.255.255.0 :

    # У групі кілька користувачів мають IP-адреси з діапазону 192.168.0.2-192.168.0.255.

    Enable HTTPS Port : 443 :

    # Можна HTTPS з’єднання для групи на 443 порту.

    Weight : 2 :

    # Вага групи, учитывающийся при розподілі вхідного каналу.

    Show Statistics : 0 :

    # (0 або 1) забороняє або дозволяє перегляд статистики.

    Day Input Limit : 500 : M :

    # Денний ліміт вхідного трафіку 500 Мб (другим параметром може бути: B-байти; K-кілобайти; M-мегабайти; G-гігабайти).

    ;Day Output Limit : :

    # Денний ліміт вихідного трафіку (другим параметром може бути: B-байти; K-кілобайти; M-мегабайти; G-гігабайти).

    ;Week Input Limit : :

    # Тижневий ліміт вхідного трафіку (другим параметром може бути: B-байти; K-кілобайти; M-мегабайти; G-гігабайти).

    ;Week Output Limit : :

    # Тижневий ліміт вихідного трафіку (другим параметром може бути: B-байти; K-кілобайти; M-мегабайти; G-гігабайти).

    ;Month Input Limit : :

    # Місячний ліміт вхідного трафіку (другим параметром може бути: B-байти; K-кілобайти; M-мегабайти; G-гігабайти).

    ;Month Output Limit : :

    # Місячний ліміт вихідного трафіку (другим параметром може бути: B-байти; K-кілобайти; M-мегабайти; G-гігабайти).

    ;Day Off: 0 : # Понеділок

    ;Day Off: 1 : # Вівторок

    ;Day Off: 2 : # Середа

    ;Day Off: 3 : # Четвер

    ;Day Off: 4 : # П’ятниця

    ;Day Off: 5 : # Субота

    ;Day Off: 6 : # Неділю

    # Забороняє роботу в зазначений день (може повторюватися кілька разів).

    ;Max Input Rate: :

    # Максимально вхідна швидкість в байтах – шейпер (автором ЗА не рекоменуется до використання без особливої потреби).

    ;Max Output Rate: :

    # Максимально вихідна швидкість в байтах – шейпер (автором ЗА не рекоменуется до використання без особливої потреби).

    Disable URL : *porno*.* :

    # Заборонені всі URL зустрічається з поєднанням *porno*.*

    Enable URL : *sporno*

    # Але дозволяється URL містить в імені *sporno* (у прикладі адреса porno.com не буде відображатися, а sporno.ru буде)

    Спойлер: вміст esps4_cache_rules.ini (натиснути для розгортання)

    URL : *images/* :
    Min save time : 20 : H :

    # Мінімальний час збереження в кеші об’єкта *.gif 3 години (другий параметр може бути: M-хвилини; H-годинник; D-дні; W-тижні).

    Max save time : 10 : D :

    # Максимальний час збереження в кеші об’єкта *.gif 7 днів (другий параметр може бути: M-хвилини; H-годинник; D-дні; W-тижні).
    URL : *.gif :
    Min save time : 3 : H :

    # Мінімальний час збереження в кеші об’єкта *.gif 3 години (другий параметр може бути: M-хвилини; H-годинник; D-дні; W-тижні).

    Max save time : 7 : D :

    # Максимальний час збереження в кеші об’єкта *.gif 7 днів (другий параметр може бути: M-хвилини; H-годинник; D-дні; W-тижні).
    URL : *.png :
    Min save time : 3 : H :

    # Мінімальний час збереження в кеші об’єкта *.gif 3 години (другий параметр може бути: M-хвилини; H-годинник; D-дні; W-тижні).

    Max save time : 7 : D :

    # Максимальний час збереження в кеші об’єкта *.gif 7 днів (другий параметр може бути: M-хвилини; H-годинник; D-дні; W-тижні).
    URL : *.jpg :
    Min save time : 3 : H :

    # Мінімальний час збереження в кеші об’єкта *.gif 3 години (другий параметр може бути: M-хвилини; H-годинник; D-дні; W-тижні).

    Max save time : 7 : D :

    # Максимальний час збереження в кеші об’єкта *.gif 7 днів (другий параметр може бути: M-хвилини; H-годинник; D-дні; W-тижні).

    Спойлер: вміст esps4_routers_list.ini (натиснути для розгортання)

    Router: pop.mail.ru :
    # Заголовок правила перенаправлення портів.

    remote server : pop.mail.ru :

    # Віддалений сервер POP

    remote port : 110 :

    # Віддалений порт підключення до вказаного сервера.

    local port : 110 :

    # Локальний порт, на який будуть приходити повідомлення від користувачів.
    Router: smtp.mail.ru :
    remote server : smtp.mail.ru :

    # Віддалений сервер SMTP

    remote port : 25 :

    # Віддалений порт підключення до вказаного сервера.

    local port : 25 :

    # Локальний порт, на який будуть приходити повідомлення від користувачів.

    Хотілося б загострити увагу на системі квотування, реалізованої в ES Proxy. Ця система призначена для розподілу зовнішнього каналу між групами користувачів в заданому співвідношенні. В конфігураційному файлі users.ini кожній групі можна задати певний вага (Weigh). Саме по собі значення ваги великої ролі не грає, грає відношення цього значення між різними групами. Для наочності роботи квотування наведу приклад з сайту проекту:

    Наприклад, загальна смуга сервера становить 100000 байт в секунду, а загальна кількість допустимих сесій – 100. Припустимо також, що працюють два клієнта, один з директорів групи, з вагою 3, а інший – з групи менеджерів, з вагою 1. У цьому випадку, директор отримає 75% всіх ресурсів (тобто 75000 байт в секунду і 75 сесій), а менеджер – 25% (тобто 25000 байт в секунду і 25 сесій). При більшій кількості активних “директорів і менеджерів кожен з них отримає менше байт в секунду та менше сесій, ніж у цьому прикладі, але будь-який директор при зазначеному розподіл ваг, завжди отримає рівно в три рази більше ресурсів, ніж будь-менеджер.

    Між користувачами однієї групи вхідний канал ділиться на рівні частини, система квотування розподіляє ресурси каналу при одночасній роботі користувачів з різних груп.

    LEAVE A REPLY

    Please enter your comment!
    Please enter your name here