DF-дайДжест №1 (LAMP+Let’sEncrypt+UFW, Dante, LXC-VMware, tmux)

У нас тут новая рубрика подвалила – дайджесты. Кратко, суть: подборка сторонних материалов и мануалов с моими дополнениями.

О дайджестах. У меня в браузере сохранены десятки папок с сотнями закладок в них. На самые разные темы. В частности, конечно же, то что касается OpenSource и Ubuntu. Я их периодически сортирую, и вот возникла идея сделать из этого некую подборку. Часто это бывают именно прикладные, рабочие мануалы. Я просто не вижу смысла их как то перепечатывать и/или дополнять в отдельной статье, потому что в большинстве случаев, там и так все понятно. Поэтому, подобные выпуски будут выходить в виде подборки различных интересных, на мой взгляд, ссылок на те или иные материалы. Буду стараться включать сюда только отборное, что мне пригодилось или показалось интересным, достойным внимания. Итак, поехали?

Из нового, теперь у нас будут такие вот меню с навигацией:



 

Блюдо №1: LAMP на VDS`е + SSL/TLS Let’sEncrypt + SSH key-auth + UFW

Как я писал ранее, я перенес свой сайт на VDS, по ходу дела, по многим моментам пришлось освежить свою память. Дело было на Ubuntu 16.04.

 

Начинаем с LAMP

Больше всего мне понравился этот гайд: https://losst.ru/ustanovka-lamp-ubuntu-16-04
Еще еще альтернатива попроще, в пару строк, через tasksel: https://help.ubuntu.ru/wiki/lamp

Однако, мне больше понравился гайд с losst. Во-первых потому, что мне удобнее ставить все компоненты по одному и точно знать, что ты ставишь. Во-вторых потому, что я планировал сразу перейти с MySQL на MariaDB.

Что хочется добавить:
После того как phpmyadmin нам больше не нужен, отключаем его:

sudo a2disconf phpmyadmin.conf
sudo service apache2 restart

Также, чтобы заработал .htaccess везде:

sudo nano /etc/apache2/apache2.conf
AccessFileName .htaccess
...
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
sudo service apache2 restart

 

Далее SSL/TLS Let’sEncrypt

А этой части описания работ не хватает моего конфига apache, настроенного на https.

Здесь же мы ставим certbot: https://certbot.eff.org/lets-encrypt/ubuntuxenial-apache

Подключаем нужные модули apache:

sudo a2enmod ssl
sudo a2enmod headers
sudo a2enmod rewrite
sudo service apache2 restart

Дальше по докам с certbot. Позже, в виде отдельной статьи/записи, я сформирую и опишу специально оптимизированный конфиг apache с включенным HSTS, отключенными старыми протоколами и шифрами.. иными словами, все что нужно для получения рейтинга A+ на ssllabs.

 

+ SSH key-auth

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

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

ssh-keygen -t rsa

Отправляем ключ на сервер (подставьте свое значение), после пробуем войти:

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh [email protected]

Правим конфиг ssh, выставляем/правим такие значения:

nano /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
PubkeyAuthentication yes
GSSAPIAuthentication no
LogLevel VERBOSE
sudo service ssh restart

 

И приправим все это UFW:

Тут все понятно, firewall musthave.

Берем стандартный гайд и ставим, там все предельно просто: https://help.ubuntu.ru/wiki/руководство_по_ubuntu_server/безопасность/firewall

Оставляем наружу только нужные порты. Доступ по ssh порту можно ограничить только с определенных IP. Но с ssh key-auth это не обязательно, главное своевременно обновлять систему и следить за последними новостями.

 

Ну и вроде как все) “Блюдо” готово.

 


 

Блюдо №2: SOCKS5 прокси-сервер Dante

В наши непростые времена, вот вам крайне полезное, востребованное и вкусное блюдо. Есть на эту тему один прекрасный рабочий гайд: https://blog.bvn13.com/posts/dante-server-on-ubuntu-16-04-lts

Дополнить его особо нечем. Разве что + UFW (смотрим пункт выше), проставляем нужный порт.

 


 

Блюдо №3: проблема с сетью контейнеров LXC на виртуалке VMware

Совершенно не очевидная проблема. Однако когда на виртуалке VMware строишь сеть типа white bridge (белый мост) для контейнеров LXC, гипервизор блокирует новые запросы с них (ему не понравится расхождения по MAC адресам) и внешне они будут не доступны. Короче говоря, вопрос требует дополнительных настроек на стороне хоста VMware.

Подробно описано это здесь: https://www.claudiokuenzler.com/blog/551/network-problem-lxc-same-subnet-as-host-in-vmware#.V63TSCiLTGg

 


 

Блюдо №4: tmux, терминальный мультиплексор

Офигенно удобная штука, с которой я познакомился относительно недавно. Ранее для этих целей я использовал специальный эмулятор терминала terminator. Однако сейчас это только родной tmux, который обладает множеством преимуществ (+ целую кучу плагинов). Удобные и простые комбинации клавиш, нужно только к ним немного привыкнуть.

Благодаря своим особенностям, tmux применим не сколько на десктопах, но и в основном на серверах. Множество поддерживаемых фоновых сессий, возможность одновременной работы нескольких человек в реальном времени, возможность записи команд или живого дебага/логов с терминала напрямую в текстовый файл, сохранение стуктур сессий и многое другое.

Статья на Хабре для ознакомления: https://habr.com/ru/post/327630/
Менеджер установки плагинов: https://github.com/tmux-plugins/tpm

Далее, я просто приложу свой актуальный конфиг tmux, ссылки на проекты плагинов на github вы сможете легко загуглить по запросам типа ‘tmux-plugins/tpm’ и т.д., на страницах с описанитем есть все необходимое.

nano ~/.tmux.conf
# DF plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @plugin 'tmux-plugins/tmux-logging'
# DF options
set -g mouse on
set -g @continuum-boot 'on'
set -g @continuum-restore 'on'
set -g @continuum-save-interval '60'
set -g status-right 'Autosave: #{continuum_status}'
set -g history-limit 1000000
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm

raw: .tmux.conf

В конфиге есть все необходимое, включая активацию мышкой и автосохранений сессий, авто-восстановление после перезагрузки, запись логирования при активации и тд.

На этом, пожалуй, все. Надеюсь, что данный формат понравился, я постараюсь выпускать такие дайджесты более-менее регулярно.

Добавить комментарий