LINUX.ORG.RU

Избранные сообщения slowpony

Полнодисковое шифрование (cryptsetup) c UEFI и NVME

Форум — Security

Добрый день. До недавнего времени всегда без проблем делал полнодисковое шифрование на компах с Debian. По стандартной схеме:

  • ставим систему на флешку с разделами / и swap, /boot в раздел другой флешки, которая затем будет загрузочной;
  • после установки грузимся с этих двух флешек;
  • шифруем диск, раскатываем на нем lvm (lv-root, lv-swap), header диска сбрасываем в папку на загрузочную флешку, туда же ключи, место под header’ом затираем;
  • rsynk’ом синхронизируем систему с первой флешки на зашифрованный диск;
  • в crypttab на диске прописываем подключать lv-root и где брать header и ключи; во fstab - вместо UUID корня и swap - lv-root, lv-swap;
  • update-initramfs, в grub - новый путь к корню (lv-root вместо UUID).

Перезагружаемся и все работает.

Уже неделю бьюсь над реализацией подобной схемы на компах с UEFI и NVME. Другие купить уже просто не продают, буржуи.

Ставлю debian buster, пробовал также последнюю ubuntu.

На загрузочной флешке создал дополнительно этот долбаный EFI-раздел. Вроде система встала.

При update-initframs варнинги, что он шифрованных разделов в системе нет, удалите мол cryptsetup-initramfs за ненадобностью.

После перезагрузки - Busybox и (initramfs).

Уже и chroot’ился в диск после синхронизации, делая update-initramfs из-под chroot.

Накопал, что в /etc/cryptsetup-initramfs/conf-hook теперь не надо делать CRYPTSETUP=y, а в /etc/initramfs-tools/conf.d/cryptsetup надо добавить:

CRYPTSETUP=yes export CRYPTSETUP

а в /etc/default/grub: GRUB_ENABLE_CRYPTODISK=y

Все - как мертвому припарка.

Получал странные результаты.

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

То вроде все прописано как надо, но при загрузке (когда вторая флешка вставлена), он потупит и грузится, монтируя корнем ее. Где он ее берет, если в crypttab и во fstab прописан диск?

Какой-то полтергейст. Но четкое ощучение, что во всем виноват EFI и NVME.

Я что-то пропустил в шифровании? Информации по особенностям реализации вышеизложенной схемы на новых компах не нашел. Очень прошу ткнуть пальцем или примерно объяснить в чем заковыка.

 , ,

Neuro75
()

Английский

Форум — Talks

Посоветуйте блог или канал по английскому наподобие https://phonetic-fanatic.ru

Интересует такой же фанатичный подход к английскому.

Посоветуйте ещё хороший курс (можно видео) по истории английского.

Материалы желательно на русском, так как на слух английский воспринимается пока не очень.

 

scanner
()

Создание загрузочных образов boobstrap v1.0

Новости — Open Source
Группа Open Source

Хочу представить вашему вниманию фреймворк под названием boobstrap, написаный на POSIX shell, для создания загрузочных образов с дистрибутивами GNU/Linux. Фреймворк позволяет пройти весь пусть в три простых шага: от развёртывания системы в chroot, создания initramfs-образа включающего в себя систему из chroot, и в конечном счёте загрузочного ISO-образа. boobstrap включает в себя три утилиты mkbootstrap, mkinitramfs и mkbootisofs соответсвенно.

( читать дальше... )

>>> Получить исходный код

 

Spoofing
()

Вопрос про программы-таймеры

Форум — General

Подскажите в какую программу можно забить такие последовательности для выпечки хлеба (образно):

«Багет»:

- смешать воду и муку
- ждать 2 часа
- замесить тесто
- ждать 1 час
- ламинация
- ждать 1 час
- сложить тесто
- ждать 45 мин.
и т.д.
«Чиабатта»:
- смешать воду и муку
- ждать 2 часа
- замесить тесто
- ждать 1 час
- ламинация
- ждать 1 час
- сложить тесто
- ждать 45 мин.
и т.д.
...

И в дальнейшем, когда я захочу испечь «Багет», я бы зашёл в эту программу и нажал одну кнопку, и запустилась бы вся эта последовательность. С визуальными, звуковыми оповещениями, с повтором индикации (snooze).

Спасибо заренее.

 , ,

devorg
()

Реальные вопросы на собеседовании

Форум — Development

