Zdjęcie w tle
webrunner

webrunner

Kompan
  • 58wpisy
  • 43komentarzy
Skrypt, który instaluje nodejs i npm poprzez nvm oraz pm2 poprzez npm. Jest bezpiecznie. Nodejs i npm instalowane są w katalogu domowym bieżącego zalogowanego użytkownika. Nie wymaga to prawie sudo poza uruchomieniem usługi pm2 poprzez systemd.
Skrypt napisany dla Raspberry Pi, jednak powinien działać w każdej dystrybucji z rodziny Debian. Dla Red Hat family nie testowałem, ale możecie sprawdzić. Do przetestowania. Dajcie znać, czy działa.
https://github.com/sysadmin-info/raspberrypi/blob/main/nodejs-npm-pm2-install.sh

Zaloguj się aby komentować

Skrypt bash, któy skanuje wybrane logi (sam je musisz zdefiniować) i pozwala banować adresy IP skanerów w oparciu o ipset.
#!/bin/bash
######################################################### Apache access_log ###################################################################
#Look for the file and if does not exist create it.
for x in /root/access_403.txt ; do
[ ! -f $x ] && touch $x;
done
################################################################################################################################################
display the Apache log file and pass it to grep, grep all the lines not containing the word bot and pass it to grep,
grep all the lines not containing the word google and pass it to grep,
grep all the lines that contain the word " 403 " (spaces are specially inserted - see what the apache2 log looks like) and pass it to awk,
use awk to display the first column and pass it to awk,
use awk to display a regexp to extract IP addresses from the log file,
use ip as the string that starts with the character listed above (something between 0 and 9) and display the string and pass it to sed,
use sed to remove any blank lines and pass it to uniq,
use uniq to show me how many times the IP address has been listed and pass it to awk,
use awk to select the first column and if it is 3 or more then display what is in column 2 and pass it to grep,
use grep to separate all this from /root/access_403.txt and the rest that is left should be put into /tmp/access_403.log
################################################################################################################################################
cat /var/log/httpd/access_log | grep -v bot | grep -v google | grep " 403 " | awk '{ print $1 }' | awk '{match($0,/[0-9]+.[0-9]+.[0-9]+.[0-9]+/); ip = substr($0,RSTART,RLENGTH); print ip}' | sed '/^$/d' | uniq -c | awk '$1>1{print $2}'| grep -F -x -v -f /root/access_403.txt > /tmp/access_403.log
################################################################################################################################################
If file /tmp/ccess_403.log is not empty then add to file /root/ipaddresses.txt what is in file /tmp/access_403.log
for IP which is in /tmp/access_403.log run a command that adds IP addresses from a file
and/or use commands to add each IP address to the ipset/firewalld ipset
################################################################################################################################################
if [ -s /tmp/access_403.log ]
then
cat /tmp/access_403.log >> /root/access_403.txt
#firewall-cmd --permanent --ipset=blacklist --add-entries-from-file=/tmp/access_403.log
for ip in $(cat /tmp/access_403.log); do /usr/sbin/ipset add blacklist $ip;done
for ip in $(cat /tmp/access_403.log); do firewall-cmd --permanent --ipset=blacklist --add-entry=$ip;done
#for ip in $(cat /tmp/access_403.log); do iptables -A INPUT -s $ip/32 -d 0/0 -j DROP; done
fi
Delete the below file
rm -f /tmp/access_403.log
#echo "List of blocked IP addresses:" | cat /root/403.txt
######################################################### Apache error_log #####################################################################
for x in /root/error_403.txt ; do
[ ! -f $x ] && touch $x;
done
cat /var/log/httpd/error_log| grep " 403 " | awk '{ print $13 }' | awk '{match($0,/[0-9]+.[0-9]+.[0-9]+.[0-9]+/); ip = substr($0,RSTART,RLENGTH); print ip}' | sed '/^$/d' | uniq -c | awk '$1>0{print $2}'| grep -F -x -v -f /root/error_403.txt > /tmp/error_403.log
if [ -s /tmp/error_403.log ]
then
cat /tmp/error_403.log >> /root/error_403.txt
#firewall-cmd --permanent --ipset=blacklist --add-entries-from-file=/tmp/error_403.log
for ip in $(cat /tmp/error_403.log); do /usr/sbin/ipset add blacklist $ip;done
for ip in $(cat /tmp/error_403.log); do firewall-cmd --permanent --ipset=blacklist --add-entry=$ip;done
#for ip in $(cat /tmp/error_403.log); do iptables -A INPUT -s $ip/32 -d 0/0 -j DROP; done
fi
rm -f /tmp/error_403.log
#echo "List of blocked IP addresses:" | cat /root/403.txt
Reload firewalld
firewall-cmd --reload

Zaloguj się aby komentować

Monitorowanie wykorzystania zasobów systemu Linux
Planowanie wydajności polega na przewidywaniu, jakie będą wymagania dotyczące wydajności systemu w przyszłości i planowaniu, jak te wymagania spełnić. Monitorowanie wykorzystania zasobów systemu jest ważne dla planowania wydajności, ponieważ pozwala ustalić, czy istniejące wykorzystanie zasobów zbliża się do granic wydajności serwera lub maszyny wirtualnej.
W Linuksie można wykorzystać szereg narzędzi do monitorowania wykorzystania zasobów systemowych. Należą do nich polecenia top, ps, pstree, vmstat, sar i free. Poniższe narzędzia są dostępne w systemie po jego instalacji. Często nie można instalować na maszynach klientów dodatkowego oprogramowania, stąd potrzeba znajomości tych najbardziej podstawowych narzędzi.
top
-a // sortowanie procesów według przydzielonej pamięci
-b // tryb wsadowy -> wysyłanie wyjścia do pliku lub innego programu
-n // określa ilość razy, ile razy polecenie top powinno zadziałać przed wyjściem
-p // pid lub ID
Najczęściej używam dużej litery P i potem małej i, celem wysortowania obciążenia procesora.
ps
Inaczej niż w przypadku polecenia top, wyjście z polecenia ps nie odświeża się dynamicznie.
ps aux
-a // lista procesów uruchamianych przez wszystkich użytkowników, a nie tylko przez bieżącego użytkownika
-u // szczegółowe informacje o każdym procesie
-x // obejmują procesy bez terminala sterującego, takie jak demony.
pstree
Informacje są sformatowane w strukturze drzewa; wątki dziecięce procesów są wymienione pod procesem rodzicielskim i są zamknięte w nawiasach klamrowych
sar
Raport z aktywności systemu zbiera statystyki aktywności systemu, domyślnie co 10 minut. Dane, które powracają, można wykorzystać do stworzenia bazowego pomiaru wydajności systemu, w celu porównania z wynikami późniejszego monitoringu.
-b // wyświetlanie szybkości transferu oraz danych wejściowych i wyjściowych, lub I/O, statystyk
-r // wyświetlanie statystyk dotyczących używanej pamięci
-W // wyświetlanie statystyk wymiany
-u // wyświetlanie statystyk wykorzystania procesora
[odstęp w sekundach] [licznik określający liczbę linii, które muszą zostać zwrócone na wyjściu]
vmstat
Polecenie wyświetlenia statystyk pamięci wirtualnej, które są przydatne do sprawdzenia, czy dostępna jest wystarczająca ilość pamięci dla aplikacji użytkownika.
Bez opcji, polecenie vmstat zwraca pojedynczy raport, który zawiera wartości średnie, na podstawie statystyk zebranych od ostatniego uruchomienia systemu.
Polecenie vmstat można stosować z różnymi opcjami. Można również określić opóźnienie w sekundach, które musi nastąpić przed zgłoszeniem nowego zestawu statystyk oraz wartość zliczania, która określa ilość raportów, które polecenie musi wygenerować.
Składnia: vmstat [opcje] opóźnienie zliczania
Przykład: vmstat -n 2 5
W tym przykładzie opcja n określa, że informacje w nagłówku powinny być wyświetlane tylko raz. Wartość opóźnienia wynosi 2, więc raporty będą generowane w odstępie dwóch sekund, a wartość licznika wynosi 5, więc polecenie wygeneruje w sumie pięć raportów.
Jeśli ustawiono opóźnienie, ale nie podano wartości zliczania, to polecenie będzie działać aż do jego zabicia.
-a // nieaktywne i aktywne statystyki strony
-m // wyświetla slabinfo, czyli informację o wykorzystaniu pamięci na poziomie slab. Jądra Linuksa wykorzystują pule slab do zarządzania pamięcią powyżej poziomu strony.
-s // do wydrukowania tabeli pamięci wirtualnej
-V // do wyświetlania informacji o wersji
free
Polecenie free służy do uzyskiwania statystyk w czasie rzeczywistym dotyczących ilości dostępnej pamięci – i ilości aktualnie wykorzystywanej – w systemie.
Bez żadnych opcji, wolna komenda zwraca całkowitą ilość pamięci fizycznej i wirtualnej, która jest używana i która jest obecnie wolna, jak również ilość pamięci, która jest w buforach jądra lub która jest buforowana. Wszystkie statystyki są wyrażone w kilobajtach.
Zauważ, że współdzielona kolumna jest teraz nieaktualna i powinna być ignorowana.
-b // aby wyświetlić statystyki w bajtach
-k // do wyświetlania statystyk w kilobajtach
-m // do wyświetlania statystyk w megabajtach
-g // do wyświetlania statystyk w gigabajtach
-o // aby zapobiec wyświetlaniu linii -/+ bufora/ pamięci podręcznej
-l // do wyświetlania szczegółowych statystyk wysokiej i niskiej pamięci
-s // skorzystaj z opcji, po której podaje się czas w sekundach, aby określić jak często statystyki powinny być aktualizowane
-t // aby wyświetlić wiersz podsumowujący, który zawiera sumaryczne informacje
-V // do wyświetlania informacji o wersji

Zaloguj się aby komentować

Cześć,
Wrzucam link do mojej strony. https://sysadmin.info.pl związaną z GNU/Linux.
Znajdziecie na niej tematy związane z zabezpieczeniem tego systemu operacyjnego. Na codzień pracuję z RHEL oraz CentOS, więc poradniki oparte są o te dystrybucje.
webrunner

@NinomaeInanis idea strony głównej jest pomysłem Wordpress, nie moim. Jest to landing page stworzony z podstron. Każda z sekcji na stronie głównej jest oddzielona zdjęciem. Użyłem tego, co dał WordPress domyślnie. Moim zdaniem tak jest dobrze.

NinomaeInanis

@webrunner stronke ostatnim razem sprawdzalem na telefonie, i tam juz te naglowki wydaja sie byc troche za male, na komputerze jest dobrze, zmiana jezyka na kompie tez dziala jak nalezy

webrunner

@arthc To tak nie działa w stylu 10 things to do after Linux Mint installation. Poczytaj w wolnej chwili, obejrzyj, zobacz z czym się to je. To nie jest wiedza dla osób, które zaczynają z Linux, tylko dla tych, których interesuje to, jak zabezpieczyć własny serwer metodami dostępnymi dla każdego.

Zaloguj się aby komentować