InfoCity
InfoCity - виртуальный город компьютерной документации
Реклама на сайте







Размещение сквозной ссылки

 

Разделение доступа в  интернет из  локальной сети


Linux RSP Web Site


Около года назад у нас появился интернет и вместе с ним проблема - как делить? Собственно проблема в том, что все машины многопользовательские, а, как следствие, ограничить доступ на основании IP адреса невозможно.

Теперь, год спустя, обнаружились 2 наиболее практичных способа. Мы используем первый, но у вас есть возможность выбирать ;)

Способ первый (IMHO более правильный) заключается в использовании socks5 сервера и клиента.
При этом получаем отличный firewall с возможностью проксить как TCP так и UDP плюс полный контроль над работой пользователей в интернет. Настраиваем следующим образом:

  1. Идем на www.socks.nec.com  и берем там socks5 сервер (на данный момент это socks5-v1.0r8) и socks5tools - скрипт для анализа лог-файлов сервера.
  2. Конфигурируем socks5 сервер. Запустите ./configure - значения по умолчанию вполне разумны, хотя я посоветовал бы сменить syslog facility. По умолчанию socks использует LOG_DAEMON, и как следствие файл /var/log/messages будет забит сообщениями socks. Во избежание этого запустите ./configure --with-syslog-facility=LOG_LOCAL0 и добавьте строчки
    "local0.*  /var/adm/socks5" и
    "*.=info;*.=notice;local0.none   /var/log/messages"
    в /etc/syslog.conf.
    Дальше стандартно - make; make install.
    Если все нормально, создаем файл конфигурации /etc/socks5.conf следующего содержания:
     
    [root@val /etc]# cat socks5.conf
    # A Socks5 Config file for a dual homed server
    #
    # Описание роутинга
    # route hostmask portmask interface
    route 195.9.ххх. - eth0
    #Описание аутентификации - в данном случае требуем со всех логин/пароль
    #auth source-host source-port auth-metod
    auth - - u
    #permit и deny. В данном случае человек с правильным логином/паролем может идти куда #угодно ;) подробней  - man socks5.conf
    #permit  auth cmd src-host dest-host src-port dest-port [user-list]
    permit u - - - - - -
    #Не делать reverse lookup в DNS - процесс заметно ускоряется
    set SOCKS5_NOREVERSEMAP
    #Записывать номера портов вместо имен сервисов. Тоже для ускорения
    set SOCKS5_NOSERVICENAME
    #Не рассылать ident запросы клиентам
    set SOCKS5_NOIDENT
    # Максимальное число детей socks5 - пусть будет больше, зато всем хватит
    set SOCKS5_MAXCHILD 128
    Все, теперь создаем /etc/socks5.passwd  формат прост - в каждой строчке имя и пароль, разделенные пробелом.
    [root@ksaa /etc]# cat socks5.passwd
    user password
    lamer lamepassword
    С сервером все, правим стартовые скрипты для автозапуска после ребута.
  3. Теперь клиент. Выбор не особо богат.
    1. SocksCap от Nec -  www.socks.nec.com  Неплохой клиент под windows3.1, 95, NT. Под NT немного глючит, что раздражает.
    2. AutoSocks от Aventail - www.aventail.com  мне понравился больше всех. Отлично работает под всеми видами форточек. Недостаток один - дают только триальную версию на 1 месяц. Но ведь это-же не проблема, не так-ли? ;))
    3. Hummingbird's SOCKS Client от Hummingbird  Бесплатный, хорошо работающий, но чертовски неудобный. ;)

Способ второй:

Squid - кэширующий прокси сервер. Также позволяет авторизоваться по логину/паролю, но проксит только HTTP,FTP, и Gopher. Также начиная с версии 2.0 включает поддежку ARP acl , т.е. возможность разрешить доступ только станциям с опреденными MAC адресами сетевых адаптеров. Возможность интересная, но не всех устраивающая. IMHO практичней и универсальней использовать username/password аусентификацию. Прикручивается следующим образом:
Запустите ./configure -DUSE_PROXY_AUTH=1, или просто раскоментируйте строчку USE_PROXY_AUTH в Makefile.
Скажите make ; make install . Затем подправьте все необходимое в squid.conf и добавьте туда строчку
proxy_auth /usr/local/squid/etc/passwd
passwd - файл с криптаваными паролями ( crypt() ), такого-же формата как и в Appache.


Реклама на InfoCity

Яндекс цитирования



Финансы: форекс для тебя








1999-2009 © InfoCity.kiev.ua