Задавайте только реальные вопросы с собеседования. Кто хочет может отвечать на эти вопросы, задавший вопрос должен ответить зачтено или нет и провести разбор ответа, указать на ошибки и недостатки в ответе. Если зачета никто не получил в течении недели, автор вопроса сам дает ответ. Остальные естественно тоже могут участвовать в обсуждениях.

 

Lzzz
()

OpenVPN работа с сертификатами

Форум — Admin

Всем Привет!!!

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

Как правильно восстановить сертификат и возможно ли это вообще сделать без создания новых? И есть ли способ временно отключить клиентский сертификат, например убрав его из папки ключей с сервера, а потом при необходимости просто выложить в эту папку восстановив работу сертификата?

 

supp0rtmail2019
()

Загрузка любого дистрибутива в RAM

Форум — Talks

Здравствуйте мои юные кали-хакеры и любители оставаться анонимными. С утра, ковыряя VDS (пользуюсь услугами ру-провайдера), [ДАННЫЕ УДАЛЕНЫ] запрос, и [ДАННЫЕ УДАЛЕНЫ] дамп диска [ДАННЫЕ УДАЛЕНЫ].

А теперь скрипт, который из кастомного, т.е. созданного и настроенного вами chroot'а создаёт initramfs образ, готовый к загрузке и работе в tmpfs.

С ним вы можете на любой системе прямо «на лету» свичнуться в tmpfs, хоть прямо сейчас, на своём компьютере. Предварительно установив в chroot любой дистрибутив по желанию и настроив его под себя. А потом скриптом упаковать его в initramfs образ и свичнуться, да.

Для создания минимального (от слова «маленький», а не «огрызок») образа потребуется squashfs-tools. Чтобы свичнуться «на лету» нужен kexec-tools. Установите их. В ядре должны быть включены опции: CONFIG_OVERLAY_FS=y, CONFIG_SQUASHFS=y и CONFIG_SQUASHFS_XZ=y. [личное мнение: ZSTD получается размером больше, чем XZ]

Например. Хотите генту?

# mkdir gentoo_chroot/
# cd gentoo_chroot/
# wget https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20200519T155804Z/stage3-amd64-20200519T155804Z.tar.xz
# tar xf stage3-amd64-*.tar.xz
# rm stage3-amd64-*.tar.xz
# cd ..

На этом этапе мы получили ванильную генту в gentoo_chroot/. Рекомендую её настроить, хотя бы сделать chroot gentoo_chroot/ /bin/bash и установить passwd для root, иначе в систему вы не войдёте. Я не знаю, что это за особенность такая, не давать установить пароль если его нет. В моём CRUX когда пароль на root отсутствует и ты логинишься первый раз (в tty или в ssh по ключу), оно просто предлагает установить пароль. Какая тут может быть дыра в безопасности на свежеустановленной системе? Не знаю...

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

# cp -a /lib/modules gentoo_chroot/lib/modules
# cp -a /lib/firmware gentoo_chroot/lib/firmware

Ну и создадим образ наконец.

# ./mkchrootrd gentoo_chroot/ ~/gentoo_initrd

Усё. У нас теперь целая настоящая гента в gentoo_initrd файлике упакована. Давайте загрузимся же в неё скорее с текущим ядром.

# eval $(cat /proc/cmdline | cut -f 1 -d \ )
# kexec -l $BOOT_IMAGE --initrd=gentoo_initrd --reuse-cmdline
# kexec -e

Если вы не хотите делать kexec по каким-то причинам, то положите этот же образ в свой /boot, а в параметрах загрузки укажите initrd /gentoo_initrd. Перезагрузитесь и получите тот-же результат.

Ура! Гента загрузилась. Тоже самое можно проделать с любым дистрибутивом, просто установите его, настройте как вам угодно, а затем скриптом создайте initramfs образ. Я уж взял для примера Gentoo, не стал лишний раз приводить в пример CRUX.

Жмём Reset чтобы сбросить всё и загрузиться в свою систему с морально устаревшего M.2 NVMe накопителя обратно.

Перевёл свою VDS на работу в tmpfs. Диск /dev/vda отформатировал в NTFS. Рекомендую всем. 👍👍👍👍👍👍

Скрипт:

