Сегодня я расскажу как довольно просто поднять и настроить свой собственный сервер карт (тайловый сервер) на основе Ubuntu Server 14.04 LTS и OpenStreetMap.
Итак начнём. Из Википедии:
OpenStreetMap (дословно «открытая карта улиц»), сокращённо OSM — некоммерческий веб-картографический проект по созданию силами сообщества участников-пользователей Интернета подробной свободной и бесплатной географической карты мира.
Есть довольно подробная официальная статья об установке и настройке tile-сервера, но есть ещё более простой и быстрый способ.
Читати далі…
- Категорія: Адміністрування
- Теги: apache, gis, mapnik, mod_tile, nginx, openstreetmap, osm, postgis, postgresql, renderd, tile, ubuntu, оптимизация, сервер, тюнинг
logwatch – это анализатор системных логов (журналов), начиная от /var/log/messages и заканчивая логами CISCO-оборудования. Результаты анализа утилита группирует и помещает в отчёт, который может как выводиться в stdout, так и отправляться электронной почтой или сохраняется в файл. Формат отчёта предлагается в трех вариантах: plaintext, HTML или файл, при этом вы можете регулировать уровень детализации отчёта исходя из собственных потребностей.
Сегодня я расскажу вам как его установить и настроить.
Ставится он в Debian/Ubuntu довольно просто:
sudo apt-get install logwatch
После установки копируем файл конфига из довольно странного месторасположения в привычное:
cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/
И открываем на редактирование:
vi /etc/logwatch/conf/logwatch.conf
Читати далі…
Сегодня я расскажу вам о простом способе конвертации вашей музыки из .flac в .mp3 через консоль Linux/Ubuntu
sudo apt-get install flac lame
Затем переходим в папку с музыкой в формате .flac и запускаем перекодировку в .mp3 в качестве 320 kbps (файлы .flac НЕ будут удалены)
for f in *.flac; do flac -cd "$f" | lame -b 320 - "${f%.*}".mp3; done
Это всё.
Есть довольно простой способ ускорить работу браузера Chromium (Google Chrome) явно указав путь к папке с временными файлами что будет находиться в оперативной памяти (ОЗУ). Этот приём будет особенно полезен владельцам SSD-дисков ресурс перезаписи которых очень ограничен.
Добавляем временное хранилище размером в 1GB (должно хватить), что будет находиться в оперативной памяти (ОЗУ):
sudo mkdir /ram
sudo vi /etc/fstab
tmpfs /ram tmpfs defaults,noatime,mode=1777,size=1024M 0 0
Монтируем:
sudo mount -a
Смотрим:
df -h
Должно быть что-то такое:
Ф. система Розм Вик Дост Вик% змонтований на
tmpfs 1,0G 0 1,0G 0% /ram
Теперь редактируем файл с default-настройками Chromium, явно указывая ему путь к нашему временному хранилищу:
sudo vi /etc/chromium-browser/default
Меняем строчку
CHROMIUM_FLAGS=""
На следующую:
CHROMIUM_FLAGS="--disk-cache-dir=/ram"
Перезапускаем браузер Chromium и смотрим на использование ОЗУ диска:
df -h
Если у вас в колонке “Использовано” что-то большее нуля, то вы всё сделали правильно.
Ф. система Розм Вик Дост Вик% змонтований на
tmpfs 1,0G 17M 1008M 2% /ram
В результате Chromium стал реактивным 🙂
Это всё.
Удачи!
Самый простой и наглядный способ вывести список сервисов/программ, находящихся в автозагрузке, с возможностью их редактирования – это использовать консольную утилиту sysv-rc-conf
Ставим
sudo apt-get install sysv-rc-conf
Запускаем
sudo sysv-rc-conf
и получаем картину:

