понедельник, 30 ноября 2009 г.

netstat особенности работы

подсчет числа "полуоткрытых" TCP-соединений (SYN-флуд)
netstat -na | grep ":80\ " | grep SYN_RCVD
ключи:
-n - не резолвит айпихи, порты
-a - показывает сокеты и которые слушают и которые уже не слушают
просмотр адресов с которых идут запросы на подключение
netstat -na | grep ":80\ " | sort | uniq -c | sort -nr | less
sort - сортировка (-n - сравнение используя номера строк, -r - реверсировать результат)
uniq - сигнализировать или пропускать дублирующиеся линии (-с - Перед каждой строкой выводить число повторений этой строки на входе и один пробел)

суббота, 28 ноября 2009 г.

Windows установка программ в тихом режиме

Тихий - без вмешательства пользователя
Если использовать msiexec: msiexec /I install.msi /quiet /qn
Для сложных нужно создавать файл ответов
Рекомандации по данному вопросу можно найти - http://technet.microsoft.com/ru-ru/library/bb693561.aspx

пятница, 20 ноября 2009 г.

Сетевые параметры ядра в sysctl.conf

Включает/выключает reverse path filter ("проверка обратного адреса" -- хотя это слишком вольный перевод термина, но мне он кажется наиболее близким по смыслу. прим. перев.) для заданного интерфейса. Смысл этой переменной достаточно прост -- все что поступает к нам проходит проверку на соответствие исходящего адреса с нашей таблицей маршрутизации и такая проверка считается успешной, если принятый пакет предполагает передачу ответа через тот же самый интерфейс. (отвечает на те запросы которые идут на данный физический интерфейс, если в 0 то отвечает на все что знает на всех интерфейсах)
net.ipv4.conf.default.rp_filter=1 (0 не безопасно - нет верификации маршрута пакета)
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.lo.rp_filter=1
Переменная управляет приемом ICMP-сообщений о переадресации. Сообщения ICMP Redirect ... используются для уведомления маршрутизаторов или хостов о существовании лучшего маршрута движения пакетов к заданному хосту, который (маршрут) может быть быстрее или менее загружен.
net.ipv4.conf.default.accept_redirects = 0 (1 небезопасно)
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0
Включает/выключает выдачу ICMP Redirect ... другим хостам. Эта опция обязательно должна быть включена, если хост выступает в роли маршрутизатора любого рода. Как правило ICMP-сообщения о переадресации отправляются в том случае, когда необходимо сообщить хосту о том, что он должен вступить в контакт с другим сервером.
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.lo.send_redirects = 0
Включает/выключает режим безопасной переадресации. Если переменная выключена, то будут приниматься любые сообщения ICMP Redirect ... от любого хоста из любого места. Если переменная включена, то сообщения о переадресации будут восприниматься только от тех шлюзов (gateways), которые имеются в списке шлюзов по-умолчанию. С помощью этой опции можно избежать большинства ложных переадресаций, которые могут быть использованы для перехвата трафика.
net.ipv4.conf.default.secure_redirects = 0 (1 небезопасно)
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.lo.secure_redirects = 0
Вырубить маршрутизация от источника (часто используется для спуфинга)
net.ipv4.conf.default.accept_source_route = 0  (1 не безопасно - нет верификации маршрута пакета)
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.lo.accept_source_route = 0
Переменная разрешает/запрещает форвардинг пакетов с исходящими адресами 0.b.c.d
net.ipv4.conf.default.bootp_relay = 0
net.ipv4.conf.all.bootp_relay = 0
net.ipv4.conf.lo.bootp_relay = 0
Выключение проксирование arp-запросов для заданного интерфейса. ARP-прокси позволяет маршрутизатору отвечать на ARP запросы в одну сеть, в то время как запрашиваемый хост находится в другой сети
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.all.proxy_arp = 0
net.ipv4.conf.lo.proxy_arp = 0
Переменная включает/выключает функцию журналирования всех пакетов, которые содержат неправильные (невозможные) адреса (так называемые martians -- "марсианские" пакеты). Под невозможными адресами, в данном случае, следует понимать такие адреса, которые отсутствуют в таблице маршрутизации.
net.ipv4.conf.default.log_martians = 0
net.ipv4.conf.all.log_martians = 0
net.ipv4.conf.lo.log_martians = 0
Эта переменная очень близка по смыслу к icmp_echo_ignore_all, только в данном случае будут игнорироваться ICMP сообщения, отправленные на широковещательный или групповой адрес. Вполне очевидно, почему полезно включить этот параметр -- защита от smurf атак
net.ipv4.icmp_echo_ignore_broadcasts = 1
Отдельные маршрутизаторы, вопреки стандартам, описанным в RFC 1122, отправляют фиктивные ответы в широковещательном диапазоне. Обычно эти ошибки заносятся в системный журнал. Если вы не желаете регистрировать их, то включите этот параметр и тем самым сбережете некоторый объем дискового пространства в своей системе.
net.ipv4.icmp_ignore_bogus_error_responses = 1
Разрешает/запрещает передачу так называемых syncookies вызывающему хосту в случае переполнения очереди SYN-пакетов для заданного сокета. Когда в систему поступает слишком много запросов на соединение, то очередь может переполниться и тогда запускается передача syncookies в ответ на каждый SYN-запрос.
Эта переменная используется для предотвращения syn-flood атак
net.ipv4.tcp_syncookies=1
# Включение форвардинга
echo 1 > /proc/sys/net/ipv4/ip_forward или net.ipv4.ip_forward = 1 (в файле /etc/sysctl.conf)
# Включение форвардинга для VPN
echo 1 > /proc/sys/net/ipv4/ip_dynaddr или net.ipv4.ip_dynaddr = 0 (в файле /etc/sysctl.conf)
# Увеличение размера очередей
echo 32000000 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max или net.ipv4.ip_conntrack_max = 32000000 (в файле /etc/sysctl.conf)
# Время ожидания до закрытия соединения
echo 14400 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established или net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 14400 (в файле /etc/sysctl.conf)
# Время ожидания до посылки FIN пакета
echo 60 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_fin_wait или net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 60 (в файле /etc/sysctl.conf)
# Время ожидания до посылки SYN пакета
echo 10 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_syn_sent или net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 10 (в файле /etc/sysctl.conf)
# Увеличиваем размер backlog очереди
echo 1280 > /proc/sys/net/ipv4/tcp_max_syn_backlog или net.ipv4.tcp_max_syn_backlog = 1280 (в файле /etc/sysctl.conf)
# Число начальных SYN и SYNACK пересылок для TCP соединения
echo 4 > /proc/sys/net/ipv4/tcp_synack_retries или net.ipv4.tcp_synack_retries = 4 (в файле /etc/sysctl.conf) (можно и 2 для безопасности)
echo 4 > /proc/sys/net/ipv4/tcp_syn_retries или net.ipv4.tcp_syn_retries = 4 (в файле /etc/sysctl.conf)
#Какие порты использовать в качестве локальных TCP и UDP портов
echo "16384 61000" > /proc/sys/net/ipv4/ip_local_port_range или net.ipv4.ip_local_port_range = 16384 61000 (можно 2000 65000) (в файле /etc/sysctl.conf)
# Сколько секунд ожидать приема FIN до полного закрытия сокета
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout или net.ipv4.tcp_fin_timeout = 30 (в файле /etc/sysctl.conf)
# Как часто посылать сообщение о поддержании keep alive соединения
echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time или net.ipv4.tcp_keepalive_time = 1800 (в файле /etc/sysctl.conf)
# Сколько пакетов проверки keepalive посылать, прежде чем соединение будет закрыто
echo 2 > /proc/sys/net/ipv4/tcp_keepalive_probes или net.ipv4.tcp_keepalive_probes = 2 (в файле /etc/sysctl.conf)
# Зaпрещаем TCP window scaling (разрешаем елси nginx сервер = 1)
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling или net.ipv4.tcp_window_scaling = 0 (в файле /etc/sysctl.conf)
# Запрещаем selective acknowledgements, RFC2018
echo 0 > /proc/sys/net/ipv4/tcp_sack или net.ipv4.tcp_sack = 0 (в файле /etc/sysctl.conf)
# Запрещаем TCP timestamps, RFC1323
echo 0 > /proc/sys/net/ipv4/tcp_timestamps или net.ipv4.tcp_timestamps = 0 (в файле /etc/sysctl.conf)
# Уличиваем размер буфера для приема и отправки данных через сокеты
echo 1048576 > /proc/sys/net/core/rmem_max или net.core.rmem_max = 1048576 (можно 8388608) (в файле /etc/sysctl.conf)
echo 1048576 > /proc/sys/net/core/rmem_default или net.core.rmem_default = 1048576 (в файле /etc/sysctl.conf)
echo 1048576 > /proc/sys/net/core/wmem_max или net.core.wmem_max = 1048576 (можно 8388608) (в файле /etc/sysctl.conf)
echo 1048576 > /proc/sys/net/core/wmem_default или net.core.wmem_default = 1048576 (в файле /etc/sysctl.conf)
# Через какое время убивать соединеие закрытое на нашей стороне
echo 1 > /proc/sys/net/ipv4/tcp_orphan_retries или net.ipv4.tcp_orphan_retries = 1 (в файле /etc/sysctl.conf)
# Включаем ExecShield
kernel.exec-shield = 1
kernel.randomize_va_space = 1
# Увеличиваем максимальный размер TCP-буферов
net.ipv4.tcp_rmem = 4096 87380 8388608
net.ipv4.tcp_wmem = 4096 87380 8388608
net.core.netdev_max_backlog =  5000


Проверка переменных в sysctl.conf
sudo sysctl -a
sudo sysctl -a | grep ^net\.

применить изменения в /etc/sysctl.conf sysctl -p

четверг, 12 ноября 2009 г.

hasp 4 driver for linux

источник http://sharykin.blogspot.com/2008/09/hasp-4-driver-linux.html
Использование аппаратных ключей защиты в Linux

HASP (от англ. Hardware Against Software Piracy)- это мультиплатформенная аппаратно-программная система защиты программ и данных от нелегального использования и несанкционированного распространения.

Драйвера для поддержки ключей защиты в Linux поставляются в пакетах haspd и haspd-modules.

Ключи защиты HASP 4/HL (Aladdin)

Ключи HASP бывают как локальные (однопользовательские), так и сетевые (многопользовательские). По способу подключения ключи также бывают двух типов: подключаемые к порту LPT (параллельный порт) и к шине USB. Для ОС GNU/Linux имеются драйверы USB- и LPT-ключей защиты для ядра версии 2.4 и 2.6. Рекомендуется использовать USB-ключ защиты, так как это более современный способ подключения, и его подключение и настройка вызывает меньше проблем. Возможно, потребуется обратиться к поставщику программы и попросить о замене ключа.

Начиная с Win32 HASP HL API версии 1.12 поддерживаются локальные ключи HASP при работе из WINE@Etersoft. Примером такой программы является 1С: Предприятие 8.0 и выше.

