25 апр. 2016 г.

Настройка сервера на Scaleway

Для создания сервера на Scaleway потребуется зарегистрироваться, ввести данные своей карты для оплаты, а также сгенерировать ssh ключи. Последние нужны для первоначальной авторизации на свежесозданном сервере.
Как сгенерировать ssh ключ, много написано, ищите ssh-keygen. Под windows можно попробывать Putty, но у меня как-то с ним не срослось. Мне же удобнее использовать программу JuiceSSH на android, удобный клиент, достаточно для работы в терминале.

Создаем в JuiceSSH идентификатор root, генерируем секретный ключ RSA, далее через меню на созданном идентификаторе экспортируем открытый ключ, который необходимо вставить в Поле SSH keys на странице Credentials, жмакаем Use this SSH key.

Далее переходим к созданию сервера. Я выбрал тип сервера VC1S, образ Ubuntu Xenial (16.04 latest), в Advanced Options указываем - использовать ли IPv6.

Всё. Сервер будет создан и запущен через непродолжительное время.

После его запуска, через терминал, где был сгенерирован вами ключ, в моём случае в JuiceSSH, где я создал соответствующее соединение, указал ip нового сервера, соединяемся по ssh, используя сгенерированные ключи.

После входа первым делом создаём пользователя, под которым будете работать:
# useradd -m -G wheel -s /bin/bash user

придумываем ему пароль:
# passwd user

Далее даём права sudo для нового пользователя:
# nano /etc/sudoers

дописываем строчку:
user ALL=(ALL) ALL
потом Ctrl+X, Y, Enter.

Правим конфиг сервера sshd
# nano /etc/ssh/sshd_config
где находим строчку с параметром PasswordAuthentication и приводим к виду:
PasswordAuthentication yes
тем самым разрешив вход по паролю.
При этом строку PermitRootLogin without-password предлагаю оставить в неизменном виде, данная строка запрещает вход пользователю root по паролю.

Далее дописываем конфиг следующей строкой, определяя, кто может ввойти в систему по ssh:
AllowUsers user root
потом сохраняем конфиг Ctrl+X, Y, Enter.

Если всё нормально, перезапускаем сервер sshd:
# systemctl restart sshd.service

Теперь можно перезайти под новым пользователем user по паролю.

Обновляемся..
$ sudo apt update && sudo apt upgrade

Далее, обязательно ставим firewall, например ufw.
$ sudo apt install ufw
Неоднократно сталкивался с тем, что ufw блокирует входящие соединения, даже при наличии соответствующих правил, разрешающих соединения, поэтому использую для себя правило "разрешено всё, что не запрещено".

$ sudo nano /etc/default/ufw
строку DEFAULT_INPUT_POLICY="DROP" приводим к виду DEFAULT_INPUT_POLICY="ACCEPT"

Включаем ufw:
$ sudo ufw enable
Ограничиваем число возможных попыток соединения на порт 22 для ssh:
$ sudo ufw limit 22
Если вы сменили порт на другой, то указываете другой.
Далее блокируем порты диапазоном, за исключением тех, что вам нужны. Например мне нужен ещё открытым 443 порт, поэтому делаю так:
$ sudo ufw deny 01:21/tcp
$ sudo ufw deny 01:21/udp
$ sudo ufw deny 23:442/tcp
$ sudo ufw deny 23:442/udp
$ sudo ufw deny 444:10000/tcp
$ sudo ufw deny 444:10000/udp

для протоколов tcp и udp правила блокировки диапазоном портов нужно указывать отдельно.

Просмотреть правила можно:
$ sudo ufw status numbered
где в квадратных скобкам номер правила, что позволяет по номеру удалить, например, лишнее правило командой ufw delete НОМЕР.

Для повседневной работы с сервером использую kitty.
Настраиваю перенаправлением портов в соответствующей вкладке Tunnels SSH, где в поле Source Port - нужный порт машины, где запущен kitty, например 8384, а Destination указываю как 127.0.0.1:8384, где 8384 - нужный порт на сервере.

Например, таким образом можно настроить http прокси через ваш сервер.
Для этого, устанавливаем polipo:
$ sudo apt install polipo
в настройках конфига polipo:
$ sudo nano /etc/polipo/config
находим соответствующую строку и приводим к виду:
allowedClients = 127.0.0.1
по умолчанию polipo использует порт 8123, можете изменить параметром ProxyPort.
Также отключаем дисковый кэш, разкомментировав строку:
diskCacheRoot = ""
Отключаем локальный веб-сервер polipo:
localDocumentRoot = ""
Сохраняем, включаем службу polipo и запускаем:
$ sudo systemctl enable polipo
$ sudo systemctl start polipo


Теперь с помощью kitty перенаправляем порт 8123 на 127.0.0.1:8123 и настраиваем свой браузер.
Бывает, редко, но бывает, что polipo подвисает, поэтому добавляем в crontab правило для его перезапуска раз в сутки, например в полночь:
$ sudo crontab -e
добавляем строчку:
0 0 * * * systemctl restart polipo

В дальнейшем напишу, как поднять торрент клиент transmission и программу для синхронизации файлов syncthing.

