Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | | |
Скрипт то есть, только вот запускать его надо с правами... 11.08.06 12:29 Число просмотров: 3621
Автор: Woonder <Бученков Андрей> Статус: Member
|
Скрипт то есть, только вот запускать его надо с правами админа, тобишь в свойствах файла на вебсервере указывать на закладке "File Security" анонимный доступ не для IUSR_xxx а для Administrator
Да и прикрутить его к Logon.asp удалось только через Response.redirect("./block.asp").
Server.Transfer("./block.asp") работает всё равно в контексте owalogon.asp а он работает от имени IUSR_xxx
Response.redirect нехорош тем, что на клиентской стороне может быть настроен IE не использовать перенаправления (точно не уверен, но в голове такой вариант крутится)
Счётчик вставил в Logon.asp
Было :*********************************************************************************************************** Select Case reasonCode
Case "1"
UserText = L_LogoffUser_Text
Case "2"
UserText = L_401User_Text
Case "3"
UserText = L_RelogonUser_Text
Case Else
Стало:******************************************************************************************************* Select Case reasonCode
Case "1"
UserText = L_LogoffUser_Text
Case "2"
session("ErrLogonCount")= session("ErrLogonCount")+1
UserText = L_401User_Text+Cstr(LogonAllowed-session("ErrLogonCount"))
If session("ErrLogonCount")>=LogonAllowed then
Response.redirect("./block.asp")
'Server.Transfer("./block.asp")
end if
Case "3"
UserText = L_RelogonUser_Text
Case Else
******************************************************** В Logon.asp добавить
CONST LogonAllowed=9 ' то есть блокировка на 9 неудачной попытке
И моно подправить :
CONST L_401User_Text= "Не удалось выполнить вход в Outlook Web Access. Убедитесь, что имя и пароль пользователя указаны правильно, и повторите попытку. У вас осталось попыток :"
Так же в файле Logon.asp и owalogon.asp надо заменить:
@ ENABLESESSIONSTATE=False на @ ENABLESESSIONSTATE=True
/ExchWeb/bin/Auth/Block.asp
********************************************************************************************* <% LANGUAGE=VBSCRIPT%>
<%
Dim SecObj
Dim MyIPSec
Dim IPList,IPTempList
Set SecObj = GetObject("IIS://LocalHost/W3SVC/100/root")
Set MyIPSec = SecObj.IPSecurity
IPTempList = MyIPSec.IPDeny
Redim IPList (Ubound(MyIPSec.IPDeny)+1)
'response.write("До добавления"+"<br>")
for i=0 to Ubound(IPTempList)
IPList(i)=IPTempList(i)
'response.write(Cstr(i)+" - "+IPList(i)+"<br>")
next
IPList(Ubound(IPList)) = Request.ServerVariables("REMOTE_ADDR")+", 255.255.255.255"
'response.write("После добавления"+"<br>")
for i=0 to Ubound(IPList)
'response.write(Cstr(i)+" - "+IPList(i)+"<br>")
next
MyIPSec.IPDeny = IPList
SecObj.IPSecurity = MyIPSec
SecObj.Setinfo
%>
*************************************************************************************** Заметьте Set SecObj = GetObject("IIS://LocalHost/W3SVC/100/root")
Выполняет подключение и следовательно будет устанавливать свойства для сайта с идентификатором 100.
Если надо для Default Web Site и виртуального каталога ExchWeb то пишите:
Set SecObj = GetObject("IIS://LocalHost/W3SVC/1/root/ExchWeb")
****************************************************************************** в Скрипте IPTempList добавлен не случайно потому что простая конструкция
IPList = MyIPSec.IPDeny
Redim IPList (Ubound(MyIPSec.IPDeny)+1)
IPList(Ubound(IPList)) = "123.0.0.1, 255.255.255.255"
почему-то не работает, хотя так написано в примере от M$
Беда ещё в том, что у OWA много различных страничек для входа на разных языках,
правильнее будет подправить logon.asp из каталога /RUS и /USA, а все остальные языки удалить и подправить файлик owalogon.asp тобишь убрать лишние LangMap.Add
В общем надо ещё много додумыватть, ГУРУ ASP помогайте.
|
<sysadmin>
|
Exchange owa: при доступе по https блокируются учетные записи пользователей! 08.08.06 20:12
Автор: IUnknown Статус: Незарегистрированный пользователь
|
Ситуация:
1. В групповой политике Account policy настроена на блокировку (lock out) учетной записи пользователя на 10-ой неудачной попытке.
2. При дефолтовой аутентификации "Basic authentication using clear text password", лоумышленник заходит на OWA через HTTPS (например, https://owa.domain.com/exchange), где выскакивает диалог с просьбой авторизоваться.
3. Злоумышленник 10 раз подряд (1) вводит учетное имя Administrator и фиктивный пароль (например, "123").
4. Доменная (!) учетная запись администратора (!!!) оказывается БЛОКИРОВАННОЙ.
Есть ли идеи по-поводу того, как этого НЕДОПУСТИТЬ?
|
|
Кроме счетчика локаута включить период локаута. Это решит... 13.09.06 15:23
Автор: lazy_anty Статус: Незарегистрированный пользователь
|
> Ситуация: > > 1. В групповой политике Account policy настроена на > блокировку (lock out) учетной записи пользователя на 10-ой > неудачной попытке. Кроме счетчика локаута включить период локаута. Это решит полпроблемы.
> 2. При дефолтовой аутентификации "Basic authentication > using clear text password", лоумышленник заходит на OWA > через HTTPS (например, https://owa.domain.com/exchange), > где выскакивает диалог с просьбой авторизоваться. Попутно периодически смотреть по логам, откуда лезет враг, и периодически банить адрес(а) или конкретно выяснять, кто это и разбираться нетехническими методами.
> 3. Злоумышленник 10 раз подряд (1) вводит учетное имя > Administrator и фиктивный пароль (например, "123"). > 4. Доменная (!) учетная запись администратора (!!!) > оказывается БЛОКИРОВАННОЙ. Вообще-то оставлять в форточках, открытых в Инет, активное учетное имя Administrator (даже переименованное, и даже с длинным паролем) весьма стрёмно. Administrator'а заблокируйте сами.
Администрируйте из-под нетривиального учетного имени с правами админа.
> Есть ли идеи по-поводу того, как этого НЕДОПУСТИТЬ? В принципе, отключить локаут. Поставить большую длину и принудительную периодическую смену пароля с небольшим периодом.
|
|
Попробуйте настроить время локаута. Это даст возможность... 12.08.06 23:43 Штраф: 10 [Woonder]
Автор: LiLO Статус: Незарегистрированный пользователь
|
Попробуйте настроить время локаута. Это даст возможность политике быть эффективной и в тоже время не мучась использовать учетную запись администратора.
|
|
А хорошо ли это вообще - использовать АД для веб авторизации? 09.08.06 10:54
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
|
| |
А как иначе? Научите? 10.08.06 13:54
Автор: IUnknown Статус: Незарегистрированный пользователь
|
|
| | |
Что-нибудь другое (например Апач) для https поставить. 10.08.06 17:40
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
|
|
Вариант: переименовать доменную (!) учётную запись... 08.08.06 21:19
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
|
Вариант: переименовать доменную (!) учётную запись Administrator. Кстати, по-моему, это входит в стандартные рекомендации Microsoft. :)
|
| |
А что делать с другими пятью тысячами (!) учетных записей?! 09.08.06 07:57
Автор: IUnknown Статус: Незарегистрированный пользователь
|
> Вариант: переименовать доменную (!) учётную запись > Administrator. Кстати, по-моему, это входит в стандартные > рекомендации Microsoft. :)
Учетная запись Administrator - как пример, вы же понимате. В моей компании она, вестимо, переименована. Что делать с другими пятью тысячами (!) учетных записей сотрудников моей компании, которые ежедневно пользуются OWA??!
Я полагаю, угроза в том, что поимев, например, адресную книгу моей компании, злоумышленник поимеет и мою компанию.
|
| | |
Спамом - однозначно. А вот брутфорсом паролей всех 5000... 13.09.06 15:29
Автор: lazy_anty Статус: Незарегистрированный пользователь
|
> Я полагаю, угроза в том, что поимев, например, адресную > книгу моей компании, злоумышленник поимеет и мою компанию. Спамом - однозначно. А вот брутфорсом паролей всех 5000 учетных имен - вряд ли. Увеличивайте длину паролей, и уменьшайте период принудительной смены.
|
| | |
1. Отказаться от такой политики блокирования аккаунтов... 09.08.06 14:13
Автор: AntonK Статус: Незарегистрированный пользователь
|
> В моей компании она, вестимо, переименована. Что делать с > другими пятью тысячами (!) учетных записей сотрудников моей > компании, которые ежедневно пользуются OWA??! > > Я полагаю, угроза в том, что поимев, например, адресную > книгу моей компании, злоумышленник поимеет и мою компанию.
1. Отказаться от такой политики блокирования аккаунтов. (врятли согласитесь, раз ввели ее - значит причины на то были)
2. Ввести временную блокировку аккаунтов. Скажем на 1 час. После чего снова аккаунт разблокируется. (теоретически остается возможность подбора пароля на аккаунт, плюс никто не мешает сделать так чтобы на 1 час заблокировать все аккаунты компании)
3. На web сервере реализовать функцию блокировки доступа с IP злоумышленника когда было 10 неудачных поппыток авторизации. В таком случае злоумышленник будет долго чесать репу где ему достать 5000 разных IPшников чтобы "поиметь" вашу компанию.
ИМХО последний вариант самый интересный. =)
|
| | | |
Скрипт то есть, только вот запускать его надо с правами... 11.08.06 12:29
Автор: Woonder <Бученков Андрей> Статус: Member
|
Скрипт то есть, только вот запускать его надо с правами админа, тобишь в свойствах файла на вебсервере указывать на закладке "File Security" анонимный доступ не для IUSR_xxx а для Administrator
Да и прикрутить его к Logon.asp удалось только через Response.redirect("./block.asp").
Server.Transfer("./block.asp") работает всё равно в контексте owalogon.asp а он работает от имени IUSR_xxx
Response.redirect нехорош тем, что на клиентской стороне может быть настроен IE не использовать перенаправления (точно не уверен, но в голове такой вариант крутится)
Счётчик вставил в Logon.asp
Было :*********************************************************************************************************** Select Case reasonCode
Case "1"
UserText = L_LogoffUser_Text
Case "2"
UserText = L_401User_Text
Case "3"
UserText = L_RelogonUser_Text
Case Else
Стало:******************************************************************************************************* Select Case reasonCode
Case "1"
UserText = L_LogoffUser_Text
Case "2"
session("ErrLogonCount")= session("ErrLogonCount")+1
UserText = L_401User_Text+Cstr(LogonAllowed-session("ErrLogonCount"))
If session("ErrLogonCount")>=LogonAllowed then
Response.redirect("./block.asp")
'Server.Transfer("./block.asp")
end if
Case "3"
UserText = L_RelogonUser_Text
Case Else
******************************************************** В Logon.asp добавить
CONST LogonAllowed=9 ' то есть блокировка на 9 неудачной попытке
И моно подправить :
CONST L_401User_Text= "Не удалось выполнить вход в Outlook Web Access. Убедитесь, что имя и пароль пользователя указаны правильно, и повторите попытку. У вас осталось попыток :"
Так же в файле Logon.asp и owalogon.asp надо заменить:
@ ENABLESESSIONSTATE=False на @ ENABLESESSIONSTATE=True
/ExchWeb/bin/Auth/Block.asp
********************************************************************************************* <% LANGUAGE=VBSCRIPT%>
<%
Dim SecObj
Dim MyIPSec
Dim IPList,IPTempList
Set SecObj = GetObject("IIS://LocalHost/W3SVC/100/root")
Set MyIPSec = SecObj.IPSecurity
IPTempList = MyIPSec.IPDeny
Redim IPList (Ubound(MyIPSec.IPDeny)+1)
'response.write("До добавления"+"<br>")
for i=0 to Ubound(IPTempList)
IPList(i)=IPTempList(i)
'response.write(Cstr(i)+" - "+IPList(i)+"<br>")
next
IPList(Ubound(IPList)) = Request.ServerVariables("REMOTE_ADDR")+", 255.255.255.255"
'response.write("После добавления"+"<br>")
for i=0 to Ubound(IPList)
'response.write(Cstr(i)+" - "+IPList(i)+"<br>")
next
MyIPSec.IPDeny = IPList
SecObj.IPSecurity = MyIPSec
SecObj.Setinfo
%>
*************************************************************************************** Заметьте Set SecObj = GetObject("IIS://LocalHost/W3SVC/100/root")
Выполняет подключение и следовательно будет устанавливать свойства для сайта с идентификатором 100.
Если надо для Default Web Site и виртуального каталога ExchWeb то пишите:
Set SecObj = GetObject("IIS://LocalHost/W3SVC/1/root/ExchWeb")
****************************************************************************** в Скрипте IPTempList добавлен не случайно потому что простая конструкция
IPList = MyIPSec.IPDeny
Redim IPList (Ubound(MyIPSec.IPDeny)+1)
IPList(Ubound(IPList)) = "123.0.0.1, 255.255.255.255"
почему-то не работает, хотя так написано в примере от M$
Беда ещё в том, что у OWA много различных страничек для входа на разных языках,
правильнее будет подправить logon.asp из каталога /RUS и /USA, а все остальные языки удалить и подправить файлик owalogon.asp тобишь убрать лишние LangMap.Add
В общем надо ещё много додумыватть, ГУРУ ASP помогайте.
|
| |
И отключит эту запись, так как по SID её можно узнать. 09.08.06 06:07
Автор: svtvl Статус: Незарегистрированный пользователь
|
|
|
|