Amministrazione veloce fdisk /dev/hda lancia fdisk per partizionare hda shutdown -r now Arresta e riavvia il sistema shutdown -h now Arresta e spegne il sistema last Utile per capire velocemente chi si è loggato, quando e da dove. ulimit -a Visualizza tutte le impostazioni correnti sui limiti di utilizzo delle risorse del sistema. Csh Per passare da una shell all'altra, basta eseguire il nome della shell. In questo caso, se per esempio si sta utilizzando la bash, si passa alla csh semplicemente digitandone il nome. Se si scrive poi exit, si esce dalla csh per tornare alla bash. bash -v Esegue la bash in modalità interattiva visualizzando i contenuti tutti gli script di start-up che vengono eseguiti. bash -r (--restrict) Limita gli utenti a un ambiente sicuro e limitato come la home di un'utente o all'utilizzo del segno ">" per reinderizzare l'output. xf86config (o Xconfigurator) Programmi per la configurazione di X /etc/X11/XF86Config file di configurazione che viene caricato allo start-up startx Script che avvia X Windows telnet 192.168.0.2 Tenta di collegarsi via telnet alla macchina con indirizzo IP ssh -l root 127.0.0.1 Via ssh ci si collega come root alla propria macchina (localhost). Utile solo per diagnostica man man Leggete il manuale per il comando man cd /usr/docs/ ; ls Entra nella directory /usr/docs e verifica il suo contenuto ls -latr Per elencare TUTTI i file di una directory in ordine di data. cp -a /etc/ /tmp/ Copia la directory /etc in /tmp mantenendo attributi dei file (-p), lasciando i link simbolici inalterati (-d) e includendo recursivamente le sottodirectory (-R). mkdir -p /var/log/cisco/ext/2/ Crea la directory /var/log/cisco/ext/2/ e tutte le directory padre intermedie nel caso non esistano. rm -rf /* DANGER! Per distruggere il proprio sistema e, forse, esistenza. Ampiamene sconsigliato. ln -s dir_src_kernel /usr/src/linux Quando si compila il kernel si deve sempre farlo con i sorgenti in /usr/src/linux. Se si hanno sorgenti di diverse versioni, un symlink permette di gestirle senza problemi. find / -lname start.sh Cerca in tutto il file system symlinks al file start.sh. cat -v Visualizza il contenuto di un file con i caratteri solitamente non visualizzati (LB, LF ecc). tail -f /var/log/maillog Continua a visualizzare il log mentre vengono aggiunte nuove righe. Con CTRL-C si torna alla shell. grep bash /etc/passwd Visualizza tutti gli utenti in /etc/passwd che hanno come shell preimpostata la bash. wc -l /etc/passwd Visualizza il numero degli utenti presenti sul sistema. cat /proc/... Le meraviglie del proc filesystem si possono notare solo esplorandone le directory ed i file. /dev/null E' un file atipico. Praticamente un cestino, un buco nero, un punto di non ritorno: tutto quello che viene indirizzato a /dev/null sparisce. Per sempre. mount /dev/cdrom Monta il cdrom. mount /dev/fd0 Monta il floppy. eject /dev/hdb Smonta ed espelle il cdrom /dev/hdb. df -k Verifica lo spazio libero con unità di misura il Kbyte. chown UID.GUI nomefile Per cambiare direttamente owner e group di un file. chown -R UID.GUI nomedir Per cambiare direttamente owner e group di una directory e del suo contenuto chmod -v 444 nomefile Imposta permessi su nomefile solo in lettura per tutti gli utenti e visualizza le modifiche fatte. find / -name "*.log" -type f -print Cerca in tutto il file system file che terminano con .log. find / -name "messages" -type f -exec cat {} \; Cerca in tutto il file system i file messages ed esegue il cat. ls -al | sort +4nr La lista dei file e directory con ordinamento decrescente, dal più grande al più piccolo. alias ll='ls -l' " ll " alias di " ls -l " va inserito nel file .bashrc esc? Elenca i possibili completamenti ctrl-w Cancella all'indietro finchè non trova uno spazio ls -la > ls-la.txt il file ls-l.txt verrà creato e conterrà l'output del comado ls -l ls -l | grep .gz l'output del comando ls -l verrà inviato a grep che a sua volta stamperà le righe corrispondenti ps -ef | grep $USER visualizza tutti i processi proprietari dell'utente loggato. ./programma > outerr.txt 2>&1 redirige sia lo stdout che lo stderr di un processo sullo stesso file egrep -i '(string1|string2)' file Ricerca e visualizza in un file string1 e string2 grep '^1' list.txt Ricerca in list.txt le righe che iniziano con 1 egrep '^2[234]' list.txt Ricerca le righe che iniziano con 22,23,24 grep '^Linux$' list.txt Ricerca le righe che contengono SOLO la parola Linux grep -c '^$' list.txt Visualizza il numero di righe vuote in list.txt grep '^[^0-9]' list.txt Visualizza le righe che NON iniziano con un numero grep '\<[Ll]inux\>' list.txt Visualizza le righe che contengono la parola singola Linux o linus, ma non visualizza quelle con, per esempio, LinuxOS :r (vi) il file specificato verrà inserito nella posizione del cursore :r ! (vi) l'output del comando verrà inserito nella posizione corrente echo $HOME otterremo il path della home directory dell'utente che ha eseguito il comando dmesg -c ripulisce il buffer dopo aver stampato i messaggi dmesg > log_boot Redireziona l'output del comando dmesg nel file log_boot per una maggior facilità di letture e debugging di un'eventuale problema ls -l /var/log/ Lista dei log cat /var/log/messages Visualizza il contenuto del log messages lspci Visualizza l'elenco di tutte le periferiche e i BUS pci cat /etc/inittab Per verificare gli script lanciati all'avvio e quale runlevel viene utilizzato di default ls -l /etc/rc.d/ Lista dei file delle directory che contengono i vari script lanciati al boot pstree Visualizza i processi con uno schema ad albero. Senza argomenti prende INIT come processo di partenza ed evidenzia come tutti gli altri processi discendono da lui. chkconfig list Visualizza per ogni servizio, se viene avviato o no nei diversi runlevel. chkconfig --level 35 httpd on Configura l'avvio del servizio httpd nei runlevel 3 e 5 tar -cvf nomearchivio.tar Sintassi comunemente utilizzata per creare un nuovo archivio. tar -xvf nomearchivio.tar Sintassi comunemente utilizzata per estrarre un archivio. tar -tvf nomearchivio.tar Con l'opzione -t elenca il contenuto dell'archivio evitando la decompressione dello stesso tar -c / Un breve comando copiare per creare un tar dell'intero file system. tar -c 'find / -mtime -1 ! -type d -print' Esempio di un semplice script che esegue il backup solo dei file modificati nell'ultimo giorno. Vengono escluse le directory intere. tar -xp nome.tar /home/pippo/file.doc Estrae da nome.tar solo il file /home/pippo/file.doc, mantenendone gli attributi adduser -u 502 -g 100 -s /bin/bash gio Comando per aggiungere l'utente gio assegnandogli la bash shell , UID 502 e GID 100 adduser gio comando per aggiungere l'utente gio con le impostazioni di defaul, UID e GID verranno assegnati in modo automatico cat /etc/shells visualizza le shell disponibili find / -perm 2000 -o -perm 4000 -print Trova , partendo da / tutti i file che hanno SUID o SGID attivato. ls -l /var/log/ Lista dei log less /var/log/messages visualizza il log messages cat /etc/logrotate.conf Visualizza il contenuto del file di configurazione last Utilizzando il file /var/logwtmp visualizza la lista degli utenti che si sono loggati sul sistema. tail -f /var/log/file.log Comando sempre utile per verificare in tempo reale, tramite il log specificato, il comportamento del sistema. logwatch --service ftd-xferlog --range all --detail high --print archives visualizza tutti i trasferimenti FTP registrati nei xferlog attuali e archiviati logwatch --service pam-pwdb --range yesterday --detail high print Visualizza informazioni sui login nel giorno precedente. rpm -ihv pacchetto.rpm Installa abilitando le opzioni verbose ed hash che stampa 50 cancelletti (#) per indicare lo stato di avanzamento dell'installazione rpm -qil pacchetto.rpm Fornisce informazioni complete sul pacchetto compreso l'elenco dei file di cui era composto il package rpm -i --nodeps pacchetto.rpm Installa il pacchetto senza verificare le dependencies rpm rebuilddb Ricostruisce il db utilizzato da RPM per rilevare i pacchetti e relative informazioni installate su un sistema rpm -qa | grep tcpdump Cerca, nell'elenco di tutti gli RPM installati, se è presente il programma (o meglio, il nome di RPM) tcpdump. rpm -qf /bin/ls Visualizza l'RPM che ha fornito il file indicato (in questo caso il comando ls) ./configure help Per richiamare le varie opzioni del comando configure ./configure prefix=/usr Con l'opzione --prefix si decide il prefisso del path di installazione (default /usr/local/). Ad esempio i binari verranno installati in /usr/bin o /usr/sbin ps -ax Forma più utilizzata del comando ps nel mondo linux, poichè mostra tutti i processi a cui è stato assegnato un ID vmstat 5 10 Vmstat genererà dei rapporti sull'occupazione delle risorse del sistema, ogni cinque secondi per un massimo di dieci volte kill -l Visualizza l'elenco dei segnali che si possono mandare ad un processo Kill -9 213 Forza l'eliminazione del processo con PID 213 (eliminazione senza scampo!!) lsof | grep sshd Visualizza i file aperti da sshd. Notare che visualizza anche la porta su cui è in LISTENING. strace -o debug.txt ssh Scrive su debug.txt l'output del tracing di ssh. Molto utile perchè permette di interagire con lo STOUT del processo senza essere sommersi dai debug di strace. strace -p 657 Fa uno strace in tempo reale del processo che sta girando con il PID 657. crontab -e Edita il proprio file crontab (con l'editor predefinito) crontab -l Visualizza il proprio file crontab crontab -r Rimuove il proprio file crontab cat /var/spool/cron/* Visualizza tutti i file crontab degli utenti (si deve essere root) cat /etc/sysconfig/network Visualizza le info riguardanti la rete ifconfig Visualizza tutte le interfacce di rete attive e le relative impostazioni ifconfig eth0 up/down Attiva o disattiva l'interfaccia eth0 ifconfig eth2 192.168.0.56 netmask 255.255.255.0 Configura /dev/eth2 con indirizzo ip 192.168.0.56 (/24) route -n Visualizza informazioni di routing evitando di risolvere gli ip route add -net 192.56.76.0 netmask 255.255.255.0 gw 192.168.0.1 Aggiunge una route statica per la rete 192.56.76.0/24, usando 192.168.0.1 come gateway route add -net 0.0.0.0/0 gw 192.168.0.1 Imposta 192.168.0.1 come default gateway netstat -nat Visualizza tutte le connessioni Internet attive, senza risolvere gli IP netstat -nat | grep LISTEN Visualizza le porte in LISTENING lo stato delle connessioni, senza risolvere gli IP netstat -rn Visualizza la tabella di routing del kernel tcpdump -i eth0 Avvia l'azione di sniffing sull'interfaccia eth0 tcpdump -i eth0 | grep -v 10.0.0.24 Sniffa eth0 escludendo le righe con IP 10.0.0.24 arp -a Visualizza gli il contenuto dell'arp cache arp -d Hostname Cancella l'arp di un'host specifico ping -s 640 10.0.0.100 Invia ECHO REQUEST da 640 byte a 10.0.0.100 nslookup Esegue una query DNS (type A di default) per risolvere dig @ns.server.it Stesso risultato di prima. Usando ns.server.it come server DNS wget [url] Scarica in locale il file specificato. cat /etc/xinetd.conf Visualizzazione del contenuto del file di configurazione di xinetd grep disable /etc/xinetd.d/* Visualizza quali servivi sono configurati per essere lanciati tramite xinetd /etc/rc.d/init.d/xinetd restart Riavvia il demone xinetd cat /etc/ssh/sshd_config Visualizza la configurazione del demone ssh cat /etc/ssh/ssh_config Visualizza la configurazione del client ssh linuxconf Accede via shell all'interfaccia di amministrazione del sistema di linuxconf ??? Accede via web all'interfaccia di ammistrazione del sistema di linuxconf lynx http://127.0.0.1:10000 Accede via web all'interfaccia di amministrazione del sistema e dei servizi di webmin attraverso il protocollo http lynx https://127.0.0.1:10000 Accede via web all'interfaccia di amministrazione del sistema e dei servizi di webmin attraverso il protocollo https rpm -U package.rpm Il comando base per aggiornare un RPM. cd /usr/src/linux ; make menuconfig Nella directory dei sorgenti si lancia il comando make menuconfig per accedere ad un'interfaccia grafica per gestire la configurazione del kernel #################################################### ################### Firewall ################### #################################################### Firewall.sh: /* E' uno script che imposta un firewall (piuttosto restrittivo) su una macchina (con un unica interfaccia ethernet (eth0)) che può essere usata come server WEB. La prima parte può essere valida per qualsiasi server pubblico. L'ultimo set di regole si applica ad un server web. FLUSHING CHAIN: Azzera e ripulisce ogni possibile regola esistente. DEFAULT CHAIN: Imposta le regole di default (drop di tutti i pacchetti). SETTINGS: Imposta particolari opzioni sul kernel, operando direttamente sul proc filesystem. VARIABLES: Definisce come variabili vari indirizzi IP, che vanno cambiati dall'utente. LOCALHOST: Non filtra i pacchetti che hanno sorgente 127.0.0.1 SSH RULE: Permette l'accesso SSH (porta 22) da GW1 e GW2 DNS RULE: Permette all'host di eseguire query DNS. ICMP RULE: Permette pacchetti ICMP dalle reti LINEA1 e LINEA2. NTP RULE: Permette all'host di essere NTP client per il server NTP_SRV MAILSEND RULE: Permette all'host di inviare mail a server che hanno IP compresi in LINEA1 e LINEA2 WEB SERVER RULE: Permette l'accesso al web server locale da Internet (porte 80 e 443) */ #!/bin/sh # # firewall.sh - Version 20020319 - Coresis # # Used random IPs # ### DEBUGGING ### set -x ### FLUSHING CHAIN ### /sbin/iptables -F /sbin/iptables -X /sbin/iptables -Z ### DEFAULT CHAIN ### /sbin/iptables -P INPUT DROP /sbin/iptables -P FORWARD DROP /sbin/iptables -P OUTPUT DROP ### SETTING IPFORWARDING ### /bin/echo "1" > /proc/sys/net/ipv4/ip_forward ### DISABLE RESPOND TO BROADCAST ### /bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts ### ENABLE BAD ERROR MESSAGE PROTECTION ### /bin/echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses ### DISABLE ICMP REDIRECT ACCEPTANCE ### /bin/echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects ### SETTING ANTISPOOFING PROTECTION ### /bin/echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter ### DON'T RESPOND TO BROADCAST PINGS ### /bin/echo "1" > /proc/sys/net/ipv4/conf/all/log_martians ################################################################## #GW1 AND GW2 ARE TRUSTED HOSTS FROM WHICH SSH COMMUNICATION IS PERMITTED GW1=10.10.10.4 GW2=192.168.1.5 #LINEA1 AND LINEA2 ARE TRUSTED NETWORKS FROM WHICH ICMPS ARE ALLOWED LINEA1=10.10.10.0/24 LINEA2=192.168.1.0/24 # NTP_SRV IS A NETWORK TIME PROTOCOL SERVER NTP_SRV=10.198.151.1 ################################################################## # ======================= LOCALHOST ================================ /sbin/iptables -A INPUT -s 127.0.0.1 -j ACCEPT /sbin/iptables -A OUTPUT -s 127.0.0.1 -j ACCEPT # ======================= SSH RULE ================================ /sbin/iptables -A INPUT -i eth0 -p TCP --dport 22 -s $GW1 -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p TCP --dport 22 -s $GW2 -j ACCEPT /sbin/iptables -A OUTPUT -o eth0 -p TCP --sport 22 -d $GW1 -j ACCEPT /sbin/iptables -A OUTPUT -o eth0 -p TCP --sport 22 -d $GW2 -j ACCEPT # ======================= DNS RULE ========================== /sbin/iptables -A INPUT -p TCP -s 0/0 --sport 53 -j ACCEPT /sbin/iptables -A INPUT -p udp -s 0/0 --sport 53 -j ACCEPT /sbin/iptables -A OUTPUT -p udp -s 0/0 --dport 53 -j ACCEPT /sbin/iptables -A OUTPUT -p TCP -s 0/0 --dport 53 -j ACCEPT # ======================= ICMP RULE ========================== /sbin/iptables -A INPUT -p icmp -s $LINEA1 -j ACCEPT /sbin/iptables -A INPUT -p icmp -s $LINEA2 -j ACCEPT /sbin/iptables -A OUTPUT -p icmp -s $LINEA1 -j ACCEPT /sbin/iptables -A OUTPUT -p icmp -s $LINEA2 -j ACCEPT # ======================= NTP RULE ========================= /sbin/iptables -A INPUT -p udp --sport ntp -s $NTP_SRV -j ACCEPT /sbin/iptables -A INPUT -p tcp --sport ntp -s $NTP_SRV -j ACCEPT /sbin/iptables -A OUTPUT -p udp --dport ntp -d $NTP_SRV -j ACCEPT /sbin/iptables -A OUTPUT -p tcp --dport ntp -d $NTP_SRV -j ACCEPT # ================== MAIL SEND RULE ======================== /sbin/iptables -A INPUT -p tcp --sport 25 -s $LINEA1 -j ACCEPT /sbin/iptables -A OUTPUT -p tcp --dport 25 -d $LINEA1 -j ACCEPT /sbin/iptables -A INPUT -p tcp --sport 25 -s $LINEA2 -j ACCEPT /sbin/iptables -A OUTPUT -p tcp --dport 25 -d $LINEA2 -j ACCEPT ### ADD CUSTOM SERVER RULES BELOW # ================= HTTP & HTTPS ============================ /sbin/iptables -A INPUT -i eth0 -p TCP --dport 80 -j ACCEPT /sbin/iptables -A OUTPUT -o eth0 -p TCP --sport 80 -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p TCP --dport 443 -j ACCEPT /sbin/iptables -A OUTPUT -o eth0 -p TCP --sport 443 #################################################### ################### masquerading ################### #################################################### masquerading: /* E' uno script che permette ad una macchina Linux con due interfacce (una su Internet con IP pubblico, una su LAN interna con IP riservato) di fare da gateway per tutta la rete interna, mascherando gli IP locali con un unico IP pubblico. Inoltre viene fatto un destination natting rendendo accessibile da specifici IP pubblici un VPN server (basato su PPTP) sulla rete interna. In sequenza vengono dati i seguenti comandi: - FLUSH delle regole e impostazione dei valori di default. - Abilita sul kernel l'IP FORWARDING, necessario su un host che fa da router/gateway. - Imposta sul kernel alcuni flag per la sicurezza. - Definisce le varie variabili utilizzate negli script (cambiare gli IP secondo le proprie esigenze). - Imposta regole anti-spoofing. - Permette al loopback di parlare con se stesso. - Permette il traceroute da locale. - Permette l'accesso dagli IP interni all'host (per manutenzione) e il forwarding dei pacchetti dalla rete locale a Internet e viceversa (notare la riga che droppa i pacchetti SYN che arrivano dall'esterno). - Permette la comunicazione dell'host con i server DNS definiri. - Permette l'accesso SSH da IP considerati trusted. - Esegue il MASQUERADING di tutta la rete interna. - Esegue il destination NATTING del VPN server interno (porta pptp 1723), permette il traffico GRE (IP type 47) e limita allo USER con IP definito l'accesso. */ #!/bin/sh # # masquerading.sh - Version 20020319 - Coresis # # Used random IPs # #### DEBUGGING ### set -x ### FLUSHING CHAIN ### /sbin/iptables -F /sbin/iptables -F -t nat /sbin/iptables -X /sbin/iptables -Z ### DEFAULT CHAIN ### /sbin/iptables -P INPUT DROP /sbin/iptables -P FORWARD DROP /sbin/iptables -P OUTPUT DROP /sbin/iptables -t nat -P POSTROUTING ACCEPT /sbin/iptables -t nat -P PREROUTING ACCEPT ### SETTING IPFORWARDING ### /bin/echo "1" > /proc/sys/net/ipv4/ip_forward ### DISABLE RESPOND TO BROADCAST ### /bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts ### ENABLE BAD ERROR MESSAGE PROTECTION ### /bin/echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses ### DISABLE ICMP REDIRECT ACCEPTANCE ### /bin/echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects ### SETTING ANTISPOOFING PROTECTION ### /bin/echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter ### DON'T RESPOND TO BROADCAST PINGS ### /bin/echo "1" > /proc/sys/net/ipv4/conf/all/log_martians # External Interface EXTIF="eth1" # Internal Interface INTIF="eth0" # Host Public IP EGO="211.121.111.111" # Internal LAN IP LANIN="10.0.0.0/24" # Trusted public network TRUSTED="13.18.151.0/24" # Traceroute ports TR_SRC_PORTS="32769:65535" TR_DEST_PORTS="33434:33523" # DNS servers DNS1="113.118.51.1" DNS2="17.16.32.3" # IP of an User allowed to log in the internal VPN server USER="112.56.10.32/28" # IP of the VPN server VPNSERVER="10.0.0.77" # RFC IPs LOOPBACK="127.0.0.0/8" CLASS_A="10.0.0.0/8" CLASS_B="172.16.0.0/12" CLASS_C="192.168.0.0/16" CLASS_D_MULTICAST="224.0.0.0/4" CLASS_E_RESERVED_NET="240.0.0.0/5" ### RULE ####################################################################### # ======================= SPOOFING =============================== /sbin/iptables -A INPUT -i $EXTIF -s $EGO -j DROP /sbin/iptables -A INPUT -i $EXTIF -s $CLASS_A -j DROP /sbin/iptables -A INPUT -i $EXTIF -s $CLASS_B -j DROP /sbin/iptables -A INPUT -i $EXTIF -s $CLASS_C -j DROP /sbin/iptables -A INPUT -i $EXTIF -s $CLASS_D_MULTICAST -j DROP /sbin/iptables -A INPUT -i $EXTIF -s $CLASS_E_RESERVED_NET -j DROP /sbin/iptables -A INPUT -i $EXTIF -d $LOOPBACK -j DROP # ======================= LOOP RULE ======================= /sbin/iptables -A INPUT -s $LOOPBACK -j ACCEPT /sbin/iptables -A OUTPUT -d $LOOPBACK -j ACCEPT # ====================== TRACEROUTE ============================== /sbin/iptables -A OUTPUT -o $EXTIF -p udp --sport $TR_SRC_PORTS --dport $TR_DEST_PORTS \ -m state --state NEW -j ACCEPT # ======================= LAN IN OUT ================================ /sbin/iptables -A INPUT -i $INTIF -s $LANIN -j ACCEPT /sbin/iptables -A OUTPUT -o $INTIF -d $LANIN -j ACCEPT /sbin/iptables -A FORWARD -s $LANIN -d 0/0 -j ACCEPT /sbin/iptables -A FORWARD -s 0/0 -d $LANIN -p tcp --syn -j DROP /sbin/iptables -A FORWARD -s 0/0 -d $LANIN -j ACCEPT # ======================= SERVICES ========================== # DNS /sbin/iptables -A INPUT -i $EXTIF -p udp -s $DNS1 --sport 53 -j ACCEPT /sbin/iptables -A INPUT -i $EXTIF -p udp -s $DNS2 --sport 53 -j ACCEPT # SSH /sbin/iptables -A INPUT -s $TRUSTED -p TCP --dport 22 -j ACCEPT # ====================== RULE ==================================== /sbin/iptables -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT /sbin/iptables -A OUTPUT -p tcp -m state --state NEW,ESTABLISHED -j ACCEPT /sbin/iptables -A INPUT -i $EXTIF -p udp -m state --state ESTABLISHED -j ACCEPT /sbin/iptables -A OUTPUT -p udp -m state --state NEW,ESTABLISHED -j ACCEPT /sbin/iptables -A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT ### POSTROUTING CHAIN ########################################################## /sbin/iptables -t nat -A POSTROUTING -o $EXTIF -s $LANIN -j MASQUERADE ### VPN CHAIN ########################################################### /sbin/iptables -A INPUT -s $USER -p TCP --dport 1723 -j ACCEPT /sbin/iptables -t nat -A PREROUTING -d $EGO -p tcp --dport 1723 -j DNAT --to-dest $VPNSERVER:1723 /sbin/iptables -t nat -A PREROUTING -d $EGO -p 47 -i eth1 -j DNAT --to-dest $VPNSERVER ### LOGGING #################################################################### #/sbin/iptables -A INPUT -j LOG --log-prefix "DENY INPUT:" #/sbin/iptables -A INPUT -i $EXTIF -m state --state NEW,INVALID -j DROP #/sbin/iptables -A FORWARD -j LOG --log-prefix "DENY FW:" #/sbin/iptables -A OUTPUT -j LOG --log-prefix "DENY OUT:"