1. Выбор дистрибутива Linux

И так, приступим к выбору дистрибутива. Во первых нужно представить, что хотелось бы в конечном итоге получить. Я последние 5-6 лет использовал Ubuntu (начиная с версии 12.04 и заканчивая версией 16.04). За это время я полностью отказался от использования платформы Windows в качестве десктопной системы. Но здесь нужно отметить, что играть я не играю и с обработкой графики я не связан. Моя работа связана с обслуживанием серверов (домены, файловые, 1С сервера и с использованием RDP, и с использованием Web, почтовые сервера и сервера для раздачи трафика интернета, включая kerio control). В своей работе я пришел к выводу, что для меня стало очень удобным использовать виртуализацию. Она позволяет мне настраивать работу системы не выезжая непосредственно на место расположения сервера, конечно при условии, что основной сервер аппаратно исправен. Программисты 1С скажем, уже давно никуда не выезжают, а используют например TeamViewer и выполняют кучу работы, сидя на одном месте. В этом случае во первых, все всегда под рукой, а во вторых - не тратится...
Read More

2. Настройка дистрибутива Xubuntu 20.04

Итак, приступим. Сам дистрибутив можно взять сайта https://ubuntu.ru/family Закачиваем последнюю версию https://xubuntu.org/ Теперь немного о самом принципе создания своего дистрибутива из уже имеющегося. Существует такая программка Cubic, используя которую можно изменить первоначальный дистрибутив. Она распакует изначальный диск в некоторую папку и затем даст возможность "до устанавить" необходимые Вам вещи в этот дистрибутив. Можно кстати будет даже запускать приложения в графическом режиме, для этого в основной системе нужно будет дать команду xhost +, а после завершения преобразований нужно будет дать обратную команду xhost -. Но в целом этого и не нужно. достаточно просто воспользоваться терминалом и установить необходимое или же удалить не нужное. По сути можно будет менять файлы конфигурации непосредственно в распакованных файлах используя права root из основной системы. Все это хорошо, но нужно так же задать внешний вид системы: обои, панели, настройка чем открывать те или иные файлы, ну и так далее. В общем будем все это делать в два этапа. Этап первый - в виртуальной машине для начала проделываем все что...
Read More

3. Создаем образ своего дистрибутива Xubuntu 20.04

