среда, 28 ноября 2012 г.

Openfire, как увеличить Java Memory в Freebsd


Часто в Openfire начинает не хватать памяти используемой по умолчанию для Java. При этом клиенты отваливаются, сервис перестает отвечать. через вебадминку изменить параметр нельзя, но можно исправить его в стартовом файле.
В FreeBSD это файл /usr/local/etc/rc.d/openfire.

Параметр ${openfire_javargs:='-Xmx512M'} меняем значение 512 на необходимое нам и перезапускаем openfire.

понедельник, 22 октября 2012 г.

Настрока IPSec между PFSense и FreeBSD

PFSense - дистрибутив основанный на FreeBSD очень удобен при потребности быстрого разворачивания сетей. Все настраивается через вебинтерфейс, работает стабильно, функций имеет довольно много. При наличии сети филиалов которая разрастается довольно быстро, оправданно его использование.
Шлюз основной сети можно поднять на FreeBSD поскольку сдесь может понадобится более гибкая управляемость, а на остальных офисах ставить PFSense и обьединить все посредством IPsec.

Сначала настройка FreeBSD (Версия 9.0)


Для поддержки IPsec компилируем ядро со следующими опциями:


options  IPSEC
options IPSEC_NAT_T
device crypto

Также должно быть включено устройство:

device gif 
#(В GENERIC оно включено по умолчанию, но не будет лишним проверить)

После компиляции устанавливаем IPsec:

cd /usr/ports/security/ipsec-tools/
make config

Включаем следующие опции:


















make install clean

Если все успешно установилось создаем папку /usr/local/etc/racoon и в ней создаем три конфигурационных файла:

racoon.conf
spd.conf
psk.txt

В файле psk.txt будут храниться ключи, поэтому ограничиваем к нему доступ

chown root:wheel psk.txt
chmod 600 psk.txt

В racoon.conf записываем конфигурацию:


path pre_shared_key "/usr/local/etc/racoon/psk.txt"; #путь к нашему файлу с ключами
log debug2; # уровень логирования
path certificate  "/usr/local/etc/racoon"; # путь к сертификатам, для нас необязателен


listen
{
adminsock "/var/db/racoon/racoon.sock" "root" "wheel" 0660;
isakmp 8.8.8.8 [500]; #адресс внешнего интерфейса с тунелем
isakmp_natt 8.8.8.8 [4500]; #
}


remote 9.9.9.9 # адресс и далее секция с опциями удаленной стороны
{
ph1id 1;
exchange_mode aggressive;
my_identifier address 8.8.8.8; # наш внешний адресс
peers_identifier address 9.9.9.9; # адресс удаленного сервера
ike_frag on;
generate_policy = off;
initial_contact = on;
nat_traversal = off;
support_proxy on;
proposal_check claim;

proposal # аутентификация и шифрование
{
authentication_method pre_shared_key;
encryption_algorithm 3des;
hash_algorithm md5;
dh_group 1;
lifetime time 28800 secs;
}
}

sainfo subnet 1.1.1.1/24 any subnet 2.2.2.2/24 any #внутренние подсети 1 наша 2 удаленная
{
remoteid 1;
encryption_algorithm 3des;
authentication_algorithm hmac_md5;
lifetime time 28800 secs;
compression_algorithm deflate;
}




#И так повторяем для кажого соединения начиная с опции remote

Теперь файл spd.conf


flush;
spdflush;
spdadd 1.1.1.1/32 1.1.1.1/32 any -P in none;
spdadd 1.1.1.1/32 1.1.1.1/32 any -P out none;

#следующие две строки нужно добавлять для кажого соединения 
#с соответвущими адрессами
spdadd 1.1.1.0/24 2.2.2.0/24 any -P out ipsec esp/tunnel/8.8.8.8-9.9.9.9/unique;
spdadd 2.2.2.0/24 1.1.1.0/24 any -P in ipsec esp/tunnel/9.9.9.9-8.8.8.8/unique;



Далее нуждо создать интерфейс для тунеля, для этого добавляем в rc.conf


gif_interfaces="gif0"
gifconfig_gif0="8.8.8.8 9.9.9.9"
ifconfig_gif0="inet 1.1.1.1 2.2.2.2 netmask 255.255.255.0"

#Включаем IPSec

ipsec_enable="YES"
ipsec_program="/usr/local/sbin/setkey"
ipsec_file="/usr/local/etc/racoon/spd.conf"
racoon_enable="YES"
racoon_flags="-f /usr/local/etc/racoon/racoon.conf -l /var/log/racoon.log" #Для логов



#добавляем маршрут 

static_routes="remote"
route_remote="2.2.2.0 2.2.2.1 255.255.255.0"


в файл psk.txt записываем адресс удаленного сервера и секретный ключ

9.9.9.9    psk@key

Теперь можно стартовать сервис для этого достаточно перегрузиться или же набираем ряд следующих комманд:

/etc/netstart

setkey –P –f /usr/local/etc/racoon/setkey.conf

route add 2.2.2.0 2.2.2.1 255.255.255.0

/usr/local/etc/rc.d/racoon start



На основном сервере все работает.


