[Linuxtrent] corsi e ricorsi

  • From: jclark <jclark@xxxxxxxxxx>
  • To: linuxtrent <linuxtrent@xxxxxxxxxxxxx>
  • Date: Tue, 07 Jan 2003 12:12:03 +0100

Buondi' a tutti,
a tre giorni di distanza e un po' meno fuso di sabato sera riposto il
messaggio con le regole pero'
ci risiamo mi pareva di saperlo che mi impelagavo in una rogna mondiale
a cambiare il firewall da ipchains a iptable comunque sia dato che e' da
stamane alle 7.30 che ci smanetto su' che ho cercato  tutti gli esempi
che sono riuscito a trovare che ci ragiono e non riesco a venirne fuori
mi arrendo(parzialmente e che cacchio almeno il tempo di un panino e di
una birra) e chiedo un'altra volta.
il problema e' il seguente:
la lan interna ha una macchina su cui e' installato l'antivirus e che
provvede al login ad aggiornare i file dat sui client se variati.
la macchina ha ip 192.168.2.1 e deve fare ogni 15 gg verifica pressoil
sito ftp.cai.com se ci sono variazioni e' il classico lavoro che fa' di
notte senza disturbare, ovviamente non va! e da qui la priam raffica di
bestemmie.
Ho provato ad inserire delle regole che mi accettassero ftp ma
evidentemetne sbaglio di seguito pasto lo script che ho fatto o meglio
che ho copiato un pezzo qui e uno la integrandolo con le mie idee
infatti alcune regole sono molto simili e ci devo studiare su un poco
per eliminare le eventuali duplicazioni inutili tenete presente che e'
la mia prima realizzazione , ho inserito nel kernel il modulo
ip_conntrack_ftp e ip_nat_ftp durante il setup della macchina mi potete
dare una dritta?
grazie 
#!/bin/sh

#
#test di script masquerading scritto in linux by jclark 020103

#
###DEBUGGING###

set -x

###ALIAS###

###IPTABLES
iptables=/sbin/iptables


### External Interface

EXTIF="eth0"
### Internal Interface



INTIF="eth1"


### Host Public IP
EGO="xxx.xxx.xxx.xxx"

### Internal Lan 


IP
LANIN="192.168.2.0/24"
###FLUSHING CHAIN###

iptables -F

iptables -F -t nat

iptables -X

iptables -Z


### DEFAULT CHAIN###

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT DROP

iptables -t nat -P POSTROUTING ACCEPT

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





### Traceroute ports

TR_SRC_PORTS="32769:65535"

TR_DEST_PORTS="33494:33523"



### DNS servers

DNS1="xxx.xxx.xxx.xxx"

DNS2="xxx.xxx.xxx.xxx"

DNS3="xxx.xxx.xxx.xxx"



### 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/24"

CLASS_E_RESERVED_NET="240.0.0.0/5"



### RULES 
####

#===================NAT PREROUTING=============

iptables -t nat -A PREROUTING -i $EXTIF -s $LOOPBACK -j DROP

iptables -t nat -A PREROUTING -i $EXTIF -s $CLASS_C -j DROP

iptables -t nat -A PREROUTING -i $EXTIF -d ! $EGO -j DROP


#============================SPOOFING==========

iptables -A INPUT -i $EXTIF -s $EGO -j DROP

iptables -A INPUT -i $EXTIF -s $CLASS_A -j DROP

iptables -A INPUT -i $EXTIF -s $CLASS_B -j DROP

iptables -A INPUT -i $EXTIF -s $CLASS_C -j DROP

iptables -A INPUT -i $EXTIF -s $CLASS_D_MULTICAST -j DROP

iptables -A INPUT -i $EXTIF -s $CLASS_E_RESERVED_NET -j DROP

iptables -A INPUT -i $EXTIF -d $LOOPBACK -j DROP


#=================SYN-FLODDING PROTECTION==========

iptables -N syn-flood

iptables -A INPUT -i $EXTIF -p tcp --syn -j syn-flood

iptables -A syn-flood -m limit --limit 1/s --limit-burst4 -j return

iptables -A syn-flood -j DROP

iptables -A INPUT -i $EXTIF -p tcp ! --syn -m state --state NEW -j DROP


#=================FRAGMENT DENY==================

iptables -A INPUT -i $EXTIF -f -j DROP


