Эта статья не является еще одной "пошаговой инструкцией" для новичков. Хоть я не оспариваю полезности таких инструкций, но все же, по моему мнению, серьезная безопасность этим не ограничивается и требует другого подхода. Эта статья - своеобразный отчет о создании близкой к идеальной (имхо) системы безопасности. Первая часть является описанием идей, на которых построена эта система. Вторая посвящена рассмотрению некоторых технических аспектов которые могут показаться нетривиальными. Сразу хочу отметить что все идеи, которые здесь будут описаны уже упоминались (в большинстве своем не в околокардинговых изданиях). Поэтому я не претендую на звание первооткрывателя, я лишь попытался соединить уже известные решения, отбросив все лишнее, чтобы получить систему максимально удовлетворяющую потребностям людей, серьезно занимающихся кардингом. Насколько это у меня получилось - судить вам.
I. Идея.
Резонный вопрос - какими свойствами должна обладать система безопасности? Я их формулирую так:
1. Маскировка - система должна выглядеть типичным американцем (европейцем)
2. Полная анонимность - практическая невозможность _любыми_ действиями внутри или вне системы
установить наш ip (это свойство подразумевает также запуск в системе программ таких как
казино-клиенты или wm keeper, которые могут узнать ip обращаясь, например, к ipconfig)
То есть, по сути дела, система _сама не должна знать свой реальный ip_
3. Совместимость с болишинством программ.
4. Мобильность - система должна быть записана на сьемный носитель и не должна оставлять следов
на машине.
5. Возможность быстрого удаления всех ненужных данных (history, cookies, icq logs итд).
6. Возможность шифрования и хранения нужных данных на съемном носителе.
Итак, суть:
На машину устанавливается "чистая" операционная система. Я использовал FreeBSD, хотя, я полагаю, возможно использование любого *nix или даже windows 2k/nt/xp.
На нее устанавливается vmware. (кто не знает: программа для создания и использования виртуальных машин. подробности - wwwvmware.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 = "myname@mymail.com"
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 (www98lite.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 Далее нужно скачать и установить шрифты. Скачать их можно, например с ftprobertsonblums.ru/pub/win/rus/fonts.zip Далее они распаковываются и в msdos mode помещаются в c:windowsfonts Потом в файл C:windowswin.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 - по прежнему точка монтирования)
Вот так выглядит моя попытка изложить некоторые идеи по поводу создания серьезной системы безопасности. Если я допустил какие-то неточности, буду рад конструктивной критике. Также был бы очень благодарен за любые дополнения.