И так, второй шаг пройден и у нас уже есть готовая система. Теперь нужно будет все повторить... Для начала создадим папку tmp в каталоге пользователя (имя папки может быть любым, это не принципиально). В эту папку положим начальный образ обрабатываемой системы (расположение то же не принципиально, можно положить хоть куда). Ну и теперь запускаем cubic, вводим пароль root-а, что бы программа запустилась и ... поехали: Здесь указываем нашу папку tmp, и жмем кнопку Next здесь выбираем наш iso образ изменяемой системы и жмем next (можно ничего более не менять). Далее идет распаковка и получаем окно chroot, где и нужно выполнять все команды: Вообще в папке tmp появится папка squashfs-root, в которой то и находится образ нашего диска: Там, если нужно, можно будет редактировать все что нам нужно получить. Для первого прохода предлагаю заменить локаль системы, хоть это и не важно. Для этого нужно задать следующие команды: sudo rm /etc/locale.gen sudo rm /var/lib/locales/supported.d/* sudo dpkg-reconfigure locales ну и выбрать языки, я оставил только русский. В принципе можно было...
Read More

4. Виртуализация

И так, как я уже и говорил, виртуализация дала мне возможность работать с серверами удаленно. Точнее немного не так, с серверами можно было работать удаленно и раньше, но когда сервер давал сбой, то чаще всего, что бы поправить его работу, нужно было выезжать на место расположения сервера и проводить работы по его восстановлению. Теперь же все несколько иначе, если неисправность программного вида, а обычно именно так и бывает. В случае программного сбоя на виртуальном сервере, я все ещё могу подключиться к основной (хостовой) машине, и могу даже с нуля поднять нужный сервер никуда не выезжая. А если была сохранена копия старого сервера, то процесс восстановления сводится к банальному копированию папки копии сервера, это вообще считанные минуты. Но конечно эти копии нужно обязательно предварительно создавать. Аппаратный сбой - ну тут сам бог велел... Тут нужно ехать и делать. Что лучше выбрать для виртуализации? Но для этого нужно знать - а что вообще есть для виртуализации. VMware vSphere (платная), VMware Esxi (есть бесплатная), Hyper-V...
Read More

5. Работа с VirtualBox, настройка и принцип подключения виртуальных машин.

Что касается установки - то в нашем образе Xubuntu VirtualBox уже есть. Можно установить его либо через репозиторий, либо через deb пекет (рассматриваю семейство ubuntu). Добавляем репозиторий: sudo wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -sudo wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -sudo add-apt-repository "deb http://download.virtualbox.org/virtualbox/debian bionic contrib"sudo apt-get update Теперь собственно установка: #Установка VirtualBoxsudo apt install virtualbox-6.0 -y Теперь нужно кое что настроить у пользователя, добавить его в группы: #Добавляем нашего пользователя хостовой машины в группу vboxusers, что бы он мог их запускатьsudo adduser user vboxusers#Добавляем нашего пользователя хостовой машины в группу disk, что бы пользователь мог подключать реальные диски системы к виртуальной машинеsudo adduser user disk#А это нужно уже в виртуальной машине, если она основана на linux, пользователя user добавить в группу vboxsf, что бы он мог работать с передаваемыми папками из хостовой машины в виртуальнуюsudo adduser user vboxsf Теперь рассмотрим вопрос о том как подключить реальные диски к виртуальной машине. Начиная с версии Ubuntu 16.04 стала наблюдаться проблема изменения имен дисков...
Read More

6. Резервное копирование данных рабочей виртуальной машины.

Системные администраторы бывают двух типов - те кто делает резервные копии, и те кто их будет делать. В общем-то это пожалуй основная деятельность системного администратора. Систему можно переустановить, а вот потеря данных может отбросить работу фирмы на "года". Например потеряв базы 1С, которые велись уже несколько лет, наврятли удастся восстановить к рабочему (изначальному) состоянию. Даже если заново ввести всю первичку, все равно будет разница. По этому резервирование это первоочередная задача. Бороться с аппаратным сбоем помогает RAID, но как быть с шифровальщиками, которые на сегодняшний день принесли уже очень много горя. Можно конечно использовать облачные диски, но они как правило не резиновые или стоят достаточно дорого. Но можно поступить иначе. Использование linux и виртуальных серверов как раз таки в этом помогает. Конечно linux тоже не панацея, его то же могут взломать, но ломают его гораздо реже. Чаще всего под ударам оказывается именно Windows, так как все таки большинство пользователей и соответственно хакеров пользуются именно им. Так что скажем так: linux безопаснее Windows по тому, что...
Read More

7. Настройка файервола в linux на основе iptables

Здесь я не стану рассматривать общий принцип, т.к. это тема очень обширная, а выложу лишь уже готовые скрипты для разных ситуаций. И так для начала все таки включим возможность форвадинга трафика через машинку на linux: sudo sed -i ‘/#net.ipv4.ip_forward=1/s/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g’ /etc/sysctl.conf после этого нужно перезагрузить компьютер. Скрипт очистки файервола: !/bin/bash# Удаляем все правила sudo iptables -F sudo iptables --flush sudo iptables --table nat --flush sudo iptables --delete-chain sudo iptables --table nat --delete-chain# Открываем все sudo iptables -P INPUT ACCEPT sudo iptables -P OUTPUT ACCEPT sudo iptables -P FORWARD ACCEPT# Вставляем в автозагрузку sudo echo "#! /sbin/iptables-restore" > /etc/network/if-up.d/iptables-rules sudo iptables-save >> /etc/network/if-up.d/iptables-rules sudo chmod +x /etc/network/if-up.d/iptables-rules Скрипт настройки файервола для рабочей станции: !/bin/bash# Удаляем все правила sudo iptables -F sudo iptables --flush sudo iptables --table nat --flush sudo iptables --delete-chain sudo iptables --table nat --delete-chain# Сначала все закрываем sudo iptables -P INPUT DROP sudo iptables -P OUTPUT DROP sudo iptables -P FORWARD DROP# разрешим передачу пакетов через входящий петлевой интерфейс и исходящий петлевой интерфейс в таблицах INPUT sudo...
Read More

8. Настройка файервола iptables, как сервера NAT для отдельной виртуальной машины с применением системы «стука» для доступа к конкретному порту.

Для начала обрисуем ситуацию. Пусть мы имеем некий хостовый сервер и на нем крутятся несколько виртуальных машин, причем связь между ними происходит через виртуальную сеть 192.168.56.0/24 (эта сеть первой создается в VirtualBox). Т.е. виртуальные машины не видны в локальной сети. Нужно организовать проброс из вне на виртуальные машины. #!/bin/bash #Переменная задает имя адаптера локальной сети для виртуальной машины virtualadapter="vboxnet0" #Переменная задает саму сеть для виртуальной машины virtualnet="192.168.56.0/24" #Переменная задает имя адаптера сети интернета реальной машины hostadapter="eth0" #Переменная задает саму сеть реальной машины, это же локальная сеть клиентов hostnet="192.168.1.0/24" #Порт подключения по RDP к хостовой машине rdphost="1234" #Порт подключения по SSH к хостовой машине sshhost="2345" #Переменная хранит порты для бана, если идет простукивание портов, а мы их не используем, то сразу в бан portban="3380:3399,5985,5986,22,13000,15000,5210:5214,5230:5270,5900:5906" #Зададим порты для простукивания #Непосредственно порты для стука port1="3456" port2="4567" port3="5678" #Порт для сброса portreset1=port1 let "portreset1 -= 1" portreset2=port1 let "portreset2 += 1" #Порты явного бана portban1=port2 let "portban1 -= 1" portban2=port2 let "portban2 += 1" portban3=port3 let "portban3 -= 1" portban4=port3 let "portban4 += 1" #Пусть eth0 (192.168.1.100/24) это сеть интернета, vboxnet0 (192.168.56.0/24) это локальная сеть виртуальной машины #Удаляем все правила sudo iptables -F sudo iptables --flush sudo iptables --table nat --flush sudo iptables...
Read More