шпаргалка
Шпаргалка: task-simply_14
⚠️ Важно перед началом
- Опечатки в PDF:
Sinply Linux→Simply Linux,jshevcenko→jshevchenko - Пароль по умолчанию везде:
Linux$kills24 - Порядок работы:
rtr01 → rtr02 → backup из Windows → Ventoy/USB → wks01 → wks02 → firewall на wks01 - Если флешка одна — используй Ventoy: на неё кладётся и ISO, и backup одновременно
📦 Backup из Windows (делать ДО установки Linux)
wks01 — сохранить файлы пользователя
# Узнать имена пользователей
dir C:\Users
net user
# Скопировать документы и картинки на флешку (E:)
robocopy C:\Users\<USER>\Documents E:\backup-wks01\<USER>\Documents /E
robocopy C:\Users\<USER>\Pictures E:\backup-wks01\<USER>\Pictures /E
wks02 — сохранить файлы jshevchenko + обои
# Узнать путь к обоям
reg query "HKCU\Control Panel\Desktop" /v WallPaper
# Скопировать документы и картинки
robocopy C:\Users\jshevchenko\Documents E:\backup-wks02\jshevchenko\Documents /E
robocopy C:\Users\jshevchenko\Pictures E:\backup-wks02\jshevchenko\Pictures /E
# Скопировать обои (подставь реальный путь из reg query выше)
copy "<PATH_TO_WALLPAPER>" E:\backup-wks02\wallpaper\
Подготовка USB-флешки
- Установить Ventoy на флешку
- Скопировать ISO
Simply Linuxв корень флешки - Скопировать папки
backup-wks01иbackup-wks02в корень флешки
🌐 Маршрутизатор rtr01 (OpenWrt)
Задание: Настроить подключение к провайдеру: статический IP с теми же настройками, что получали по DHCP. LAN: IP 192.168.78.11, сеть 192.168.78.0/26, DHCP пул 32 адреса начиная с .20. Настроить маршрутизацию в «сеть 2». Имя хоста — rtr01. Московское время. Пароль root — Linux$kills24.
Шаг 1: Снять текущие DHCP-параметры WAN (записать их!)
ifstatus wan
ip -4 addr show
ip route
cat /tmp/resolv.conf.d/resolv.conf.auto
Запиши: IP-адрес, маску, шлюз, DNS1, DNS2. Они нужны для следующего шага.
Шаг 2: Настройка
# WAN — переключить с DHCP на static теми же значениями
uci set network.wan.proto='static'
uci set network.wan.ipaddr='<WAN_IP_FROM_DHCP>'
uci set network.wan.netmask='<WAN_NETMASK_FROM_DHCP>'
uci set network.wan.gateway='<WAN_GATEWAY_FROM_DHCP>'
uci -q delete network.wan.dns
uci add_list network.wan.dns='<DNS1>'
uci add_list network.wan.dns='<DNS2>'
# LAN
uci set network.lan.ipaddr='192.168.78.11'
uci set network.lan.netmask='255.255.255.192'
# DHCP: пул 32 адреса начиная с .20
uci set dhcp.lan.start='20'
uci set dhcp.lan.limit='32'
# Маршрут в «сеть 2» (обычно 172.20.20.0/24 — уточни по топологии)
uci add network route
uci set network.@route[-1].interface='lan'
uci set network.@route[-1].target='<NETWORK_2_IP>'
uci set network.@route[-1].netmask='<NETWORK_2_NETMASK>'
uci set network.@route[-1].gateway='192.168.78.12'
# Имя хоста и время
uci set system.@system[0].hostname='rtr01'
uci set system.@system[0].zonename='Europe/Moscow'
uci set system.@system[0].timezone='MSK-3'
# Применить
uci commit network
uci commit dhcp
uci commit system
/etc/init.d/network restart
/etc/init.d/dnsmasq restart
/etc/init.d/system restart
# Пароль root
passwd
Проверка
ip route
ping -c 3 192.168.78.12
🌐 Маршрутизатор rtr02 (OpenWrt)
Задание: Подключение к rtr01 со статическим IP 192.168.78.12. Получать динамический IP из сети 172.20.20.0/24. Имя хоста — rtr02. Московское время. Пароль root — Linux$kills24.
Шаг 1: Посмотреть интерфейсы
uci show network
ip -br addr
Шаг 2: Настройка
# Интерфейс к rtr01 — статический
uci set network.wan.proto='static'
uci set network.wan.ipaddr='192.168.78.12'
uci set network.wan.netmask='255.255.255.192'
uci set network.wan.gateway='192.168.78.11'
# Второй интерфейс (в сеть 172.20.20.0/24) — DHCP
uci set network.lan.proto='dhcp'
# Имя хоста и время
uci set system.@system[0].hostname='rtr02'
uci set system.@system[0].zonename='Europe/Moscow'
uci set system.@system[0].timezone='MSK-3'
uci commit network
uci commit system
/etc/init.d/network restart
/etc/init.d/system restart
# Пароль root
passwd
Проверка
ip route
ping -c 3 192.168.78.11
ping -c 3 172.20.20.12
Если нет связи — проверь: 1) маршрут на rtr01, 2) NAT на rtr02, 3) реальную подсеть wks02
💿 Установка Simply Linux
wks01
Задание: Папка /srv/ на отдельном разделе ≥ 1 Гб. Пароль root — Linux$kills24. Создать пользователей с теми же именами что были в Windows.
- При разметке диска создать отдельный раздел
/srvразмером не менее 1 Гб - Пароль root:
Linux$kills24 - Создать пользователей из Windows (имена взяты из
dir C:\Users)
wks02
Задание: Папка /home/ на отдельном разделе ≥ 2 Гб. Пароль root — Linux$kills24. Создать пользователей с теми же именами, обязательно jshevchenko.
- При разметке диска создать отдельный раздел
/homeразмером не менее 2 Гб - Пароль root:
Linux$kills24 - Создать пользователей из Windows, обязательно создать
jshevchenko
🖥️ Настройка wks01
База
Задание: Задать имя хоста wks01. Настроить московское время с синхронизацией после перезагрузки. Установить необходимые пакеты. Создать пользователей с паролем Linux$kills24, добавить в группу users.
su -
hostnamectl set-hostname wks01
timedatectl set-timezone Europe/Moscow
timedatectl set-ntp true
apt-get update
apt-get install -y sudo openssh-server openssh-clients nginx openssl nfs-server nfs-clients nftables
# Создать группу users
groupadd -f users
# Если пользователи уже созданы при установке — просто добавить в группу
usermod -aG users <USER1>
usermod -aG users <USER2>
# Если пользователей нет — создать
useradd -m -G users <USER1>
passwd <USER1> # Linux$kills24
useradd -m -G users <USER2>
passwd <USER2> # Linux$kills24
passwd root # Linux$kills24
Перенос файлов
Задание: Перенести документы из Windows в домашний каталог пользователя. Перенести картинки в /srv/nfs/pictures. Владелец /srv/nfs/ — пользователь, которому принадлежали файлы в Windows. Группа users должна иметь доступ на чтение ко всему содержимому /srv/nfs.
# Найти флешку
lsblk -f
mkdir -p /mnt/usb
mount /dev/sdX1 /mnt/usb # заменить sdX1 на реальное устройство
# Создать нужные каталоги
mkdir -p /srv/nfs/pictures
mkdir -p /srv/webserv
# Перенести документы в домашний каталог владельца
cp -a /mnt/usb/backup-wks01/<OWNER>/Documents/. /home/<OWNER>/
# Перенести картинки в /srv/nfs/pictures
cp -a /mnt/usb/backup-wks01/<OWNER>/Pictures/. /srv/nfs/pictures/
# Задать владельца и права для группы users
chown -R <OWNER>:users /srv/nfs
chmod -R g+rwX /srv/nfs
find /srv/nfs -type d -exec chmod g+s {} \;
⚠️
<OWNER>— имя пользователя Windows, из чьей папки взяты файлы
sudo без пароля для группы users
Задание: Настроить sudo так, чтобы пользователи из группы users могли выполнять команды с sudo без ввода пароля.
printf '%%users ALL=(ALL) NOPASSWD: ALL\n' > /etc/sudoers.d/users-nopasswd
chmod 440 /etc/sudoers.d/users-nopasswd
SSH
Задание: SSH должен запускаться при загрузке и работать на порту 2222. Разрешить подключение только пользователям группы users. Обеспечить возможность подключаться по SSH к wks02.
# Порт 2222
grep -q '^Port ' /etc/ssh/sshd_config \
&& sed -i 's/^Port .*/Port 2222/' /etc/ssh/sshd_config \
|| echo 'Port 2222' >> /etc/ssh/sshd_config
# Разрешить только группу users
grep -q '^AllowGroups ' /etc/ssh/sshd_config \
&& sed -i 's/^AllowGroups .*/AllowGroups users/' /etc/ssh/sshd_config \
|| echo 'AllowGroups users' >> /etc/ssh/sshd_config
systemctl enable --now sshd
systemctl restart sshd
SSH-клиент (
openssh-clients) уже установлен выше — подключение к wks02 доступно командойssh <USER>@<WKS02_IP>
NFS
Задание: Настроить NFS так, чтобы /srv/nfs и всё её содержимое было доступно для записи для всех устройств подсети 192.168.0.0/16. Служба NFS должна стартовать при загрузке.
printf '/srv/nfs 192.168.0.0/16(rw,sync,no_subtree_check)\n' > /etc/exports
systemctl enable --now nfs-server
exportfs -rav
Если NFS монтируется, но нельзя писать:
chmod -R 0777 /srv/nfs
Планировщик задач (cron)
Задание: Настроить crontab так, чтобы от имени root 1 раз в 10 минут в файл /var/log/time.log записывалось текущее время.
(crontab -l 2>/dev/null; echo '*/10 * * * * date >> /var/log/time.log') | crontab -
systemctl enable --now crond
Nginx + сайт
Задание: Установить nginx, запускать при загрузке. Создать сайт на 80 и 443 портах (самоподписанный сертификат). Рабочий каталог — /srv/webserv/. Главная страница: «Hello! It's Linux Skills».
# Создать страницу сайта
cat > /srv/webserv/index.html <<'EOF'
Hello! It's Linux Skills
EOF
# Создать самоподписанный сертификат
mkdir -p /etc/nginx/ssl
openssl req -x509 -nodes -newkey rsa:2048 -days 365 \
-keyout /etc/nginx/ssl/self.key \
-out /etc/nginx/ssl/self.crt \
-subj '/C=RU/ST=Moscow/L=Moscow/O=LinuxSkills/CN=wks01'
# Конфиг nginx
cat > /etc/nginx/conf.d/linuxskills.conf <<'EOF'
server {
listen 80 default_server;
server_name _;
root /srv/webserv;
index index.html;
}
server {
listen 443 ssl default_server;
server_name _;
root /srv/webserv;
index index.html;
ssl_certificate /etc/nginx/ssl/self.crt;
ssl_certificate_key /etc/nginx/ssl/self.key;
}
EOF
nginx -t
systemctl enable --now nginx
systemctl restart nginx
Если папки
conf.dнет — вставить тот жеserver-блок в подключаемый include изnginx.conf
/etc/hosts
Задание: Обеспечить связь между wks01 и wks02 по имени хоста.
# Узнать IP wks02 заранее (через DHCP-таблицу rtr01 или ip addr на wks02)
printf '<WKS02_IP> wks02\n' >> /etc/hosts
Firewall на wks01
Задание: Настроить firewall так, чтобы подключения по SSH и NFS принимались только от wks02.
⚠️ Делать в последнюю очередь — когда уже известен IP wks02!
cat > /root/wks01-firewall.nft <<'EOF'
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
iif lo accept
ct state established,related accept
ip protocol icmp accept
tcp dport {80,443} accept
ip saddr <WKS02_IP> tcp dport 2222 accept
ip saddr <WKS02_IP> tcp dport 2049 accept
}
chain forward {
type filter hook forward priority 0; policy drop;
}
chain output {
type filter hook output priority 0; policy accept;
}
}
EOF
nft -f /root/wks01-firewall.nft
# Автозапуск при перезагрузке
(crontab -l 2>/dev/null; echo '@reboot /usr/sbin/nft -f /root/wks01-firewall.nft') | crontab -
🖥️ Настройка wks02
База
Задание: Задать имя хоста wks02. Московское время с синхронизацией. Установить пакеты. Создать пользователей с паролем Linux$kills24, добавить в группу users. Пароль root — Linux$kills24.
su -
hostnamectl set-hostname wks02
timedatectl set-timezone Europe/Moscow
timedatectl set-ntp true
apt-get update
apt-get install -y firefox xfce4-clipman-plugin openssh-server openssh-clients nfs-clients yt-dlp
groupadd -f users
usermod -aG users jshevchenko
passwd root # Linux$kills24
passwd jshevchenko # Linux$kills24
systemctl enable --now sshd
Автологин jshevchenko
Задание: При загрузке компьютера пользователь jshevchenko должен автоматически без ввода пароля попадать в графическую среду.
mkdir -p /etc/lightdm/lightdm.conf.d
cat > /etc/lightdm/lightdm.conf.d/50-autologin.conf <<'EOF'
[Seat:*]
autologin-user=jshevchenko
autologin-user-timeout=0
EOF
Перенос файлов
Задание: Перенести из Windows документы и картинки в домашнюю папку jshevchenko. Сделать то же изображение фоновым, что было в Windows.
lsblk -f
mkdir -p /mnt/usb
mount /dev/sdX1 /mnt/usb # заменить sdX1 на реальное устройство
cp -a /mnt/usb/backup-wks02/jshevchenko/Documents/. /home/jshevchenko/
cp -a /mnt/usb/backup-wks02/jshevchenko/Pictures/. /home/jshevchenko/Pictures/
cp -a /mnt/usb/backup-wks02/wallpaper/. /home/jshevchenko/Pictures/
chown -R jshevchenko:users /home/jshevchenko
Обои, блокировка экрана, Clipman — GUI
Задание: Установить обои те же что были в Windows. Отключить блокировку экрана при простое. Менеджер буфера обмена: хранить 100 элементов с сохранением при выключении.
Войти под jshevchenko (автологин уже настроен) и:
- Обои:
Настройки → Рабочий стол→ выбрать файл из~/Pictures/(перенесённый с Windows) - Блокировка:
Настройки → Хранитель экрана→ отключить - Clipman:
- Правый клик на панели →
Добавить элементы панели→ найтиClipmanи добавить - Правый клик на иконке Clipman →
Параметры→ поставить100элементов → включитьСохранять историю при выключении
- Правый клик на панели →
NFS
Задание: Создать каталог nfs в домашней папке jshevchenko. Смонтировать в него NFS-папку с wks01. После перезагрузки монтирование должно восстанавливаться.
mkdir -p /home/jshevchenko/nfs
# Добавить в fstab для автомонтирования
printf '<WKS01_IP>:/srv/nfs /home/jshevchenko/nfs nfs4 rw,_netdev,defaults 0 0\n' >> /etc/fstab
mount -a
SSH-ключ для входа на wks01 без пароля
Задание: Пользователь jshevchenko должен подключаться по SSH к wks01 без ввода пароля (по ключу).
# Создать ключ
sudo -u jshevchenko mkdir -p /home/jshevchenko/.ssh
sudo -u jshevchenko ssh-keygen -t ed25519 -N '' -f /home/jshevchenko/.ssh/id_ed25519
# Скопировать публичный ключ на wks01
# <USER_ON_WKS01> — пользователь из группы users на wks01
sudo -u jshevchenko ssh-copy-id -p 2222 <USER_ON_WKS01>@<WKS01_IP>
Если
ssh-copy-idнедоступен:cat /home/jshevchenko/.ssh/id_ed25519.pub | \ ssh -p 2222 <USER_ON_WKS01>@<WKS01_IP> \ 'umask 077; mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys'
/etc/hosts
printf '<WKS01_IP> wks01\n' >> /etc/hosts
Firefox
Задание: Установить Mozilla Firefox. Поиск по умолчанию — Яндекс. Установить дополнение AdBlock Plus.
Firefox уже установлен (apt-get install -y firefox). Настроить вручную:
Настройки → Поиск→ выбрать Яндекс как поисковик по умолчанию- Открыть https://addons.mozilla.org → найти AdBlock Plus → установить
Если в репозитории есть пакет
firefox-adblock_plus:apt-get install -y firefox-adblock_plus
Скачать видео на рабочий стол
Задание: Скачать ролик https://www.youtube.com/watch?v=1fJ5_5U-0yw и положить на рабочий стол.
DESKTOP_DIR=$(sudo -u jshevchenko xdg-user-dir DESKTOP)
sudo -u jshevchenko yt-dlp \
-o "$DESKTOP_DIR/linuxskills-video.%(ext)s" \
'https://www.youtube.com/watch?v=1fJ5_5U-0yw'
✅ Проверка всего
rtr01
ip route
ping -c 3 192.168.78.12
ping -c 3 172.20.20.12 # через маршрут в сеть 2
wks01
hostnamectl
timedatectl
ss -tulpn | grep -E '2222|80|443|2049'
exportfs -v
curl http://localhost
curl -k https://localhost
crontab -l
sudo -n true && echo "sudo OK"
nft list ruleset
wks02
hostnamectl
timedatectl
mount | grep nfs
ssh -p 2222 <USER_ON_WKS01>@<WKS01_IP> # должен войти без пароля
Проверить глазами на wks02:
-
jshevchenkoлогинится автоматически - Обои из Windows установлены
- Экран не блокируется
- Clipman хранит 100 элементов с сохранением истории
- Firefox: поиск Яндекс, AdBlock Plus включён
- Видео лежит на рабочем столе
🪤 Ловушки
| Проблема | Решение |
|---|---|
| Одна флешка | Используй Ventoy — на неё влезает и ISO, и backup |
| rtr01: сначала снять DHCP | Записать IP/маску/шлюз/DNS — они нужны для static |
| SSH не пускает пользователя | Проверь что он в группе users — AllowGroups users режет всех вне группы |
| NFS не монтируется | Проверь маршрут rtr01 → firewall wks01 → права /srv/nfs |
| SSH-ключ не работает | Порт 2222, группа users, проверь ~/.ssh/authorized_keys |
| Сеть 2 не 172.20.20.0/24 | Смотри топологию стенда — подставь реальную подсеть в маршрут rtr01 |
| Firewall заблокировал себя | Делай firewall последним, когда уже знаешь IP wks02 |