Установка драйвера ключа HASP 4/HL

При эксплуатации программ, защищённых ключом защиты HASP (например, 1С: Предприятие 7.7), необходим драйвер ключа, установленный на компьютере с подключённым ключом. Для сетевого ключа в дополнение к драйверу потребуется также работающий сетевой менеджер лицензий. Сетевой ключ может располагаться на любом узле сети, работающем под управлением Linux или Windows.

Различение ключей:

* локальные LPT-ключи белого цвета, сетевые LPT-ключи — красного цвета;
* локальные USB-ключи фиолетового цвета (H4 M1 ORGL8), сетевые USB-ключи — красного цвета (H4 NET5 ORGL8);
* USB-ключ сервера 1С является локальным, и имеет фиолетовый цвет (надпись H4M1 ENSR8).

Все компоненты драйвера HASP, включая сетевой менеджер лицензий, находятся в пакете haspd. Достаточно обычным способом установить этот пакет (из каталога для вашей версии дистрибутива GNU/Linux) на тот компьютер, к которому подсоединён ключ (вне зависимости от типа ключа).

Проверить, что все компоненты драйвера запущены и работают правильно, можно командой:

[root@test root]# service haspd status
Aladdin HASP 4/HL driver status:
kernel module aksparlnx is loaded
aksusbd is running
winehasp is running
hasplm is running

