π₯οΈ Bash ΡΠΊΡΠΈΠΏΡ Π·Π° Π½Π°ΡΠ°Π»Π΅Π½ setup ΡΠ»Π΅Π΄ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ Π½Π° Ubuntu Server

Π‘Π»Π΅Π΄ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΎΠ² Ubuntu Server, ΡΠ΅ΡΡΠΎ ΡΠ»Π΅Π΄Π²Π° ΡΠ΅ΡΠΈΡ ΠΎΡ ΠΏΠΎΠ²ΡΠ°ΡΡΡΠΈ ΡΠ΅ ΡΡΡΠ½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ β ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° .vimrc
ΠΈ Π΄Ρ.
Π’ΠΎΠ·ΠΈ ΡΠΊΡΠΈΠΏΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΡΡΡΠΏΠΊΠΈ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Ρ ΡΡΡΠ²ΡΡΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ°, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΊΠΈΡΠΈΠ»ΠΈΡΠ° Π²ΡΠ² Vim.
π― ΠΠ°ΠΊΠ²ΠΎ ΠΏΡΠ°Π²ΠΈ ΡΠΊΡΠΈΠΏΡΡΡ:
- ΠΠ½ΡΡΠ°Π»ΠΈΡΠ° ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ (
vim
,curl
,git
,wget
,htop
,nmap
, ΠΈ Π΄Ρ.) - Π‘ΡΠ·Π΄Π°Π²Π°
.vimrc
ΡΠ°ΠΉΠ» Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° UTF-8 ΠΈ ΠΊΠΈΡΠΈΠ»ΠΈΡΠ° (cp1251, koi8-r) - ΠΠΊΡΠΈΠ²ΠΈΡΠ° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ° ΠΈ ΡΠ΄ΠΎΠ±Π½Π° ΠΈΠ½Π΄Π΅Π½ΡΠ°ΡΠΈΡ Π·Π° ΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄
π Π‘ΠΊΡΠΈΠΏΡ: postinstall.sh
#!/bin/bash
echo "ΠΠ°ΡΡΡΠΎΠΉΠ²Π°ΠΌ ΡΠ°ΡΠΎΠ²Π°ΡΠ° Π·ΠΎΠ½Π°..."
sudo timedatectl set-timezone "Europe/Sofia"
echo "ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ..."
sudo apt update
sudo apt install -y vim curl git wget pwgen htop nmap whois net-tools
echo "Π‘ΡΠ·Π΄Π°Π²Π°ΠΌ .vimrc Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π° ΠΊΠΈΡΠΈΠ»ΠΈΡΠ° ΠΈ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅..."
cat <<EOF > ~/.vimrc
set encoding=utf-8
set fileencoding=utf-8
set fileencodings=utf-8,cp1251,koi8-r
syntax on
set autoindent
set tabstop=4
set shiftwidth=4
set expandtab
EOF
echo "ΠΠΎΡΠΎΠ²ΠΎ! Π‘ΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½Π° Π·Π° ΡΠ°Π±ΠΎΡΠ°."
π οΈ ΠΠ°ΠΊ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ?
- Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» Π½Π° ΡΡΡΠ²ΡΡΠ°:
nano postinstall.sh
2. ΠΠΎΡΡΠ°Π²Π΅ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΊΡΠΈΠΏΡΠ°.
3. ΠΠ°ΠΏΡΠ°Π²Π΅ΡΠ΅ Π³ΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ:
chmod +x postinstall.sh
4. Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅:
./postinstall.sh
π¬ ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π’ΠΎΠ·ΠΈ ΡΠΊΡΠΈΠΏΡ Π΅ ΡΡΠ΄Π΅ΡΠ½Π° ΠΎΡΠΏΡΠ°Π²Π½Π° ΡΠΎΡΠΊΠ° Π·Π° Π²ΡΠ΅ΠΊΠΈ Π½ΠΎΠ² Ubuntu Server. ΠΠΎΠΆΠ΅ΡΠ΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° Π³ΠΎ ΡΠ°Π·ΡΠΈΡΠΈΡΠ΅ Ρ SSH Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, hostname, timezone ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»Π½ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½ΠΈΡ.
ΠΡΠΎ Π½ΡΠΊΠΎΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ:
1. Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΈ ΡΡΠΈΠ»ΠΈΡΠΈ
tmux
ΠΈΠ»ΠΈscreen
β Π·Π° ΡΠ΅ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Π² background.iotop
β ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° Π΄ΠΈΡΠΊΠΎΠ² I/O.iftop
β ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΡΡΠ°ΡΠΈΠΊ.dstat
β ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.unzip
/zip
β ΡΠ°Π±ΠΎΡΠ° Ρ Π°ΡΡ ΠΈΠ²ΠΈ.tree
β ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ° Π² Π΄ΡΡΠ²ΠΎΠ²ΠΈΠ΄Π΅Π½ ΡΠΎΡΠΌΠ°Ρ.ncdu
β Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΄ΠΈΡΠΊΠΎΠ²ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ.rsync
β Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.jq
β ΡΠ°Π±ΠΎΡΠ° Ρ JSON Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄.neofetch
β ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΎΡΠ½ΠΎΠ²Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° (ΠΏΠΎ-ΠΊΡΠ°ΡΠΈΠ² ΠΈΠ·Π³Π»Π΅Π΄).
2. ΠΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ
iputils-ping
βping
ΠΊΠΎΠΌΠ°Π½Π΄Π° (ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° Π½Π΅ Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅).dnsutils
β ΡΡΠ΄ΡΡΠΆΠ°dig
,nslookup
ΠΈ Π΄ΡΡΠ³ΠΈ DNS ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ.traceroute
β ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΠΏΡΡ.mtr-tiny
β ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΎΡping
ΠΈtraceroute
.telnet
β Π·Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠΎΠ²Π΅ (ΡΡΠ°ΡΠΎ, Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ).tcpdump
β ΠΌΡΠ΅ΠΆΠΎΠ² Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ.ncat
ΠΈΠ»ΠΈsocat
β Π½Π°ΠΏΡΠ΅Π΄Π½Π°Π»ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ.
3. Π‘ΠΈΠ³ΡΡΠ½ΠΎΡΡ
fail2ban
β Π·Π°ΡΠΈΡΠ° ΡΡΠ΅ΡΡ brute force Π°ΡΠ°ΠΊΠΈ.ufw
β Uncomplicated Firewall (Π»Π΅ΡΠ΅Π½ firewall).openssh-server
β Π°ΠΊΠΎ Π½Π΅ Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅.sudo
β ΠΏΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Π΄Π°Π»ΠΈ Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ.logwatch
β Π°Π½Π°Π»ΠΈΠ· Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅.rkhunter
/lynis
β ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°.
4. Π‘ΠΈΡΡΠ΅ΠΌΠ΅Π½ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΈ Π»ΠΎΠ³Π²Π°Π½Π΅
sysstat
β ΡΡΠ±ΠΈΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° (sar
,iostat
ΠΈ Π΄Ρ.).glances
β ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° (ΠΏΠΎ-ΠΌΠΎΠ΄Π΅ΡΠ΅Π½ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π΅Π½ Π½Π°htop
).prometheus-node-exporter
β Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Prometheus Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³.
5. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ
python3
/python3-pip
β Π°ΠΊΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Python ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅.ansible
β Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΠΌΡΠ½Ρ (Π°ΠΊΠΎ ΡΠ΅ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ).docker.io
β Π°ΠΊΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ.build-essential
β Π°ΠΊΠΎ ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ (ΡΡΠ΄ΡΡΠΆΠ°gcc
,make
ΠΈ Π΄Ρ.).
6. ΠΡΡΠ³ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ
mlocate
β Π·Π° Π±ΡΡΠ·ΠΎ ΡΡΡΡΠ΅Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ (updatedb
+locate
).bash-completion
β Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄ΠΎΠΏΡΠ»Π²Π°Π½Π΅ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°.zsh
+oh-my-zsh
β Π°ΠΊΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΠ΅ Zsh Π²ΠΌΠ΅ΡΡΠΎ Bash.ack
/silversearcher-ag
β Π±ΡΡΠ·ΠΎ ΡΡΡΡΠ΅Π½Π΅ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌ Π²ΠΈ Π·Π° ΠΏΡΠΎΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ°ΡΠΈΡΡΠ°! ΠΠΊΠΎ Π½Π°ΠΌΠ΅ΡΠΈΡ ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π·Π° ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄Π°ΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π±ΡΡΠΎΠ½ΠΈΡΠ΅ ΠΏΠΎ-Π΄ΠΎΠ»Ρ:
Donate βοΈ ΠΠ°ΡΠ΅ΡΠ΅ Ρ PayPalDonate π³ ΠΠ°ΡΠ΅ΡΠ΅ Ρ Revolut