faq обучение настройка
Текущее время: Вт авг 26, 2025 18:03

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
СообщениеДобавлено: Вс сен 30, 2007 20:17 
Не в сети

Зарегистрирован: Чт сен 27, 2007 09:09
Сообщений: 39
Можно ли организовать такую схему работы на 3526

1) на свитче на определённом диапазоне портов, например на портах 1-10, разрешить доступ определённому списку ип (список_ип <=> * "all" )
в теории, можно было бы забиндить mac-ip на порты если бы не пункт 2:
2) те кто в этот список не попали должны в любом случае видеть допустим админов (тоже список разрешённых ип [* <=> список_ип_админов]). к остальными drop;
3) между остальными портами (11-26) всё разрешено.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс сен 30, 2007 20:41 
Не в сети
Сотрудник D-LINK
Сотрудник D-LINK

Зарегистрирован: Пт май 13, 2005 15:49
Сообщений: 20616
Откуда: D-Link, Moscow
Можно при помощи ACL.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс сен 30, 2007 21:36 
Не в сети

Зарегистрирован: Чт сен 27, 2007 09:09
Сообщений: 39
Demin Ivan писал(а):
Можно при помощи ACL.

Спасибо. А нет ли у Вас или где-нибудь еще, полного описания ACL на русском? :roll:


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн окт 01, 2007 07:08 
Не в сети

Зарегистрирован: Чт сен 27, 2007 09:09
Сообщений: 39
Нашёл некоторую документацию и примеры, только вот не понял про нулевой ип.

a) http://www.dlink.ru/technology/tech1.pdf
b) Пример: http://www.dlink.ru/technical/faq_hub_switch_83.php
Цитата:
# Настройте разрешающее правило для IP-адреса 192.168.1.1/24
create access_profile ip source_ip_mask 255.255.255.255 profile_id 10
config access_profile profile_id 10 add access_id 1 ip source_ip 192.168.1.1 port 5 permit

# Настройте запрещающее правило для всех остальных IP-адресов
create access_profile ip source_ip_mask 0.0.0.0 profile_id 20
config access_profile profile_id 20 add access_id 2 ip source_ip 0.0.0.0 port 5 deny


Судя по примеру вроде как выглядит маской "любой ip", тогда какая разница между 0.0.0.0 и 255.255.255.255?

create access_profile ip source_ip_mask 255.255.255.255 profile_id 10
vs
create access_profile ip source_ip_mask 0.0.0.0 profile_id 20

---

1) Набросал правила описанные в моей схеме (пока без тестов на живом), правильно ли я все описал, технически?
Код:
delete access_profile all
# список админов
create access_profile ip destination_ip_mask 255.255.255.255 profile_id 10
config access_profile profile_id 10 add access_id 1 ip destination_ip 10.16.97.1 port 1-10 permit
config access_profile profile_id 10 add access_id 11 ip destination_ip 10.16.97.171 port 1-10 permit

# список пользователей
create access_profile ip source_ip_mask 255.255.255.255 profile_id 20
config access_profile profile_id 20 add access_id 1 ip source_ip 10.16.98.1 port 1 permit
config access_profile profile_id 20 add access_id 2 ip source_ip 10.16.98.2 port 1 permit

config access_profile profile_id 20 add access_id 4 ip source_ip 10.16.97.10 port 2 permit
config access_profile profile_id 20 add access_id 5 ip source_ip 10.16.97.11 port 2 permit
config access_profile profile_id 20 add access_id 6 ip source_ip 10.16.97.12 port 2 permit

# закрываем всем доступ
create access_profile ip source_ip_mask 0.0.0.0 profile_id 200
config access_profile profile_id 200 add access_id 1 ip destination_ip 0.0.0.0 port 1-10 deny

2) Я так понимаю, что нельзя в acl создать правило на проверку src_mac+src_ip ?
как-нить так:
Цитата:
config access_profile profile_id 20 add access_id 1 ethernet source_mac 00-AA-BB-CC-DD-EE ip source_ip 10.16.98.1 port 1 permit


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт окт 04, 2007 19:37 
Не в сети
Сотрудник D-LINK
Сотрудник D-LINK

Зарегистрирован: Пт май 13, 2005 15:49
Сообщений: 20616
Откуда: D-Link, Moscow
1) В масках разница есть и большая. Маска все нули означает что совпадения неважны и это значит неважно что Вы укажитt в правиле, всё равно это будет любой IP-адрес например. Если в маске все единицы то это требует полного совпадения, значит это один конкретный заданный в правиле IP-адрес.

2) Так действительно нельзя. Только при помощи двух профилей. Но вообще-то это как раз функционал IP-MAC-Port Binding.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 05, 2007 02:58 
Не в сети

Зарегистрирован: Чт сен 27, 2007 09:09
Сообщений: 39
Demin Ivan писал(а):
1) В масках разница есть и большая. Маска все нули означает что совпадения неважны и это значит неважно что Вы укажитt в правиле, всё равно это будет любой IP-адрес например. Если в маске все единицы то это требует полного совпадения, значит это один конкретный заданный в правиле IP-адрес.