Пример 35. Проверка статуса haspd


Для тех систем, где отсутствует команда service, следует использовать команду /etc/init.d/haspd status.

Если в выводе service haspd status появляется предупреждение о том, что не загружен модуль ядра (kernel module aksparlnx is not loaded), это свидетельствует о том, что у вас установлено ядро, для которого не удалось автоматически подобрать драйвер.

Проверить, какие порты прослушивает менеджер лицензий HASP, можно командой:

[root@test root]# netstat -ap | grep hasp
udp 0 0 *:475 *:* 1535/hasplm
udp 0 0 localhost.localdom:2790 *:* 1169/winehasp

Пример 36. Проверка прослушиваемых портов


Мы видим, что на порту 475 по протоколу UDP ожидает подключения с любых адресов менеджер лицензий, а на локальном порту 2790 по протоколу UDP слушает winehasp соединения с этой же машины.

Настройка приложения, использующего сетевой ключ

Если приложение использует сетевой ключ, то ему требуется знать информацию о расположении ключа защиты (сетевого менеджера лицензий) и способа обращения к нему. Эти данные указываются в файле NETHASP.INI в каталоге с исполняемыми файлами защищённого приложения. Этот файл может выглядеть, например, так:

[NH_COMMON]
NH_TCPIP = Enabled ; Используем только IP-протокол

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.0.1 ; IP-адрес (или имя) машины с менеджером лицензий
NH_TCPIP_METHOD = UDP ; UDP для Linux-сервера и TCP для Windows-сервера
NH_USE_BROADCAST = Disabled ; Отключить поиск ключа по всей сети

Пример 37. Конфигурационный файл NETHASP.INI


Обратите внимание, что концы строк в файле должны соответствовать принятым в DOS/Windows (CR LF), поэтому редактировать файл лучше в notepad.

Для упрощения настройки можно воспользоваться командой setnethasp IP-адрес, которая создаст NETHASP.INI, настроенный на указанный сервер.

Обращение к сетевому менеджеру лицензий, запущенному под Linux, возможно только по протоколу UDP/IP. Если вы используете менеджер лицензий, запущенный под Windows, то удостоверьтесь что в нём включен протокол TCP/IP.

Обратите внимание, что при использовании Linux-драйвера HASP (haspd) вам не требуется как-либо запускать и настраивать hinstall.exe из поставки Win-приложения.

Обратите внимание, что при использовании сетевого ключа устанавливать пакет haspd нужно только на машине с ключом.

Проверка доступности ключа

Если всё правильно настроено, но приложение не видит ключ, следует для проверки отключить межсетевой экран (firewall) командой service iptables stop или iptables -F

Далее можно попробовать обратиться к менеджеру лицензий с помощью тестовой программы.

# eterkeytest --hasp
USB:

HASP:
HASP API VERSION: 8.0

HASP Local:
LPT HASP4 M4 (HASP3 is connected, key is HASP4 Net 5)
1C:Accountancy v7.7 (simple and network)

HASP Net (press Ctrl-C to break):
..... -- active logins: 1
-- max logins: 5
-- key type: HASP4 Net 5
-- activations: 65535
1C:Accountancy v7.7 (simple and network)

