Настройка Debian сервера
Небольшая инструкция по базовой настройке сервера на Debian: создание пользователя, установка ssh, активация firewall и cборка python из исходников.
Подключение к серверу осуществляется через веб-панель или по ssh.
В качестве графического ssh клиента стоит рассмотреть: XShell, Putty или Termius.
ssh root@host
Настройка пользователя
Установка sudo для root-привелегий; создание пользователя www; смена пароля:
apt-get install -y sudo ; \ useradd -m -s /bin/bash www ; \ adduser www sudo ; \ passwd www
Новый пароль пользователя www важно запомнить!
useradd создаёт пользователя с домашней директорией и оболочкой
su - www
SSH
Установка SSH и UFW (firewall):
sudo apt-get install -y ssh ufw ; \ sudo systemctl enable ssh --now
Создание директории для SSH-ключей и настроек:
mkdir -p ~/.ssh && touch ~/.ssh/config ~/.ssh/authorized_keys
Добавление ключей
Сгенерировать хороший ключ можно командой (генерировать на клиенте):
ssh-keygen -t ed25519 -N passphrase -f ~/.ssh/key_name
passphrase - пароль для ключа, потребуется вводить при подключении
Добавление своего публичного ключа в список известных ключей на сервере (писать с клиента):
ssh-copy-id -i ~/.ssh/key_name -p 22 www@host
Ключ также можно просто вставить в файл authorized_keys на сервере:nano ~/.ssh/authorized_keys
Права доступа и конфигурация
ln ~/.ssh/authorized_keys ~/.ssh/authorized_keys2 ; \ chown -R $USER:$USER ~/.ssh && chmod 700 ~/.ssh ; \ chmod 644 ~/.ssh/* ; \ chmod 400 ~/.ssh/authorized_keys*
Настройка sshd_config (правила работы ssh):
sudo nano /etc/ssh/sshd_config
Port 22022 AllowUsers www Protocol 2 PermitRootLogin no PubkeyAuthentication yes PasswordAuthentication no PermitEmptyPasswords no AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
port - порт, по которому будет осуществляться подключение
Список TCP/UDP портов | Подробная настройка sshd
Добавление порта в UFW и запуск firewall:
sudo ufw default deny incoming; \ sudo ufw default allow outgoing; \ sudo ufw allow 22022/tcp ; \ sudo ufw enable
sudo service ssh restart
После этого подключиться к серверу можно только с ключом по порту 22022:
ssh www@host -p 22022 -i ~/.ssh/key_name
Установка пакетов
Основные пакеты
Обновление репозиториев и загрузка основных пакетов:
sudo apt-get update ; \ sudo apt-get install -y vim curl wget git tmux mosh zip unzip gcc build-essential make
Дополнительные пакеты
Установка дополнительных пакетов для удобной работы на сервере:
sudo apt-get install -y zsh tree supervisor htop mc python3-dev libssl-dev python-dev libcurl4-openssl-dev
zsh - продвинутая оболочка
tree - просмотр файлов в виде дерева
supervisor - менеджер процессов
htop - программа для вывода списка запущенных процессов и информации
mc - файловый менеджер с текстовым интерфейсом
Установка python из исходников
Установка python 3.10 из исходников в директорию ~/.python (занимает много времени):
wget https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tgz ; \ tar xzvf Python-3.10.* ; \ mkdir ~/.python ; \ cd Python-3.10.4 ; \ ./configure --enable-optimizations --prefix=/home/www/.python ; \ make -j8 ; \ sudo make altinstall
altinstall пропускает создание ссылки на python и ссылок на страницы руководства. ПодробнееZSH
Установка oh-my-zsh в отдельную директорию и смена оболочки:
mkdir -p ~/.zsh ~/.zsh/custom; \ export ZSH="$HOME/.zsh/oh-my-zsh" && sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"; \ chsh -s $(which zsh)
export ZSH_CUSTOM="$HOME/.zsh/custom" ; \ git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions ; \ git clone https://github.com/zdharma-continuum/fast-syntax-highlighting $ZSH_CUSTOM/plugins/fast-syntax-highlighting
nano ~/.zshrc
ZSH_THEME="clean"
plugins=( git zsh-autosuggestions fast-syntax-highlighting )
alias vi="vim"
alias cls="clear"
alias mcd="function _mcd(){ mkdir -p '$1'; cd '$1'; };_mcd"Основано на alexey-goloburdin/debian-set-up-for-django