Skip to content

atomjoy/vps

Repository files navigation

Konfiguracja serwera VPS z sytemem Debian 11

Konfiguracja serwera VPS Debian 11 z ovh (LEMP, Letsencrypt certbot, logowanie z kluczami ssh, serwer smtp do wysyłania wiadomości email, ufw firewall).

Pobierz z git

sudo apt install git
git clone https://github.com/atomjoy/vps.git

Strefa DNS

Utwórz recordy A w strefie DNS dla hostów swojej domeny (certbot ssl):
hello.example.com 
www.hello.example.com

Uruchom jako root

# Utwórz hasło root
sudo passwd root

# Zaloguj jako root
su

# Zmień hasło użytkownika debian (opcjonalnie)
sudo passwd debian

Klucze ssh

# Utwórz klucz rsa ~/.ssh/id_rsa
ssh-keygen -t rsa -C "your_email@example.com"
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

# Utwórz klucz Ed25519 (można użyć do logowania na githuba np.)
ssh-keygen -t ed25519 -C "your_email@example.com"

# Wyślij na serwer
ssh-copy-id -i ~/.ssh/id_rsa.pub $vps_user@$vps_host_or_ip

Ustawienia serwera ssh

Logowanie tylko z kluczami ssh, bez hasła i logowania na root.

# Ustaw wcześniej klucze ssh dla zalogowanego użytkownika !!!
sudo bash ssh.sh

Uruchom skrypty jako root

Nie zapomij zmienić ustawienia w każdym skrypcie (variables) !!!

  1. sudo bash hostname.sh
  2. sudo bash ssl-snakeoil.sh
  3. sudo bash apt-https.sh
  4. sudo bash ufw.sh
  5. sudo bash php.sh
  6. sudo bash nginx.sh
  7. sudo bash certbot.sh
  8. sudo bash nginx-vhost.sh
  9. sudo bash postfix.sh
  10. sudo bash mariadb.sh
  11. sudo bash remove-sudo-default-user.sh

Usuwanie użytkownika debian z sudo

sudo bash remove-sudo-user.sh

Hostname

# Hostname
sudo hostnamectl set-hostname hello.example.com

# Change hosts etc/hosts
127.0.0.1 example.com hello.example.com hello localhost

Połączenia i certyfikaty

# Certyfikat snakeoil
sudo apt install ssl-cert

# Aktualizacja certyfikatu snakeoil
sudo make-ssl-cert generate-default-snakeoil --force-overwrite

# Podgląd certyfikatu ssl
openssl x509 -noout -subject -in /etc/ssl/certs/ssl-cert-snakeoil.pem

# Połącz z serwerem smtp :25 :578
openssl s_client -starttls smtp -crlf -connect 127.0.0.1:25

# Połącz z serwerem smtp
telnet localhost 25

# Test http/https
 wget --no-check-certificate https://example.com

Usuń linię zawierającą tekst z pliku

sed -i '/inet_interfaces/d' /etc/postfix/main.cf

Wyślij email z cmd

sudo apt install mailutils postfix

# Linux mail
echo "Test email `date`" | mail -s "Welcome today is `date`" your_email@gmail.com

# Linux mailx
echo "From test `date`" | mailx -s "From address test" -a 'From: Admin Root <root@example.com>' your_email@gmail.com

# With bash MAILNAME=example.com
echo "From test `date`" | mailx -s "Welcome message `date`" -a "From: Admin Root <root@${MAILNAME}>" $TESTMAIL