Защита офиса нефте-газовой корпорации

Автор работы: Пользователь скрыл имя, 08 Апреля 2012 в 09:00, курсовая работа

Краткое описание

В качестве объекта защиты я брала офис крупной нефте-газовой корпорации по двум причинам:
 во-первых, я имела возможность получить некоторую информацию о нем;
 во-вторых, такой объект защиты показался мне очень интересным.
Защита информации на каком-либо объекте это комплекс самых разнообразных мер, которые очень тесно связаны между собой. Каждая из них очень важна, потому что прочность цепи, как известно равна прочности самого слабого ее звена.

Содержание работы

Вступление………………………………………………………………………...3
Список используемых терминов и обозначений………………………………..4
Часть І. Теория…………………………………………………………………….6
Основные понятия, термины и определения……………………………..6
Информация и информационные отношения. Субъекты информационных отношений, их безопасность…...6
Определение требований к защищенности информации………...10
Комплексные меры по защите информации……………………………13
Принцип «слабейшего звена»……………………………………...13
Экономическая целесообразность защиты………………………..13
Категоризация информации ……………………………………….14
Комплекс мер защиты………………………………………………15
Часть ІІ. Практика………………………………………………………………..19
Объект……………………………………………………………………...19
Физическая защита. Защита серверной комнаты……………………….21
Организационная защита…………………………………………………24
Реализация политики безопасности………………………………25
Программная защита……………………………………………………...33
Безопасная настройка FreeBSD…………………………………...35
Атрибуты файла и файловой системы…………………………...47
Способы защиты от флуда и DDoS атак…………………………47
Другие средства защиты…………………………………………..51
Вывод……………………………………………………………………………..52
Литература……………………………………………………………………….53

Содержимое работы - 1 файл

protection-e0e62ada.doc

— 342.50 Кб (Скачать файл)

 

Сохраняем и выходим из vi.

ZZ

 

7. login.conf & auth.conf Алгоритм md5 использующийся для шифрования паролей

будет заменен на Blowfish алгоритм, который еще не взломан.  Надежный алгоритм криптования необходим. Надежное криптование паролей это тоже часть

безопасности.  Как было сказано на встрече в Нью-Йорке наличие надежного

алгоритма криптования паролей похоже на прихожую которая отлично защищена.

Никто не может справится с этой защитой, но есть много других способов что бы

обойти прихожую. Будут сделаны дополнительные настройки для защиты паролей,

которые помогут обезопасить сервер.

 

[user@server /dir]#vi /etc/login.conf

 

Делаем исправления в секции default:\

 

              :passwd_format=blf:\                # заменяем алгоритм криптования паролей на

                                                        # Blowfish вместо идущего по умолчанию md5. 

              :passwordtime=52d:\               # период устаревания паролей 52 дня. 

              :mixpasswordcase=true:\  # предупреждать пользователей о том что пароли должны содержать

                                                        # разные символы (mixed-case passwords)

              :minpasswordlen=9:\      # минимальная длина пароля 9 символов

              :idletime=32:\                             # автоматически отключать пользователей после

                                                        # 32-х минут бездействия

 

Сохраняем и выходим из vi.

ZZ             

 

Теперь делаем базу.

 

cap_mkdb /etc/login.conf

 

Теперь необходимо изменить пароли всех пользователей, для того, что бы они были закриптованы при помощи алгоритма Blowfish.

Для пользователей, которые будут использовать bash должно быть написано /usr/local/bin/bash.  Для пользователей, которые не должны иметь права регистрироваться в системе, например пользователь www для Apache, должно быть написано /sbin/nologin

 

Удалим пользователя toor

  

   нажимаем dd на строке с пользователем toor

 

Теперь сделаем что бы пароли пользователей, которые будут добавляться в

дальнейшем криптовались алгоритмом Blowfish.

 

vi auth.conf

 

crypt_default=blf

 

Сохраняем и выходим из vi.

ZZ             

 

8. sysctl.conf

vi /etc/sysctl.conf

 

net.inet.tcp.blackhole=2               # Это превращает машину в черную дыру при попытке подключиться к портам,

                                                        # которые не обслуживаются сервером.

net.inet.udp.blackhole=1

 

kern.ps_showallprocs=0                             # только пользователь root может видеть все запущенные процессы

 

9. fstab

Теперь добавим некоторые параметры к некоторым точкам монтирования. Например,

нет надобности кому-либо иметь возможность запускать программы из /tmp

Есть более серьезные ограничения, которые можно сделать при помощи настроек

в файле /etc/fstab. Например, можно сделать некоторые точки монтирования

только читаемые, такие как /usr/local/, но это значит, что надо иметь

копию менее ограничивающего файла /etc/fstab на случай обновлений системы или

установки дополнительного программного обеспечения. В нашем случае, мы

установим только те параметры, которые не придется менять в течении работы.

 

#Device                Mountpoint  FStype  Options                                                                        Dump  Pass#

/dev/ad0s1b                none                    swap    sw                                                                             0     0

/dev/ad0s1a     /                  ufs                  rw                                                                             1     1 

/dev/ad0s1f     /tmp        ufs     rw,noexec                                                           2     2

/dev/ad0s1g     /usr        ufs     rw                                                                  2     2

/dev/ad0s1h     /usr/home   ufs     rw,nosuid,noexec                                                           2     2

/dev/ad0s1i     /var        ufs     rw,noexec                                                                  2     2

/dev/fd0        /floppy     MSDOS   rw,noauto,noexec,nosuid,nodev,noatime               0     0

