Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
[q] Фильтрация машины по SID, [q] Фильтрация машины по SID, возможно ли такое
 
сабж, подскадите плиз возможно ли такое? чтобы разрешить машине выход на определенный/е айпи, а все остальные вход\исход пакеты фильтровать, или например фильтровать по определенной маске,  с исключением одного двух айпи из этой маски? но именно по СИД..
спасибо заранее
 
Цитата
HeopZ пишет:
но именно по СИД..

wtf СИД?

телепаты в отпуске...

Что касается того, что я понял вот пример при условиии что eth0 это интерфейс во внешней сети, а eth1 во внутренней:
#!/bin/bash
export IPTABLES="/sbin/iptables";
export EXTIF="eth0";
export INTIF="eth1";

$IPTABLES -P INPUT DROP;
$IPTABLES -P OUTPUT DROP;
$IPTABLES -P FORWARD DROP;

#Для tcp:
$IPTABLES -A FORWARD -p tcp -s [IP компов которые надо выпустить] -d [IP куда их надо выпустить] -m state --state NEW,ESTABLISHED,RELATED -i $INTIF -j ACCEPT;
$IPTABLES -A FORWARD -p tcp -s 0/0 -d [IP компов которые надо выпустить] -m state --state ESTABLISHED,RELATED -i $EXTIF -j ACCEPT;

#Тоже самое для udp:
$IPTABLES -A FORWARD -p udp -s [IP компов которые надо выпустить] -d [IP куда их надо выпустить] -m state --state NEW,ESTABLISHED,RELATED -i $INTIF -j ACCEPT;
$IPTABLES -A FORWARD -p udp -s 0/0 -d [IP компов которые надо выпустить] -m state --state ESTABLISHED,RELATED -i $EXTIF -j ACCEPT;

#а теперь блочишь все сети по нужной тебе маске:
$IPTABLES -A FORWARD -p udp -s [IP компов которые НЕ надо выпустить] -d 0/0 -i $INTIF -j DROP;

Или если это локальная станция:

#!/bin/bash
export IPTABLES="/sbin/iptables";

$IPTABLES -P INPUT DROP;
$IPTABLES -P OUTPUT DROP;
$IPTABLES -P FORWARD DROP;

#Для tcp:
$IPTABLES -A OUTPUT -p tcp -s [ТвойIP] -d [IP куда надо выпустить] -m state --state NEW,ESTABLISHED,RELATED -o eth0 -j ACCEPT;
$IPTABLES -A INPUT -p tcp -s 0/0 -d [ТвойIP] -m state --state ESTABLISHED,RELATED -i eth0 -j ACCEPT;

#Тоже самое для udp:
$IPTABLES -A OUTPUT -p udp -s [ТвойIP] -d [IP куда надо выпустить] -m state --state NEW,ESTABLISHED,RELATED -o eth0 -j ACCEPT;
$IPTABLES -A INPUT -p udp -s 0/0 -d [ТвойIP] -m state --state ESTABLISHED,RELATED -i eth0 -j ACCEPT;

#а теперь блочишь все сети по нужной тебе маске:
$IPTABLES -A OUTPUT -p ALL -s [ТвойIP] -d [сеть/маска] -o eth0 -j DROP;
#Впрочем последнюю строчку можно не писать и так по умолчанию все заблочится...

Все понятно? %)
 
Если под SID ты имеешь ввиду идентификатор безопасности, используемый в ОС Windows, тогда тебе может помочь IPSec-AH на Windows 2003. При использовании метода аутентификации Kerberos или Certificates при установлении SA строится маркер доступа, который потом проверяется по правам (deny)access this cpmuter from network. Т.е. в этом праве можно указывать учетные записи компьтеров или группы, в которые компьютеры входят.

ЗЫ. Хотя судя по языку в формулировке вопроса - зря я это писал :-)
 
а вообще интересно зачем... Но можно и скрипты написать...
 
Цитата
qwestor пишет:
а вообще интересно зачем... Но можно и скрипты написать...
зачем-то как раз понятно. ip, mac адреса легко подменить, SID несколько сложнее.
 
Цитата
Michael пишет:
зачем-то как раз понятно. ip, mac адреса легко подменить, SID несколько сложнее.

но если проблема с несанкционированныс подключением, то проще впн на основе сертификатов или тот пример как тут уже привели. Просто статика помойму ... Не красиво ...  ;)
 
Цитата
qwestor пишет:
а вообще интересно зачем...

1000 и 1 вариант. Например - запретить подключаться к сетевой службе компьютеру, не являющемуся членом домена.
 
Так решение этой проблемы уже выше описали.
 
Цитата
qwestor пишет:
Так решение этой проблемы уже выше описали

Ага.  В курсе. Я писал :-)))
 
ууупс  :offtop:   (помню как тебя этот смайл порадовал)  :D
 
Цитата
offtopic пишет:
ЗЫ. Хотя судя по языку в формулировке вопроса - зря я это писал С улыбкой


Смешно, но если подумать зачем тогда я свой пост... станет еще смешнее  :D  :D  :D  :D  :D  :D  :D
 
можно и такой скриптинг приводить (с) user2sid

int main(int argc, char *argv[])
{
 if (argc == 1)
 {
   cout << HELP;
   return 0;
 }
 LPCTSTR lpSystemName = NULL;     // address of string for system name
 int start = 1;
 if (argv[1][0]=='\\' && argv[1][1]=='\\')
 {
   if (argc == 2)
   {
     cout << HELP << endl;
     return 0;
   }
   lpSystemName = argv[1] + 2;
   start = 2;
 }
 SID_IDENTIFIER_AUTHORITY sia = {0,0,0,0,0,atoi(argv[start])};
 int n = argc - start - 1;
 int s[8];
 for (int i = 0; i < n; ++i)
 s[i] = atoi(argv[i+start+1]);
 SID_NAME_USE snu;
 PSID pSid;
 UCHAR buffer1[1024];
 UCHAR buffer2[1024];
 UCHAR buffer3[1024];
 DWORD length = 900;
 if (!AllocateAndInitializeSid(&sia,
                               n,
                               s[0],
                               s[1],
                               s[2], s[3], s[4],
                               s[5], s[6], s[7],
                               &pSid))
 {
   cout << endl << "could not allocate SID" << endl;
   exit(1);
 }
 if(LookupAccountSid(lpSystemName,
                     pSid,
                     buffer1,
                     &length,
                     buffer2,
                     &length,
                     &snu))
 {
   cout << endl;
   CharToOem(buffer1, buffer3);
   cout << "Name is " << buffer3 << endl;
   CharToOem(buffer2, buffer3);
   cout << "Domain is " << buffer3 << endl;
   cout << "Type of SID is ";
   switch (snu)
   {
     case SidTypeUser:
       cout << "SidTypeUser" << endl;
       break;
     case SidTypeGroup:
       cout << "SidTypeGroup" << endl;
       break;
     case SidTypeDomain:
       cout << "SidTypeDomain" << endl;
       break;
     case SidTypeAlias:
       cout << "SidTypeAlias" << endl;
       break;
     case SidTypeWellKnownGroup:
       cout << "SidTypeWellKnownGroup" << endl;
       break;
     case SidTypeDeletedAccount:
       cout << "SidTypeDeletedAccount" << endl;
       break;
     case SidTypeInvalid:
       cout << "SidTypeInvalid" << endl;
       break;
     default:
       cout << "SidTypeUnknown" << endl;
   }
 }
 else
   cout << endl << "LookupSidName failed - no such account" << endl;
 FreeSid(pSid);
}


Но проблема user2sid <->sid2user это null session...  да и не всегда работает...

:ban:  что-то я сегодня чушь несу  :D
Страницы: 1
Читают тему