Torna indietro   Hardware Upgrade Forum > Software > Linux, Unix, OS alternativi

Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Cos'è la bolla dell'IA e perché se ne parla
Cos'è la bolla dell'IA e perché se ne parla
Si parla molto ultimamente di "bolla dell'intelligenza artificiale", ma non è sempre chiaro perché: l'IA è una tecnologia molto promettente e che ha già cambiato molte cose dentro e fuori le aziende, ma ci sono enormi aspettative che stanno gonfiando a dismisura i valori delle azioni e distorcendo il mercato. Il che, com'è facile intuire, può portare a una ripetizione della "bolla dotcom", e forse anche di quella dei mutui subprime. Vediamo perché
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-11-2005, 22:23   #1
Axl_Mas
Senior Member
 
L'Avatar di Axl_Mas
 
Iscritto dal: Sep 2001
Città: Perugia
Messaggi: 1988
Finalmente ho finito: Axl's Firewall ScRiPt 2.0

Dopo mesi (non scherzo,sono partito da zero!) di continue modifiche ho finito il mio script iptables!!!!!
Esperti di linux datemi dei consigli se c'è qualcosa da correggere/migliorare o aggiungere....mi sto appassionando ai firewall e ne voglio uno davvero potente!

Codice:
#Making variables
IPTABLES="/usr/local/sbin/iptables"
NETWORK_IP="192.168.0.0/24" 
ETH_LAN="eth1" 
ETH_NET="eth0"
PPP="ppp0" 
DNS1="62.211.69.150" 
DNS2="212.48.4.15"
DNS3="85.37.17.12"

#Flushing all rules,chains,tables,policies.

$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT

#Reset the default policies in the nat table.
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT

#Reset the default policies in the mangle table.
$IPTABLES -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT

#Flush all the rules in the filter and nat tables.
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F

#Erase all chains that's not default in filter and nat table.
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X

#Erase all chains and the rules of all tables.
for table in nat mangle filter
do
   $IPTABLES -t $table -F
   $IPTABLES -t $table -X
done

#-----------------------------------------------------------------------------

#Close all the traffic
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
#-----------------------------------------------------------------------------

#filter bugous ips
$IPTABLES -A INPUT -i $PPP -s 127.0.0.1 -j DROP
$IPTABLES -A INPUT -i $PPP -s 192.168.0.0/16 -j DROP
#------------------------------------------------------------------------------