Теперь с помощью пробела мы можем включить или выключить автозагрузку сервиса, - – остановит сервис, а +/= – запустит.
Пользуйтесь!
tmux — свободная консольная утилита-мультиплексор, предоставляющая пользователю доступ к нескольким терминалам в рамках одного экрана. tmux может быть отключен от экрана: в этом случае он продолжит исполняться в фоновом режиме; имеется возможность вновь подключиться к tmux, находящемуся в фоне.
При старте tmux создаёт новую сессию с единственным окном и отображает её на экране. В статусной строке в самом низу экрана отображается информация о текущей сессии; эта же строка используется для ввода команд tmux.
Это как screen, только намного лучше 🙂
-
Очень хороший способ запустить tmux. Делая так, вы сперва пытаетесь подключиться к уже существующему серверу tmux, если он существует; если такого ещё нет — создаёте новый
tmux attach || tmux
-
Вывести список существующих сессий
tmux ls
Попав в tmux вы можете давать команды управления им только после нажатия сочетания CTRL + b.
Важно сказать что вы может не просто создавать новые окна, а ещё и добавлять панели в каждое окно. Например вы можете разделить одно окно на 2 части (панели) – верхнюю и нижнюю или левую и правую.
Небольшая шпаргалка управления tmux:
| CTRL+b c |
Создать новое окно |
| CTRL+b 0..9 |
Переход между окнами 0..9 |
| CTRL+b p |
Перейти в предыдущее окно |
| CTRL+b n |
Перейти в следующее окно |
| CTRL+b l |
Перейти в предыдущее активное окошко (из которого вы переключились в текущее) |
| CTRL+b w |
Список всех окон |
| CTRL+b & |
Закрыть окно (или можно набрать просто exit) |
| CTRL+b % |
Разделить текущую панель на две, по вертикали |
| CTRL+b " |
Разделить текущую панель на две, по горизонтали |
| CTRL+b →←↑↓ |
Переход между панелями одного окна |
| CTRL+b x |
Закрыть панель |
| CTRL+b d |
Отключится (прервать соединение) |
| CTRL+b ? |
Справка обо всех комбинациях клавиш |
| CTRL+b & |
Отобразить часы (закрыть их можно нажатием любой кнопки) |
Читати далі…
Сегодня я расскажу как настроить двухэтапную аутентификацию для пользователя 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, либо через приложение на вашем телефоне и вводим его.
Если вы всё сделали правильно, то после ввода временного пароля система вам предложит ввести пароль рута.
Это всё. Удачи!
- Категорія: Адміністрування
- Теги: debian, linux, OATH, pam, root, ssh, su, ubuntu, авторизация, аутентификация, безопасность, защита, линукс, сервер
Решил составить ТОП 15 самых интерестных способов использования программы анализатора траффика (сниффера) tcpdump.
- Получение всей полезной информации о пакете.
tcpdump -nnvvXSs 1514 -i $INTERFACE
- Перехват логина и пароля для протоколов pop3, imap, smtp и http
tcpdump -i $INTERFACE port http or port smtp or port imap or port pop3 -l -A \
| egrep -i 'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|username:|password:|login:|pass |user '
- Сниффинг HTTP траффика
tcpdump -i $INTERFACE port 80 -w -
- Анализирует траффик удаленно через SSH с помощью Wireshark
ssh root@HOST tcpdump -U -s0 -w - 'not port 22' | wireshark -k -i -
- Отображает пропускную возможность сети.
tcpdump -w - | pv -bert >/dev/null
Сниффинг удаленной сети для получения pcap файла в режиме командной строки.
Прервать сбор можно нажатием CTRL+C, после чего открыть его с помощью wireshark для более детального анализа так: wireshark /tmp/sniff.pcap
Запускается на удалённом хосте.
tcpdump -v -i $INTERFACE -s 0 -w /tmp/sniff.pcap port
- Анализ SMTP. Вы можете запустить это на почтовом сервере, чтобы посмотреть отправителей электронной почты и получателей.
tcpdump -l -s0 -w - tcp dst port 25 | strings | grep -i 'MAIL FROM\|RCPT TO'
- Захват 1500 байт данных в ASCII-режиме на 80-ом порту.
tcpdump -i $INTERFACE -n tcp port 80 -A -s1500
- Захват траффика memcached
tcpdump -i $INTERFACE -s 65535 -A -ttt port 11211
- Сниффинг траффика и переадресация его в
snort на машину 192.168.0.2Запускается на удалённом хосте.
tcpdump -nn -i $INTERFACE -w - | nc 192.168.0.2 666
- Получение информации о Cisco-сети (VLAN тэг, порт, switch, …)
tcpdump -nn -v -i $INTERFACE -s 1500 -c 1 'ether[20:2] == 0x2000'
- Отображение SYN-пакетов для всех сетевых интерфейсов
tcpdump -i any -n tcp[13] == 2
- Сниффинг всех DNS запросов и ответов
tcpdump -i $INTERFACE 'udp port 53'
-
Сниффинг TCP и UDP траффика, исключая SSH tcpdump -n -v tcp or udp or icmp and not port 22
Иногда необходимо постоянно (или довольно долго) держать соединение с сервером по SSH. Но это наталкивает на проблему разрыва соединения с сервером из-за длительной неактивности клиента. Существует 2 варианта решения этой проблемы.
Способ №1.
Если у вас есть root-доступ к серверу, то вы можете просто установить значение в файле конфигурации SSH /etc/ssh/sshd_config
ClientAliveInterval 60
Эта строчка устанавливает интервал времени ожидания в секундах, после которого демон SSH sshd отправит клиенту NULL-пакет для поддержания соединения.
По умолчанию, значение этой переменной 0, что означает что сервер не будет поддерживать соединение с клиентом и разорвёт его после длительного отсутствия активности.
Не забудьте перезапустить sshd на сервере после сохранения файла.
Способ №2.
Второй способ проще и его можно применить ко всем вашим SSH-подключениям сразу.
Просто добавьте эти строчки в файл ~/.ssh/config на вашей локальной машине:
Host *
ServerAliveInterval 60
Если у вас не было этого файла, тогда создайте его, установив ему права 600:
chmod 600 ~/.ssh/config
Эти строчки заставляют отправлять ваш ssh-клиент каждые 60 секунд KeepAlive сообщения для всех серверов к которым вы будете подключаться, тем самым поддерживая с ними постоянное соединение.
Это всё.
В Интернете довольно много разных примеров конфигурации ядра Linux для поддержания большого количества соединений, высоконагруженных веб проектов и противодействия DDoS-атакам. Вот ещё один из примеров, что я уже смог попробовать на практике. Скажу сразу — мне более чем помогло. Попробуйте и вы.
Вот опции, что необходимо добавить в конец /etc/sysctl.conf
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.tcp_max_orphans = 65536
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_mem = 50576 64768 98152
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_orphan_retries = 0
net.ipv4.tcp_syncookies = 0
net.ipv4.netfilter.ip_conntrack_max = 16777216
net.netfilter.nf_conntrack_max = 16777216
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_congestion_control = htcp
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.route.flush = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.lo.rp_filter = 1
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.lo.accept_source_route = 0
net.ipv4.conf.eth0.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rfc1337 = 1
net.ipv4.ip_forward = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_echo_ignore_all = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 1000
net.core.rmem_default = 65536
net.core.wmem_default = 65536
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
fs.inotify.max_user_watches = 16777216
А теперь о каждой опции более детально.
Читати далі…