У нас тут новая рубрика подвалила – дайджесты. Кратко, суть: подборка сторонних материалов и мануалов с моими дополнениями.
О дайджестах. У меня в браузере сохранены десятки папок с сотнями закладок в них. На самые разные темы. В частности, конечно же, то что касается OpenSource и Ubuntu. Я их периодически сортирую, и вот возникла идея сделать из этого некую подборку. Часто это бывают именно прикладные, рабочие мануалы. Я просто не вижу смысла их как то перепечатывать и/или дополнять в отдельной статье, потому что в большинстве случаев, там и так все понятно. Поэтому, подобные выпуски будут выходить в виде подборки различных интересных, на мой взгляд, ссылок на те или иные материалы. Буду стараться включать сюда только отборное, что мне пригодилось или показалось интересным, достойным внимания. Итак, поехали?
Из нового, теперь у нас будут такие вот меню с навигацией:
- Блюдо №1: LAMP на VDS`е + SSL/TLS Let’sEncrypt + SSH key-auth + UFW
- Блюдо №2: SOCKS5 прокси-сервер Dante
- Блюдо №3: проблема с сетью контейнеров LXC на виртуалке VMware
- Блюдо №4: tmux, терминальный мультиплексор
Блюдо №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
В конфиге есть все необходимое, включая активацию мышкой и автосохранений сессий, авто-восстановление после перезагрузки, запись логирования при активации и тд.
На этом, пожалуй, все. Надеюсь, что данный формат понравился, я постараюсь выпускать такие дайджесты более-менее регулярно.