VPS на Scaleway

Где-то около полугода назад узнал из статьи на Хабре о существовании такого сервиса как Scaleway, где за 2.99 евро можно было получить настоящий «цельнометаллический» свой сервер C1 на 4-х ядерном arm процессоре, с 2 гигабайтами памяти, 1 ipv4, 50 гигов ssd, безлимитный канал. Очень и очень заманчиво.
Первым делом решил попробывать ArchLinux, так как хотелось выжать максимум из платформы. За месяц работы, то ли из-за моих кривых рук, то ли из-за погоды в Антарктиде, пару раз демон sshd падал, что очень меня расстраивало.
После экспериментов, решил поставить Ubuntu 15.10, последнюю на тот момент. Всё работало отлично. С выходом Ubuntu 16.04 LTS, а также с появлением на Scaleway линейки VPS VC1, где за те же 2.99 евро можно было получить VC1S – 2 x86 64 битных ядра, 2 гига оперативки и те же 50 гигов ssd, решил отказаться от C1 в пользу последнего. Всё же VC1S поотзывчевее, чем C1.

Кстати про VC1S:

# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 77
model name      : Intel(R) Atom(TM) CPU  C2750  @ 2.40GHz
stepping        : 8
microcode       : 0x1
cpu MHz         : 2393.902
cache size      : 4096 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 11
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon rep_good nopl pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes rdrand hypervisor lahf_lm 3dnowprefetch tsc_adjust smep erms arat
bugs            :
bogomips        : 4787.80
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 77
model name      : Intel(R) Atom(TM) CPU  C2750  @ 2.40GHz
stepping        : 8
microcode       : 0x1
cpu MHz         : 2393.902
cache size      : 4096 KB
physical id     : 1
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 1
initial apicid  : 1
fpu             : yes
fpu_exception   : yes
cpuid level     : 11
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon rep_good nopl pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes rdrand hypervisor lahf_lm 3dnowprefetch tsc_adjust smep erms arat
bugs            :
bogomips        : 4787.80
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

# cat /proc/meminfo

MemTotal:        2051352 kB
MemFree:           94428 kB
MemAvailable:    1696324 kB
Buffers:            3296 kB
Cached:          1782884 kB
SwapCached:            0 kB
Active:           958188 kB
Inactive:         904424 kB
Active(anon):      76580 kB
Inactive(anon):    33280 kB
Active(file):     881608 kB
Inactive(file):   871144 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:             26192 kB
Writeback:             0 kB
AnonPages:         76456 kB
Mapped:            16444 kB
Shmem:             33376 kB
Slab:              86204 kB
SReclaimable:      74592 kB
SUnreclaim:        11612 kB
KernelStack:        1424 kB
PageTables:         2120 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     1025676 kB
Committed_AS:     207312 kB
VmallocTotal:   34359738367 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
DirectMap4k:       12160 kB
DirectMap2M:     2084864 kB

1 мар. 2016 г.

Яндекс.Disk - почему я его использую

Что такое Яндекс.Диск описывать не буду. Хотелось бы отметить, чем он мне примечателен.
  • В Яндекс-диске нет ограничения на количество файлов, по крайней мере я его ещё не достиг. У меня на диске файлов больше 20000, что больше ограничения у мелкомягкого.
  • Доступ по webdav, поэтому в походных условиях использую активно через CarotDAV, на смартфоне синхронизиную отдельные каталоги через FolderSync.
  • Выборочная синхронизация - на ноуте синхронизирую почти всё, на работе только необходимое, на домашнем компе полностью.
  • Общие папки с другими пользователями - сделал по одной общей папке с каждым знакомым и родственником, у кого есть Яндекс-диск, сгруппировал такие папки и использую вместо почты. А то почте письмо напиши, файл прикрепи, там письмо получи, файл сохрани. Тем более удобно редактировать общие файлы. Можно сделать одну папку общей для нескольких пользователей.
  • Самое главное и удобное для меня - это поиск по файлам. Через веб-интерфейс поиск осуществляется по названиям файлов, по содержанию во многих текстовых форматах, в изображениях. К сожалению, не ищет по тексту в архивах. Иногда проще залить кучу файлов на яндекс-диск и поискать, что интересно, нежели каждый файл самому тыкать.
Из того, что не хватает:
  • нет версионности, очень хотелось бы, хотя бы ограниченную во времени;
  • нет возможности просмотра и редактирования тегов музыкальных файлов, хотя бы mp3;
  • при синхронизации между разными клиентами не сохраняет даты создания, изменения и открытия файлов. Особенно этого не хватает, когда подключаешь клиент яндекс-диска впервые, и клиент скачивает все файлы, а даты не сохранились, поэтому не найдёшь файл, созданный в прошлом году и т.п.;
  • в клиенте под андроид нет функции копирования, есть только перемещение, поэтому чтобы скопировать файл, нужно его скачать на телефон и потом закачать его в новое место.

16 февр. 2016 г.

Конвертер файлов odt в doc и другие форматы


Конвертировать массу файлов из doc, docx в формат odt возможно стандартным конвертором, встроенным в LibreOffice.
Конвертировать же обратно множество файлов из odt в doc возможно с использованием программы Bulk Converter Using LibreOffice. Хотя данная программа позволяет конвертировать из различных форматов в другие, которые поддерживаются офисным пакетом LibreOffice.
Данная программа требует установленного офисного пакета LibreOffice.
  • В поле Input Path и Output Path укажите путь к конвертируемым файлам и файлам на выходе соответственно.
  • В поле Input Format нужный исходный формат файла, например odt
  • В поле Output Format пропишите doc
  • Обязательно поставьте галку Experimental Mode, иначе в несвободные форматы конвертировать не будет.
  • В поле LibreOffice Path путь до файла soffice.exe, например: C:\Program Files\LibreOffice 5\program\soffice.exe
Ранее мною описанный способ конвертирования в данной статье в настоящее время не работает.

21 янв. 2016 г.

Оффлайн (полные) установщики некоторых программ

9 нояб. 2013 г.

Безлимитный бэкап данных с zoolz

Вот и подходит к концу 2-х годичная подписка на Crashplan. Задумался о том, продолжать или найти альтернативу.
Чем был хорош для меня Crashplan:

  1. Подписка была у меня семейная, а это до 10 компьютеров и безлимитный размер. Минус в том, что за два года число компьютеров у меня составило не больше 4-х.
  2. Цена за 2 года составляла $6 в месяц, это была какая-то промо-акция, сейчас тарифы не такие.
  3. Клиент достаточно информативный и функциональный, однако за 2 года ни разу не изменялся, новый функций или оптимизации не было. Хотя об оптимизации не нужно говорить, клиент писан на яве. Настройки широкие - очереди, шифрование, списки/маски исключаемых файлов, опционально запрос на ввод пароля для открытия клиента - удобно ставить на компьютерах семьи, чтоб не лазили в настройках. Возможность установки паузы на заранее установленные периоды времени.
К минусам, восстанавливает пофайлово, без структуры каталогов, один раз пришлось ручками раскидывать файлы после восстановления.

Погуглив (пояндексив), набрёл на Amazon Glacier, сервис как раз для резервирования данных, стоимость очень низкая, однако восстановление долго и дорого (может быть). Есть клиенты под окна.
Zoolz от Genie9 построен на Glacier, однако для домашнего использования предлагает тарифы вполне приятные. Так, 1 год - из расчёта на 1 месяц - $3, т.е. $36, есть на 2 года - $60, и самое интересное - на 5 лет = $120, т.е. $2 в месяц, а это за безлимит.
При регистрации триальный период составляет 14 дней и 50 гигов.
Клиент вполне интересный, даже красояный, информативный, настроек достаточно, есть возможность устанавливать свой ключ шифрования, расписание. В отличии от Crashplan позволяет выбрать для бэкапа любые диски, в т.ч. и сетевые.
Приятное, что до 01 декабря 2013 года действует промокод  ZLZAF25 на 25% скидку (источник), т.е. за 5 лет стоимость составит $90, а это $1,5 в месяц.
Из минусов, т.к. это всё же Glacier, то восстановление файлов начинается после запроса через 3-5 часов. Второе, это то, что хоть файлы и шифруются, но соединение с серверами клиент устанавливает без использования SSL, однако в настройках это исправимо. Нет клиента под линукс (или же я не заметил).

Но, можете заметить, что тарифы Zoolz рассчитаны на один компьютер/клиент, нет семейной лицензии. Однако при таких ценах даже 4-5 отдельных клиентов, это дешевле Crashplan семейной лицензии. Также можно организовать резервирование в локальной сети всех компьютеров на один, а последний как раз будет и подключён к Zoolz.

В общем, нужно использовать.

UPD:
К июлю 2015 года объём сохраненных мною данных на Zoolz достиг 1,3 террабайта, после чего мне было сообщено, что резервирование мне больше не доступно, и предложено перейти на другие тарифный планы. Т.е. безлимит кончился на отметке 1,3 террабайта. 

5 окт. 2013 г.

Полулопата DNS S5001 (или Amoi a860w)

Взял недавно себе сабж, обзор о нём можно почитать здесь.
Хотел некоторые замечания и советы сказать.
Права root без проблем получаются с помощью программы framaroot, где указываем установить SuperSU и метод Boromir.
Скомпилировал CWM recovery на основе версии 6.0.3.2, устанавливается с помощью SP Flash Tool по следующей схеме:
  1. ставим драйвера MT6589 для винды;
  2. скачиваем файлы scutter и CWM recovery отсюда, положите в одну папку;
  3. переименовываем CWM_V6.0.3.2_recovery.img в recovery.img;
  4. в SP Flashtool указываем на скаченный scutter файл MT6589_Android_scatter_emmc.txt;
  5. SP Flashtool должен отметить в списке только RECOVERY (остальные галки должны быть сняты);
  6. нажмите кнопку Download и подсоедините выключенный телефон:
  7. дождитесь окошка с зелёным кругом;
  8. установка CWM recovery завершена.
Для запуска в режим recovery при включении держать качель увеличения громкости нажатой.