Skip to content

Instantly share code, notes, and snippets.

@zmts
Last active October 1, 2020 07:05
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save zmts/3d41145d2776d68af4a6b5485cdab857 to your computer and use it in GitHub Desktop.
Save zmts/3d41145d2776d68af4a6b5485cdab857 to your computer and use it in GitHub Desktop.
Первичная настойка Debian Linux (безопасность, права, полезные утилиты)

Первичная настойка Debian Linux (хост для сайтов)

Для начала

Загрузить и установить последние обновления системы

apt update
apt upgrade
reboot

Задать FQDN серверу

nano /etc/hostname

mysuperdomain

nano /etc/hosts

127.0.1.1 mysuperdomain.com mysuperdomain
127.0.0.1 localhost

Настраиваем локаль

Правим конфиг локалей nano /etc/default/locale

LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LC_TYPE=en_US.UTF-8

Реконфигурируем локали (из списка выбираем en_US.utf8 и ru_RU.utf8, далее по умолчанию ставим en_US.utf8)

dpkg-reconfigure locales
reboot

Безопасность/Права

Ставим sudo (если еще не стоит)

apt install sudo

Создаем нового юзера(под которым будем ходить по ssh) и добавляем его в рутовую группу

adduser superuser
usermod -aG root superuser

Меняем ssh порт на некий кастомный nano /etc/ssh/sshd_config

Port 22

service ssh restart

Запрещаем руту ходить по ssh nano /etc/ssh/sshd_config

PermitRootLogin no

service ssh restart

Создаем no-ssh группу(в которую будем складывать юзеров которым запрещено ходить по ssh)

groupadd no-ssh

Добавим эту группу в конфиг sshd nano /etc/ssh/sshd_config

DenyGroups no-ssh

Для каждого сайта создается:

  • Отдельный юзер который помещается в no-ssh группу (дабы предотвратить попытки подбора пароля любопытными ботами)
  • Отдельная директория /var/www/new-site-name.com
  • Далее в /var/www/new-site-name.com создаются поддиректории по службам(api, client...)
adduser new_user
usermod -G no-ssh new_user

Делаем юзера superuser владельцем деректории /var/www/new-site-name.com

chown -R superuser /var/www/new-site-name.com

При необходимости обноления git репозитория от имени superuser'ра генерируем SSH ключи для superuser'ра. И добавляем паблик кей в gitlab.

ssh-keygen -t rsa -C "your.email@example.com" -b 4096

Утилиты

  • zsh
  • mc
  • iftop
  • htop
  • sshfs
  • screen

apt install psmisc (набот утилит)

fuser: отображает процессы, которые используют заданные файлы или сокеты

killall: посылает сигнал процессам с указанным именем, например

killall -HUP named

peekfd: показывает данные, передающиеся через файловый дескриптор.

pstree: показывает запущенные процессы в виде древовидной структуры.

prtstat: выводит статистику процесса (файл /proc//stat)

apt install lsof Lsof — диагностическая утилита для UNIX-подобных систем. Её имя означает LiSt Open Files (вывод списка открытых файлов), именно это она и делает. Она выводит информацию обо всех файлах, открытых работающими в данный момент в системе процессами.

# Показать все процессы на неком порту
lsof -i :8000

p.s.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment