squid авторизация по ip+mac

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Time
сержант
Сообщения: 195
Зарегистрирован: 2008-09-04 4:31:16
Откуда: Абакан
Контактная информация:

squid авторизация по ip+mac

Непрочитанное сообщение Time » 2011-06-07 6:46:44

как сие можно организовать?
и что бы можно было считать трафик

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Alteron
сержант
Сообщения: 230
Зарегистрирован: 2008-07-21 9:35:11

Re: squid авторизация по ip+mac

Непрочитанное сообщение Alteron » 2011-06-08 18:46:52

Статический ARP и акли в сквиде по IP. ы?
Измеритель верёвочками.

KanycTa
проходил мимо
Сообщения: 7
Зарегистрирован: 2010-10-11 7:50:20

Re: squid авторизация по ip+mac

Непрочитанное сообщение KanycTa » 2011-06-09 7:58:54

релизовал это чудо через php скрипт, который лезет в mysql базу и смотрит есть у этого ип инет или нет
Только без мака

ЧАСТЬ конфига squid.conf

Код: Выделить всё

external_acl_type ACLIP children=25 ttl=0 %SRC /usr/bin/php /etc/squid/mysql/inet.php
acl     Inet_Users              external  ACLIP
acl     all                     src       0.0.0.0/0.0.0.0
acl     vpn                     src       192.168.17.0/24
acl     vpn                     src       192.168.16.0/24
acl     vpn                     src       192.168.254.2
acl     SSL_ports               port      443 563
acl     http_ports              port      80 443 8080 8420 8443 5222 5190
acl     CONNECT                 method    CONNECT
acl     manager                 proto     cache_object
acl     my_networks             src       192.168.0.0/16
acl     CONNECT                 method    CONNECT
acl     manager                 proto     cache_object

acl allow_all dstdomain \
"/etc/squid/urls/allow.txt"

acl corpsite dstdomain \
"/etc/squid/urls/corpsite.txt"

http_access deny !http_ports
http_access deny CONNECT !SSL_ports
http_access     allow   all    corpsite
http_access     allow   vpn    all
http_access allow my_networks Inet_Users
http_access deny all


inet.php

Код: Выделить всё

<?php
ini_set('display_errors', 0);

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: post-check=0,pre-check=0", false);
header("Cache-Control: max-age=0", false);
header("Pragma: no-cache");
header("Content-Type: text/html; charset=utf-8");

INCLUDE ('mysql.class.php');

$db = new MySQL ();
$db_host='dbserver';
$db_user='dbuser';
$db_pwd='dbpassword';
$db_name='dbname';
$db->set($db_host, $db_user, $db_pwd, $db_name);

$f=fopen('php://stdin' , 'r');
while($ip = fgets($f, 50))
{
  $ip = trim($ip);
  $SQL = "SELECT * from list where ip = '".$ip."' AND squid = 1 LIMIT 1";
  $result = $db->query($SQL);
  if($db->num_rows($result) > 0)
  {
    $row = $db->fetch_array($result);
    $ret = 'OK user='.$row['user'];
  }
  else
  {
    $ret = 'ERR';
  }
  echo $ret;
  echo "\r\n";
}
?>