Пример 38. Проверка ключа


Для Windows существует программа АКС Монитор, позволяющая увидеть тип ключа и количество лицензий в нём: ftp://ftp.aladdin.com/pub/hasp/new_releases/utility/monitor/Monitor_Setup.zip

Обратите внимание на количество лицензий в ключе. Например, при использовании двух ключей одного типа (например, USB) по 5 лицензий менеджер лицений всё равно будет выдавать не более 5 лицензий, потому что он увидит только один ключ, то же и с локальными ключами.

Компоненты драйвера HASP в GNU/Linux

Драйвер ключей защиты HASP для GNU/Linux состоит из нескольких взаимодействующих компонент:

* aksparlnx (версия 1.6) — модуль ядра, обеспечивающий низкоуровневый доступ к LPT-ключу;
* askusbd (версия 1.8.1) — универсальный драйвер для USB- и LPT-ключей (системная служба);
* winehasp (версия 1.00) — часть драйвера, предоставляющая доступ к ключу HASP win-приложениям, исполняющимся в среде WINE (системная служба);
* hasplm (версия 8.30) — сетевой менеджер лицензий (системная служба).

Сборка модулей ядра для HASP

При отсутствии в пакете модулей для вашего ядра потребуется запустить сборку командой service haspd build

Для сборки потребуется установить заголовочные файлы ядра или исходники ядра (зависит от системы) именно той версии, под которую вы планируете сборку.

* Для систем ALT Linux это пакет kernel-headers-*.
* Для систем RHEL, Fedora Core, ASP Linux, LinuxXP это пакет kernel-devel-*.
* Для систем Debian, Ubuntu это пакет linux-headers-*.
* Для систем SUSE, Slackware, MOPSLinux это пакет kernel-source-*.
* Для систем Mandriva это пакет kernel-source-stripped-*.

В настоящий момент поддержка HASP на платформе FreeBSD не реализована. Ожидается, что она станет доступна к концу 2007 года.
источник: http://www.etersoft.ru/news/56
8<---------
не сделают они поддержку freebsd. Зачем оно им для старых ключей? Разве что энтузиасты постараются.
Следующее - про Убунту. Для Debian тоже должно сгодиться.
8<---------
http://forum.ubuntu.ru/index.php?topic=14194.0
8<---------
ветка форума по установке драйверов для на debian с ядром 2.6.18
найдено по ссылке с opennet.ru
8<---------
http://www.samaranets.ru/index.php?showtopic=1583
8<---------

сайт разработчика ключей: aladdin.ru - тоже есть форум и что скачать
блог, где описаны опыты по хасповодству на убунте: http://brandykov.blogspot.com/2008/06/ubuntu-hasp-server.html

воскресенье, 8 ноября 2009 г.

Использование дополнительных модулей iptables

1). C 2.6.14 версии ядра в него включен модуль позволяющий заглянуть внутрь пакета и построить правило, опираясь на наличие/отсутствие определенные строк - модуль string (xt_string). В дистрибутивах обычно включается и ядро пересобирать не нужно - смотреть
ls /lib/modules/2.6.24-24-generic/kernel/met/netfilter/xt_string.ko
Пример правила блокирующего icq.com:
iptables -A FORWARD -m string --string "icq.com" --algo kmp --to 655353 -j DROP
или DownloadMaster
iptables -A FORWARD -m string --string --algo kmp "DownloadMaster" -j REJECT
параметр --algo обязателен - определяет алгоритм, который будет использован для проверки совпадения строк. Варианты kmp (от Knuth-Pratt-Morris - усовершенствованный bm оптимизированным для разбора сложных строк) или bm (от Boyer-Moore - он один из наиболее быстрых в простых ситуациях). Также модуль string поддерживает и парамерт --hex-string, что позволяет производить поиск в бинарном формате.

