OpenVPN serwer – wysyłanie powiadomienia o nawiązaniu nowego połączenia.
W paranoicznym świecie niektóre sieci, którymi zarządzamy chcemy na bieżąco monitorować. Najwygodniej po nawiązaniu nowego podłączenia z naszą siecią prywatną wysłać e-mail z odpowiednią informacją.
Konfiguracja wysyłania alertów o nowych sesjach z naszym serwerem OpenVPN jest dość prosta.
Najpierw napiszemy skrypt, który wyśle nam e-mail.
#!/bin/bash #Wysyłka emaila po nawiązaniu połączenia NOW="$(date +"%H:%M:%S - %Y-%m-%d")" #kolejne adresy odbiorców możesz podać separując je przecinkiem mail -s "Tytuł wiadomości" -r adres_nadawcy@domena.pl adres_odbiorcy@domena.pl<<EOF OpenVPN - Polaczony z: $common_name Czas nawiazania polaczenia: $NOW. IP: $trusted_ip PORT: $trusted_port EOF exit 0
Musimy nadać prawo wykonywania dla naszego skryptu.
chmod +x connect.sh
Teraz dopisujemy wywołanie naszego skryptu po nawiązaniu nowego połączenia do konfiguracji serwera OpenVPN. Aby skrypt zadziałał ustawiamy również dyrektywę umożliwiającą wywoływanie skryptów i plików wykonywalnych innych niż dostarczone z OpenVPN.
#plik konfiguracyjny OpenVPN client-connect /etc/openvpn/script/connect.sh script-security 2
W skrypcie posłużyłem się komendą mail, jeśli twój system nie posiada skonfigurowanego serwera pocztowego możesz nakłonić system do korzystania z zewnętrznego serwera SMTP.
Instalujemy pakiet SSMTP.
apt-get install ssmtp
edytujemy jego konfigurację /etc/ssmtp/ssmtp.conf
# Konfiguracja zewnętrznego serwera SMTP mailhub=domena.pl:465 AuthUser=username AuthPass=password UseTLS=YES UseSTARTTLS=NO hostname=naszserwer.pl # Are users allowed to set their own From: address? # YES - Allow the user to specify their own From: address # NO - Use the system generated From: address FromLineOverride=YES #przyda się możliwość zdefiniowania (nadpisania) nadawcy podczas wysyłki inaczej nadawcą będzie root
Większość serwerów pocztowych sprawdza, czy nagłówek nadawcy (FROM: user@domena.pl) zgadza się z kontem wykorzystanym do wysyłki. Dlatego warto dodać jeszcze odpowiedni alias dla konta root, gdybyśmy zapomnieli wywołać mail z opcją -r.
konfiguracja znajduje się w pliku: /etc/ssmtp/revaliases
# sSMTP aliases # Format: local_account:outgoing_address:mailhub # Example: root:your_login@your.domain:mailhub.your.domain[:port] # where [:port] is an optional port number that defaults to 25. root:adres_nadawcy@domena.pl
Sprawdzamy, czy wysyłka maila się powiedzie:
mail -s „tytuł” adres_odbiorcy@domena.pl -r adres_nadawcy@domena.pl
Po zatwierdzeniu komendy zostaniemy przeniesieni do nowej linii gdzie wprowadzamy treść wiadomości. Po zakończeniu wprowadzania treści wiadomości w celu wysyłki należy przejśc do nowej linii a następnie użyć kombinacji klawiszy: CTRL+D