Linux Server - Konfiguracja

Praca z kluczami

chmod 700 ~/.ssh - nadanie uprawnień na katalog

chmod 600 ~/.ssh/authorized_keys - nadania uprawnień do pliku

sudo vim /etc/ssh/sshd config - edycja pliku konfiguracyjnego ssh

Zmiana portu na inny, oraz dodanie blokady na logowanie się na konto root-a: PermitRootLogin no

sudo service ssh restart - restart usługi ssh

sudo service ssh status - sprawdzenie statusu usługi

sudo netstat -nlp | grep ssh - sprawdzenie portów usługi ssh

Dodawanie nowego użytkownika

sudo adduser nazwausera - dodanie nowego użytkownika

Podczas tworzenia nowego użytkownika tworzony jest wpisu usera, grupa, katalog w ścieżce /home/nazwausera do którego kopiowane są pliki konfiguracyjne z katalogu /etc/skel

Dodanie użytkownika do grupy administratorów

sudo adduser nazwausera sudo - dodanie możliwości używania sudo przez użytkownika

sudo passwd -d nazwa_uzytkownika - zablokowanie userowi możliwości logowania się po haśle

Ustawienie stałego adresu IP

cd /etc/netplan & ls - wejście do katalogu konfiguracji i wylistowanie zawartości

vim nazwa-pliku-konfiguracyjnego.yaml - educja pliku

network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: no
      addresses: [192.168.1.10/24]
      gateway4: 192.168.1.1
      nameservers: [8.8.8.8, 9.9.9.9]

sudo netplan apply - wczytanie zmian w konfiguracji

ifconfig - sprawdzenie konfiguracji

Bezpieczeństwo

sudo iptables -L - wylistowanie wszystkich reguł

Zablokowanie wszystkiego

sudo iptables-save > file.txt - zapisanie wszystkich reguł do pliku
sudo iptables -F - usunięcie wszystkich reguł

sudo iptables -P INPUT DROP - zablokowanie całego ruchu przychodzącego dla wszystkich do maszyny
sudo iptables -P output DROP - zablokowanie całego ruchu wychodzącego z maszyny na wszystkich protach

Odblokowanie ruchu na port-cie

sudo iptables -A input -p tcp --dport 22 -j ACCEPT - akceptacja ruchu przychodzącego do usługi na port-cie 22
sudo iptables -A output -p tcp --sport 22 -j ACCEPT - akceptacja ruchu wychodzącego z usługi na port-cie 22

Odblokowanie aktualizacji systemu

sudo iptables -A INPUT -p udp --sport 53 -j ACCEPT odblokowanie komunikacji z DNS-em w celu odblokowania apt
sudo iptables -A INPUT -p udp -dport 53 -j ACCEPT odblokowanie komunikacji dwustronnej na port-cie
sudo iptables -A OUTPUT -p udp --sport -j ACCEPT
sudo iptables -A OUTPUT -p udp --dport -j ACCEPT -
sudo iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT -
sudo iptables -A INPUT -m state --state RElATED,ESTABLISHED -j ACCEPT - odblokowanie połączeń ustanowionych na innych protach

Odblokowanie ping-a

sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT -
sudo iptables -A OUTPUT -p icmp --icmp-type echo -reply -j ACCEPT -
sudo iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT -
sudo iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT -

Odblokowanie komunikacji wewnętrznej

sudo iptables -A INPUT -i [nazwa-interfejsu np. lo] -j ACCEPT -
sudo iptables -A OUTPUT -o lo -j ACCEPT -

Logowanie prób komunikacji

sudo iptables -N LOGGING - utworzenie nowego łańcucha
sudo iptables -A LOGGING -j LOG --log-prefix "DROP INPUT: " --log-level 6 -
sudo iptables -A LOGGING -j DROP - pakiety które trafią do łańcucha LOGGING będą drop-owane
sudo iptables -A OUTPUT -p tcp -d [adres-ip] -j LOGGING -
sudo dmesg - wyświetlenie komunikatów z jądra linux-a, bedą tam komunikaty zalogowane przez iptables

UFW - nakładka na iptables

vim /etc/ufw/ufw.conf - aby włączyć przestaw enabled na yes.
Lub sudo ufw enable.

sudo ufw status verbose - wylistowanie wszystkich reguł.

sudo ufw default deny incoming - zablokowanie całego ruchu przychodzącego
sudo ufw default allow outgoing - odblokowanie ruchu wychodzącego
sudo ufw allow 22 - odblokowanie komunikacji na port-cie 22
sudo ufw delete allow 22 - usunięcie reguły odblokowania komunikacji na port-cie 22
sudo ufw allow 80:88/tcp - odblokowanie wszystkich portów od-do.

sudo cat /etc/serviecs - lista portów na których pracują usługi.

Automatyczne aktualizacje

sudo apt install unattended-upgrades - pakiet pozwalający na łatwe zarządzanie aktualizacjami.
sudo dpkg-reconfigure unattended-upgrades - zmiana ustawień

sudo vim /etc/apt/apt.conf.d/50unattended-upgrades -

cat /var/log/unattended-upgrades/unattended-upgrades.log - log danych z ostatniej aktualizacji

Fail2Ban - zabezpieczenie ssh przed bruteforce-ami

sudo add-apt-repository universe - dodanie repozytorium
sudo apt install fail2ban - instalacja pakietu
systemctl status fail2ban - sparwdzenie statusu usługi
cat /var/log/auth.log - log logowania do serwera przez ssh
cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.conf.local - program podczas napotkania błędów w konfiguracji local nadpisze ją tą z pliku głównego.
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.local.
W pliku jail.conf.local zmień backend na systemd

Dodanie nowego wpisu:

[ssh]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 900 //sekund
findtime = 900 //sekund

systemctl restart fail2ban - restart usługi i wczytanie nowej konfiguracji

Ręczne usuwanie ban-a

sudo iptables -L -n -v --line=numbers - wyświetlenie listy wpisów
sudo iptables -D [nazwa-łańcucha] [numer-linii] - usunięcie wpisu

Ustawienie nazwy serwera

sudo hostname nazwa-serwera
sudo vim /etc/hostname
sudo vim /etc/hosts

Ustawienie strefy czasowej

sudo dpkg-reconfigure tzdata

Monitorowanie zasobów

sudo apt install htop

Monitorowanie interfejsu sieciowego

sudo apt install iftop

Backup danych

Pełne info tutaj: Backupy danych

Monitoring i alerty

Pełne info tutaj: Zabbix

AppArmor i FireJail