|
|
Riga 1: |
Riga 1: |
| | ==Introduzione== |
| | Con questa guida intendo spiegare all'utente debian come configurare un server mail basato su Postfix (http://www.postfix.org). |
| | Postfix è un MTA abbastanza sicuro e di recente sviluppo, molto semplice da usare e per alcuni è considerato il successore di sendmail per altro troppo complicato da gestire e con noti problemi di sicurezza. |
| | |
| | ==Installazione di Postfix== |
| | Prima di tutto abbiamo bisogno di due demoni uno per la gestione del protocollo pop3 e uno per l'imap. Io consiglio popa3d e imapd |
| | |
| | <pre> |
| | # apt-get update |
| | # apt-get install popa3d uw-imapd |
| | </pre> |
| | |
| | fatto questo in /etc/inetd.conf verranno aggiunti i servizi per il pop3 e l'imapd. |
| | Procediamo all'installazione dell'MTA vero e proprio |
| | |
| | <pre> |
| | # apt-get install postfix |
| | </pre> |
| | |
| | ==Configurazione base== |
| | Quasi tutte le opzioni di configurazione di Postfix si trovano nel file /etc/postfix/main.cf |
| | |
| | Ecco i principali tag a cui conviene prestare attenzione: |
| | |
| | <pre> |
| | myhostname = valore indica il nome che assumerà il vostro server mail (es: mail.nomedominio.it). |
| | myorigin = valore indica il dominio usato per la posta inviata dal server. |
| | mydestination = localhost, altri_valori indicano i domini che il server dovrà riconoscere come locali e che smisterà internamente. |
| | mydomain = valore indica il dominio a cui appartiene il server. |
| | relayhost = valore indica a quale server inoltrare le mail che non si riconoscono come locali. |
| | mailbox_size_limit = 0 indica la dimensione massima delle caselle mail, 0 per nessun limite. |
| | mynetworks = valore altri_valori indica le reti nelle quali il server deve operare (es. 127.0.0.1/8 192.168.0.1/24). |
| | mynetworks_syle = host/subnet/class |
| | </pre> |
| | |
| | Su questi ultimi due punti è il caso di soffermarsi. Stiamo considerando ora quali ip considerare validi per l'invio della posta. |
| | |
| | Postfix non autorizza l'invio della posta da parte di client non autorizzati a farlo e/o di domini sconosciuti, ovvero non è un open-relay. Questo è un gran vantaggio perché impedisce che il vostro server possa essere usato per spam o peggio. |
| | |
| | Tranute mynetworks abilito gli ip presenti nella lista a spedire mail, con mynetworks_style posso specificare uno tra i seguenti tre valori: |
| | |
| | ;host: l'invio sarà consentito solo per la macchina locale. |
| | ;class: l'invio sarà consentito a tutti i client appartenenti al network di classe A, C o C a cui il server appartiene. |
| | ;subnet: indica che Postfix autorizza alla trasmissione tutti i client che appartengono alla stessa sottorete locale del mailserver e costituisce il valore di default. |
| | |
| | ==Gestione degli Alias== |
| | In teoria ad ogni utente locale del vostro server corrisponde una sola casella mail. |
| | Si possono però creare degli alias che corrispondano ad un particolare utente, un secondo indirizzo a cui inviare mail per quel dato user. |
| | Di default esiste il file /etc/aliases che contiene una lista di alias a sinistra e i rispettivi utenti ai quali appartengono a destra. |
| | In /etc/postfix/main.cf basta solo aggiungere |
| | |
| | <pre> |
| | alias_maps = hash:/etc/aliases |
| | </pre> |
| | |
| | e per rendere questo file una mappa utilizzabile da Postfix lanciamo il comando |
| | |
| | <pre> |
| | # postalias /etc/aliases |
| | </pre> |
| | |
| | ==Multidominio, Virtual Domain e Sender Canonical== |
| | Nel caso il vostro Server debba ricevre la posta per più domini non dobbiamo fare altro che modificare la tag mydestination come segue |
| | |
| | <pre> |
| | mydestination = localhost, /etc/postfix/local-domain |
| | </pre> |
| | |
| | creare il file /etc/postfix/local-domain e inserire li i domini da considerare locali uno per riga senza virgole. |
| | |
| | Fatto questo conviene preparare un file per la gestione dei domini virtuali in modo tale da associare il giusto dominio al dato utente |
| | creiamo allora il file /etc/postfix/virtual |
| | La sintassi da usare è la seguente: |
| | |
| | <pre> |
| | info@dominio1.it marco -> le mail in arrivo per tale indirizzo sono redirezionate a marco |
| | webmaster@dominio2.it andrea@dominio4.it -> le mail verranno inviate a andrea@dominio4.it |
| | @dominio3.com alessandro -> tutte le mail inviate a qualsiasi indirizzo @dominio3.com sono inviate all'utente alessandro |
| | </pre> |
| | |
| | aggiungiamo in /etc/postfix/main.cf |
| | |
| | <pre> |
| | virtual_maps = hash:/etc/postfix/virtual |
| | </pre> |
| | |
| | e prepariamo la map con il comando |
| | |
| | <pre> |
| | # postmap /etc/postfix/virtual |
| | </pre> |
| | |
| | Può essere utile sempre per la gestione di più domini usare un file che associ ad un nome utente un indirizzo mittente particolare. |
| | Creiamo perciò un file /etc/postfix/sender_canonical dove con la precedente sintassi associamo al nome utente l'indirizzo mittente da mostrare nelle mail inviate. |
| | Aggiungiamo in /etc/main.cf la seguente riga: |
| | |
| | <pre> |
| | sender_canonical_maps = hash:/etc/postfix/sender_canonical |
| | </pre> |
| | |
| | ed infine prepariamo la map con |
| | |
| | <pre> |
| | # postmap /etc/postfix/sender_canonical |
| | </pre> |
| | |
| | ==Antivirus - Amavis e ClamaV== |
| | Passiamo ora alla configurazione dell'antivirus da installare sul vostro MTA. |
| | Procediamo all'installazione: |
| | |
| | <pre> |
| | # apt-get install amavisd-new clamav clamav-daemon |
| | </pre> |
| | |
| | Dopo l'installazione dobbiamo dire a Postfix di far processare le mail dal vostro antivirus. Aggiungiamo a /etc/postfix/main.cf quanto segue: |
| | |
| | <pre> |
| | content_filter = amavis:[127.0.0.1]:10024 |
| | </pre> |
| | mentre nel file /etc/postfix/master.cf: |
| | <pre> |
| | amavis unix - - n - 2 smtp |
| | -o smtp_data_done_timeout=1200 |
| | -o disable_dns_lookups=yes |
| | |
| | 127.0.0.1:10025 inet n - n - - smtpd |
| | -o content_filter= |
| | -o local_recipient_maps= |
| | -o relay_recipient_maps= |
| | -o smtpd_restriction_classes= |
| | -o smtpd_client_restrictions= |
| | -o smtpd_helo_restrictions= |
| | -o smtpd_sender_restrictions= |
| | -o smtpd_recipient_restrictions=permit_mynetworks,reject |
| | -o mynetworks=127.0.0.0/8 |
| | -o strict_rfc821_envelopes=yes |
| | </pre> |
| | |
| | Di per se non si richiedono altre modifiche per il corretto funzionamento, comunque può essere utile dare un occhiata al file /etc/amavis/amavisd.conf per eventuali modifiche. |
| | Il Demone clamav-daemon (freshclam) tiene aggiornato il vostro antivirus aggiornandosi 12 volte al giorno, per eventuali modifiche /etc/clamav/fresclam.conf e /etc/clamv/clamavd.conf |
| | |
| | ==Antispam - Spamassassin== |
| | Può essere utile installare un antispam che filtri le mail nel vostro server. Spamassassin è ciò che fa per voi. Installiamolo insieme a procmail: |
| | |
| | <pre> |
| | # apt-get install spamassassin procmail |
| | </pre> |
| | |
| | a questo punto aggiungiamo in /etc/postfix/main.cf quanto segue |
| | |
| | <pre> |
| | mailbox_command = /usr/bin/spamc | procmail -a "$EXTENSION" |
| | </pre> |
| | |
| | abilitiamo spamassassin modificando in /etc/default/spamassassin |
| | |
| | <pre> |
| | ENABLE=1 |
| | </pre> |
| | |
| | aggiungiamo al file /etc/procmailrc quanto segue: |
| | |
| <pre> | | <pre> |
| #!/bin/bash
| | DROPPRIVS=yes |
| ##
| | :0fw |
| clear
| | | /usr/bin/spamassassin |
| ##
| | </pre> |
| ####################
| | |
| VERSION="2003.06.11"
| | Per settaggi particolari di spamassassin vi consiglio di dare un'occhiata al file /etc/spamassassin/local.cf oppure consultare il sito web http://www.yrex.com/spam/spamconfig.php che vi consente di creare un file di configurazione personalizzato rispondendo alle varie domande. |
| ####################
| |
| ##
| |
| ## Interfaccia interna fidata 'settare la propria'
| |
| IIF="eth0"
| |
| # IIF="eth1"
| |
| ##
| |
| ## Interfaccia esterna da proteggere 'settare la propria'
| |
| ## in genere l'interfaccia esterna e' configurata da un DHCP quindi ha indirizzo dinamico.
| |
| EIF="ppp0"
| |
| # EIF="eth0"
| |
| # EIF="eth1"
| |
| ## Se l'interfaccia esterna ha un IP statico, dichiararlo
| |
| # EIP="xx.xx.xx.xx"
| |
| ##
| |
| ## Indirizzo macchina router (si presume che il firewall giri sulla macchina router
| |
| ## in caso contrario correggere manualmente questo indirizzo)
| |
| ##
| |
| ## Se preferite utilizzare un indirizzo statico, decommentate la linea che indica un IP
| |
| ## altrimenti se utilizzate un DHCP o non conoscete l'indirizzo
| |
| ## usate il riconoscimento tramite ifconfig
| |
| ## controllare comunque che lo script riconosca l'indirizzo IP (potrebbe non andare su macchine che
| |
| ## utilizzano shell particolari o che formattano ifconfig diversamente.
| |
| ##
| |
| SERVER=` ifconfig $IIF | grep inet | cut -d : -f2 | cut -d ' ' -f1`
| |
| # SERVER="192.168.10.2"
| |
| ##
| |
| ## Indirizzo macchina client da inserire a mano, se il server condivide la connessione
| |
| ## internet, questa macchina sar� autorizzata ad accedere al firewall via eth0
| |
| ## al posto di un singolo host e' possibile utilizzare una rete intera usando
| |
| ## la notazione RETE/NETMASK
| |
| ## attenzione alla banda disponibile perch� una rete genera parecchio traffico..;)
| |
| CLIENT="10.22.115.11"
| |
| # CLIENT"192.168.10.0/24"
| |
| ##
| |
| ## Loopback
| |
| LOCALHOST="127.0.0.1"
| |
| ##
| |
| ## Rete interna
| |
| ## controllare che gli script ottengano i valori corretti
| |
| ## o sostituire con valori statici.
| |
| net=` ifconfig $IIF | grep inet | cut -d : -f2 | cut -d ' ' -f1 | cut -d . -f1,2,3`
| |
| mask=` ifconfig $IIF | grep inet | cut -d : -f4 | cut -d ' ' -f1`
| |
| LOCALNET="$net.0/$mask"
| |
| ##
| |
| ## Broadcast
| |
| BROADCAST=` ifconfig $IIF | grep inet | cut -d : -f3 | cut -d ' ' -f1`
| |
| ##
| |
| ## Provider1 DNS 'inserire i propri dns'
| |
| # DNS1="212.216.172.62"
| |
| DNS1="195.130.224.18"
| |
| ##
| |
| ## Provider2 DNS
| |
| #DNS2="195.130.224.18"
| |
| DNS2="192.160.10.31"
| |
| ##
| |
| ## Local DNS
| |
| DNS3="212.245.255.2"
| |
| ## questo potrebbe essere il DNS locale, in seguito sara' prevista la configurazione
| |
| ## per il funzionamento di un dns locale.
| |
| ##
| |
| ## Per qualunque problema...;)
| |
| EMAIL="m.m.asciutti@email.it"
| |
| ##
| |
| ## PATH di iptables 'adattare alla propria macchina, se necessario'
| |
| IPT=` which iptables`
| |
| ##
| |
| ## NOTA:
| |
| ## Dopo aver modificato i parametri base per adattare lo
| |
| ## script alle proprie esigenze, salvarlo e renderlo eseguibile
| |
| ## in particolare adattare l'indirizzo del client o della rete che
| |
| ## verra' nattata
| |
| ## verificare inoltre che lo script che preleva
| |
| ## l'indirizzo IP da ifconfig sia funzionante
| |
| ## sul proprio sistema.
| |
| ##
| |
| ## Decommentare se si desidera aggiungere lo script al PATH di sistema
| |
| # export PATH=$PATH:$NPATH
| |
| ##
| |
| ## Nome dello script e Posizione assoluta
| |
| NFILE="firewall"
| |
| NPATH="/etc/rc.d"
| |
| ##
| |
| ## NOTA:
| |
| ## il percorso predefinito e' "/etc/rc.d/" ed
| |
| ## il nome predefinito e' "firewall"
| |
| ## ma e' possibile utilizzare qualsiasi nome / percorso
| |
| ## avendo cura di modificare le variabili NFILE e NPATH'
| |
| ##
| |
| ## Setto permessi e proprietario
| |
| chown root $NPATH/$NFILE
| |
| chmod 700 $NPATH/$NFILE
| |
| ##
| |
| ## NOTA:
| |
| ## questa funzione viene richiamata solo con
| |
| ## l'opzione stop e serve a rimuovere i moduli
| |
| ## caricati dal firewall
| |
| ##
| |
| #ANSI COLOR
| |
| MAGENTA='\e[35m'
| |
| GREEN='\e[32m'
| |
| YELLOW='\e[33m'
| |
| WHITE='\e[37m'
| |
| BLUE='\e[34m'
| |
| CYAN='\e[36m'
| |
| RED='\e[31m'
| |
| NULL='\e[0m'
| |
| COLOR=$BLUE
| |
| ##
| |
| case "$1" in
| |
| #**************************************************************START
| |
| start)
| |
| clear
| |
| COLOR=$RED
| |
| msg=" Attivo il firewall ..."
| |
| echo -e "$COLOR$msg$NULL\n"
| |
|
| |
|
| ##
| | ==WebMail - Openwebmail== |
| ## Politica INPUT
| | Per poter usufruire del servizio di webmail è necessario usare un server web. |
| chain="DROP"
| | Io vi consiglio apache con supporto php e cgi. In questa guida presumo che nel vostro server sia già presente apache configurato a dovere. |
| ##
| | Esistono diversi servizi di WebMail, io ho scelto openwebmail, installiamolo dopo aver aggiunto la repository in /etc/apt/source.list |
| ## Politica OUTPUT
| |
| outchain="ACCEPT"
| |
| ##
| |
| ## Routing
| |
| fw="ACCEPT"
| |
| CF="1"
| |
| ##
| |
| ## Opzioni diverse dalle standard
| |
| ##
| |
| ## Politica OUTPUT
| |
| ## 'se si attiva, decommentare le regole relative all'uscita dei pacchetti'
| |
| ## outchain="DROP"
| |
| ##
| |
| ## Non funziona da router
| |
| # fw="DROP"
| |
| # CF="0"
| |
| ##
| |
| ## Opzioni kernel
| |
| SC="1"
| |
| ER="1"
| |
| DE="1"
| |
| TW="1"
| |
| SR="0"
| |
| DR="0"
| |
| ASR="0"
| |
| ISR="1"
| |
| SAV="1"
| |
| LOG="1"
| |
| DSR="1"
| |
| ##
| |
| ## Solo cosmetico
| |
| SET="Abilito"
| |
| MSET="Abilito"
| |
| function netfilter()
| |
| {
| |
| exit 0
| |
| }
| |
| ;;
| |
| #*******************************************************************STOP
| |
| stop)
| |
|
| |
|
| clear
| | deb http://people.debian.org/~srua/openwebmail/stable/ ./ |
| COLOR=$GREEN
| |
| msg=" Disattivo il firewall ..."
| |
| echo -e "$COLOR$msg$NULL\n"
| |
| ##
| |
| ## Politica INPUT
| |
| chain="ACCEPT"
| |
| ##
| |
| ## Politica OUTPUT
| |
| outchain="ACCEPT"
| |
| ##
| |
| ## Non funziona da router
| |
| fw="DROP"
| |
| CF="0"
| |
| ##
| |
| ## Opzioni kernel
| |
| SC="0"
| |
| ER="0"
| |
| DE="0"
| |
| TW="0"
| |
| SR="1"
| |
| DR="1"
| |
| ASR="1"
| |
| ISR="0"
| |
| SAV="0"
| |
| LOG="0"
| |
| DSR="0"
| |
| ##
| |
| ## Solo cosmetico
| |
| SET="Disabilito"
| |
| MSET="Disabilito"
| |
| ##
| |
| function netfilter()
| |
| {
| |
| if [ -f /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip_tables.o ]; then
| |
| ( rmmod ip_contrackt \
| |
| ip_contrack_ftp \
| |
| ip_nat_ftp \
| |
| ip_queue \
| |
| ip_tables \
| |
| ipt_LOG \
| |
| ipt_MARK \
| |
| ipt_MASQUERADE \
| |
| ipt_MIRROR \
| |
| ipt_REDIRECT \
| |
| ipt_TCPMSS \
| |
| ipt_TOS \
| |
| ipt_limit \
| |
| ipt_mac \
| |
| ipt_mark \
| |
| ipt_multiport \
| |
| ipt_owner \
| |
| ipt_state \
| |
| ipt_tcpmss \
| |
| ipt_tos \
| |
| ipt_unclean \
| |
| iptable_filter \
| |
| iptable_mangle \
| |
| iptable_net
| |
| ) > /dev/null 2> /dev/null
| |
|
| |
|
| ( rmmod ipfwadm; rmmod ipchains; modprobe ip_tables ) > /dev/null 2> /dev/null
| | <pre> |
| | # apt-get install openwebmail |
| | </pre> |
|
| |
|
| fi
| | Dopo l'installazione recatevi in /etc/openwebmail e date un occhiata al file apache.conf che contiene le specifiche per configurare apache. |
| exit 0
| | Apriamo ora /etc/openwebmail/openwebmail.conf e apportiamo le nostre personalizzazioni. |
| }
| | Attenzione alla voce domainnames, spesso auto può portare a dei problemi, vi consiglio di specificare il dominio di appartenenza. |
| ;;
| | Per altre modifiche consultate il file /usr/share/openwebmail/configs/openwebmail.conf |
| #*************************************************************ROUTER
| |
| router)
| |
|
| |
|
| clear
| | ==Gestione Mailing-List Mailman + Hypermail== |
| COLOR=$YELLOW
| | Ogni mailserver che si rispetti ha anche un gestore di mailing-list. Io vi consiglio di installare mailman che possiede un ottimo supporto web per le varie configurazioni: |
| msg=" Attenzione, disattivo il firewall ed attivo il forwarding..."
| |
| echo -e "$COLOR$msg$NULL\n"
| |
|
| |
|
| ##
| | <pre> |
| ## Politica INPUT
| | # apt-get install mailman hypermail |
| chain="ACCEPT"
| | </pre> |
| ##
| |
| ## Politica OUTPUT
| |
| outchain="ACCEPT"
| |
| ##
| |
| ## Funziona da router
| |
| fw="ACCEPT"
| |
| CF="1"
| |
| ##
| |
| ## Opzioni kernel
| |
| SC="0"
| |
| ER="0"
| |
| DE="0"
| |
| TW="0"
| |
| SR="1"
| |
| DR="1"
| |
| ASR="1"
| |
| ISR="0"
| |
| SAV="0"
| |
| LOG="0"
| |
| DSR="0"
| |
| ##
| |
| ## Solo cosmetico
| |
| SET="Disabilito"
| |
| MSET="Abilito"
| |
| function netfilter()
| |
| {
| |
| exit 0
| |
| }
| |
| ;;
| |
| #**************************************************************HELP | |
| help)
| |
| clear
| |
| COLOR=$CYAN
| |
| msg=" Help..."
| |
| echo -e "$COLOR$msg"
| |
| echo ""
| |
| echo "$NFILE start "
| |
| echo " Setta il firewall secondo le opzioni"
| |
| echo " indicate, e' possibile modificare "
| |
| echo " gran parte dei parametri predefiniti"
| |
| echo " per utilizzare lo script secondo le"
| |
| echo " proprie esigenze."
| |
| echo ""
| |
| echo "$NFILE stop"
| |
| echo " Resetta il firewall, permette il passaggio"
| |
| echo " di tutti i pacchetti in ingresso su ogni "
| |
| echo " interfaccia disabilitando l'utilizzo "
| |
| echo " del PC come router;"
| |
| echo " navigate usando questa modalita' il meno possibile."
| |
| echo ""
| |
| echo "$NFILE router"
| |
| echo " Abilita il transito dei pacchetti"
| |
| echo " tra $IIF e $EIF senza nessun firewall"
| |
| echo " utilizzare esclusivamente per testare la rete"
| |
| echo " o usare un secondo firewall tra router e rete"
| |
| echo " molti settaggi del kernel non sono pensati per la sicurezza"
| |
| echo " ma solo per testare la rete senza perdita di nessun tipo di pacchetti,"
| |
| echo " e' PERICOLOSO. "
| |
| echo ""
| |
| echo "$NFILE info"
| |
| echo " Mostra il settaggio attuale dei parametri base"
| |
| echo " per controllare le personalizzazioni sullo script."
| |
| echo ""
| |
| echo "$NFILE policy"
| |
| echo " Mostra le politiche impostate con start"
| |
| echo " e le statistiche relative al funzionamento del firewall"
| |
| echo " i pacchetti ricevuti, droppati, loggati ecc."
| |
| echo ""
| |
| echo "$NFILE vsf"
| |
| echo " Verifica se il server e in presenza di "
| |
| echo " attacco Syn Flood."
| |
| echo " E' possibile settare alcuni parametri per diminuire "
| |
| echo " la vulnerabilita' all'attacco (indicati nel corpo dello script)."
| |
| echo " I tentativi di attacco sono comunque tutti loggati."
| |
| echo ""
| |
| echo "$NFILE help"
| |
| echo " Visualizza questo messaggio"
| |
| echo -e "$NULL\n"
| |
| echo "Per ogni suggerimento:$EMAIL"
| |
| echo ""
| |
| exit 0
| |
|
| |
|
| ;;
| | Fatto questo modificate /etc/postfix/main.cf aggiungendo quanto segue: |
| #***************************************************************INFO
| |
| info)
| |
| clear
| |
| COLOR=$MAGENTA
| |
| msg=" Info ..."
| |
| echo -e "$COLOR$msg"
| |
| echo ""
| |
| ##
| |
| echo ""
| |
| echo " il PATH di questo script e' $NPATH/$NFILE"
| |
| echo " il PATH di iptables e' $IPT"
| |
| echo " l'interfaccia interna e' la $IIF"
| |
| echo " l'interfaccia esterna e' la $EIF"
| |
| echo " l'indirizzo IP del pc server/router e' $SERVER "
| |
| echo " l'indirizzo IP del pc client fidato e' $CLIENT"
| |
| echo " la rete locale e' $LOCALNET"
| |
| echo " l'indirizzo broadcast e' $BROADCAST"
| |
| echo " il DNS primario e' $DNS1"
| |
| echo " il DNS secondario e' $DNS2"
| |
| echo ""
| |
| echo -e "$NULL\n"
| |
|
| |
|
| exit 0
| | <pre> |
| | alias_maps = hash:/etc/aliases |
| | hash:/var/lib/mailman/data/aliases |
| | transport_maps = hash:/etc/postfix/transport |
| | relay_domains = lists.vostrodominio.com |
| | mailman_destination_recipient_limit = 1 |
| | </pre> |
|
| |
|
| ;;
| | creiamo /etc/postfix/transport e trasformiamolo in una mappa |
| #***************************************************************INFO
| |
| policy)
| |
| clear
| |
| COLOR=$WHITE
| |
| msg=" Politiche ..."
| |
| echo -e "$COLOR$msg"
| |
| $IPT -nvL
| |
| ##
| |
| ## espande la politica di netfilter
| |
| ## visualizzando le catene e informazioni sulle
| |
| echo -e "$NULL\n"
| |
| ##
| |
|
| |
|
| exit 0
| | <pre> |
| | # echo lists.vostrodominio.com mailman: > /etc/postfix/transport |
| | # postmap /etc/postfix/transport |
| | </pre> |
|
| |
|
| ;;
| | Modificate ora il file /etc/postfix/master.cf: |
|
| |
|
| #*********************************************************Verifica Syn Flood
| | <pre> |
| vsf)
| | mailman unix - n n - - pipe flags=FR user=list argv=/var/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user} |
| clear
| | </pre> |
| COLOR=$YELLOW
| |
| msg=" Syn Flood ..."
| |
| echo -e "$COLOR$msg"
| |
| echo ""
| |
| echo " Verifico se siamo in presenza di Syn Flood"
| |
| echo ""
| |
| echo " Oltre 20-30 tentativi di connessione da uno stesso"
| |
| echo " indirizzo, indicano un tentativo di flood, verificare comunque i Log"
| |
| echo " prima di attivare le contromisure"
| |
| ##
| |
| netstat -npla | grep SYN_RECV
| |
| ##
| |
| echo -e "$NULL\n"
| |
|
| |
|
| exit 0
| | Modificate nel file /etc/mailman/mm_cfg.py i seguenti tag: |
|
| |
|
| ;;
| | <pre> |
| | DEFAULT_EMAIL_HOST = 'vostrodominio.com' |
| | DEFAULT_URL_HOST = 'www.vostrosito.com' |
| | MTA='Postfix' |
| | PUBLIC_EXTERNAL_ARCHIVER = 'hypermail -L it -m /var/lib/mailman/archives/private/%(listname)s.mbox/%(listname)s.mbox -l %(listname)s -d /var/lib/mailman/archives/public/%(listname)s' |
| | PRIVATE_EXTERNAL_ARCHIVER = 'hypermail -c -L it -m /var/lib/mailman/archives/private/%(listname)s.mbox/%(listname)s.mbox -l %(listname)s -d /var/lib/mailman/archives/private/%(listname)s' |
| | PUBLIC_ARCHIVE_URL = '/archives/%(listname)s' |
| | PRIVATE_ARCHIVE_URL = '/archives/%(listname)s' |
| | ARCHIVE_TO_MBOX = 2 |
| | </pre> |
|
| |
|
| #****************************************************************USO
| | Fate attenzione alle voci PUBLIC_ARCHIVE_URL e PRIVATE_ARCHIVE_URL. |
| *)
| | Sono i link che in mailman verranno associati all'archivio delle vostre mailinglist (www.vostrodominio.it/archives/nomelista). di conseguenza un mio consiglio è creare un link simbolico nella DocumentRoot del server apache in questione: |
| ##
| |
| clear
| |
| COLOR=$BLUE
| |
| msg="Firewall ver. $VERSION - Utilizzo: $NFILE {start|stop|router|info|policy|vsf|help}"
| |
| echo -e "$COLOR$msg$NULL\n"
| |
| ##
| |
|
| |
|
| exit 0
| | <pre> |
| ;;
| | # ln -s /var/lib/mailman/archives/public/ archives |
| ##
| | </pre> |
| esac
| |
| ##
| |
| #*******************************************************BLOCCO COMUNE
| |
| ##
| |
| echo -e "$COLOR"
| |
| ## Caricamento dei moduli necessari nel kernel
| |
| ##
| |
| ## Il vostro kernel potrebbe non avere
| |
| ## tutti questi moduli, e' sufficiente ricompilare se le funzionalita'
| |
| ## sono necessarie.
| |
| ##
| |
| ## NOTA: I seguenti moduli sono elencati solo per informazione
| |
| ## Non e' necessario inserirli manualmente nel kernel
| |
| ## a meno di casi particolari.
| |
| ##
| |
| # echo "Caricamento moduli..."
| |
| ##
| |
| # modulo base
| |
| modprobe ip_tables
| |
| ##
| |
| # modulo necessario alla stateful connection tracking
| |
| modprobe ip_conntrack
| |
| ##
| |
| # modulo filter, permette di droppare rifiutare o loggare i pacchetti
| |
| modprobe iptable_filter
| |
| ##
| |
| # modulo mangle
| |
| # modprobe iptable_mangle
| |
| ##
| |
| # modulo nat
| |
| modprobe iptable_nat
| |
| ##
| |
| # modulo LOG, permette di registrare i pacchetti bloccati in base alle catene
| |
| modprobe ipt_LOG
| |
| ##
| |
| # modulo utilizzato per limitare il numero di pacchetti per sec/min/hr
| |
| ##
| |
| modprobe ipt_limit
| |
| ##
| |
| # modulo masquerade
| |
| modprobe ipt_MASQUERADE
| |
| ##
| |
| # modulo owner
| |
| # modprobe ipt_owner
| |
| ##
| |
| # REJECT respinge il pacchetto restituendo una risposta ICMP
| |
| # configurabile, il default � "connection refused".
| |
| # modprobe ipt_REJECT
| |
| ##
| |
| # modulo mark, permette di marcare pacchetti sulla catena mangle
| |
| # modprobe ipt_mark
| |
| ##
| |
| # questo modulo permette di modificare il TCP MSS
| |
| ##
| |
| modprobe ipt_tcpmss
| |
| ##
| |
| # questo modulo permette di indicare porte multiple
| |
| # modprobe multiport
| |
| ##
| |
| # questo modulo consente controlli sui flags TCP
| |
| # modprobe ipt_state
| |
| ##
| |
| # controlli su flags invalidi
| |
| # modprobe ipt_unclean
| |
| ##
| |
| # supporto ftp non-PASV
| |
| # modprobe ip_nat_ftp
| |
| ##
| |
| # modulo per full ftp connection tracking
| |
| # modprobe ip_conntrack_ftp
| |
| ##
| |
| # modulo per full irc connection tracking
| |
| # modprobe ip_conntrack_irc
| |
| ##
| |
| #################
| |
| ## area kernel ##
| |
| #################
| |
| ##
| |
| echo "$SET forwarding... "
| |
| echo "$CF" >/proc/sys/net/ipv4/ip_forward
| |
| ##
| |
| echo "$SET syn-cookies (protezione syn-flood attacks)..."
| |
| echo "$SC" >/proc/sys/net/ipv4/tcp_syncookies
| |
| ##
| |
| echo "Riduco il numero di possibili SYN Floods..."
| |
| echo "1024" >/proc/sys/net/ipv4/tcp_max_syn_backlog
| |
| ##
| |
| ## | |
| echo "$SET ICMP echo-request su indirizzi broadcast (Smurf amplifier)..."
| |
| # Questi parametri servono ad ignorare ogni ICMP echo requests
| |
| # inviato da indirizzi broadcast. Serve a prevenire
| |
| # un gran numero di attacchi smurfs e DoS.
| |
| echo "$ER" >/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
| |
| ##
| |
| # Contromisure contro attacchi DoS
| |
| # echo "Disabilito ICMP echo-request (usare solo se si � sotto attacco Dos)"
| |
| # echo "1" >/proc/sys/net/ipv4/icmp_echo_ignore_all
| |
| # #sotto attacco syn incrementare il valore di tcp_max_syn_backlog e decrementare
| |
| # #il valore dei timeout_*
| |
| # echo "100" > /proc/sys/net/ipv4/vs/timeout_synack
| |
| # echo "10" > /proc/sys/net/ipv4/vs/timeout_synrecv
| |
| # echo "128" > /proc/sys/net/ipv4/tcp_max_syn_backlog
| |
| ##
| |
| echo "$SET protezione defrag error... "
| |
| echo "$DE" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
| |
| ##
| |
| echo "$SET time-wait assassination hazards in tcp (RFC 1337)..."
| |
| #echo "$TW" >/proc/sys/net/ipv4/tcp_rfc1337
| |
| ##
| |
| echo "$SET sourcerouting and spoofing protection..."
| |
| for i in /proc/sys/net/ipv4/conf/*; do
| |
| ##
| |
| echo "$SET politica per source-routed packets..."
| |
| # Questa politica e' usata per accettare o rifiutare pacchetti
| |
| # di tipo 'source routed'. E' attiva di default, ma � considerata
| |
| # un rischio per la sicurezza.
| |
| echo "$SR" >$i/accept_source_route
| |
| ##
| |
| echo "$SET politica per ICMP Redirect accept/send..."
| |
| # Questa opzione disabilita la redirezione dei pacchetti ICMP.
| |
| # E' generalmente considerato un rischio per la sicurezza.
| |
| echo "$DR" >$i/accept_redirects
| |
| # Per questo motivo, e' preferibile accettare ICMP solo
| |
| # dal gateway di default (opzione secure_redirects).
| |
| echo "$ASR" >$i/send_redirects
| |
| echo "$SET secure ICMP redirects..."
| |
| echo "$ISR" >$i/secure_redirects
| |
| ##
| |
| # echo "Disabilito Proxy ARP ..."
| |
| # # E' un'opzione utilizzata per la realizzazione di DMZ;
| |
| # # � disabilitata in quanto non rientra negli scopi di questo script.
| |
| # # per maggiorni info: http://www.sjdjweis.com/linux/proxyarp/
| |
| # echo "0" >$i/proxy_arp
| |
| ##
| |
| echo "$SET source-address verification (prevent spoofing)..."
| |
| # Abilita i controlli previsti nel RFC1812.
| |
| # � raccomandato per sistemi basati su interfacce singole
| |
| # Disattivare se si hanno interfacce multiple collegate alla stessa rete.
| |
| # Questo controllo blocca i pacchetti che si presentano ad una interfaccia esterna
| |
| # con indirizzo forgiato per sembrare provenienti da interfaccia interna;
| |
| # il controllo e' comunque ripetuto in seguito.
| |
| echo "$SAV" >$i/rp_filter
| |
| ##
| |
| done
| |
| ##
| |
| echo "Applico settaggi controllo ..."
| |
| if [ -f /proc/sys/net/ipv4/icmp_destunreach_rate ]; then
| |
| echo "5" > /proc/sys/net/ipv4/icmp_destunreach_rate
| |
| fi
| |
| if [ -f /proc/sys/net/ipv4/icmp_echoreply_rate ]; then
| |
| echo "5" > /proc/sys/net/ipv4/icmp_echoreply_rate
| |
| fi
| |
| if [ -f /proc/sys/net/ipv4/icmp_paramprob_rate ]; then
| |
| echo "5" > /proc/sys/net/ipv4/icmp_paramprob_rate
| |
| fi
| |
| if [ -f /proc/sys/net/ipv4/icmp_timeexceed_rate ]; then
| |
| echo "10" > /proc/sys/net/ipv4/icmp_timeexceed_rate
| |
| fi
| |
| ##
| |
| echo "$SET il Log su spoofed, source routed e redirect packets..."
| |
| # Questa opzione serve a loggare i pacchetti provenienti da indirizzi impossibili.
| |
| echo "$LOG" >/proc/sys/net/ipv4/conf/all/log_martians
| |
| ##
| |
| echo "$SET dynamic socket address rewriting..."
| |
| # Utile se si utilizza un indirizzo dinamico assegnato da DHCP.
| |
| echo "$DSR" > /proc/sys/net/ipv4/ip_dynaddr
| |
| ##
| |
| echo "Setto porte locali ..."
| |
| echo "56000:65096" > /proc/sys/net/ipv4/ip_local_port_range
| |
| ##
| |
| ##
| |
| #################################
| |
| ## inizio competenza iptables ##
| |
| #################################
| |
| ##
| |
| echo "Azzero le chain..."
| |
| ##
| |
| for y in filter nat mangle ; do
| |
| $IPT -t $y -F
| |
| $IPT -t $y -X
| |
| done
| |
| ##
| |
| ## politica per la tabella filter
| |
| $IPT -P INPUT $chain
| |
| $IPT -P OUTPUT $outchain
| |
| $IPT -P FORWARD DROP
| |
| #NOTA: FORWARD e' su DROP in quanto il controllo e' lasciato a altre regole
| |
| ##
| |
| ## politica per la tabella mangle
| |
| for m in PREROUTING OUTPUT ; do
| |
| $IPT -t mangle -P $m ACCEPT
| |
| done
| |
| ##
| |
| echo "Genero catene utente ..."
| |
| $IPT -N chain-log
| |
| $IPT -A chain-log -j LOG --log-level info
| |
| # NOTA: Senza --log-level "info", si ha la scrittura dei log in ogni
| |
| # vty. E' un p� troppo ...
| |
| $IPT -A chain-log -j $chain
| |
| ##
| |
| # # Dynamic Address
| |
| # # La richiesta di assegnazione dell'indirizzo � di tipo broadcast
| |
| # # la risposta potrebbe non essere accettata
| |
| # # questa dichiarazione abilita il DHCP
| |
| # $IPT -A INPUT -p UDP --source-port 67 --destination-port 68 -j ACCEPT
| |
| # # DHCPd - abilitare in presenza di DHCP interno
| |
| # #$IPT -A INPUT -i $IIF -p tcp --sport 68 --dport 67 -j ACCEPT
| |
| # #$IPT -A INPUT -i $IIF -p udp --sport 68 --dport 67 -j ACCEPT
| |
| ##
| |
| ##
| |
| echo "Accetto connessioni da $LOCALHOST , $SERVER , $CLIENT ..."
| |
| $IPT -A INPUT -i lo -j ACCEPT
| |
| $IPT -A INPUT -i $IIF -s $CLIENT -j ACCEPT
| |
| $IPT -A INPUT -i $IIF -s $SERVER -j ACCEPT
| |
| # $IPT -A INPUT -i $IIF -s $LOCALNET -j ACCEPT
| |
| # $IPT -A OUTPUT -o lo -s $LOCALHOST -j ACCEPT
| |
| # $IPT -A OUTPUT -o lo -s $SERVER -j ACCEPT
| |
| ##
| |
| echo "Controllo di sanita' dei pacchetti sulla tabella nat-PREROUTING..."
| |
| $IPT -t nat -A PREROUTING -i $EIF -s $LOCALNET -j $chain
| |
| $IPT -t nat -A PREROUTING -i $EIF -s $LOCALHOST -j $chain
| |
| $IPT -t nat -A PREROUTING -i $EIF -s $CLIENT -j $chain
| |
| $IPT -t nat -A PREROUTING -i $EIF -s $SERVER -j $chain
| |
| # # E' anche possibile bloccare e loggare tutti i pacchetti
| |
| # # provenienti da indirizzi privati (chiaramente forgiati per
| |
| # # tentare un'intrusione) e non solo quelli relativi a $LOCALNET
| |
| # # per una lista completa:
| |
| # # http://www.iana.org/assignments/ipv4-address-space
| |
| ##
| |
| # # echo "Rifiuto pacchetti provenienti da indirizzi privati, multicast o riservati..."
| |
| ##
| |
| # # NOTA - le variabili A_r,B_r,C_r,D_r devono essere dimensionate
| |
| # # leggendo le liste degli indirizzi da rifiutare (file esterno)
| |
| # # il metodo e' riportato , ma non e' implementato nessun controllo,
| |
| # # i pacchetti in ingresso sono comunque tutti droppati.
| |
| # # questo controllo potrebbe essere comunque comodo, ma non e'
| |
| # # nelle finalit� di questo script.
| |
| # # non
| |
| # for CL in A_r B_r C_r D_mc E_r ; do
| |
| # $IPT -A INPUT -i $EIF -s $CL -j chain-log
| |
| # done
| |
| ##
| |
| # TCP & UDP
| |
| # Le porte standard sono elencate su:
| |
| # http://www.chebucto.ns.ca/~rakerman/port-table.html
| |
| # http://www.iana.org/assignments/port-numbers
| |
| ##
| |
| echo "Accetto connessioni RELATED/ESTABLISHED..."
| |
| #in input
| |
| $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
| |
| echo "Accetto ICMP type 0,3,11..."
| |
| ## codici ICMP - RFC 792
| |
| ## 0 Echo Reply
| |
| ## 3 Destination Unreachable, il router non ha trovato la destinazione del pacchetto.
| |
| ## 4 Source Quench
| |
| ## 5 Redirect, il router informa l'host che ha spedito il pacchetto di un qualche errore
| |
| ## 8 Echo, messaggio utile per sapere se un host � presente oppure no (utilizzato in Ping)
| |
| ## 11 Time Exceeded
| |
| ## 12 Parameter Problem, campo dell'header non valido
| |
| ## 13 Timestamp
| |
| ## 14 Timestamp Reply
| |
| ## 15 Information Request
| |
| ## 16 Information Reply
| |
| # Visitare: http://www.ee.siue.edu/~rwalden/networking/icmp.html
| |
| # per altre informazioni relative ai tipi ICMP.
| |
| for ic in 0 3 11 ; do
| |
| $IPT -A INPUT -i $EIF -p icmp --icmp-type $ic -j ACCEPT
| |
| done
| |
| ##
| |
| # Decommentare se si desidera che il proprio sistema risponda ai ping
| |
| $IPT -A INPUT -i $EIF -p ICMP --icmp-type 8 -j $chain
| |
| # $IPT -A INPUT -i $EIF -p ICMP --icmp-type 8 -j ACCEPT
| |
| ##
| |
| echo "Accetto ICMP dalla rete locale..."
| |
| $IPT -A INPUT -i $IIF -s $LOCALNET -p icmp -j ACCEPT
| |
| ##
| |
| echo "Accetto DNS replays"
| |
| $IPT -A INPUT -i $EIF -p udp -s $DNS1 --sport 53 -j ACCEPT
| |
| $IPT -A INPUT -i $EIF -p udp -s $DNS2 --sport 53 -j ACCEPT
| |
| # $IPT -A INPUT -i IIF -p tcp -s $DNS3 --sport 53 -j ACCEPT
| |
| $IPT -A INPUT -p udp --sport 53 -j ACCEPT
| |
| # il dns 3 si intende come locale, per questo si accettano le connessioni tcp
| |
| # $IPT -A INPUT -i $EIF -p tcp -s $DNS1 --sport 53 -j ACCEPT
| |
| # $IPT -A INPUT -i $EIF -p tcp -s $DNS2 --sport 53 -j ACCEPT
| |
| ##
| |
| echo "Blocco ogni pacchetto broadcast"
| |
| $IPT -A INPUT -p ALL -d 255.255.255.255 -j $chain
| |
| # $IPT -A INPUT -s 10.128.0.0/255.255.0.0 -j DROP
| |
| ##
| |
| echo "Attivo SYN-FLOODING protection..."
| |
| $IPT -N SYN-FLOOD
| |
| $IPT -A INPUT -p tcp --syn -j SYN-FLOOD
| |
| $IPT -t filter -A SYN-FLOOD -m limit --limit 1/s --limit-burst 4 -j chain-log
| |
| ##
| |
| # echo "Sperimentale..."
| |
| # #NOTA - e' disattivato in quanto potrebbe generare molti falsi positivi.
| |
| # $IPT -t nat -A PREROUTING -i $EIF -m unclean -j chain-log
| |
| ##
| |
| echo "Blocco le scansioni Xmas tree, i pacchetti senza flag, i flag irregolari, le scansioni..."
| |
| ##Blocco le scansioni Xmas tree
| |
| $IPT -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j chain-log
| |
| $IPT -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK -j chain-log
| |
| ##
| |
| ##Blocco i pacchetti senza flags
| |
| $IPT -A INPUT -p tcp --tcp-flags ALL NONE -j chain-log
| |
| ##
| |
| ##Blocco i pacchetti SYN+RST e SYN+FIN
| |
| $IPT -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j chain-log
| |
| $IPT -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j chain-log
| |
| ##
| |
| ##Blocco le scansioni FIN
| |
| $IPT -A INPUT -p tcp --tcp-flags FIN FIN -j chain-log
| |
| ##
| |
| ##Elimino pacchetti broadcast netbios
| |
| $IPT -A INPUT -p udp --dport 135:139 -j $chain
| |
| ##
| |
| echo "Dirotto pacchetti NEW e INVALID verso CHAIN..."
| |
| $IPT -A INPUT -i $EIF -m state --state NEW,INVALID -j chain-log
| |
| $IPT -A INPUT -i $IIF -m state --state NEW,INVALID -j chain-log
| |
| ##
| |
| ##
| |
| ##################################################################
| |
| ## Servizi aperti all'esterno 'decommentare i servizi desiderati, attenzione!!' ##
| |
| ##################################################################
| |
| ##
| |
| # echo "Accetto connessioni su shell criptate dall'esterno..."
| |
| # $IPT -A INPUT -p tcp --dport 22 -j ACCEPT
| |
| ##
| |
| # echo "Accetto connessioni sendmail dall'esterno [pericoloso!!!]..."
| |
| # $IPT -A INPUT -p tcp --dport smtp -j ACCEPT
| |
| ##
| |
| # echo "Accetto http e https dall'esterno [pericoloso!!]... "
| |
| # $IPT -A INPUT -p tcp -m multiport --destination-port 80,443 -j ACCEPT
| |
| ##
| |
| # echo "Accetto POP3 dall'esterno [pericoloso!]..."
| |
| # $IPT -A INPUT -p tcp --sport 110 -j ACCEPT
| |
| ##
| |
| # Questo esempio serve per usare il transparent proxy
| |
| # $IPT -t nat -A PREROUTING -p tcp -s $LOCALNET --destination-port 80 -j RETURN
| |
| # $IPT -t nat -A PREROUTING -p tcp -s $LOCALNET --destination-port 443 -j RETURN
| |
| # Redirezione HTTP
| |
| # $IPT -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 3128
| |
| # Redirezione HTTPS
| |
| # $IPT -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-ports 3128
| |
|
| |
|
| ##
| | Create poi una lista mailman di default per il server (altrimenti il suo demone si rifiuta di partire) |
| #######################
| |
| ## regole in uscita ##
| |
| #######################
| |
| ##
| |
| ## abilita servizio DNS per protocolli UDP
| |
| ## (attivare per policy drop su output)
| |
| # $IPT -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
| |
| ##
| |
| ## abilita la navigazione WEB ed il traffico HTTPS
| |
| ## (attivare per policy drop su output)
| |
| # $IPT -t filter -A OUTPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
| |
| ##
| |
| ## abilita il traffico FTP
| |
| ## (attivare per policy drop su output)
| |
| # $IPT -t filter -A OUTPUT -o $EIF -p tcp --dport ftp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
| |
| ##
| |
| ## abilita le connessioni SMTP e POP3 in uscita
| |
| ## (attivare per policy drop su output)
| |
| # $IPT -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT
| |
| # $IPT -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT
| |
| ##
| |
| ## abilita connessioni SSH (SecureShell) con attivazione Log
| |
| ## (attivare per policy drop su output)
| |
| # $IPT -t filter -A OUTPUT -p tcp --syn --dport 22 -m state --state NEW -j LOG --log-level info --log-prefix "---SSH from $EIF---"
| |
| # $IPT -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT
| |
| ##
| |
| # echo "Impedisco l'uscita di pacchetti netbios..."
| |
| # il traffico di questi pacchetti potrebbe attivare
| |
| # eventuali connessioni 'dial on demand' a internet.
| |
| # $IPT -A OUTPUT -p udp --destination-port 135:139 -j DROP
| |
| ##
| |
| ##
| |
| ####################
| |
| ## regole particolari ##
| |
| ###################
| |
| ##
| |
| ##
| |
| ##
| |
| # echo "Imposto le regole sulla tabella MANGLE..."
| |
| # # Setto il TTL su tutti i pacchetti in uscita a 128.
| |
| # # per nascondere la propria rete dietro al router,
| |
| # # convertire i pacchetti uscenti dalla LAN ad un TTL
| |
| # # uguale a quello dei pacchetti generati dal router.
| |
| # # TTL non e' inserito nelle versioni comunemente
| |
| # # distribuite (senza patch-o-matic)
| |
| # $IPT -t mangle -A FORWARD -o $EIF -j TTL --ttl-inc 1
| |
| ##
| |
| echo "Risolvo il blocco derivante da ICMP fragmentation"
| |
| # Il target TCPMSS risolve i problemi di connessione derivanti da server
| |
| # che bloccano i pacchetti ICMP Fragmentation Needed.
| |
| # Tale blocco spesso blocca il trasferimento dati anche in presenza di connessioni stabilite.
| |
| $IPT -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
| |
|
| |
|
| ##
| | <pre> |
| ############################# | | # newlist mailman |
| ## regole su FORWARD e nat ##
| |
| #############################
| |
| ##
| |
| ##
| |
| ##
| |
| $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
| |
| $IPT -A FORWARD -i $EIF -m state --state NEW,INVALID -j $chain
| |
| $IPT -A FORWARD -o $EIF -j ACCEPT
| |
| echo "$MSET SNAT (MASQUERADE) su $EIF"
| |
| ##
| |
| #usare su indirizzi dinamici (esempio connessioni dial-up)
| |
| $IPT -t nat -A POSTROUTING -o $EIF -j MASQUERADE
| |
| #usare solo su indirizzi statici
| |
| # $IPT -t nat -A POSTROUTING -o $EIF -j SNAT --to $EIP
| |
| ##
| |
| ##
| |
| ###############
| |
| ## fine del FW ##
| |
| ###############
| |
| ##
| |
| ##
| |
| echo ""
| |
| echo "Da ora la politica per INPUT e' $chain"
| |
| echo "la politica per OUTPUT e' $outchain"
| |
| echo "IP forwarding e' settato su $fw "
| |
| echo ""
| |
| echo -e "$NULL\n"
| |
| ##
| |
| netfilter
| |
| ##
| |
| ##The End..
| |
| </pre> | | </pre> |
| | |
| | ed il gioco è fatto. |
| | Per creare nuove mailing-list basta usare il comando newlist e per rimuoverle rmlist. |
| | Per le altre configurazione mailman crea nella vostra directory cgi-bin un programma che vi consente tramite web di accedere alle varie mailing-list per poter modificarne alcuni parametri, anche in questo caso si richiede una corretta configurazione di apache. |
|
| |
|
| ---- | | ---- |
| Autore: debian
| | Per qualsiasi informazione |
| | |
| | www.giorgioravera.it |
| | |
| | giorgio@giorgioravera.it |
| | [[Categoria:Networking]] |