Настройка PFSense.

В секции VPN выбираем IPsec и создаем новое подключение с такими же настройками как на FreeBSD:















Рис.2







Добавляем фазу 2















Рис.3






Ставим галочку Enable IPsec и все готово.
Конечно не забываем добавить правила для фаерволлов обеих сторон, в соответствии со своими нуждами.

Дополнение.

Появился шлюз на CISСO RV042G Gigabit Dual WAN VPN Router. С  ним туннель поднялся тоже довольно легко, не сервере ничего не пришлось править, только создать новое подключение по примеру выше но без gif.
Ну и настройки на роутере:

Тип - Gateway To Gateway



сохраняем. Жмем Connect и через пару минут ожидания все готово.


суббота, 11 февраля 2012 г.

Редактирование iso образа в Ubuntu



Снимаем образ с компакт-диска. Работа с образом быстрее, да и резервная копия никогда не помешает.

dd if=/dev/cdrom of=cdimage-orig.iso bs=2048

Создаём папку для монтирования образа, аналог «подключения виртуального диска» в виндах. В зависимости от места создания, возможно, придётся делать от имени суперпользователя. Лично у меня эта папка была создана однократно и именно для таких целей - для подключения образов дисков.
 
sudo mkdir /mnt/vcd

Монтируем образ компакт-диска в папку. Только от имени суперпользователя.
 
sudo mount cdimage-orig.iso /mnt/vcd -o loop

Создаём папку для копирования содержимого диска, в которой будем изменять файлы. Путь к cd-dir должен быть указан либополный, либо относительно текущего каталога. У меня обычно это папка в домашнем каталоге.
 
mkdir cd-dir

Копируем файлы с образа в папку.
 
cp /mnt/vcd/* cd-dir -R

Размонтируем образ, он нам больше не нужен. Тоже от имени суперпользователя. Если этого не сделать сейчас, образ будет автоматически размонтирован при перезагрузке.
 
sudo umount /mnt/vcd

Всё содержимое компакт-диска сейчас у нас находится в папке cd-dir. Редактируем его по усмотрению.

Сборка каталога в образ

А вот эта задача уже посложнее. Стандарт загрузочного компакт-диска подразумевает наличие на нём двух файлов: загрузочного каталога и собственно образа загрузчика.
Например, в Ubuntu 8.04 эти два файла находятся в папке isolinux. Образ загрузчика - isolinux.bin, загрузочный каталог - boot.cat.
Загрузочный каталог - файл размером 2 килобайта, его содержимое роли не играет.
Особый интерес представляет образ загрузчика.
Немного теории.
BIOS не умеет грузиться с CD-ROMа, но умеет считывать с него информацию. Специально для загрузки с компакт-дисков была введена спецификация El Torito, El Torito Bootable CD Specification. Суть её в следующем: BIOS сканирует все дисковые системы компьютера, и по стандарту ISO9660 (формат хранения данных на компакт-дисках), эмулирует образ загрузчика как жёсткий диск (или флоппик), после чего происходит загрузка с этого диска в обычном режиме.
Нужно найти оба этих файла, после чего собрать образ компакт-диска из каталога:
mkisofs -r -iso-level 4 -b boot.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o cdimage-new.iso cd-dir/
boot.bin - полный путь к образу загрузчика относительно корня компакт-диска
boot.cat - полный путь к загрузочному каталогу относительно корня компакт-диска
-no-emul-boot - нужен в том случае, когда образ загрузчика не является точным образом загрузочного флоппи, включая размер
-boot-load-size 4 - задаёт число загрузочных секторов, ключ нужен для совместимости с «глючными» биосами, которых много. Если параметр будет не 4, то некоторые экземпляры откажутся запускаться
-boot-info-table - также для совместимости
Получившийся диск записываем командой:
cdrecord cdimage-new.iso

Умолчания

/dev/cdrom - файл-устройство привода компакт-дисков
cdimage-orig.iso - образ диска до редактирования
cdimage-new.iso - образ отредактированного диска
/mnt/vcd/ - каталог для монтирования образов
cd-dir - каталог для редактирования содержимого диска

Дополнительно

ISO9660 - стандарт файловой системы для хранения данных на дисках CD. Формат введён для независимости доступа к дискам от рабочей платформы (Windows, Linux, и т.д.)
Есть несколько уровней спецификации:
1. Формат имён файлов - 8.3, как в DOS. Не больше 8 символов в имени каталога. Не больше 8 вложенных каталогов. В именах используются только буквы латинского алфавита. Фрагментация файлов не допускается.
2. Имена файлов ограничены 32 символами. Набор символов в именах неограничен.
3. Допускается фрагментация файлов (необходимо для пакетной или инкрементной записи CD).
4. (ISO9660-2) Максимальная длина пути - 207 символов. Нет ограничения на вложенные папки. Символа «.» (точка) в именах файлов не носит особого значения.
Общее ограничение ISO9660 - размер файла не может превышать 2GB.
Расширение стандарта, называемое Joliet, добавляет поддержку длинных имён файлов и не-ASCII символов в именах.


Не мое. Взял здесь http://www.it-simple.ru/?p=550