Повышение производительности Linux на десктопе

1). Виртуальной памяти
При работе с небольшими программами и частым переключением между ними, коэффициент подкачки нужно установить 20 или 30 (переключение мгновенное, работа с ними медленная, поскольку они не большие то это будет незаметно).
При работе с громоздкими приложениями (OpenOffice, GIMP) и редким переключением между ними, коэффициент подкачки нужно установить > 70, например 80 или 85 (переключение медленное, работа с ними быстрая).
меняем в /etc/sysctl.conf - wm.swappiness=20 (установил 85)
Ограничение размера файлового кеша, чтобы занимал меньший объем ОЗУ (предотвращение свопинга) + активация принудительного сброса буфера в случае, если приложения суммарно займут более половины памяти:
vm.pagecache=90 (установил)
vm.dirty_ratio=50 (установил)
2). Выключение загрузки модуля ipv6
вставить строку blacklist ipv6 в файл vim /etc/modprobe.d/blacklist-mdv (может быть blacklist*)
3). предварительное связывание или prelink
ставим пакет и даем команду
# prelink -avmR
v - выводить информацию на экран;
a - подвергать пре-связыванию все бинарные файлы;
m - сохранить виртуальную память (нужно если библиотек очень много);
R - рандомизировать порядок следования участков памяти (повышает уровень защиты от атак на срыв стека).
После можно радовать ускорению. Ограничения:
3.1). prelink не способен увеличить скорость загрузки бинарников, скомпиленых без опции '-fPIC'. К сожалению, таких библиотек много, обычно сборщики нарочно отключают этот флаг для увеличения производительности предложения;
3.2). prelink не умееет обрабатывать библиотеки wine;
3.3). некоторые статистические библиотеки могут перестать запускаться после обработки prelink;
3.4). после установки новых приложений или библиотек операцию нужно повторить  
3.5). в Ubuntu prelink ставить не нужно - у него альтернативный метод DT_GNU_HASH (реализован на уровне корневой библиотеки (glibc)), также в Ubuntu вместо init используется система паралельно загрузки сервисов upstart.
Удаление prelink
# prelink -au
удаления пакета после этого
4). preload
Имеет смысл использовать данный демон если оперативки больше или равно 2 Гб, при меньшем количестве только помешает.
демон используется для предварительно загрузки библиотек для часто используемых приложией (холодный запуск приложений занимает меньше времени).
Ставим пакет - стандартный конфиг /etc/preload.conf работает сносно, но можно елси хочентся поменять - основные опции
секции model:
cycle - число обращений к системе для сбора статистики (дефолт 20с), если вредит производительности можно увеличить;
halflife - интервал, по истечении которого демон забывает накопленную статистику на 50% (дефолт 168 часов - неделя), уменьшать стоит если часто меняешь софт, увеличивать если месяцами и годами нет;
minsize - минамальный размер обьекта (программы, библиотеки), обрабатываемой демоном (дефолт 2000000 - 2 Мб), файлы меньшого размера демон на загружает, смысла менять нет, можно уменьшить елси кажеться что памяти хватит;
memtotal, memfree, memcached - опции взаимозаменямы - указывают на объем памяти потребляемый демоном, расчет по форумуле - вся память (memtotal) + доступная при старте (memfree) + кеш (memcached).
секции system:
mapprefix - список каталогов, файлы которых должны быть предварительно загружены (все не только бинарники и библиотеки);
exeprefix - список каталогов с бинарными файлами;
sortstrategy - способ оптимизации операций ввовда-вывода (дефолт 3 - оптимизация для жестких дисков) 1 - твердотельных, 2 - сетевые файловые системы.
теперь
# service preload reload
/var/log/preload.log - логи, /var/lib/preload/preload.state - текущее состояние preload и его кеш
5). предварительное чтение или readhead
Ubuntu и другие дистры используют систему readhead при инициализации (также как и preload заранее загружает приложения и компоненты в ОЗУ, + он частично внутри ядра и оптимизирован для ускорения запуска).
Но количество севрисов при старте может меняться и надо обновить списки файлов - параметр ядра profile перестраивает списки предварительно загружаемых файлов:
перезагрузка, - вход в меню загрузчика, и добавить в конец списка параметров ядра "profile", для загрузки - трошки покурить пока система будет грузиться в режиме профиля.
6). заморозка процесса или cryopid
чтобы ускорить запуск приложения лушче его не останавливать, а заморозить, а позже восстановить (программе не нужно будет инициализировать заново). Проге не нужно root и модификация ядра и не привязывает замороженный процес к конкретной машине. После заморозки процесс становится вроде самораспак архива и его можно лего перенести на другую машину и просто запустить. Пакет есть не в каждом дистрибутиве, с исходников так:
$ cd /tmp
$ wget http://dagobah.ucc.asn.au/wacky/cryopid-0.5.9.1-i386.tar.gz
$ tar -xzf cryopid-0.5.9.1-i386.tar.gz
$ make
$ mkdir ~/bic
$ cp freeze ~/bin
Запуск программы
$ ~/bin/freeze имя-файла pid-процесса
Проблемы: неполная поддержка сокетов и X-приложений, генерация мусора в списке процессов вместо имени восстановленной проги
7). ускоряем Ubuntu
7.1). отключение таймаута grub - /boot/grub/menu.lst  timeout=0 (было 3)
7.2). Ubuntu splash-screen, показываемый во время загрузки системы отключаеться -  /boot/grub/menu.lst убираем опиции "quiet" "splash"
7.3). IPv6 уже вшит в ядро (раньше модуль /etc/modprobe.d/aliases), надо ядру передать параметр "ipv6.disable=1" в том же /boot/grub/menu.lst
7.4). отключение проверки выхода из спящего режима (при загрузке ядро проверяет выходит ли пк из оного режима или выполняет обычную загрузку), добавить "noresume" в параметры загрузки ядра - ноутбучникам конечно этого делать не стоит
7.5). оптимизация initramfs (ram-диск хранит низкоуровневые компоненеты ос, которые должны быть доступны до монтирования корневой файловой системы). Открываем файл /etc/initramfs-tools/initramfs.conf строку "MODULES=most" меняем на "MODULES=dep". Пересобираем образы только с необоходимимы компонентами:
$ sudo update-initramfs -k all -u
после обновления ядра образы будут сгенерерированы атоматом.
7.6). отключи ненужные сервисы System -> Administration -> Services, безболезненно можно
- Bluetooth Manager - менеджер устройств Bluetooth
- Check for new hardware drivers - проверка новых версий проприетарных драйверов
- Evolution Alarm Notifier - сигнализатор прихода почты в Evolution
- Print Quene Applet - аплет очереди печати
- Tracker - служба поиска и индексирования
7.7). отключи автостарт ненужных приложений System -> Preferences -> Applications startup как пример апплет bluetooth. Запуск остальных можно оптимизировать так - редактирования строки каждого из них так:
sh -c "sleep 10; exec bluetooth-applet"
sh -c "sleep 10; exec /usr/lib/evolution/2.28/evolution-alarm-notify"
то есть для каждого следующего нужно число увеличить на 10.
8). запуск тяжеловесов
8.1). OpenOffice.
Tools -> Options раздел Memory значение для "Number of steps" 20 (уменьшение истории отмены), "Graphics cache" устанавливаем "Use for OpenOffice.org" 128, "Memory per object" 20. В подсекции "Java" убираем галочку "Use a Java runtime enviroment"
8.2). Firefox
удаляем ненужные и редко используемые плагины, оптизимировать базу sqlite, которая использует для хранения данных профиля
$ find ~/.mozilla/firefox/ -name *.sqlite -exec sqlite3 {} VACUUM \;
делать нужно постоянно раз в неделю например - потому что база растет и захламляется