2) Так действительно нельзя. Только при помощи двух профилей. Но вообще-то это как раз функционал IP-MAC-Port Binding.

1) спасибо теперь намного более ясно стало :)

2) ip-mac-port binding рушит всю гибкость. Как я написал выше мне при бинде на порт надо таки разрешить доступ к определенным машинам.

Цитата:
2) Так действительно нельзя. Только при помощи двух профилей.

Зато можно немножечко по-другому ;) И главное одним профилем.

Если я не ошибся, после некоторых мучений удалось сделать совершенно простой ACL на основе packet_content_mask, который мою проблему теоретически решит:
Цитата:
create access_profile packet_content_mask offset_0-15 0x0 0x0000ffff 0xffffffff 0x0 offset_16-31 0xffff0000 0x0 0x0 0x0000ffff offset_32-47 0xffff0000 0x0 0x0 0x0 profile_id 20
config access_profile profile_id 20 add access_id 1 packet_content_mask offset_0-15 0x0 0x0000001A 0x9275DA59 0x0 offset_16-31 0x08000000 0x0 0x0 0x00000A10 offset_32-47 0x62010000 0x0 0x0 0x0 port 1 permit

SRC MAC = 00:1A:92:75:DA:59,
Ethertype = 0800(IP)
SRC IP = 0A106201 = 10.16.98.1


Вдруг кому-то понадобится, могу выложить готовую функцию на php, которая будет генерировать access рули на основе src mac, src ip


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 05, 2007 06:08 
Не в сети

Зарегистрирован: Пн янв 08, 2007 15:38
Сообщений: 215
Откуда: Norilsk
хотел также предложить по packet_content_mask, но разбирать пакет нехотелось ( опередили =))
выложи , пригодится =)

_________________
Люблю писать с ошибками.....
D-Link User: DGS-3627G, DGS-3324SR, DES-3526, DES-1024D, DES-1016D, DWL-2100AP, DEM-310GT,DEM-330, DCS-950.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 05, 2007 07:34 
Не в сети

Зарегистрирован: Чт сен 27, 2007 09:09
Сообщений: 39
Пожалуйста:)

Код:
<?php
/*****************************************
 * Author: netdog at tut dot by
 * Date: Tue Oct 02 08:32:55 EEST 2007
 ****************************************/
 
echo create_access_rule(20,'aa:bb:cc:dd:ee:ff','10.16.10.1','1','permit');
echo create_access_rule(20,'aa:bb:cc:dd:ee:ff','10.16.10.2','1','permit');
/**
 * генератор access rule для профиля:
 * create access_profile packet_content_mask offset_0-15 0x0 0x0000ffff 0xffffffff 0x0 offset_16-31 0xffff0000 0x0 0x0 0x0000ffff  offset_32-47 0xffff0000 0x0 0x0 0x0 profile_id 20
 *
 * @param int $profile_id   prodile_id
 * @param string $src_mac   src mac
 * @param string $src_ip   src ip
 * @param int $port         Физический порт свитча
 * @param string $action   Действие: permit/deny
 * @return string
 */
function create_access_rule($profile_id, $src_mac, $src_ip, $port, $action) {
   static $access_id_array;
   
   if (!in_array($action,array('permit','deny'))) die('Error action ('.$action.') need: permit/deny');
   
   $bin_src_mac = str_replace(array('-',':'),null,strtoupper(trim($src_mac)));
   
   $e_ip = explode('.',trim($src_ip));
   
   if (count($e_ip) == 4) {
      $bin_src_ip = null;
      foreach ($e_ip as $ip_seg) {
         $bin_src_ip .= str_pad(dechex($ip_seg),2,STR_PAD_LEFT);
      }
   } else {
      die('Invalid IP address format');
   }
   
   if (strlen($bin_src_mac) != 12) die('Invalid MAC address format');
   
   if (empty($access_id_array)) $access_id_array = array();
   
   if (empty($access_id_array[$profile_id])) {
      $access_id_array[$profile_id] = 1;      
   } else {
      $access_id_array[$profile_id]++;
   }
   
   $access_id = $access_id_array[$profile_id];
   
   $str  =  null;
   $str .= 'config access_profile profile_id '.$profile_id.' ';
   $str .= 'add access_id '.$access_id.' ';
   $str .= 'packet_content_mask ';
   $str .= 'offset_0-15 0x0 0x0000'.substr($bin_src_mac,0,4).' 0x'.substr($bin_src_mac,4,12).' 0x0 ';
   $str .= 'offset_16-31 0x08000000 0x0 0x0 0x0000'.substr($bin_src_ip,0,4).' ';
   $str .= 'offset_32-47 0x'.substr($bin_src_ip,4,8).'0000 0x0 0x0 0x0 ';
   $str .= 'port '.$port.' '.$action;
   $str .= "\n";
   
   return $str;
}
?>


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Bing [Bot] и гости: 31


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

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB