Роман Теличко

Заметки веб-разработчика/админа

Тег сервер

Создаём и оптимизируем свой tile-сервер для OpenStreetMap на основе Ubuntu 14.04

// Сентябрь 15, 2015 | 9509 просмотров | 2 комментария

Сегодня я расскажу как довольно просто поднять и настроить свой собственный сервер карт (тайловый сервер) на основе Ubuntu Server 14.04 LTS и OpenStreetMap.

Итак начнём. Из Википедии:

OpenStreetMap (дословно «открытая карта улиц»), сокращённо OSM — некоммерческий веб-картографический проект по созданию силами сообщества участников-пользователей Интернета подробной свободной и бесплатной географической карты мира.

Есть довольно подробная официальная статья об установке и настройке tile-сервера, но есть ещё более простой и быстрый способ.
Читать далее…

Linux. Настройка двухэтапной аутентификации для пользователя root

// Апрель 15, 2014 | 1747 просмотров | комментариев (0)

Сегодня я расскажу как настроить двухэтапную аутентификацию для пользователя root на вашем сервере по временному одноразовому паролю, что будет генерировать приложение на телефоне или же простая консоль. Смысл в том, что при переходе в суперпользователя на вашем сервере вначале будет запрошен временный (одноразовый) пароль и только затем — пароль рута. Это поможет вам более качественно защитить ваш сервер от несанкционированного доступа.

Начнём с установки OATH Toolkit что уже есть в репозитории Debian.

apt-get install oathtool libpam-oath

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

head -c 4096 /dev/urandom | md5sum | awk '{print $1}'
6819c89679c56508fec770362e312c4e

В данном примере секретная фраза это 6819c89679c56508fec770362e312c4e.

Теперь нам необходимо создать файл (/etc/users.oath) с описанием алгоритмов работы, пользователя и его секретной фразы.

echo "HOTP/T30 root - 6819c89679c56508fec770362e312c4e" > /etc/users.oath
chown root:root /etc/users.oath
chmod 600 /etc/users.oath

Далее — редактирование файла /etc/pam.d/su.
Вам необходимо дописать после

auth       sufficient pam_rootok.so

строку

auth requisite  pam_oath.so usersfile=/etc/users.oath window=10 digits=6

Где
usersfile — путь к файлу с описанием пользователей и их секретных фраз,
window — размер «окна». Поскольку временный одноразовый ключ создаётся относительно времени, то окно — это расхождение серверного времени от времени клиента/приложения. Одно «окно» — 30 секунд. Т.е. мы задали максимальное расхождение ключей в 5 минут.
digits — необходимое количество цифр во временном одноразовом ключе.

Теперь пробуем получить одноразовый временный пароль с нашей секретной фразой:

oathtool --verbose --totp 6819c89679c56508fec770362e312c4e

На что получим что-то следующее:

Hex secret: 6819c89679c56508fec770362e312c4e
Base32 secret: NAM4RFTZYVSQR7WHOA3C4MJMJY======
Digits: 6
Window size: 0
Step size (seconds): 30
Start time: 1970-01-01 00:00:00 UTC (0)
Current time: 2014-04-15 05:36:28 UTC (1397540188)
Counter: 0x2C6D360 (46584672)

385762

385762 — это и есть наш одноразовый временный пароль, а вот строку Base32 secret мы будем использовать когда будем настраивать приложение для телефона (только вводить мы будем этот код без знаков «=», т.е. как NAM4RFTZYVSQR7WHOA3C4MJMJY).

У Google есть отличная программа для генерирования временных (одноразовых) ключей — Google Authenticator
На официальной странице детально расписано как установить это приложение для телефонов на базе Android, iOS, Blackberry и т.п. поэтому на этом шаге я останавливаться не буду.

И наконец тестируем!

Подключаемся к серверу другим соединением (на всякий случай не закрывайте сессию root!) и пробуем сделать su
Система должна нас вначале спросить одноразовый временный пароль.

$ su
One-time password (OATH) for `root':

Генерируем одноразовый временный пароль либо через консоль с помощью команды oathtool, либо через приложение на вашем телефоне и вводим его.
Если вы всё сделали правильно, то после ввода временного пароля система вам предложит ввести пароль рута.

Это всё. Удачи!

Подключаемся к удаленному серверу по SSH через SOCKS 5 прокси

// Ноябрь 21, 2013 | 1472 просмотров | комментариев (0)

Иногда необходимо подключится к удаленному серверу по протоколу SSH через существующий SOCKS 5 прокси, что может быть создан как из SSH-подключения к другому серверу, так и другими способами.
Сегодня я расскажу об этом.

В этой статье я уже писал как создать SOCKS 5 прокси на сервере имея SSH-доступ к нему. Для примера сделаем SOCKS 5 на одном сервере и подключимся через него к второму.

На сервере с SOCKS 5 прокси (если он создаётся через SSH, а не другими способами) в файле настроек SSH /etc/ssh/sshd_config должна быть строчка разрешающая пересылку TCP-пакетов:

AllowTcpForwarding yes

Без неё у вас врядли что-то получится.

Итак, используя шаблон

ssh -f -C2qTnN -D <порт> <удаленный_пользователь>@<удаленный_сервер>

запустим прокси на порту 1080 для сервера 8.8.8.8 например так

ssh -f -C2qTnN -D 1080 roman@8.8.8.8

Теперь сама строчка подключения к второму удаленному серверу по протоколу SSH через SOCKS 5 прокси:

ssh -o ProxyCommand="nc -x 127.0.0.1:1080 %h %p" roman@8.8.4.4

Где
127.0.0.1:1080 — IP и порт SOCKS 5 прокси
roman — это ваш логин на сервер
8.8.4.4 — адрес вашего сервера

Это всё.
Удачи!

Бэкапим Linux-сервер в Dropbox

// Январь 18, 2013 | 3933 просмотров | комментариев (0)

Если ваши серверные бэкапы могут вместиться в размер виртуального диска Dropbox’a, то думаю что разумным будет бэкапить файлы, помимо другого веника, ещё и в облако.
Начнём.
Читать далее…