Linux

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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *