Серьезная Online безопасность

Тема в разделе "Статьи", создана пользователем Centr, 1 апр 2015.

  1. TopicStarter Overlay
    Centr

    Centr Команда форума

    Эта статья не является еще одной "пошаговой инструкцией" для новичков. Хоть я не оспариваю полезности таких инструкций, но все же, по моему мнению, серьезная безопасность этим не ограничивается и требует другого подхода. Эта статья - своеобразный отчет о создании близкой к идеальной (имхо) системы безопасности. Первая часть является описанием идей, на которых построена эта система. Вторая посвящена рассмотрению некоторых технических аспектов которые могут показаться нетривиальными. Сразу хочу отметить что все идеи, которые здесь будут описаны уже упоминались (в большинстве своем не в околокардинговых изданиях). Поэтому я не претендую на звание первооткрывателя, я лишь попытался соединить уже известные решения, отбросив все лишнее, чтобы получить систему максимально удовлетворяющую потребностям людей. Насколько это у меня получилось - судить вам.

    I. Идея.

    Резонный вопрос - какими свойствами должна обладать система безопасности? Я их формулирую так:

    1. Маскировка - система должна выглядеть белой и пушистой
    2. Полная анонимность - практическая невозможность _любыми_ действиями внутри или вне системы
    установить наш ip (это свойство подразумевает также запуск в системе программ таких как
    казино-клиенты или wm keeper, которые могут узнать ip обращаясь, например, к ipconfig)
    То есть, по сути дела, система _сама не должна знать свой реальный ip_
    3. Совместимость с большинством программ.
    4. Мобильность - система должна быть записана на съемный носитель и не должна оставлять следов
    на машине.
    5. Возможность быстрого удаления всех ненужных данных (history, cookies, icq logs итд).
    6. Возможность шифрования и хранения нужных данных на съемном носителе.

    Итак, суть:

    На машину устанавливается "чистая" операционная система. Я использовал FreeBSD, хотя, я полагаю, возможно использование любого *nix или даже windows 2k/nt/xp.

    На нее устанавливается vmware. (кто не знает: программа для создания и использования виртуальных машин. подробности - www.vmware.com) Роль операционной системы на виртуальной машине по понятным причинам целесообразно отвести win98 Eng (с последующей русификацией, естественно). При этом win98 следует (по причинам, изложенным ниже) "обрезать" до минимального размера - у меня он составляет 110 mb.

    Диск и конфигурационный файл виртуальной машины записываются на съемный носитель (я использовал cd-rw 8mm). При каждом запуске организуется ram disk - виртуальный диск все данные на котором хранятся на самом деле в оперативной памяти. На него копируется диск и конфигурационный файл для vmware, и оттуда уже запускается виртуальная машина. Это позволяет избежать записи на диск компрометирующей информации. Для того, чтобы не "грузить" оперативную память и нужна упомянутая "обрезка" windows. Мне для работы виртуальной машины хватает 150 mb дискового пространства. То есть при 256 mb ram или больше (думаю большинство себе может это позволить) особых проблем с запуском не наблюдается.

    Доступ в интернет организуется при помощи организации виртуальной локальной сети между реальной и виртуальной машиной. Реальная машина используется как Gateway и выполняет NAT - Network Address Translation - трансляцию адресов. Это позволяет виртуальной машине не знать нашего реального ip адреса.

    II. Некоторые технические моменты.

    01. Установка vmware.

    У пользователей windows 2k/nt/xp или Linux думаю проблем не вызовет. Пользователи же FreeBSD при установке из портов могут столкнуться с проблемой. Архива нет на указанных в Makefile серверах. К счастью проблема легко решаема - в filesearch.ru ищем файл VMware-2.0.4-1142.tar.gz и руками кладем в /usr/ports/distfiles
    Еще одним неприятным моментом является то, что vmware требует лицензии. Лечится созданием в /home/user/.vmware/ файла license со следующим содержанием:

    Код:
    ===========START===========
    # VMware software license
    Fields = "Cpt, Name, Email, LicenseType, LicenseClass, LicenseFeature, Count, LicenseKey, ProductID, ProductType, Expiration"
    StartFields = "Cpt, Name, Email, LicenseType, Field2"
    Field2 = "LicenseClass, LicenseFeature, Count, Field3"
    Field3 = "LicenseKey, ProductID, ProductType, Expiration"
    Cpt = "COPYRIGHT © 1998-2000 VMware, Inc."
    Name = "myname"
    Email = "[email protected]"
    LicenseType = "User"
    LicenseClass = "Full"
    LicenseFeature = "None"
    Count = "1 of 1"
    LicenseKey = "150531_001"
    ProductID = "VMware for Linux"
    ProductType = "2.0"
    Expiration = "2011-8-21"
    
    Hash = 07388498-76ef1144-25514544-a5a93d5e-5053cb2d
    ============END============ 
    02. Установка обрезанной win98 eng.

    В этом очень помогает замечательная на мой взгляд программа 98lite (www.98lite.net). С моей точки зрения 150mb - оптимальный обьем виртуального диска vmware. Тут возникает небольшое затруднение: 98lite для работы требуется скопировать на диск файлы дистрибутива win98, которые на 150 мегабайтный диск просто не влезут. Решение также достаточно тривиально: создаются 2 диска: рабочий (150mb) и временный (600mb - за глаза). На второй устанавливается 98lite, копируются файлы дистрибутива. После установки win98 его можно удалить. Также хочу предостеречь: При выборе варианта оболочке я бы выбрал CHUBBY т.к. в MICRO не будет работать sockschain.

    03. Русификация win98

    Дабы не изнурять окружающих транслитом, обязательно нужно русифицироваться. Для этого: Start->Settings->Control Panel->Keyboad->Language->Add->Russian->OK Далее нужно скачать и установить шрифты. Скачать их можно, например с ftp.robertsonblums.ru/pub/win/rus/fonts.zip Далее они распаковываются и в msdos mode помещаются в c:\windows\fonts Потом в файл C:\windows\win.ini в секцию [FontSubstitutes] добавляются следующие строки:

    Код:
    ===========START===========
    System,0=System,204
    Fixedsys,0=Fixedsys,204
    MS Sans Serif,0=MS Sans Serif,204
    MS Serif,0=MS Serif,204
    Arial,0=Arial,204
    Courier,0=Courier New,204
    Courier New,0=Courier New,204
    Times New Roman,0=Times New Roman,204
    Arial Cyr,0=Arial,204
    Arial Cyr,204=Arial,204
    Courier New Cyr,0=Courier New,204
    Courier New Cyr,204=Courier New,204
    Times New Roman Cyr,0=Times New Roman,204
    Times New Roman Cyr,204=Times New Roman,204
    ============END============ 
    04. Настройка NAT

    Я буду описывать настройку трансляции адресов с помощью демона natd. Настройки нужно изменить как на виртуальной, так и на реальной машине.
    Начнем с виртуальной: Start->Settings->Control Panel->Network->TCP/IP->Properties->IP Address: задаем ip адрес из той-же подсети, что и ip адрес интерфейса vmnet1 реальной машины (192.168.254.* по умолчению) Пусть это будет, например 192.168.254.100. В закладке Gateway указываем адрес этого самого интерфейса (192.168.254.1 по умолчанию). В DNS Configuration указываем DNS адреса нашего провайдера. С виртуальной машиной все.
    На реальной машине требуется поддержка ipfw. Для этого нужно пересобрать ядро с опциями:

    Код:
    options IPFIREWALL
    options IPDIVERT
    options IPFIREWALL_DEFAULT_TO_ACCEPT
    В файл /etc/rc.conf нужно добавить следующие параметры:
    gateway_enable="YES"
    firewall_enable="YES" 
    после перезагрузки компьютера надо выполнить следующую команду:

    /sbin/ipfw add divert natd all from any to any via имя_внешнего_интерфейса

    Перед каждым запуском vmware стартуем демон natd:

    natd -n имя_внешнего_интерфейса

    Теперь реальная машина будет работать шлюзом, перенаправляя пакеты из виртуальной локальной сети (192.168.254.*) во внешнюю сеть. Это позволяет избежать задания на виртуальной машине вашего реального ip адреса, ограничевшись фиктивным 192.168.254.100.

    05. Создание ram disk'а.

    Конфигурационный файл и виртуальный диск настроенной системы переписывается на съемный носитель. При каждом запуске предпринимаются следующие шаги:

    a. Монтируется Memory File System:

    mount_mfs -s xxxx /dev/ad1s1b /mnt

    где /dev/ad1s1b - ваше swap устройство, /mnt - точка монтирования, xxxx - размер ramdiska в секторах

    (соответствует 2048*yyyy, где yyyy - размер ramdiska в mb)

    b. Со съемного устройства на Ramdisk копируются конфигурационный файл и виртуальный диск виртуальной машины.
    c. Запускается, собственно, vmware.
    d. После работы размонтируем ramdisk:
    umount /mnt (/mnt - по прежнему точка монтирования)

    Вот так выглядит моя попытка изложить некоторые идеи по поводу создания серьезной системы безопасности. Если я допустил какие-то неточности, буду рад конструктивной критике. Также был бы очень благодарен за любые дополнения.
     
    Последнее редактирование: 11 янв 2016
  2. Господи! Какой бред…
     
  3. Ну не сказал бы, инфа интересная, полезная!
     

Поделиться этой страницей