Готовое решение для защищённого хранения и синхронизации закладок и паролей Firefox не на чужом сервере, а у себя на роутере в зашифрованном виде.
Выбор конкретного набора способов защиты/шифрования в принципе не обсуждается, холиварьте в другом месте.
На ПК ставим из дополнений Firefox 3,4 дополнение SyncPlaces (текущее 4.2.0).
Для обеспечения реальной безопасности, защитить нужно:
1. хранилище на роутере (ложим туда только уже пошифрованный на ПК контент, в SyncPlaces выбираем AES 192-бит, шифровать jSON)
2. доступ к роутеру и канал связи роутер - ПК (mod_auth + SSL - спрашивать пароль, и поскольку пароль все равно передаётся в открытом виде - делать это только через туннель SSL)
3. хранилище на ПК - пароль программа SyncPlaces хранит в общем хранилище паролей Firefox, поэтому либо выбираем Firefox Portable и помещаем его целиком в зашифрованный контейнер либо шифруем весь ПК (TrueCrypt например), либо используем другие способы защиты хранилища паролей Firefox.
Установка lighttpd: http://wl500g.info/showpost.php?p=97393&postcount=166
Будем считать, что уже стоит, предварительно настроенный для rtorrent. Наша конфигурация никак не будет мешать уже текущему контенту веб браузера.
Кратко по авторизации и SSL, редактируем lighttpd.conf, у кого уже настроено, можно пропустить:
нужно дополнительно включить модули:
Code:
server.modules = (
"mod_access",
"mod_auth",
Для SSL ставим openssl и правим в lighttpd.conf:
Code:
#### SSL engine
ssl.engine = "enable"
ssl.pemfile = "/opt/etc/lighttpd/lighttpd.pem"
Для авторизации правим в lighttpd.conf:
Code:
#### auth module
## read authentication.txt for more info
auth.backend = "htdigest"
auth.backend.htdigest.userfile = "/opt/etc/lighttpd/.passwd"
auth.require = ( "/" =>
(
"method" => "digest",
"realm" => "remote_webui", #заголовок окна запроса пароля
"require" => "valid-user"
)
)
Генерируем пароль для пользователя username:
Code:
htdigest -c /opt/etc/lighttpd/.passwd remote_webui username
Генерируем SSL сертификат для нашего веб-сервера:
Code:
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 3650 -nodes
Проверяем, по адресу https://ip_нашего_роутера браузер должен увидеть самовыданный сертификат, если вы его не подписали известным, то добавьте в разрешённые исключения для браузера.
Веб-сервер должен спросить пароль, и пустить вас к содержимому как и раньше.
Теперь правим lighttpd.conf собственно для обеспечения работы механизма DAV:
включаем модуль
Code:
server.modules = (
"mod_webdav",
отлавливаем в адресной строке /dav/ и включаем для этой папки WebDAV с правом записи
Code:
#for DAV
$HTTP["url"] =~ "^/dav($|/)" {
webdav.activate = "enable"
webdav.is-readonly = "disable"
}
В этой строчке указать максимальный размер запроса (файлы синхронизации закладок бывают немаленькие)
Code:
server.max-request-size=1024000
Для отладки ошибок конфигурации временно нужно:
Code:
server.errorlog = "/opt/var/log/lighttpd/error.log"
## enable debugging
debug.log-request-header = "enable"
debug.log-response-header = "enable"
debug.log-request-handling = "enable"
debug.log-file-not-found = "enable"
Создаём в корне каталога веб-сервера папку /dav/ и даём права записи процессу веб-сервера в неё. Можно включить виртуальные хосты и/или разместить папку в другом месте, нужно только переписать правило $HTTP["url"] =~ "^/dav($|/)" по своему вкусу.
Настраиваем SyncPlaces:
1. предварительно сохраняем все закладки, на всякий случай
2. устанавливаем протокол https, указываем адрес сервера вместе с портом
3. тип данных для синхронизации JSON, путь /dav/syncplaces.json, если решаем сохранять пароли, то дописываем отдельно путь /dav/passwords.json - одним словом путь надо указываеть относительно корневой папки вебсервера(виртуалхоста).
4. Ставим галочки: "безопасная" пересылка (под безопасной имеется ввиду алгоритм аккуратного разрешения конфликтов синхронизации данных), шифровать данные, алгоритм AES 192-bit, никаких workarounds не надо, всё должно работать в полном объёме
5. Запускаем отправку закладок - в папке /корень_веб_сервера/dav/ должен появится syncplaces.json, passwords.json и их SHA1 хеши.
В случае проблем смотрим еррор-лог, он у нас детальный, обычно либо промахнулись с путями папок либо нет доступа на запись\чтение где либо
Пароль для доступа к роутеру дополнение берёт из общей базы паролей Firefox, SSL сертификат должен быть в разрешающих исключениях браузера
6. После отладки не забываем отключить, чтобы не мусорить
Code:
## enable debugging
#debug.log-request-header = "enable"
#debug.log-response-header = "enable"
#debug.log-request-handling = "enable"
#debug.log-file-not-found = "enable"
Для сотни закладок синхронизация по локалке, даже при сильно загруженном роутере должна происходить за секунду.
P.S. Прошивка Олега 1.9.2.7-d