#!/bin/bash
#
# Author: Sp00f1ng <sp00f1ng@sp00f1ng.com>
# License: Public Domain
#
################################################################################
#
# mkchrootrd chroot_directory/ [initrd_image]
#
################################################################################
# 
# Depends on: squashfs-tools
# Optional:   kexec-tools
# Kernel:
#
# File systems  --->
#    <*> Overlay filesystem support
#    [*] Miscellaneous filesystems  --->
#       <*> SquashFS 4.0 - Squashed file system support
#          [*] Include support for XZ compressed file systems
#
################################################################################
#
# Example usage:
#
# mkdir gentoo_chroot/
# cd gentoo_chroot/
# wget https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20200519T155804Z/stage3-amd64-20200519T155804Z.tar.xz
# tar xf stage3-amd64-*.tar.xz
# rm stage3-amd64-*.tar.xz
#
# [.. do something else with gentoo_chroot/ like additional configuration ...]
# [ cp -a /lib/modules ./lib/modules ]
# [ cp -a /lib/firmware ./lib/firmware ]
#
# cd ../
#
# ./mkchrootrd gentoo_chroot/ ~/gentoo_initrd
#
# eval $(cat /proc/cmdline | cut -f 1 -d \ )
# kexec -l $BOOT_IMAGE --initrd=gentoo_initrd --reuse-cmdline
# kexec -e
# 
# Have fun and happy hacking day 1 <3 <3 7 !

panic() {
	if [ -e "$TMP" ]; then
		rm -rf $TMP 2>/dev/null
	fi
	exit ${1:1}
}

got_help() {
	grep ^\# "$0"
}

got_cmdline() {
	while [ "$1" ]; do
		if [ ! -n "$CHROOT_DIR" ]; then
			CHROOT_DIR="$1"
			shift
			continue
		fi
		if [ ! -n "$INITRD_IMG" ]; then
			INITRD_IMG="$1"
			shift
			continue
		fi
		shift
	done
}

cp_bin() {
	local src="$1"
	local dst="$2"
	local dep=""

	if [ "$dst" = "" ]; then
		dst="$src"
	fi

	if [ -e "$TMP$dst" ]; then
		return
	fi

	install -D -m 0755 "$src" "$TMP$dst"

	for dep in $(ldd "$src" 2>/dev/null | grep -o '/.* '); do
		cp_bin "$dep"
	done
}

mk_env() {
	for dir in proc sys dev run mnt overlay; do
		install -d $TMP/$dir
	done

	for dev in console tty tty1 null; do
		cp -a "/dev/$dev" "$TMP/dev/$dev"
	done

	for bin in sh switch_root mount umount mkdir rmdir; do
		cp_bin "$(which $bin)"
	done

	touch $TMP/init
	chmod +x $TMP/init

	cat > $TMP/init << EOF
#!/bin/sh
mount -t proc none /proc
echo "0" > /proc/sys/kernel/printk
mount -t sysfs none /sys
mount -t devtmpfs devtmpfs /dev
mount -t tmpfs none /run
mount -t tmpfs tmpfs /overlay
lowerdir="/lower"
upperdir="/overlay/upper"
workdir="/overlay/work"
mkdir -p \$lowerdir
mkdir -p \$upperdir
mkdir -p \$workdir
mount -t squashfs -o ro /root.sqfs \$lowerdir
mount -t overlay -o ro,lowerdir="\$lowerdir",upperdir="\$upperdir",workdir="\$workdir" overlay /mnt
umount /proc
umount /sys
umount /dev
umount /run
exec switch_root /mnt /sbin/init
EOF
}

main() {
	CHROOT_DIR=""
	INITRD_IMG=""

	got_cmdline "$@"

	if [ ! -n "$CHROOT_DIR" ] || [ ! -n "$INITRD_IMG" ]; then
		got_help
		panic 0
	fi

	if [ ! -d "$CHROOT_DIR" ]; then
		echo "'$CHROOT_DIR' is not directory."
		panic 1
	fi

	if [ ! -x "$(which mksquashfs)" ]; then
		echo "'mksquashfs' squashfs-tools not found."
		panic 1
	fi

	mk_env

	mksquashfs $CHROOT_DIR $TMP/root.sqfs \
		-b 1048576 -comp xz -Xdict-size 100%

	cd $TMP
	echo "Building Initial RAM Disk [$INITRD_IMG]"
	find . -print0 | cpio --null --create --format=newc --verbose > "$INITRD_IMG"
	echo "Done [$INITRD_IMG]"
}

trap "panic" INT HUP QUIT TERM EXIT

readonly MKCHROOTRD_COMMAND="$0"
readonly MKCHROOTRD_VERSION="1.0"

TMP=$(mktemp -d)

main "$@"

# EOF

 mkchrootrd,

Spoofing
()

Интересные книги по внутренностям линукса

Форум — Talks

Интересно, какие книги можно почитать по внутренностям линукса?

Особенно меня интересуют новшества, типа cgroups v2, виртуальной машины беркли, новые неймспейсы и их особенности, нововведения в systemd, современный SELinux, IMA+(v)TPM, асинхронная работа с дескрипторами, новые планировщики перегрузки TCP, современный Xen с его встроенными драйверами, блочная и файловая подсистемы.

Нужна не только теория, но и возможность реального применения.

 , , , ,

aafedorov1989
()

Docker vs LXD(LXC)

Форум — General

Хочу сделать ремарку, что я вообще в этом не специалист и разбирался со всем на ощупь.

Так уж случилось что пришлось столкнуться с контейнерами. Решил освоить для отделения мух от котлет разделения девелоперской машины и рабочего сервера для локальных проектов. Хотел настроить git и LSP на сервере, и выбор пал на текущие решения контейнеризации.

Когда-то использовал Docker для разворачивания отдельного приложения из образа и были некоторые проблемы с монтированием папок в него (может быть вообще не так нужно было делать), хотел сделать общую директорию для хоста и гостя, в итоге наткнулся на огромнейшее количество костылей для этого и остального.

Сейчас создал контейнер в LXD и мне это очень понравилось, всё стало буквально из коробки, для непривелигилированого контейнера просто добавил юзера в группу lxd.

Я понимаю что Docker более ориентирован на контейниризацию приложений, но всё же хотелось сравнить с контейниризацией ОС.

Поскольку Docker переехал на свои рельсы, я так понимаю, ради кроссплатформенности, то в чём плюсы и минусы Docker и LXD на данный момент. В интернете все нахваливают Docker, но я не пойму за что, ведь на мой дилетантский взгляд, LXD ничем не уступает.

UPD: Если туплю, то не сильно сердитесь. Пятница же!

 , , ,

Artamudo
()

Как понять, отчего программа тормозит?

Форум — General

Иногда у меня сильно тормозят некоторые программы (chrome/chromium, файловые менеджеры на разных тулкитах и даже gvim иногда). Иногда я подключаюсь к программе при помощи strace и пытаюсь понять, в чём причина тормозов. Как правило, безуспешно — мне не хватает базовых знаний (я не программист).

Вопрос: что (кроме man strace) нужно знать для поиска тормозов ПО?

Можете накидать годных ссылок на описание процесса решения проблем при помощи strace (и другого ПО)?

 

Harliff
()

Что необходимо изменить в настройках SoftEther VPN Server, чтобы он так сильно не нагружал CPU?

Форум — Admin

Подскажите, пожалуйста, что необходимо изменить в настройках SoftEther VPN Server, чтобы он так сильно не нагружал ЦП?

Имеется SoftEther VPN Server настроен на Local Bridge (VPS ОС Debian GNU/Linux 9.7). SecureNAT выключен. Шифрование и сжатие тоже выключено (это отображено в админке сервера в свойствах сессии клиента). В качестве сервера DHCP выступает dnsmasq. Все настроено, примерно, как описано здесь:
https://hd.zp.ua/ustanovka-softether-na-ubuntu-ili-debian/

К SoftEther VPN Server подключен MikroTik как L2TP клиент, как описано здесь, но без IPsec:
https://hd.zp.ua/puskaem-trafik-s-mikrotik-cherez-softether/

Через этот VPN подключено 20 IP камер общим трафиком в 30 Мегабит/сек, по схеме:

Запрос (команды):

player --> eth0 --> tap_soft --> MikroTik --> IPcam

Ответ (видео):

IPcam --> MikroTik --> tap_soft --> eth0 --> player

При этом 2 ядра Intel(R) Xeon(R) Gold 6140 CPU @ 2.30GHz в сумме нагружены на 65% (ядро №1 ~ 20% и ядро №2 ~ 45%) процессом vpnserver.

Никаких сервисов, кроме тех, которые связаны с SoftEther VPN, на VPS нет.

Очень нужна Ваша помощь в этом вопросе.

Заранее спасибо.

 , , , ,

pospelov
()