/dev/acd0c      /cdrom      cd9660  ro,noauto                                                                       0     0

proc                             /proc       procfs  rw                                                                        0     0

 

Список опций, которые были заданы:

              ro: только чтение

              rw: чтение запись(устанавливается по умолчанию)

              sw: своп

              nosuid: опция suid не работает

              noexec: запрет на запуск файлов

              nodev: запрещает отображение файлов в виде устройств

              noauto: не монтируется автоматически во время загрузки

              noatime: препятствует файловой системе делать запись о доступе к файлу.

 

10. CVSup

    Для того, что бы исходные коды и документация всегда были обновленными, мы должны регулярно запускать cvsup при помощи задач cron. Мы не используем обновление портов, мы просто будем регулярно обновлять необходимые исходные коды.

 

    [user@server /dir]# cp /usr/share/examples/cvsup/stable-supfile /root

 

    [user@server /dir]# cd /root

 

    [user@server /dir]# vi stable-supfile

 

Исправим следующие строки:

 

*default host=                # на странице http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html

                                          # найдем cvsup зеркало, которое наиболее быстрее будет отвечать на запросы,

                                          # при помощи команды ping и введем его здесь. Это 68 строка в файле.

 

*default release=cvs tag=RELENG_4_7  # зависит от версии операционной системы. Это 73 строка файла.

 

#src-all                             # закомментирем это, хотя бы потому что нам не нужны исходные коды src-game. Это 84 строка в файле.

 

В следующей секции файла раскомментируме, разделы исходных кодов которые хотим обновлять, можно также включить и src-games.

 

11. Cron Jobs

chmod 0600 /etc/crontab               # только пользователь root должен иметь доступ к файлу настройки cron

 

touch /var/cron/deny                             # добавим в этот файл всех пользователей, которым запрещено использовать cron

 

chmod 0600 /var/cron/deny              

 

Теперь добавим несколько задач, которые должны выполнятся регулярно.

 

vi /etc/crontab

 

0 2 * * *                root                /usr/libexec/locate.updatedb                              # обновлять базу данных утилиты locate

                                                                                                                  каждое утро в 2 часа.

 

0 2 * * *               root              /usr/local/sbin/rdate yourNTPserver               # запускать rdate каждое утро в 2 часа.

 

1 3 * * *               root              /usr/local/sbin/chkrootkit                            # запускать chkrootkit каждый месяц.

 

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.

 

17. Bash Shell

vi /usr/share/skel/.bash_logout               # Файл .bash_logout созданный в домашнем каталоге каждого

                                                                      # пользователя с командой 'clear' будет очищать экран при

                                                                      # выходе пользователя из системы. Скопируем в домашний

                                                                      # каталог пользователя root.

 

clear

 

18. chflags

    Команда chflags увеличивает уровень безопасности (the level of security) на указанных файлах.  Эта команда особенно полезна для исполняемых или конфигурационных файлов, код или информация которых может быть испорчены другими программами/действиями.

    Рассмотрим возможность применения команды chflags к приложениям которые запускаются на сервере, а также к важным конфигурационным файлам.

    Запуск команды производится следующим образом:

 

              chflags [no]appnd или [no]schg имя файла

 

    Наберем ls -ol (буквы o и l в маленьком регистре) для просмотра измененных свойств файла.  Должны быть два флажка.

              sappnd Переводит файл в append-only режим, и только для пользователя root.  Другими словами, в файл можно добавить любые данные, но первоначальная информация не может быть изменена/удалена.

              schg Делает файл изменяемым только для пользователя root.

    Обе команды имеют префиксы. "u" перед sappnd или schg применяет те же опции, но при этом добавляет владельца файла в список пользователей которые будут иметь доступ к этому файлу.

              "no" перед sappnd или schg отменит chflag опцию на файле.

 

19. Зачистка.

Убедимся что все строки в файле /etc/inetd.conf закомментированы.

 

sockstat -4  #убедимся что ничего лишнего не запущено

 

tcpdump -xX  #пока сервер только появился в сети, посмотрим кто обращается к нему.

 

 

Атрибуты файла и файловой системы

 

   Полезные атрибуты файла:

   - A отключает создание метки atime для записи времени последнего

       доступа к файлу, что позволяет сократить количество операций обращения

       к носителю. Не поддерживается многими версиями ядра (до версии 2.0). В

       некоторых случаях лучше смонтировать файловую систему с параметром

       noatime.

   - a Только дозапись данных. Устанавливается суперпользователем.

   - d Такой файл будет пропущен при создании backup'а системы.

   - i Файл нельзя переименовывать, создавать на него ссылки,

       модифицировать.

   - s При удалении файла занимаемое им место заполняется нулями.

   - S При модификации файла все изменения синхронно фиксируются на НМЖД.

   Использование команды:

 

           #Чтение атрибутов:

           user$ lsattr my_file.txt

           -------- my_file.txt

           #Установка атрибутов:

           user$ chattr +c my_file.txt

           user$ chattr +s my_file.txt

           user$ chattr +d my_file.txt

           #Чтение атрибутов:

           user$ lsattr my_file.txt

           s-c---d- my_file.txt

           #Снятие атрибутов:

           user$ chattr -d my_file.txt

           s-c----- my_file.txt

   Команда  chattr  +i  используется  для запрещения изменения всех файлов

   программ в каталогах /bin, /usr/bin, /sbin, /usr/sbin, /lib и т.п. Эти

Информация о работе Защита офиса нефте-газовой корпорации