Чи можна використовувати програму командного рядка?
Чи можна використовувати програму командного рядка?
Відповіді:
Думаю, питання має крутитися на голові. Active Directory підтримує і Kerberos, і NTLM. Windows спочатку спробує Kerberos, і якщо всі вимоги не будуть виконані, вона повернеться до NTLM.
Наведу вам приклад, доступ до спільного доступу до файлів на ім'я типу \ server1 \ share буде викликати Kerberos і повинен досягти належного дозволу. Але доступ до того ж загального доступу до файлів за допомогою IP-адреси спочатку викликатиме Kerberos і не працює (оскільки немає SPN для IP-адреси), а потім перетворюється на NTLM.
Отже, визначте, як ваша програма намагається пройти автентифікацію проти AD, і слід сказати, який протокол використовується.
Мені було б цікаво дізнатися, що спонукало вас задати це питання.
Ви дійсно повинні перевіряти події входу в систему, будь то комп'ютер - це сервер чи робоча станція. Корисно розібратися, які користувачі отримують доступ до вашої системи та вирішити проблеми, пов’язані з безпекою.
Ви можете змінити політику аудиту за допомогою групової політики: Почати ... Запустити ... gpedit.msc ... Конфігурація комп'ютера, Налаштування Windows, Налаштування безпеки, Локальна політика, Політика аудиту, "Аудит подій входу в систему". Поставте прапорці "Успіх" та "Невдача". Спробуйте вийти та увійти, щоб побачити деякі типові 540 подій у Вашому Журналі подій безпеки Windows.
Netstat показує всі прослуховування TCP та UDP-з'єднань. використання параметра -na призначено для всіх з'єднань і не має роздільної здатності імен або портів. Варіант 'b' - показати програму, пов'язану з нею. Якщо DNS працює, він може відображати багато інших з'єднань, тому ви можете також вказати TCP.
Kerberos найбільш точно працює, якщо його розгортати контролер домену Active Directory.
netstat -nab
The requested operation requires elevation.
public string FindAllUsers()
{
string strReturn="";
try
{
DirectoryEntry directoryEntry = new DirectoryEntry("WinNT://" + Environment.UserDomainName);
string userNames = "";
string authenticationType = "";
foreach (DirectoryEntry child in directoryEntry.Children)
{
if (child.SchemaClassName == "User")
{
userNames += child.Name + Environment.NewLine; //Iterates and binds all user using a newline
authenticationType += child.Username + Environment.NewLine;
}
}
strReturn = userNames + "\n\n" + authenticationType;
//Console.WriteLine("************************Users************************");
//Console.WriteLine(userNames);
//Console.WriteLine("*****************Authentication Type*****************");
//Console.WriteLine(authenticationType);
}
catch (Exception)
{
Console.WriteLine("Network error occured.");
strReturn = "";
}
return strReturn;
}
Ви можете спробувати цей інструмент. http://blog.michelbarneveld.nl/media/p/33.aspx
Це інструмент для перевірки автентифікації на веб-сайтах. Він покаже, який тип автентифікації використовується: Kerberos, NTLM, basic, none. Але він також показує іншу інформацію, наприклад: SPN, що використовується, заголовки HTTP, розшифровані заголовки авторизації NTLM та Kerberos. А також він може показувати та видаляти квитки на Kerberos.
Залежить від клієнта / сервера, який бере участь. Наприклад, є веб-сторінка (вибачте, зараз не встигайте шукати її), яку ви можете розмістити на веб-сайті, який підкаже, чи використовувались kerberos або NTLM. Однак я не знаю, як сказати, яким методом аутентифікації користувався SQL-сервер. Хоча, як це було зроблено раніше, журнал безпеки може вам повідомити.
Чому ви намагаєтесь це дізнатися?