Слушайте, это какой-то маргинальный способ установки линукса? Большинство пользуется инсталлятором?

Форум — Linux-install

Сабж

1. Создаём на диске таблицу разделов GPT

2. Создаём FAT32-раздел на пару сотен мегабайт

3. Скачиваем из интернета любой UEFI-загрузчик (нам нужен сам загрузчик, это один бинарный файл!)

4. Переименовываем и кладем этот файл на созданный раздел по адресу /EFI/Boot/bootx64.efi

5. Создаём текстовый конфиг, кладем его там, где загрузчик ожидает его увидеть (настройка и местоположение конфига зависят от конкретной реализации загрузчика, эта информация доступна в интернете)

6. После перезагрузки видим меню загрузчика (Если на диске установлена Windows 8 или 10 — с большой вероятностью это руководство сокращается до пунктов 3 — 5.)

Есть ли у данного способа хоть какие-то преимущества, или это тупиковый путь развития? Последний раз ставил Линукс 4 года назад, на mbr (и все 4 года Линукс исправно работал без переустановки).

 , ,

tiinn
()

Что должен уметь делать администратор postgres?

Форум — Admin

Привет.

Занимаюсь изучением Postgres. Можете написать список типичных задач, которые должен уметь выполнять администратор баз данных postgres?

Типа этого:

  • Снимать дампы
  • Разворачивать дампы
  • Создавать пользователей
  • Редактировать pg_hba.conf и т.д.

Спасибо!

 

iljuase
()

Запретить процессу использовать swap

Форум — Admin

Есть ли какой-то действенный способ запретить некоторому процессу использовать swap? Т е сделать так, что бы он никогда не вытеснялся из озу на диск?

 

Serbis
()

Программеры есть? А можете на халяву реализовать небольшой проект? Думаю можно даже на скриптовом языке. Идея: «Дерево дырок»

Форум — Development

Идея: Компактный индекс съёмного носителя.
Реализация: Делать дырявую копию дерева каталогов/файлов - сохраняя владельцев/время/права доступа. Затем делать .sq из этого дерева и при желании иметь возможность подмонтировать и посмотреть это дерево.
В течение 25+ лет работы ИТшником - набралось масса барахла на съёмных носителях. Есть куча флешек, куча винтов... Надо это как то индексировать.

Изначально спрашивал в Админ форуме. Думал это уже реализовано - но никто не подсказал пруфлинков. Лишь некий driano32 в Ветке: Создать ISO со служебной информацией из дерева каталогов. Чем? дал простейший скрипт генерящий дерево дырок. Но работает оно очень долго....
Мог бы кто то реализовать эту идею в одной программе на скриптовом языке? У меня в экспериментах это стало выглядеть
tree-hole.sh:

#!/bin/sh
#Упаковка Фантома каталога
timestamp=`date +%y%m%d-%H%M%S`
echo $timestamp
if [ "$1" = "" ]; then
echo "Запускать надо так: $0 <Каталог> <Архив/дырка>"
else
echo "Аргументы = $1 $2"
fi

DIR_PREFIX="/opt/pub/_T3T/Data/tree-$2"
SOURCE=$1
TARGET=$2
CUR_DIR=`pwd`
if [ -d "$DIR_PREFIX" ]; then
    echo $DIR_PREFIX" is already created, skipping."
  else
    mkdir "$DIR_PREFIX"
    chmod -fR 755 "$DIR_PREFIX"
fi
echo '#/bin/sh' > "$DIR_PREFIX/mod_script"
echo 'DIR_PREFIX='$DIR_PREFIX >> "$DIR_PREFIX/mod_script"
echo 'if [ -f "$1" ]; then' >> "$DIR_PREFIX/mod_script"
echo '  attrib=`stat -c %a -- "$1"`' >> "$DIR_PREFIX/mod_script"
echo '  owner=`stat -c %U -- "$1"`' >> "$DIR_PREFIX/mod_script"
echo '  group=`stat -c %G -- "$1"`' >> "$DIR_PREFIX/mod_script"
echo '  size=`stat -c %s -- "$1"`' >> "$DIR_PREFIX/mod_script"
echo 'dd if=/dev/null of="$DIR_PREFIX/$1" bs=1 seek=$size && chown $owner:$group -- "$DIR_PREFIX/$1" && chmod $attrib -- "$DIR_PREFIX/$1"' >> "$DIR_PREFIX/mod_script"
echo 'fi' >> "$DIR_PREFIX/mod_script"
find $SOURCE -type d -exec mkdir "$DIR_PREFIX"/"{}" \;
find $SOURCE -type f -exec sh "$DIR_PREFIX/mod_script" "{}" \;
rm -f $DIR_PREFIX/mod_script
#genisoimage -allow-leading-dots -allow-lowercase -allow-multidot -iso-level 4 -l -o `date +%s`.iso "$DIR_PREFIX"
echo Start: $timestamp|tee -a $2.time
timemid=`date +%y%m%d-%H%M%S`
echo Mid: $timemid|tee -a $2.time
mksquashfs "$DIR_PREFIX/$1" $2.sq
timeend=`date +%y%m%d-%H%M%S`.
echo End: $timeend|tee -a $2.time
###Fucking Sheet rm -rf $DIR_PREFIX


Небольшой каталог в 32Gb оно за 6 минут ужимает в 69килобайтный .sq,а вот 1.7Тб каталог крутит со вчерашнего вечера...

Может кто поддержит и реализует эту идею? Тогда у общественности появится механизм индексации носителей

Этот механизм можно потом и развить - скажем добавляя в дерево md5 суммы файлов исходного каталога и получить механизм верификации изменений в ФС. Можно так и хранить долгоживущую дырку и инкрементально апдейтить хэши в ней.

Вот как то так...

P.S. Пробовал разные каталогизаторы (не помню всех имён), но ни один из них (даже cdcat из официального Debian репозитария) не смог переварить дерево 1.7Тб и кажется даже дерево 500Гб.
Просто работал, работал, работал и вдруг умирал...

 , ,

n0mad
()

Зачем при SSL-рукопожатии передаётся имя моего компа?

Форум — Admin

Смотрел что передаётся по сети при помощи Wireshark. Всякая фигня передаётся. Понятно что зашифровано всё. Но перед началом шифрованной передачи данных с каким-нибудь HTTPS-сайтом, мой браузер соединяется с root-servers.net и verisign-grs.com. А также передаёт имя моего хоста 0_o

Зачем? Вот просто зачем? Какая ему разница? Я так понимаю, в винде имя хоста всегда дефолтное, и никто его не меняет (и это не мешает отличать одного виндоюзера от другого). А в линуксе мы пишем что-то вроде «вася-ПК», и это всегда передаётся, чем делает наши запросы уникальными. Чем это лучше телеметрии? Последняя хотя бы обезличенная (якобы)

Блин, не удивлюсь если SSL-сервер ещё и серийник материнки просит

 , ,

ZenitharChampion
()

Научите запускать процессы в фоне

Форум — Admin

Я почитал в гугле про nohup, screen, & и всякое-разное, но так и не понял, как делать правильно/кошерно. Суть задачи: подключаюсь по ssh, иду в одну папку, делаю npm run start, например, процесс запускается, консоль остаётся свободной, иду в другую папку, делаю что-то подобное, иду в третью, ну вы понели. Процессы на фоне шуршат, и к консоли не привязаны. Ну ещё бы здорово было бы, чтобы я потом мог эти процессы различить/прибить не только по pid. Как это делать?

 , ,

beaver
()

Android - быстрые offline карты без мусора?

Форум — Mobile

Желательно openstreetmap, что пробовал:

maps.me - давным давно была адекватная версия, которая стояла на старом телефоне и померла вместе с ним, даже на 4pda ее откопать не удалось, новые версии посточнно орут: «вруби gps, вруби gps с***».

yandex.maps - нет, просто нет. Они кончено быстрые и могут в offline, но откровенно перегружены лишним барохлом.

osmand - тормоз, просто тормоз.

 ,

Deleted
()

Git и SVN

Форум — Development

На Лоре (и не только) нередко можно услышать что-то вроде: «SVN экскременты мамонта, используй Git (ну или Hg)».

Но объясните мне, какая логика стоит за такими высказываниями?

Ведь Git/Hg это распределенные VCS, а SVN — централизованная. Распределнные системы не лучше и не хуже централизованных — они просто разные.

 , ,

Deleted
()

SSH тунель!

Форум — Admin

Добрый день! Есть какая информация по теме ssh тунелирования или как говорят vpn для бедных! Есть машина с серым адресом и инетом, и надо соединить ее с другой машиной с сером адресом и белым на loopback! как и что пока трудно представляю!

 ,

Zub80
()