#kernel's protections
echo 1024 > /proc/sys/net/ipv4/tcp_max_syn_backlog 
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
for a in /proc/sys/net/ipv4/conf/*/rp_filter; do 
echo 1 > $a 
done
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 0 > /proc/sys/net/ipv4/tcp_ecn
#Fragmented packets management
echo 262144 > /proc/sys/net/ipv4/ipfrag_high_thresh
echo 196608 > /proc/sys/net/ipv4/ipfrag_low_thresh
echo 25 > /proc/sys/net/ipv4/ipfrag_time
#Permit fpt active mode into clients
modprobe ip_conntrack_ftp 
modprobe ip_nat_ftp
#-----------------------------------------------------------------------------

#MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe ip_conntrack
modprobe iptable_nat
modprobe ipt_MASQUERADE
$IPTABLES -t nat -A POSTROUTING -s $NETWORK_IP -j MASQUERADE 
$IPTABLES -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
#-----------------------------------------------------------------------------

#Accept all lan traffic
$IPTABLES -A INPUT -i $ETH_LAN -j ACCEPT
$IPTABLES -A OUTPUT -o $ETH_LAN -j ACCEPT
#-----------------------------------------------------------------------------

#Permit loopback connections
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -d 127.0.0.1 -j ACCEPT
#-----------------------------------------------------------------------------

# Drop Invalid packets
$IPTABLES -A INPUT -m state --state INVALID -j DROP
$IPTABLES -A FORWARD -m state --state INVALID -j DROP
#-----------------------------------------------------------------------------

#Portscanners protections
# Drop (NMAP) scan packets 
$IPTABLES -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL FIN -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

# Drop packets with bad tcp flags
$IPTABLES -A INPUT -p tcp --tcp-option 64 -j DROP
$IPTABLES -A INPUT -p tcp --tcp-option 128 -j DROP
$IPTABLES -A INPUT -p tcp --dport 0 -j DROP
$IPTABLES -A INPUT -p udp --dport 0 -j DROP
$IPTABLES -A INPUT -p tcp --sport 0 -j DROP
$IPTABLES -A INPUT -p udp --sport 0 -j DROP


#++++++++++++++++++++++++++++++
#Ports opening                +
#++++++++++++++++++++++++++++++

#++++++++
#FORWARD+
#++++++++

#-----------------
#Entering packets-
#-----------------

$IPTABLES -N netlan    #ppp0(internet)  ------> ethX(lan)
$IPTABLES -A FORWARD -i $PPP -o $ETH_LAN -j netlan

#Dns
$IPTABLES -A netlan -m state --state ESTABLISHED,RELATED -p udp --sport 53 -s $DNS1 -j ACCEPT
$IPTABLES -A netlan -m state --state ESTABLISHED,RELATED -p udp --sport 53 -s $DNS2 -j ACCEPT
$IPTABLES -A netlan -m state --state ESTABLISHED,RELATED -p tcp --sport 53 -s $DNS1 -j ACCEPT
$IPTABLES -A netlan -m state --state ESTABLISHED,RELATED -p tcp --sport 53 -s $DNS2 -j ACCEPT
$IPTABLES -A netlan -m state --state ESTABLISHED,RELATED -p udp --sport 53 -s $DNS3 -j ACCEPT
$IPTABLES -A netlan -m state --state ESTABLISHED,RELATED -p tcp --sport 53 -s $DNS3 -j ACCEPT

# Http,https,8080
$IPTABLES -A netlan -m tcp -p tcp -m multiport --sports 80,443,8080 -m state --state ESTABLISHED,RELATED -j ACCEPT

# POP3
$IPTABLES -A netlan -m tcp -p tcp -m multiport --sports 110,995 -m state --state ESTABLISHED,RELATED -j ACCEPT

# SMTP
$IPTABLES -A netlan -m tcp -p tcp -m multiport --sports 25,587 -m state --state ESTABLISHED,RELATED -j ACCEPT

# FTP
$IPTABLES -A netlan -m tcp -p tcp --sport 20:21 -m state --state ESTABLISHED,RELATED -j ACCEPT

# KAZAA
$IPTABLES -A netlan -p tcp --sport 1214 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#Shareaza
$IPTABLES -A netlan -p tcp --dport 6346 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A netlan -p udp --dport 6346 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#Soulseek
$IPTABLES -A netlan -p tcp --sport 2234:2240 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A netlan -p tcp --sport 29093 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A netlan -p tcp --dport 29093 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A netlan -p tcp --dport 2234:2240 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A netlan -p tcp --sport 5534 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A netlan -p tcp --dport 5534 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#IRC
#$IPTABLES -A netlan -p tcp --sport 6667 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#$IPTABLES -A netlan -p tcp --sport 113 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#$IPTABLES -A netlan -m state --state ESTABLISHED,RELATED -p udp --sport 53 -j ACCEPT
#$IPTABLES -A netlan -m state --state ESTABLISHED,RELATED -p tcp --sport 53 -j ACCEPT


#-----------------
#Outgoing packets-
#-----------------

$IPTABLES -N lannet    #ethX(lan) ----> ppp0(internet) 
$IPTABLES -A FORWARD -i $ETH_LAN -o $PPP -j lannet
#$IPTABLES -A lannet -j ACCEPT
#Dns
$IPTABLES -A lannet -p udp --dport 53 -d $DNS1 -j ACCEPT
$IPTABLES -A lannet -p udp --dport 53 -d $DNS2 -j ACCEPT
$IPTABLES -A lannet -p udp --dport 53 -d $DNS3 -j ACCEPT
$IPTABLES -A lannet -p tcp --dport 53 -d $DNS1 -j ACCEPT
$IPTABLES -A lannet -p tcp --dport 53 -d $DNS2 -j ACCEPT
$IPTABLES -A lannet -p tcp --dport 53 -d $DNS3 -j ACCEPT

#Http and https
$IPTABLES -A lannet -p tcp -m multiport --dport 80,8080,443 -j ACCEPT

#Pop3
$IPTABLES -A lannet -p tcp -m multiport --dport 110,995 -j ACCEPT

#Smtp
$IPTABLES -A lannet -p tcp -m multiport --dport 587,25 -j ACCEPT

#Shareaza
$IPTABLES -A lannet -p tcp --dport 6346 -j ACCEPT
$IPTABLES -A lannet -p udp --dport 6346 -j ACCEPT
#$IPTABLES -A lannet -p tcp --sport 6346 -j ACCEPT
#$IPTABLES -A lannet -p udp --sport 6346 -j ACCEPT

#Kazaa
$IPTABLES -A lannet -p tcp --dport 1214 -j ACCEPT

#Soulseek
$IPTABLES -A lannet -p tcp --dport 2234:2240 -j ACCEPT

$IPTABLES -A lannet -p tcp --dport 29093 -j ACCEPT
$IPTABLES -A lannet -p tcp --sport 29093 -j ACCEPT

$IPTABLES -A lannet -p tcp --sport 2234:2240 -j ACCEPT
$IPTABLES -A lannet -p tcp --dport 5534 -j ACCEPT
$IPTABLES -A lannet -p tcp --sport 5534 -j ACCEPT

#IRC
#$IPTABLES -A lannet -p tcp --dport 6667 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#$IPTABLES -A lannet -p tcp --dport 113 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#$IPTABLES -A lannet -p udp --dport 53 -j ACCEPT
#$IPTABLES -A lannet -p tcp --dport 53 -j ACCEPT


#++++++++
#INPUT  +
#++++++++

#Dns
$IPTABLES -A INPUT -i $PPP -m state --state ESTABLISHED,RELATED -p udp --sport 53 -s $DNS1 -j ACCEPT
$IPTABLES -A INPUT -i $PPP -m state --state ESTABLISHED,RELATED -p udp --sport 53 -s $DNS2 -j ACCEPT
$IPTABLES -A INPUT -i $PPP -m state --state ESTABLISHED,RELATED -p udp --sport 53 -s $DNS3 -j ACCEPT
$IPTABLES -A INPUT -i $PPP -m state --state ESTABLISHED,RELATED -p tcp --sport 53 -s $DNS1 -j ACCEPT
$IPTABLES -A INPUT -i $PPP -m state --state ESTABLISHED,RELATED -p tcp --sport 53 -s $DNS2 -j ACCEPT
$IPTABLES -A INPUT -i $PPP -m state --state ESTABLISHED,RELATED -p tcp --sport 53 -s $DNS3 -j ACCEPT

#http e https
$IPTABLES -A INPUT -i $PPP -p tcp -m multiport --sports 80,443,8080 -m state --state ESTABLISHED,RELATED -j ACCEPT

#pop3
$IPTABLES -A INPUT -i $PPP -p tcp -m multiport --sports 110,995 -m state --state ESTABLISHED,RELATED -m limit --limit 60/min -j ACCEPT 


#smtp  
$IPTABLES -A INPUT -i $PPP -p tcp -m multiport --sport 25,587 -m state --state ESTABLISHED,RELATED -m limit --limit 50/min -j ACCEPT 

#aMule INPUT
$IPTABLES -A INPUT -i $PPP -p tcp --dport 4662 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $PPP -p udp --dport 4672 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $PPP -p udp --dport 4665 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -m layer7 --l7proto edonkey -j ACCEPT

#++++++++
#OUTPUT +
#++++++++

#Dns
$IPTABLES -A OUTPUT -p udp --dport 53 -d $DNS1 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --dport 53 -d $DNS2 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --dport 53 -d $DNS3 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport 53 -d $DNS1 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport 53 -d $DNS2 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport 53 -d $DNS3 -j ACCEPT

#Http and https
$IPTABLES -A OUTPUT -p tcp -m multiport --dport 80,8080,443 -j ACCEPT

#aMule OUTPUT
$IPTABLES -A OUTPUT -p tcp --dport 4662 -j ACCEPT 
$IPTABLES -A OUTPUT -p udp --dport 4672 -j ACCEPT 
$IPTABLES -A OUTPUT -p udp --dport 4665 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport 4661 -j ACCEPT
$IPTABLES -A OUTPUT -m layer7 --l7proto edonkey -j ACCEPT

#Pop3
$IPTABLES -A OUTPUT -p tcp -m multiport --dport 110,995 -j ACCEPT

#Smtp
$IPTABLES -A OUTPUT -p tcp -m multiport --dport 587,25 -j ACCEPT

#Rsync  (needed by urpmi)
$IPTABLES -A OUTPUT -p tcp --dport 873 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --dport 873 -j ACCEPT


#-----------------------------------------------------------------------------

#Ftp management  (Thanks to MonMotha)

$IPTABLES -A INPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
$IPTABLES -A OUTPUT -o $PPP -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
# The data connection in active mode
$IPTABLES -A INPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -o $PPP -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT 
# The data connection in passive mode
$IPTABLES -A INPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT
$IPTABLES -A OUTPUT -o $PPP -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT

# Ftp forward
$IPTABLES -A netlan -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
$IPTABLES -A lannet -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
# The data connection in active mode
$IPTABLES -A netlan -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A lannet -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT 
# The data connection in passive mode
$IPTABLES -A netlan -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT
$IPTABLES -A lannet -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
#-----------------------------------------------------------------------------

#Icmp management
#Accet 3 incoming and outcoming icmp packets/min,drop the others (all the ping are blocked at script's begin) 
$IPTABLES -A OUTPUT -p icmp -m limit --limit 3/min -j ACCEPT
$IPTABLES -A OUTPUT -p icmp -j DROP
$IPTABLES -A INPUT -p icmp -m limit --limit 3/min -j ACCEPT
$IPTABLES -A INPUT -p icmp -j DROP



#Da http://gentoo-wiki.com/HOWTO_Packet_Shaping
#adattato per regole firewall

# Constants
LOCALNET="192.168.0.0/255.255.255.0"
MARKPRIO1="1"
MARKPRIO2="2"
MARKPRIO3="3"
MARKPRIO4="4"
MARKPRIO5="5"
MARKPRIO6="6"
MARKPRIO7="7"
MARKPRIO8="8"
MARKPRIO9="9"

#Flushing mangle tables
$IPTABLES -t mangle -F OUTPUT
$IPTABLES -t mangle -F FORWARD


# Setting priority marks

# Prio 1
#dns
$IPTABLES -t mangle -A OUTPUT -p tcp --dport 53 -j MARK --set-mark $MARKPRIO1
$IPTABLES -t mangle -A OUTPUT -p udp --dport 53 -j MARK --set-mark $MARKPRIO1
# icmp
$IPTABLES -t mangle -A FORWARD -p icmp -j MARK --set-mark $MARKPRIO1
$IPTABLES -t mangle -A OUTPUT -p icmp -j MARK --set-mark $MARKPRIO1
#skype
$IPTABLES -t mangle -A FORWARD -m layer7 --l7proto skypeout -j MARK --set-mark $MARKPRIO1
$IPTABLES -t mangle -A FORWARD -m layer7 --l7proto skypetoskype -j MARK --set-mark $MARKPRIO1
# http
$IPTABLES -t mangle -A FORWARD -p tcp --dport 80 -j MARK --set-mark $MARKPRIO1
$IPTABLES -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark $MARKPRIO1
# https
$IPTABLES -t mangle -A FORWARD -p tcp --dport 443 -j MARK --set-mark $MARKPRIO1
$IPTABLES -t mangle -A OUTPUT -p tcp --dport 443 -j MARK --set-mark $MARKPRIO1

# Prio 2
# non tcp
$IPTABLES -t mangle -A FORWARD -p ! tcp -j MARK --set-mark $MARKPRIO2
$IPTABLES -t mangle -A OUTPUT -p ! tcp -j MARK --set-mark $MARKPRIO2

#Prio 3
# ssh
$IPTABLES -t mangle -A FORWARD -p tcp --dport 22 -j MARK --set-mark $MARKPRIO3
$IPTABLES -t mangle -A OUTPUT -p tcp --dport 22 -j MARK --set-mark $MARKPRIO3
# ftp (control)
$IPTABLES -t mangle -A FORWARD -p tcp --dport 21 -j MARK --set-mark $MARKPRIO3
$IPTABLES -t mangle -A OUTPUT -p tcp --dport 21 -j MARK --set-mark $MARKPRIO3
# smtp
$IPTABLES -t mangle -A FORWARD -p tcp --dport 25 -j MARK --set-mark $MARKPRIO3
$IPTABLES -t mangle -A OUTPUT -p tcp --dport 25 -j MARK --set-mark $MARKPRIO3

# Prio 4
# packets > 1024 bytes
$IPTABLES -t mangle -A FORWARD -p tcp -m length --length 1024: -j MARK --set-mark $MARKPRIO4
$IPTABLES -t mangle -A OUTPUT -p tcp -m length --length 1024: -j MARK --set-mark $MARKPRIO4


# Prio 9
#emule
$IPTABLES -t mangle -A OUTPUT -m layer7 --l7proto edonkey -j MARK --set-mark $MARKPRIO9

#-----------------------------------------------------------


#Constants

# Interface you want to do shaping on
# eth2, eth1 for direct connection; ppp0 or so for dsl
# and other dialup connections (check ifconfig)
IFACE=ppp0
  
# Priority marks
MARKPRIO1="1"
MARKPRIO2="2"
MARKPRIO3="3"
MARKPRIO4="4"
MARKPRIO5="5"
MARKPRIO6="6"
MARKPRIO7="7"
MARKPRIO8="8"
MARKPRIO9="9"


# Rates
UPRATE="240kbit"
#P2PRATE=$UPRATE
#P2PRATE="128kbit"
PRIORATE1="240kbit"
PRIORATE2="80kbit"
PRIORATE3="40kbit"
PRIORATE4="20kbit"
PRIORATE5="10kbit"
PRIORATE6="1kbit"
PRIORATE7="5kbit"
PRIORATE8="5kbit"
PRIORATE9="5kbit"

# Quantum
QUANTUM1="12187"
QUANTUM2="8625"
QUANTUM3="5062"
QUANTUM4="1500"
QUANTUM5="1000"
QUANTUM6="800"
QUANTUM7="500"
QUANTUM8="300"
QUANTUM9="100"

# Burst
BURST1="6k"
BURST2="4k"
BURST3="2k"
BURST4="2k"
BURST5="2k"
BURST6="2k"
BURST7="1k"
BURST8="1k"
BURST9="1k"
CBURST1="3k"
CBURST2="2k"
CBURST3="1k"
CBURST4="128"
CBURST5="128"
CBURST6="128"
CBURST7="64"
CBURST8="64"
CBURST9="64"

#reset queues
tc qdisc del dev ppp0 root

# Set queue length for IFACE
ifconfig $IFACE txqueuelen 16 

# Specify queue discipline
tc qdisc add dev $IFACE root handle 1:0 htb default 103 r2q 1

# Set root class
tc class add dev $IFACE parent 1:0 classid 1:1 htb rate $UPRATE burst $BURST1 cburst $CBURST1
# Specify sub classes
tc class add dev $IFACE parent 1:1 classid 1:101 htb rate $PRIORATE1 ceil $UPRATE quantum $QUANTUM1 burst $BURST1 cburst $CBURST1 prio 0
tc class add dev $IFACE parent 1:1 classid 1:102 htb rate $PRIORATE2 ceil $UPRATE quantum $QUANTUM2 burst $BURST2 cburst $CBURST2 prio 1
tc class add dev $IFACE parent 1:1 classid 1:103 htb rate $PRIORATE3 ceil $UPRATE quantum $QUANTUM3 burst $BURST3 cburst $CBURST3 prio 2
tc class add dev $IFACE parent 1:1 classid 1:104 htb rate $PRIORATE4 ceil $UPRATE quantum $QUANTUM4 burst $BURST4 cburst $CBURST4 prio 3
tc class add dev $IFACE parent 1:1 classid 1:105 htb rate $PRIORATE5 ceil $UPRATE quantum $QUANTUM5 burst $BURST5 cburst $CBURST5 prio 4
tc class add dev $IFACE parent 1:1 classid 1:106 htb rate $PRIORATE6 ceil $UPRATE quantum $QUANTUM6 burst $BURST6 cburst $CBURST6 prio 5
tc class add dev $IFACE parent 1:1 classid 1:107 htb rate $PRIORATE7 ceil $UPRATE quantum $QUANTUM7 burst $BURST7 cburst $CBURST7 prio 6
tc class add dev $IFACE parent 1:1 classid 1:108 htb rate $PRIORATE8 ceil $UPRATE quantum $QUANTUM8 burst $BURST8 cburst $CBURST8 prio 7
tc class add dev $IFACE parent 1:1 classid 1:109 htb rate $PRIORATE9 ceil $UPRATE quantum $QUANTUM9 burst $BURST9 cburst $CBURST9 prio 8

# Filter packets
tc filter add dev $IFACE parent 1:0 protocol ip prio 0 handle $MARKPRIO1 fw classid 1:101
tc filter add dev $IFACE parent 1:0 protocol ip prio 1 handle $MARKPRIO2 fw classid 1:102
tc filter add dev $IFACE parent 1:0 protocol ip prio 2 handle $MARKPRIO3 fw classid 1:103
tc filter add dev $IFACE parent 1:0 protocol ip prio 3 handle $MARKPRIO4 fw classid 1:104
tc filter add dev $IFACE parent 1:0 protocol ip prio 4 handle $MARKPRIO5 fw classid 1:105
tc filter add dev $IFACE parent 1:0 protocol ip prio 5 handle $MARKPRIO6 fw classid 1:106
tc filter add dev $IFACE parent 1:0 protocol ip prio 6 handle $MARKPRIO7 fw classid 1:107
tc filter add dev $IFACE parent 1:0 protocol ip prio 7 handle $MARKPRIO8 fw classid 1:108
tc filter add dev $IFACE parent 1:0 protocol ip prio 8 handle $MARKPRIO9 fw classid 1:109

# Add queuing disciplines
tc qdisc add dev $IFACE parent 1:101 sfq perturb 16 quantum $QUANTUM1
tc qdisc add dev $IFACE parent 1:102 sfq perturb 16 quantum $QUANTUM2
tc qdisc add dev $IFACE parent 1:103 sfq perturb 16 quantum $QUANTUM3
tc qdisc add dev $IFACE parent 1:104 sfq perturb 16 quantum $QUANTUM4
tc qdisc add dev $IFACE parent 1:105 sfq perturb 16 quantum $QUANTUM5
tc qdisc add dev $IFACE parent 1:106 sfq perturb 16 quantum $QUANTUM6
tc qdisc add dev $IFACE parent 1:107 sfq perturb 16 quantum $QUANTUM7
tc qdisc add dev $IFACE parent 1:108 sfq perturb 16 quantum $QUANTUM8
tc qdisc add dev $IFACE parent 1:109 sfq perturb 16 quantum $QUANTUM9



#------------------------------------------------------------------------------------
#------------------------------------------------------------------------------------

#Final REJECT rules for non specificated outgoing packets

$IPTABLES -A lannet -j REJECT
$IPTABLES -A OUTPUT -j REJECT
Lo sto testando da parecchio e devo dire che funziona bene,ma sono ansioso di migliorarlo (con il vostro aiuto!!).
Il prossimo passo sarà quello di aprire una alla volta le porte che mi servono in FORWARD!

Attendo commentii!!!

EDIT: Script aggiornato con le modiche suggerite dagli utenti intervenuti in questo post!
Aggiornato al 25/12/05 aggiunto il traffic shaping!!!!
__________________
Ho concluso affari con: schumyFast,marcuspe@,MENTIRA,melu,Markap,One1ros,bottoni, Entropi@,DARIO-GT,unavocelontana ,tigre652,prodigy,V4n{}u|sH,blackmagic61,DDA,giugeo, sancelli,Franx1508,stemanca,agostino333, ReiserDarkside,hornet75,ibanez,K4d4sh,wolf3,pctillo,Zontar, aristippo,assembly,jeki75,]Rik`[,Caballus,Elfebo1,Haraiki, TexV,unlocked,No Mercy,antoniousa11

Ultima modifica di Axl_Mas : 01-01-2006 alle 17:51.
Axl_Mas è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2005, 14:17   #2
_YTS_
Senior Member
 
L'Avatar di _YTS_
 
Iscritto dal: Oct 2003
Città: La Spezia
Messaggi: 962
bel lavoro!!!
appena posso ti d ho un paio di consigli


ciao
__________________

Gigabyte ga-p55-ud6 | Intel i7 860 | 2x2gb Corsair xms3 | Adaptec 2410sa | raid1 barracuda 500gb 7200.12 | Intel x25-m 80gb G2 | ATI radeon 4890 | tutto in downclock (non ho parenti all'enel)
_YTS_ è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2005, 14:28   #3
Axl_Mas
Senior Member
 
L'Avatar di Axl_Mas
 
Iscritto dal: Sep 2001
Città: Perugia
Messaggi: 1988
Quote:
Originariamente inviato da _YTS_
bel lavoro!!!
appena posso ti d ho un paio di consigli


ciao
Grazie!
Lo sai che ci tengo ai tuoi consigli....

_YTS_ mi ha aiutato parecchio per la realizzazione di questo script!
__________________
Ho concluso affari con: schumyFast,marcuspe@,MENTIRA,melu,Markap,One1ros,bottoni, Entropi@,DARIO-GT,unavocelontana ,tigre652,prodigy,V4n{}u|sH,blackmagic61,DDA,giugeo, sancelli,Franx1508,stemanca,agostino333, ReiserDarkside,hornet75,ibanez,K4d4sh,wolf3,pctillo,Zontar, aristippo,assembly,jeki75,]Rik`[,Caballus,Elfebo1,Haraiki, TexV,unlocked,No Mercy,antoniousa11
Axl_Mas è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2005, 20:23   #4
r.
Member
 
Iscritto dal: Jul 2003
Messaggi: 207
Era da tanto che cercavo un thread cosi'.

Secondo la maggior parte di chi usa linuc nemmeno sa che può aver un firewall meglio del Norton

Comunque se posso farti un appunto stilisticoSarebbe meglio che le interfaccie e i dns fossero $WAN, $LAN $DNS1 e$DNS2, e non "hardcoded" (magari c'è un modo per prendere i dns da /etc/resolv.conf)

Poi non capisco se quelle regole proteggono o no la rete interna, sembra che lasci passare tutto (ma forse mi sbaglio).

Io per vedere certi siti ho dovuto aggiungere:

Codice:
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
(l'ho presa da qui qui )

Io sono riuscito a fare anche traffic shaping e sembra funzionare bene (con p2p a manetta ping google è passato da due secondi a 150ms, considerando che a vuoto è circa 100ms)
__________________
-------------------------------------
Fletto i muscoli e sono nel vuoto
------------------------------------
r. è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2005, 23:40   #5
Axl_Mas
Senior Member
 
L'Avatar di Axl_Mas
 
Iscritto dal: Sep 2001
Città: Perugia
Messaggi: 1988
Quote:
Originariamente inviato da r.
Era da tanto che cercavo un thread cosi'.

Comunque se posso farti un appunto stilisticoSarebbe meglio che le interfaccie e i dns fossero $WAN, $LAN $DNS1 e$DNS2, e non "hardcoded" (magari c'è un modo per prendere i dns da /etc/resolv.conf)

Poi non capisco se quelle regole proteggono o no la rete interna, sembra che lasci passare tutto (ma forse mi sbaglio).

Io per vedere certi siti ho dovuto aggiungere:

Codice:
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
(l'ho presa da qui qui )

Io sono riuscito a fare anche traffic shaping e sembra funzionare bene (con p2p a manetta ping google è passato da due secondi a 150ms, considerando che a vuoto è circa 100ms)
Approvato l'appunto stilistico, vedrò di sostiuire i nomi delle interfacce e dei dns con

La rete interna ancora non è protetta....sarà il prossimo passo del mio firewall!

Ho letto l'articolo,francamente non ho avuto problemi con nessun sito ma se dovessero capitarmi saprò come risolvere, grazie!!

Questo traffic shaping cosa è????
Sono interessantissimo, odio dover abbassare l'upload di amule ogni volta che devo fare una chiamata su skype (se non abbasso l'upload ho un ritardo mostruoso!!!)
__________________
Ho concluso affari con: schumyFast,marcuspe@,MENTIRA,melu,Markap,One1ros,bottoni, Entropi@,DARIO-GT,unavocelontana ,tigre652,prodigy,V4n{}u|sH,blackmagic61,DDA,giugeo, sancelli,Franx1508,stemanca,agostino333, ReiserDarkside,hornet75,ibanez,K4d4sh,wolf3,pctillo,Zontar, aristippo,assembly,jeki75,]Rik`[,Caballus,Elfebo1,Haraiki, TexV,unlocked,No Mercy,antoniousa11
Axl_Mas è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2005, 23:43   #6
Axl_Mas
Senior Member
 
L'Avatar di Axl_Mas
 
Iscritto dal: Sep 2001
Città: Perugia
Messaggi: 1988
Quote:
Originariamente inviato da r.
Io per vedere certi siti ho dovuto aggiungere:

Codice:
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
(l'ho presa da qui qui )
Ti ricordi quali erano i siti che non andavano?Cosi vedo se ho bisogno o no della stringa!
__________________
Ho concluso affari con: schumyFast,marcuspe@,MENTIRA,melu,Markap,One1ros,bottoni, Entropi@,DARIO-GT,unavocelontana ,tigre652,prodigy,V4n{}u|sH,blackmagic61,DDA,giugeo, sancelli,Franx1508,stemanca,agostino333, ReiserDarkside,hornet75,ibanez,K4d4sh,wolf3,pctillo,Zontar, aristippo,assembly,jeki75,]Rik`[,Caballus,Elfebo1,Haraiki, TexV,unlocked,No Mercy,antoniousa11
Axl_Mas è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2005, 00:38   #7
Axl_Mas
Senior Member
 
L'Avatar di Axl_Mas
 
Iscritto dal: Sep 2001
Città: Perugia
Messaggi: 1988
Ho fatto qualche modifica (commentata nello script ad inizio pagina con #***)!
Intanto ho ristretto la subnetmask della mia rete interna a 192.168.0.0/24 (ho solo ip 192.168.0.x)
Poi ho iniziato a proteggere la rete interna permettendo tutte le connessioni in uscita limitando però le connessioni in entrata a quelle gia stabilite o collegate (tramite -m state --state ESTABLISHED,RELATED).

Dai raga construiamo insieme un firewall con i controcaxxi che serva come base per tutti gli appassionati linux di questo forum!!!!
Aspetto consigli!!!
__________________
Ho concluso affari con: schumyFast,marcuspe@,MENTIRA,melu,Markap,One1ros,bottoni, Entropi@,DARIO-GT,unavocelontana ,tigre652,prodigy,V4n{}u|sH,blackmagic61,DDA,giugeo, sancelli,Franx1508,stemanca,agostino333, ReiserDarkside,hornet75,ibanez,K4d4sh,wolf3,pctillo,Zontar, aristippo,assembly,jeki75,]Rik`[,Caballus,Elfebo1,Haraiki, TexV,unlocked,No Mercy,antoniousa11
Axl_Mas è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2005, 12:41   #8
Axl_Mas
Senior Member
 
L'Avatar di Axl_Mas
 
Iscritto dal: Sep 2001
Città: Perugia
Messaggi: 1988
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE #***PRIMA AVEVO "-d !"AL POSTO DI "-s" E NON CAPENDO IL SIGNIFICATO HO MODIFICATO COSI CHE MI SEMBRA MOLTO PIù CORRETTO

Ho modificato un altro comando!
Prima sul masquerande avevo:
iptables -t nat -A POSTROUTING -d ! 192.168.0.0/24 -j MASQUERADE
ma non capendo il significato di questa regola nagativa l'ho sostituita con

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

che mi sembra molto più corretta!
__________________
Ho concluso affari con: schumyFast,marcuspe@,MENTIRA,melu,Markap,One1ros,bottoni, Entropi@,DARIO-GT,unavocelontana ,tigre652,prodigy,V4n{}u|sH,blackmagic61,DDA,giugeo, sancelli,Franx1508,stemanca,agostino333, ReiserDarkside,hornet75,ibanez,K4d4sh,wolf3,pctillo,Zontar, aristippo,assembly,jeki75,]Rik`[,Caballus,Elfebo1,Haraiki, TexV,unlocked,No Mercy,antoniousa11
Axl_Mas è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2005, 13:06   #9
r.
Member
 
Iscritto dal: Jul 2003
Messaggi: 207
Quote:
Ti ricordi quali erano i siti che non andavano?
No, non mi ricordo. Per fortuna avevo letto da qualche parte di quel problema, e quando c'è stato qualche sito che non andava ho fatto una prova e funzionava.

Il problema dipende anche dal tipo di connessione che uno ha. (il link mi sembra lo spieghi bene).

Per quanto riguarda il traffic shaping ho usato la guide del wiki gentoo (ma credo vada bene per tutte le distro).

Stasera posto i miei script, anche se probabilmente sono da correggere.
__________________
-------------------------------------
Fletto i muscoli e sono nel vuoto
------------------------------------
r. è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2005, 20:31   #10
Axl_Mas
Senior Member
 
L'Avatar di Axl_Mas
 
Iscritto dal: Sep 2001
Città: Perugia
Messaggi: 1988
Quote:
Originariamente inviato da r.
Stasera posto i miei script, anche se probabilmente sono da correggere.
Ho trovato la pagina wiki, mooooolto interessante!!!
Cmq sono ansioso di vedere i tuoi script,altro che misero firewall qui stiamo scrivendo uno script di gestione di un megaserver!!!

Ho aggiornato lo script in prima pagina con le ultime modifiche che ho apportato!!Ho stabilito l'uso di variabili e la funzione di logging penso di inserirla per domani! (prima voglio essere sicuro che funzioni!)
__________________
Ho concluso affari con: schumyFast,marcuspe@,MENTIRA,melu,Markap,One1ros,bottoni, Entropi@,DARIO-GT,unavocelontana ,tigre652,prodigy,V4n{}u|sH,blackmagic61,DDA,giugeo, sancelli,Franx1508,stemanca,agostino333, ReiserDarkside,hornet75,ibanez,K4d4sh,wolf3,pctillo,Zontar, aristippo,assembly,jeki75,]Rik`[,Caballus,Elfebo1,Haraiki, TexV,unlocked,No Mercy,antoniousa11
Axl_Mas è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2005, 21:54   #11
r.
Member
 
Iscritto dal: Jul 2003
Messaggi: 207
Questo marca i pacchetti con iptables:

Codice:
#Da http://gentoo-wiki.com/HOWTO_Packet_Shaping
#adattato per regole firewall

# Constants
LOCALNET="192.168.0.0/255.255.255.0"
MARKPRIO1="1"
MARKPRIO2="2"
MARKPRIO3="3"
MARKPRIO4="4"
MARKPRIO5="5"
MARKPRIO6="6"
MARKPRIO7="7"
MARKPRIO8="8"
MARKPRIO9="9"

#Flushing tables
iptables -t mangle -F OUTPUT
iptables -t mangle -F FORWARD


# Setting priority marks

# Prio 1
# icmp
iptables -t mangle -A FORWARD -p icmp -j MARK --set-mark $MARKPRIO1
iptables -t mangle -A OUTPUT -p icmp -j MARK --set-mark $MARKPRIO1
# ssh
iptables -t mangle -A FORWARD -p tcp --dport 22 -j MARK --set-mark $MARKPRIO1
iptables -t mangle -A OUTPUT -p tcp --dport 22 -j MARK --set-mark $MARKPRIO1
# ftp (control)
iptables -t mangle -A FORWARD -p tcp --dport 21 -j MARK --set-mark $MARKPRIO1
iptables -t mangle -A OUTPUT -p tcp --dport 21 -j MARK --set-mark $MARKPRIO1
# non tcp
iptables -t mangle -A FORWARD -p ! tcp -j MARK --set-mark $MARKPRIO1
iptables -t mangle -A OUTPUT -p ! tcp -j MARK --set-mark $MARKPRIO1

# Prio 2
#Libero

#Prio 3
# http
iptables -t mangle -A FORWARD -p tcp --dport 80 -j MARK --set-mark $MARKPRIO3
iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark $MARKPRIO3
# https
iptables -t mangle -A FORWARD -p tcp --dport 443 -j MARK --set-mark $MARKPRIO3
iptables -t mangle -A OUTPUT -p tcp --dport 443 -j MARK --set-mark $MARKPRIO3
# smtp
iptables -t mangle -A FORWARD -p tcp --dport 25 -j MARK --set-mark $MARKPRIO3
iptables -t mangle -A OUTPUT -p tcp --dport 25 -j MARK --set-mark $MARKPRIO3

# Prio 4
# packets > 1024 bytes
iptables -t mangle -A FORWARD -p tcp -m length --length 1024: -j MARK --set-mark $MARKPRIO4
# bittorrent (port number)
#iptables -t mangle -A FORWARD -i eth0 -p tcp --sport 6881:6889 -j MARK --set-mark $MARKPRIO3
#iptables -t mangle -A FORWARD -i eth0 -p tcp --dport 6881:6889 -j MARK --set-mark $MARKPRIO3
# bittorrent (layer 7)
iptables -t mangle -A FORWARD -m layer7 --l7proto bittorrent -j MARK --set-mark $MARKPRIO4

# Prio 5
#emule
iptables -t mangle -A FORWARD -m layer7 --l7proto edonkey -j MARK --set-mark $MARKPRIO5

# Prio 6




# Remaining packets are marked according to TOS
iptables -t mangle -A FORWARD -p tcp -m tos --tos Minimize-Delay -m mark --mark 0 -j MARK --set-mark $MARKPRIO1
iptables -t mangle -A FORWARD -p tcp -m tos --tos Maximize-Throughput -m mark --mark 0 -j MARK --set-mark $MARKPRIO3
iptables -t mangle -A FORWARD -p tcp -m tos --tos Minimize-Cost -m mark --mark 0 -j MARK --set-mark $MARKPRIO5
Questo fa il vero è proprio shaping con il comando tc (da iproute2):
Codice:
Constants

# Interface you want to do shaping on
# eth2, eth1 for direct connection; ppp0 or so for dsl
# and other dialup connections (check ifconfig)
IFACE=ppp0
  
# Priority marks
MARKPRIO1="1"
MARKPRIO2="2"
MARKPRIO3="3"
MARKPRIO4="4"
MARKPRIO5="5"
MARKPRIO6="6"
MARKPRIO7="7"
MARKPRIO8="8"
MARKPRIO9="9"


# Rates
UPRATE="240kbit"
#P2PRATE=$UPRATE
#P2PRATE="128kbit"
PRIORATE1="120kbit"
PRIORATE2="80kbit"
PRIORATE3="40kbit"
PRIORATE4="20kbit"
PRIORATE5="10kbit"
PRIORATE6="5kbit"
PRIORATE7="5kbit"
PRIORATE8="5kbit"
PRIORATE9="5kbit"

# Quantum
QUANTUM1="12187"
QUANTUM2="8625"
QUANTUM3="5062"
QUANTUM4="1500"
QUANTUM5="1000"
QUANTUM6="800"
QUANTUM7="500"
QUANTUM8="300"
QUANTUM9="100"

# Burst
BURST1="6k"
BURST2="4k"
BURST3="2k"
BURST4="2k"
BURST5="2k"
BURST6="2k"
BURST7="1k"
BURST8="1k"
BURST9="1k"
CBURST1="3k"
CBURST2="2k"
CBURST3="1k"
CBURST4="128"
CBURST5="128"
CBURST6="128"
CBURST7="64"
CBURST8="64"
CBURST9="64"

#reset queues
tc qdisc del dev ppp0 root

# Set queue length for IFACE
ifconfig $IFACE txqueuelen 16 

# Specify queue discipline
tc qdisc add dev $IFACE root handle 1:0 htb default 103 r2q 1

# Set root class
tc class add dev $IFACE parent 1:0 classid 1:1 htb rate $UPRATE burst $BURST1 cburst $CBURST1
# Specify sub classes
tc class add dev $IFACE parent 1:1 classid 1:101 htb rate $PRIORATE1 ceil $UPRATE quantum $QUANTUM1 burst $BURST1 cburst $CBURST1 prio 0
tc class add dev $IFACE parent 1:1 classid 1:102 htb rate $PRIORATE2 ceil $UPRATE quantum $QUANTUM2 burst $BURST2 cburst $CBURST2 prio 1
tc class add dev $IFACE parent 1:1 classid 1:103 htb rate $PRIORATE3 ceil $UPRATE quantum $QUANTUM3 burst $BURST3 cburst $CBURST3 prio 2
tc class add dev $IFACE parent 1:1 classid 1:104 htb rate $PRIORATE4 ceil $UPRATE quantum $QUANTUM4 burst $BURST4 cburst $CBURST4 prio 3
tc class add dev $IFACE parent 1:1 classid 1:105 htb rate $PRIORATE5 ceil $UPRATE quantum $QUANTUM5 burst $BURST5 cburst $CBURST5 prio 4
tc class add dev $IFACE parent 1:1 classid 1:106 htb rate $PRIORATE6 ceil $UPRATE quantum $QUANTUM6 burst $BURST6 cburst $CBURST6 prio 5
tc class add dev $IFACE parent 1:1 classid 1:107 htb rate $PRIORATE7 ceil $UPRATE quantum $QUANTUM7 burst $BURST7 cburst $CBURST7 prio 6
tc class add dev $IFACE parent 1:1 classid 1:108 htb rate $PRIORATE8 ceil $UPRATE quantum $QUANTUM8 burst $BURST8 cburst $CBURST8 prio 7
tc class add dev $IFACE parent 1:1 classid 1:109 htb rate $PRIORATE9 ceil $UPRATE quantum $QUANTUM9 burst $BURST9 cburst $CBURST9 prio 8

# Filter packets
tc filter add dev $IFACE parent 1:0 protocol ip prio 0 handle $MARKPRIO1 fw classid 1:101
tc filter add dev $IFACE parent 1:0 protocol ip prio 1 handle $MARKPRIO2 fw classid 1:102
tc filter add dev $IFACE parent 1:0 protocol ip prio 2 handle $MARKPRIO3 fw classid 1:103
tc filter add dev $IFACE parent 1:0 protocol ip prio 3 handle $MARKPRIO4 fw classid 1:104
tc filter add dev $IFACE parent 1:0 protocol ip prio 4 handle $MARKPRIO5 fw classid 1:105
tc filter add dev $IFACE parent 1:0 protocol ip prio 5 handle $MARKPRIO6 fw classid 1:106
tc filter add dev $IFACE parent 1:0 protocol ip prio 6 handle $MARKPRIO7 fw classid 1:107
tc filter add dev $IFACE parent 1:0 protocol ip prio 7 handle $MARKPRIO8 fw classid 1:108
tc filter add dev $IFACE parent 1:0 protocol ip prio 8 handle $MARKPRIO9 fw classid 1:109

# Add queuing disciplines
tc qdisc add dev $IFACE parent 1:101 sfq perturb 16 quantum $QUANTUM1
tc qdisc add dev $IFACE parent 1:102 sfq perturb 16 quantum $QUANTUM2
tc qdisc add dev $IFACE parent 1:103 sfq perturb 16 quantum $QUANTUM3
tc qdisc add dev $IFACE parent 1:104 sfq perturb 16 quantum $QUANTUM4
tc qdisc add dev $IFACE parent 1:105 sfq perturb 16 quantum $QUANTUM5
tc qdisc add dev $IFACE parent 1:106 sfq perturb 16 quantum $QUANTUM6
tc qdisc add dev $IFACE parent 1:107 sfq perturb 16 quantum $QUANTUM7
tc qdisc add dev $IFACE parent 1:108 sfq perturb 16 quantum $QUANTUM8
tc qdisc add dev $IFACE parent 1:109 sfq perturb 16 quantum $QUANTUM9

Spero si riescano a leggere.

Rispetto al wiki ho fatto le seguenti modifiche:
Portato le classi da 5 a 9, molte sono vuote, così è più semplice aggiungere una classe in mezzo ad altro due (esempio bittorrent sopra edonkey).
Purtroppo non c'ho capito abbastanza dei parametri quantum, burst e cburst e li ho messi un po' a [c,n]aso.

Inoltre il file shaper resetta le classi all'inizio, altrimenti eseguendolo due volte la seconda dà errore.

Inoltre ho patchato il kernel con l7-filter per il riconoscimento dei protocolli (piuttosto sono che sulle porte/indirizzi).

Tutto ciò è abbastanza semplice con gentoo (spam-spam).
La prima volta ho provato con il kernel 2.6.12 ma non funzionava. Ne ho approffittato per aggiornare al 2.6.13 ed è andato a posto. Sono abbastanza sicuro che non fosse un problema di configurazione.

Il ping di www.google.it passa da circa 2000 ms senza shaping a 150 ms con shaping.

E' possibile navigare tranquillamente, senza la necessità di limitare amule o simili.

Lo svantaggio è che si deve limitare la banda in uscita a circa il 90% della teorica.
__________________
-------------------------------------
Fletto i muscoli e sono nel vuoto
------------------------------------
r. è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2005, 22:17   #12
giulianodadalt
Member
 
Iscritto dal: May 2004
Messaggi: 140
Vediamo se riesco a dare il mio contributo sperando di non scrivere fesserie.
tutto questo blocco:
Codice:
#Flushing all rules,chains,tables,policies.

$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT

#Reset the default policies in the nat table.
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT

#Reset the default policies in the mangle table.
$IPTABLES -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT

#Flush all the rules in the filter and nat tables.
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F

#Erase all chains that's not default in filter and nat table.
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X

#Erase all chains and the rules of all tables.
for table in nat mangle filter
do
   $IPTABLES -t $table -F
   $IPTABLES -t $table -X
done
a me sembra riassumibile in:
Codice:
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
perchè iptables --help mi dice:
Codice:
--flush   -F [chain]          Delete all rules in  chain or all chains
Volendo fare gli sborroni si può mettere un check qui:
Codice:
#MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward
che diventa:
Codice:
if test `cat /proc/sys/net/ipv4/ip_forward` -ne 1
then
echo 1 > /proc/sys/net/ipv4/ip_forward
        if [ $? -ne 0  ] ; then
                exit 1
#io ho messo che esca, solo per fare un esempio, ma si può mettere qualcos'altro
        fi
fi
PER r.
cosa significa "marca i pacchetti con iptables"?

Giuliano
giulianodadalt è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2005, 22:34   #13
r.
Member
 
Iscritto dal: Jul 2003
Messaggi: 207
Significa che ogni pacchetto è "marchiato" (-J MARK --set-mark) da iptables secondo le regole definite.

Poi tc smista i pacchetti nelle classi a seconda di come sono marchiati (parte finale del secondo script, l'iniziale crea le classi). Ovviamente c'è una classe di default per i pacchetti non marchiati.

La "marchiatura" avviene (penso) scrivendo in un'apposita area dell'header del pacchetto.
__________________
-------------------------------------
Fletto i muscoli e sono nel vuoto
------------------------------------
r. è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2005, 23:06   #14
Al Azif
Senior Member
 
L'Avatar di Al Azif
 
Iscritto dal: Jul 2002
Città: Potenza
Messaggi: 1137
Interessante discussione
__________________
Al Azif è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2005, 23:14   #15
CARVASIN
Senior Member
 
L'Avatar di CARVASIN
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 10106
Quote:
Originariamente inviato da Al Azif
Interessante discussione
straquoto

peccato solo che non ci capisco molto, in ogni caso i miei complimenti!
__________________
"Most people think that skydivers like to jump because we love the adrenaline rush.
That's not at all.
We love to jump because WE LOVE TO FLY!"
CARVASIN è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2005, 23:35   #16
HexDEF6
Senior Member
 
L'Avatar di HexDEF6
 
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
ecco qua lo scriptino del mio server casalingo... nato quando non sapevo nemmeno cos'era iptables e pian pianino e' cresciuto fino a diventare il ce**o.. ehm lo script attuale!

Codice:
IPT="/sbin/iptables"

INT="eth1"

#cancella tutto!
$IPT -F
$IPT -F INPUT
$IPT -F OUTPUT
$IPT -F FORWARD
$IPT -F -t mangle
$IPT -F -t nat
$IPT -X

#imposta le policy di default (considero la mia rete interna sicura)
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT

#abilito l'ip_forward...
echo 1 > /proc/sys/net/ipv4/ip_forward

#...visto che mi serve per nattare
$IPT -t nat -A POSTROUTING -o $INT -j MASQUERADE -s 192.168.1.0/24 -d 0/0

#scarto i pacchetti invalidi
$IPT -A FORWARD -i $INT -m state --state INVALID -j DROP
#redirigo la porta 2000 sulla 22 del mio computer interno alla LAN
$IPT -t nat -A PREROUTING -p tcp --dport 2000 -i eth1 -j DNAT --to 192.168.1.1:22


#creo la catena firewall che logga e poi droppa
$IPT -N firewall
$IPT -A firewall -m limit --limit 5/minute -j LOG --log-prefix Firewall:
$IPT -A firewall -j DROP

#idem per la catena badflags
$IPT -N badflags
$IPT -A badflags -m limit --limit 5/minute -j LOG --log-prefix Badflags:
$IPT -A badflags -j DROP

#infine creo la catena silent che droppa senza loggare
$IPT -N silent
$IPT -A silent -j DROP

#accetto in IMPUT tutto quello che arriva da lo dalla mia rete locale 
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i eth0 -s 192.168.1.0/255.255.255.0 -d 192.168.1.254 -p all -j ACCEPT
#loggo e droppo se qualche computer interno vuole attaccarsi ad un smtp server (ho un smtp sul server e quindi bisogna usarlo!)
$IPT -A FORWARD -s 192.168.1.0/255.255.255.0 -d 0/0 -p tcp --dport 25 -j LOG --log-prefix Virus:
$IPT -A FORWARD -s 192.168.1.0/255.255.255.0 -d 0/0 -p tcp --dport 25 -j DROP

@mando alla catena badflags tutti i pacchetti che hanno flag strambe
$IPT -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j badflags
$IPT -A INPUT -p tcp --tcp-flags ALL ALL -j badflags
$IPT -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j badflags
$IPT -A INPUT -p tcp --tcp-flags ALL NONE -j badflags
$IPT -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j badflags
$IPT -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j badflags

#accetto alcuni icmp, anche i ping... ma fino ad un certo punto!
$IPT -A INPUT -p icmp --icmp-type 0 -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type 3 -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type 11 -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type 8 -m limit --limit 1/second -j ACCEPT
#gli altri vengono loggati e droppati
$IPT -A INPUT -p icmp -j firewall

#questi sono necessari se usate openvpn!
$IPT -A INPUT -i tun+ -j ACCEPT
$IPT -A FORWARD -i tun+ -j ACCEPT
$IPT -A INPUT -i tap+ -j ACCEPT
$IPT -A FORWARD -i tap+ -j ACCEPT

#accetto traffico su un casino di porte (http, https, pops, imaps, smtp, emule, bittorrent, una per openvpn ecc.)
$IPT -A INPUT -i $INT -s 0/0 -p udp --dport 8767 -j ACCEPT
$IPT -A INPUT -i $INT -s 0/0 -p tcp --dport 80 -j ACCEPT
$IPT -A INPUT -i $INT -s 0/0 -p tcp --dport 443 -j ACCEPT
$IPT -A INPUT -i $INT -s 0/0 -p tcp --dport 993 -j ACCEPT
$IPT -A INPUT -i $INT -s 0/0 -p tcp --dport 995 -j ACCEPT
$IPT -A INPUT -i $INT -s 0/0 -p tcp --dport 25 -j ACCEPT
$IPT -A INPUT -i $INT -s 0/0 -p tcp --dport 6969 -j ACCEPT
$IPT -A INPUT -i $INT -s 0/0 -p tcp --dport 15497 -j ACCEPT
$IPT -A INPUT -i $INT -s 0/0 -p tcp --dport 6881 -j ACCEPT
$IPT -A INPUT -i $INT -s 0/0 -p udp --dport 6881 -j ACCEPT
$IPT -A INPUT -i $INT -s 0/0 -p tcp --dport 7662:7664 -j ACCEPT
$IPT -A INPUT -i $INT -s 0/0 -p udp --dport 7672 -j ACCEPT
#accetto anche le connessioni gia iniziate!
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#mando direttamente nell'oblio i pacchetti sulle porte usate da netbios
$IPT -A INPUT -p udp --sport 137:138 --dport 137:138 -j silent
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++.
HOWTO: SSH Firewall e DMZ
ɐɹdosoʇʇos oʇuǝs ıɯ
HexDEF6 è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2005, 15:53   #17
roxy1974
Member
 
Iscritto dal: Jan 2002
Città: Prov di Pesaro
Messaggi: 154
Ragazzi la discussione e' interessante, veramente, pero' dico un mio parere, non si parla mai di CONNESSIONI.
A volte il problema del mulo oltre a saturare la banda e' che se non configurato bene, genera un sacco di connessioni che a volte bloccano o rallentano di molto le attivita' a qualsiasi livello di internet.
Non si riesce ad implemenatre una gestione delle connessioni? droppaggio delle connessioni, numero connessioni attive ecc., non ne ho mai visto parlare su discussioni di firewall anche se mi sembra di aver letto che il kernel in qualche maniera le supporti come gestione.

Il mio e' uno spunto .......... per migliorare cio' che avete fatto..almeno spero.

Roxy74
__________________
Epox 8RDA+ /XP 2500+ /2 HD MAXTOR 80 GB ATA133 /Hercules 8500LE 64MB /DVD PIONEER 3520A/Xaser II Thermaltake /LiteOn 52x24x52
roxy1974 è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2005, 17:13   #18
r.
Member
 
Iscritto dal: Jul 2003
Messaggi: 207
Con tutti i client edonkey che ho visto puoi settare il numero massimo di connessioni. Comunque se fai lo shaping del traffico hai comunque una banda garantita per il traffico a più alta priorità.
__________________
-------------------------------------
Fletto i muscoli e sono nel vuoto
------------------------------------
r. è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2005, 17:33   #19
roxy1974
Member
 
Iscritto dal: Jan 2002
Città: Prov di Pesaro
Messaggi: 154
Quote:
Originariamente inviato da r.
Con tutti i client edonkey che ho visto puoi settare il numero massimo di connessioni. Comunque se fai lo shaping del traffico hai comunque una banda garantita per il traffico a più alta priorità.
Lo so' ,pero' se la cosa la vedi sotto l' ottica di una rete lan con a monte un firewall, puo' essere comodo dover in qualche caso DROPPARE connessioni o anche controllarle.
E' vero che neghi le porte con IPTABLES, pero' e' sempre un servizio in piu'.
__________________
Epox 8RDA+ /XP 2500+ /2 HD MAXTOR 80 GB ATA133 /Hercules 8500LE 64MB /DVD PIONEER 3520A/Xaser II Thermaltake /LiteOn 52x24x52
roxy1974 è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2005, 19:48   #20
_YTS_
Senior Member
 
L'Avatar di _YTS_
 
Iscritto dal: Oct 2003
Città: La Spezia
Messaggi: 962
ciao axl!!

allora sono tornato ora da una trasferta sono mezzo disintegrato...
cmq ti d ho un paio di consigli che reputo utili ed uso ovviamente in produzione...

per una migliore intellegibilità del firewall e l'uso delle regole ti consiglio di dividere il piu possibile le catene, es:

iptables -N manif #manutenzione lato remoto
ipt -N lanif #man lato lan
ipt -N p2p
ipt -N ssh
ipt -N ftp
ipt -N quello che vuoi

poi appendi le regole ad ogni catena che ti sei fatto...
la cosa interessante e loggare tutti gli scarti che hai in una catena.. almeno se rejetti qualcosa sai il perche e da dove lo scarti, altrimenti vai a caso...

ipt -A ssh -m state --state RELATED,ESTABLISHED -j ACCEPT
ipt -A ssh regolechevuoi j ACCEPT
ipt -A ssh -j LOG --log-prefix "[scarti ssh]"
ipt -A ssh -j REJECT

cosi diventa molto facile capire cosa c e che non va...

il reject è diverso dal drop... dai una letta in giro e poi capisci il perche..

ti consiglio di usare il -m multiport quando per uno stesso indirizzo devi specificare piu porte... questo migliora il parsing e la velocità di iptables.

ti puoi divertire usando il controllo del TTL per avere pacchetti su misura...

l'uso dei flags mi pare che tu l'abbia imparato.. bene.

il traffic shaping è essenziale per una corretta gestione della banda, gli script che ha postato .r mi sembrano carini.

bhe che altro dire... se non usi tunnel e proto4 e cose strane direi che va bene cosi.. oltre iptables non puo fare, puoi volendo usare dei moduli e catene per droppare virus e worm e stringhe malevole ecc...

puoi fare quello che vuoi..

e senza dubbio inoltre utile integrare nel firewall una gestione start stop status
molto comoda e utile per flushing improvvisi.

ciao!!
__________________

Gigabyte ga-p55-ud6 | Intel i7 860 | 2x2gb Corsair xms3 | Adaptec 2410sa | raid1 barracuda 500gb 7200.12 | Intel x25-m 80gb G2 | ATI radeon 4890 | tutto in downclock (non ho parenti all'enel)
_YTS_ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
FRITZ!Repeater 1700 estende la rete super-veloce Wi-Fi 7 FRITZ!Repeater 1700 estende la rete super-veloce...
SpaceX: un satellite ha fotografato il s...
36 idee regalo con offerte Amazon sotto ...
Sony assume il controllo dei Peanuts: Sn...
DJI Neo scende a 149€ su Amazon, in vers...
Scoperto un nuovo esopianeta che orbita ...
Blue Origin NS-37: successo per la missi...
Potrebbe essere stata rilevata una super...
La cometa interstellare 3I/ATLAS è...
Xiaomi 17 Ultra: l'autonomia non sarà un...
Il processo produttivo a 2 nm di TSMC è ...
L'atteso aggiornamento dei driver della ...
The Elder Scrolls VI nel 2029 e Fallout ...
Il Ryzen 7 9850X3D appare nel catalogo d...
Weekend pre natalizio Amazon, ecco tutte...
Prezzi giù su Oral-B iO: spazzolini elet...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:18.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v