#============================LOOP RULE===========

iptables -A INPUT -s $LOOPBACK -j ACCEPT

iptables -A OUTPUT -d $LOOPBACK -j ACCEPT


#============================TRACEROUTE===============


iptables -A OUTPUT -o $EXTIF -p udp --sport $TR_SRC_PORTS --dport
$TR_DEST_PORTS \
-m state --state NEW -j ACCEPT

#============================LAN IN OUT==============

iptables -A INPUT -i $INTIF -s $LANIN -j ACCEPT

iptables -A OUTPUT -o $INTIF -d $LANIN -j ACCEPT

iptables -A FORWARD -s $LANIN -d 0/0 -j ACCEPT

iptables -A FORWARD -s 0/0 -d $LANIN -p tcp --syn -j DROP

iptables -A FORWARD -s 0/0 -d $LANIN -j ACCEPT


#============================SERVICES==================

#DNS

iptables -A INPUT -i $EXTIF -p udp -s $DNS1 --sport 53 -j ACCEPT

iptables -A INPUT -i $EXTIF -p udp -s $DNS2 --sport 53 -j ACCEPT

iptables -A INPUT -i $EXTIF -p udp -s $DNS3 --sport 53 -j ACCEPT

#SSH

iptables -A INPUT -i $EXTIF -p tcp --sport 22 -m state --state
ESTABLISHED -j ACCEPT

iptables -A OUTPUT -o $EXTIF -p tcp --dport 22 -m state --state
NEW,ESTABLISHED -j ACCEPT
#============================RULE======================

iptables -A INPUT -i ! $EXTIF -m state --state NEW,ESTABLISHED,RELATED
-j ACCEPT

iptables -A FORWARD -i ! $EXTIF -m state --state NEW -j DROP
iptables -A FORWARD -i ! $EXTIF -m state --state ESTABLISHED,RELATED -j
ACCEPT

iptables -A OUTPUT -o ! $EXTIF -m state --state NEW,ESTABLISHED,RELATED
-j ACCEPT 

iptables -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A INPUT -i $EXTIF -p udp -m state --state NEW,ESTABLISHED -j
ACCEPT

iptables -A OUTPUT -p udp -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A INPUT -i $EXTIF -p tcp --sport 21 -m state --state
ESTABLISHED -j ACCEPT

iptables -A OUTPUT -o $EXTIF -p tcp --dport 21 -m state --state
NEW,ESTABLISHED-j ACCEPT 

iptables -A INPUT -i $EXTIF -p tcp --sport 20 -m state --state
ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -o $EXTIF -p tcp --dport 20 -m state --state
ESTABLISHED -j ACCEPT

iptables -A INPUT -i $EXTIF -p tcp --sport 1024:65535 --dport 1024:65535
-m state --state ESTABLISHED -j ACCEPT

iptables -A OUTPUT -o $EXTIF -p tcp --sport 1024:65535 --dport
1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
#==========================POSTROUTING CHAIN===================

iptables -t nat -A POSTROUTING -o $EXTIF -s $LANIN -j MASQUERADE

#
#===========================LOGGING==========================

#iptables -A INPUT -j LOG --log-prefix "DENY INPUT:"

#iptables -A INPUT -i $EXTIF -m state --state NEW,INVALID -j DROP

#iptables -A FORWARD -j LOG --log-prefix "DENY FW:"

#iptables -A OUTPUT -j LOG --log-prefix "DENY OUT:"

## il bastardo logga tutto a schermo e non si vede un cavolo quando si
lavora

#=========================ALLOW ALL TRAFFIC ON ETH1==========

iptables -N rete

iptables -A INPUT -i $INTIF -p all -j rete

iptables -A OUTPUT -o $INTIF -p all -j rete

iptables -A FORWARD -o $INTIF -p all -j rete

iptables -A FORWARD -i $INTIF -p all -j rete

iptables -A rete -i $INTIF -j ACCEPT

iptables -A rete -o $INTIF -j ACCEPT
 
-- 
Mario Vittorio Guenzi
Zincometal S.p.A.
c.so Europa Str.prov 34
20010-Inveruno (MI)
tel: 02-979661
fax: 02-97966351
E-mail jclark@xxxxxxxxxxxxx
http://www.zincometal.com 
Si vis pacem, para bellum
-- 
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con SOGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: