- •Министерство Образования и Науки Украины
- •Вступление
- •Список используемых терминов и обозначений
- •Информация и информационные отношения. Субъекты информационных отношений, их безопасность
- •Определение требований к защищенности информации
- •Комплексные меры по защите информации Принцип «слабейшего звена»
- •Экономическая целесообразность защиты
- •Категоризация информации
- •Комплекс мер защиты
- •Часть іі. Практика Объект
- •Физическая защита
- •Организационная защита
- •Реализация политики безопасности
- •2. Реализация
- •3.3. Доступ к Интернету
- •3.3.1 Разрешенные службы
- •Программная защита
- •Безопасная настройка FreeBsd
- •1. Инсталяция:
- •2. Настройка
- •3. Пользователи.
- •4. Сообщение дня
- •6. Rc.Conf
- •8. Sysctl.Conf
- •9. Fstab
- •10. CvSup
- •11. Cron Jobs
- •12. Kernel Changes (изменения в ядре)
- •13. Права доступа к файлам.
- •14. Сетевой Протокол Времени (Network Time Protocol).
- •15. Tcp Wrappers
- •16. Console Access (доступ к консоли).
- •17. Bash Shell
- •18. Chflags
- •19. Зачистка.
- •Атрибуты файла и файловой системы
- •Способы защиты от флуда и dDoSатак. Черные дыры.
- •Защита очереди сокета от syn атак.
- •Редиректы (Перенаправления)
- •Настройка стека ip в системах unix на оптимальную производительность:
- •Другие средства защиты
- •Во FreeBsd существует еще множество средств защиты. Я не в силах рассмотреть их все, так что на этом придется закончить.
- •Надо только добавить, что необходимо также настроить аппаратные фареволы, которые стоят на точках выхода в Интернет и корпоративную сеть.
- •Литература:
12. Kernel Changes (изменения в ядре)
Сделаем следующие изменения в конфигурационном файле ядра, и
перекомпилируем его. Можно найти эти и другие опции ядра в файле
/usr/src/sys/i386/conf/LINT.
#pseudo-device bpf #Berkley Packet Filter. защита от снифинга на уровне ядра. Не убираем эту опцию, так как собираемся использовать dhcp
options SC_NO_HISTORY # отменяем историю команд на виртуальных терминалах
options SC_DISABLE_REBOOT # отменяем перезагрузку по комбинации клавиш ctl-alt-del
options SC_DISABLE_DDBKEY # отменяем debug key
options TCP_DROP_SYNFIN # см. выше в разделе rc.conf.
options RANDOM_IP_ID # случайный идентификатор IP пакетов препятствует
# idlescan-style сканирования. Мешает взломщику
# определить разряд(rate) генерации пакетов.
options ICMP_BANDLIM # Если разрешить пакеты icmp к серверу, этот
# параметр, ограничит количество ответов, что помогает при
# защите от DOS атак.
13. Права доступа к файлам.
При помощи команды chmod 600, мы разрешаем доступ только пользователю root на
запись и чтение файла.
При помощи команды chmod 700, мы также даем возможность пользователю root
возможность запускать файл.
chmod 0700 /root
chmod 0600 /etc/syslog.conf
chmod 0600 /etc/rc.conf
chmod 0600 /etc/newsyslog.conf
chmod 0600 /etc/hosts.allow
chmod 0600 /etc/login.conf
chmod 0700 /usr/home/*
14. Сетевой Протокол Времени (Network Time Protocol).
В crontab файле (файл настройки системы crontab) мы используем rdate вместо ntp для синхронизации часов сервера с мировым временем. Точное время на сервере является очень важным пунктом для правильного ведения журнальных файлов и часто помогает при разрешении конфликтов и устранении неисправностей.
vi /etc/ntp.conf
restrict default ignore # не работать в качестве ntp сервера.
15. Tcp Wrappers
vi /etc/hosts.allow
sshd : localhost : allow
sshd : x.x.x.x, x.x.x.x : allow # разрешить ssh запросы только из сетей x.x.x.x
sshd : all : deny # запретить запросы ssh из остальных сетей
В случае подключения к серверу с динамически выделяемых IP адресов, найдем другой защищенный сервер с статическим IP адресом, на который мы можем заходить через ssh и используем его в качестве шлюза для подключения к серверу.
Убедимся что настроили права доступа для других служб, добавим это:
ftpd : ALL : deny
16. Console Access (доступ к консоли).
Блокируем доступ от неавторизованного доступа в однопользовательском режиме. Изменение прав доступа к первой консоли означает что нельзя войти в систему в однопользовательском режиме, не зная пароля пользователя root.
vi /etc/ttys
console none unknown off insecure # запрашивать пароль пользователя root в однопользовательском режиме.
ttyv0 "/usr/libexec/getty Pc" cons25 on insecure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25 on insecure
ttyv2 "/usr/libexec/getty Pc" cons25 on insecure
ttyv3 "/usr/libexec/getty Pc" cons25 on insecure
ttyv4 "/usr/libexec/getty Pc" cons25 on insecure
ttyv5 "/usr/libexec/getty Pc" cons25 on insecure
ttyv6 "/usr/libexec/getty Pc" cons25 on insecure
ttyv7 "/usr/libexec/getty Pc" cons25 on insecure
Если поставить режим insecure для всех виртуальных терминалов, то чтобы войти на сервер из локального терминала, необходимо сначала зарегестрировать пользователем из группы wheel, а уж потом su.