Защита Windows Server

Настройте lockout policy. По умолчанию Windows-сервер не защищен от брут-форса  атаки через подбор пароля. Хакер может создать, например, тысячу RDP-соединений (ака «Удаленный Рабочий Стол»), пробуя разные логины/пароли. Или терзать ваш FTP-сервер бесконечными подключениями Именно поэтому стоит настроить «lockout»  временную блокировку пользователя после нескольких неудачных попыток.

Идем в «Start  Run  secpol.msc  Security Settings  Account Policies  Account Lockout Policy». И ставим, например, «5 попыток» и «5 минут»  это заблокирует пользователя на 5 минут после 5 неудачных авторизаций.

Заблокируйте support-пользователя Если вы арендуете сервер, наверняка в нем настроен саппорт-пользователь для вашего хостера. Что-нибудь типа «Support User» или «support_user». Заблокируйте его. Иногда опасность приходит именно от хостера. И его наивных индийских юношей, которые раздают доступы направо и налево. Именно это со мной и случилось.

Отключите FTP, если не нужен Если вашим клиентам или приложениям не нужен постоянный FTP  вырубайте. Включайте его только когда нужно залить файлы. И разрешите доступ только со своего IP. А еще лучше  переведите сервер в режим «blind-put». Так называют сервера, которые разрешают доступ только на запись. В настройках IIS FTP-сервера поставьте галку «write» и снимите галку «read».

Установите менеджер паролей. Куча моих знакомых (реально  куча) пользуются схемой «один сложный пароль  для всего». Даже знакомые программеры, админы, дизайнеры Неглупые, в общем, люди. Одумайтесь. Даже для сервисных учетных записей (типа пользователи БД и тд) используйте только сложные сгенеренные пароли. И держите их в пасс-менеджере. Лично я пользую «LastPass»  он бесплатный, классный и доступен в виде экстеншена для Chrome.

Бекап! Бекап, бекап всего, всегда и везде. Создайте ежедневные джобы на SQL-сервере, которые будут сохранять базы и локально, и куда-нибудь в онлайн. Даже в бесплатном MS SQL Server Express можно создать некое подобие джобов (через Task-Scheduler).

Лично у меня бекап работает так: два раза в день делается локальная копия всех баз. И два раза в неделю  удаленная копия. Для удаленных копий я пользуюсь Microsoft SkyDrive  это 25 гигабайт онлайн-хранилища. Бесплатно. Неплохо, да? Тулза для синхронизации папок прилагается (называется Windows Live Mesh). Если не любите MS по религиозным соображениям  пользуйтесь DropBox или чем-то еще, но ПОЛЬЗУЙТЕСЬ!

Firewall Ну, тут все понятно. Главное правило  «запретить все». В Windows 2008 R2 встроен довольно неплохой брандмауер, можно начать с него. Оставьте открытыми порты 80 и 443 (и, возможно, 3389 для RDP)  и все.

Не используйте стандартные порты. Если кроме веб-сервера вам все-таки нужно что-то выставить «наружу»  например, терминальный сервер (для того же RDP) или SQL-сервер  используйте нестандартные порты. Какие-нибудь идиотские значения, вроде 15089.

Порт терминального сервиса (тот самый «Удаленный рабочий стол») меняется в реестре вот тут: «HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp\PortNumber» (не забудьте открыть этот порт на файрволле и перезапустить RDP-сервис).

Порты SQL Server'а меняются в утилите «SQL Server Configuration Manager»  «Network Configuraion»  «Protocols for [имя сервера]»  «TCP-IP»  right-click  «Properties».