[PIU' CHE RISOLTO :) ] iptables - creazione rc.firewall

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da conraid »

mi dici ifconfig che output ti da?

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da danix »

Codice: Seleziona tutto

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:50:8d:54:8d:c9  
          inet addr:192.168.1.4  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::250:8dff:fe54:8dc9/64 Scope:Link
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8569 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9547 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:4400831 (4.1 MiB)  TX bytes:1025156 (1001.1 KiB)
          Interrupt:20 Base address:0xa000 

eth1      Link encap:Ethernet  HWaddr 00:10:a7:17:d9:bb  
          inet addr:192.168.7.1  Bcast:192.168.7.255  Mask:255.255.255.0
          inet6 addr: fe80::210:a7ff:fe17:d9bb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9218 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8095 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:975098 (952.2 KiB)  TX bytes:4425385 (4.2 MiB)
          Interrupt:21 Base address:0xa400 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:3446 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3446 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:432962 (422.8 KiB)  TX bytes:432962 (422.8 KiB)

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:79.13.118.224  P-t-P:192.168.100.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:96 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:6490 (6.3 KiB)  TX bytes:37 (37.0 B)

danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da conraid »

ma eth0 a cosa ti serve?
Io continuo a pensare che nella tua configurazione (oddio, a questo punto inizio a credere di non averci capito niente) non serve a niente, e devi agire su ppp0

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da danix »

anche io ci ho capito poco, comunque eth0 è l'interfaccia che dialoga con il modem... dici che non mi serve a niente??
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da conraid »

danix ha scritto:anche io ci ho capito poco, comunque eth0 è l'interfaccia che dialoga con il modem... dici che non mi serve a niente??
fisicamente è eth0, ma in realtà è ppp0
ma senti qualcuno più esperto.

Io quando uso pppoe non configuro nemmeno l'interfaccia che si allaccia al modem

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da danix »

ma quindi nel firewall devo fare riferimento a eth0 come porta d'uscita o a ppp0?? Non ci sto capendo più nulla... :(
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da danix »

rieccomi...
Per cominciare ho rimosso le regole di iptables impostate dal firewall di pppoe, ho rimosso le regole di forwarding impostate nell'rc.modules e ho scritto tutto in un rc.firewall... questo:

Codice: Seleziona tutto

#!/bin/bash

SW_VERB="-v"

firewall_init() {
	sh /etc/rc.d/rc.ip_forward stop
	/usr/sbin/iptables -F $SW_VERB
	/usr/sbin/iptables -t nat -F $SW_VERB
	/usr/sbin/iptables -t mangle -F $SW_VERB
	/usr/sbin/iptables -X $SW_VERB
	/usr/sbin/iptables -t nat -X $SW_VERB
	/usr/sbin/iptables -t mangle -X $SW_VERB
}

firewall_policies() {
	/usr/sbin/iptables -P INPUT $1 $SW_VERB
	/usr/sbin/iptables -P OUTPUT $1 $SW_VERB
	/usr/sbin/iptables -P FORWARD $1 $SW_VERB
}

main_rules() {
	/usr/sbin/iptables -A INPUT -i lo -j ACCEPT $SW_VERB
	/usr/sbin/iptables -A INPUT -i eth1 -j ACCEPT $SW_VERB
	/usr/sbin/iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT $SW_VERB
	/usr/sbin/iptables -A OUTPUT -o lo -j ACCEPT $SW_VERB
	/usr/sbin/iptables -A OUTPUT -o eth1 -j ACCEPT $SW_VERB
	/usr/sbin/iptables -A OUTPUT -o ppp0 -j ACCEPT $SW_VERB
	# Log & Deny the rest of the privileged ports
	/usr/sbin/iptables -A INPUT -i ppp0 -p tcp --dport 0:1023 -j LOG $SW_VERB
	/usr/sbin/iptables -A INPUT -i ppp0 -p udp --dport 0:1023 -j LOG $SW_VERB
	/usr/sbin/iptables -A INPUT -i ppp0 -p tcp --dport 0:1023 -j DROP $SW_VERB
	/usr/sbin/iptables -A INPUT -i ppp0 -p udp --dport 0:1023 -j DROP $SW_VERB
	# Blocco i ping dall'esterno
	/usr/sbin/iptables -A INPUT -i ppp0 -p icmp --icmp-type echo-request -j DROP $SW_VERB
}

forwarding_rules() {
	/usr/sbin/iptables -A FORWARD -i ppp0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT $SW_VERB
	/usr/sbin/iptables -A FORWARD -i eth1 -o ppp0 -j ACCEPT $SW_VERB
	# Abilito il masquerading
	/usr/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE $SW_VERB
}

custom_rules() {
	/usr/sbin/iptables -A INPUT -i eth1 -p tcp --dport 8022 -j ACCEPT $SW_VERB	# SSH sulla lan interna
	/usr/sbin/iptables -A INPUT -i ppp0 -p tcp --dport 80 -j ACCEPT $SW_VERB	# HTTPD
	/usr/sbin/iptables -A INPUT -i ppp0 -p udp --dport 27960 -j ACCEPT $SW_VERB	# URBAN TERROR
}

closing_rules() {
	/usr/sbin/iptables -A INPUT -j DROP $SW_VERB
	/usr/sbin/iptables -A OUTPUT -j DROP $SW_VERB
	/usr/sbin/iptables -A FORWARD -j DROP $SW_VERB
	/usr/sbin/iptables -Z $SW_VERB
	/usr/sbin/iptables -t nat -Z $SW_VERB
	/usr/sbin/iptables -t mangle -Z $SW_VERB
	sh /etc/rc.d/rc.ip_forward start
}

sys_config() {
	# no IP spoofing
	if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ] ; then
	   for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
	      echo 1 > $i
	   done
	fi

	# Disable Source Routed Packets
	for i in /proc/sys/net/ipv4/conf/*/accept_source_route; do
	   echo 0 > $i
	done
}


case "$1" in
	start)
		echo "Configuring firewall... "
		firewall_init
		firewall_policies DROP
		main_rules
		forwarding_rules
		custom_rules
		closing_rules
		sys_config
	;;
	stop)
		echo "Resetting firewall... "
		firewall_init
		firewall_policies ACCEPT
	;;
	status)
		if [ -r /tmp/firewall.out ];then
			rm /tmp/firewall.out
		else
			touch /tmp/firewall.out
		fi
		/usr/sbin/iptables -L -n -v --line-numbers > /tmp/firewall.out
		echo >> /tmp/firewall.out
		/usr/sbin/iptables -t nat -L -n -v --line-numbers >> /tmp/firewall.out
		less /tmp/firewall.out
		rm /tmp/firewall.out
	;;
	*)
		echo "Usage:  `basename $0`  start|stop|status"
		exit 1
	;;
esac

di questo che ne dite??
Se poteste dargli un'occhiata e dirmi come vi sembra sarebbe ottimo :D
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
sardylan
Linux 3.x
Linux 3.x
Messaggi: 993
Iscritto il: mar 24 apr 2007, 9:21
Nome Cognome: Luca Cireddu
Slackware: current 64bits
Kernel: 3.16
Desktop: KDE 4.14
Distribuzione: Debian - CLFS
Località: Cagliari
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da sardylan »

@danix

Se ho capito bene:
eth0 --> Router Telecom
eth1 --> Rete locale (c'è solo il portatile collegato)

Se usi la eth0 per collegarti con il modem, allora non ti serve che la configuri!!! Il traffico PPPoE viaggia a livello di link, e non di rete: http://it.wikipedia.org/wiki/PPPoE
Ne consegue quindi che le impostazioni per il firewall non agiscono sul traffico dati relativo alla connessione...

Quindi, a meno che tu non abbia la necessità di dialogare con il router alice "DAL SERVER" per accedere tramite 192.168.1.1 al pannello di amministrazione (ma visto che non hai ne monitor ne tastiera collegati, penso proprio che non ti serva ;) ), non occorre che tu configuri questa interfaccia...
Puoi quindi tranquillamente __NON ASSEGNARE__ nessun indirizzo IP (o assegnare 0.0.0.0 per eliminare eventuali configurazioni), ed tralasciarla completamente nella configurazione di NetFilter con iptables...

Concentrati solo ed esclusivamente sulla ppp0 per quanto riguarda la parte internet, e sulla eth1 per la parte della rete locale (quella collegata al portatile).

E ricorda:
Se vuoi rendere disponibili su internet i servizi del tuo server, allora devi _SEMPLICEMENTE_ aprire le porte usando la tabella -t filter (parametro solitamente omesso) e la catena -A INPUT... Perché non c'è bisogno ne di FORWARDING ne di NATTING... E questo è quello che a te iinteressa!!
Mentre devi FORWARDARE le porte usando -A FORWARD e tutto il resto se vuoi rendere disponibili servizi presenti nei PC della lan (dove te hai solo il portatile), ovvero computer per i quali "IL SERVER FA DA GATEWAY"...

Per il resto, ad una prima occhiata, a parte la regola

Codice: Seleziona tutto

/usr/sbin/iptables -A INPUT -i eth1 -p tcp --dport 8022 -j ACCEPT $SW_VERB   # SSH sulla lan interna
che risulta inutile, per il resto dovrebbe andare tutto bene..
Questa regole risulta inutile perché i pacchetti che rispettano quei parametri vengono accettati dalla precedente regola

Codice: Seleziona tutto

/usr/sbin/iptables -A INPUT -i eth1 -j ACCEPT $SW_VERB
Infatti se provi a fare rc.firewall status, vedrai che di bytes corrispondenti a quella regola non ne transitano nella catena... ;) Tutto il traffico in entrata dalla eth1 viene già accettato nelle regole delle main rules...

Spero di essere stato chiaro!! :) Se hai altri dubbi chiedi pure!
:tongue1: :tongue1: :hello2: :lol:

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da danix »

Grazie della risposta sardylan, avevo notato che quella regola non produceva traffico, ma sarà stata un po' la mia insicurezza, un po' il fatto che era tardi e non ho indagato troppo... ;)

eppure il server non appare in internet :(
nmap -v 127.0.0.1 mi dice che la porta 80 è aperta, ma ieri in irc mi hanno detto di non riuscire a contattare il server... :(


che controlli posso fare??
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
sardylan
Linux 3.x
Linux 3.x
Messaggi: 993
Iscritto il: mar 24 apr 2007, 9:21
Nome Cognome: Luca Cireddu
Slackware: current 64bits
Kernel: 3.16
Desktop: KDE 4.14
Distribuzione: Debian - CLFS
Località: Cagliari
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da sardylan »

Codice: Seleziona tutto

$ nslookup danixquellochee.dyndns.org
# ifconfig ppp0
E controlli gli indirizzi IP... Se sono uguali __DEVE FUNZIONARE__... Altrimenti prova a dare direttamente l'indirizzo IP per vedere se funziona!!!

Ah... Ricordati che httpd vuole configurato per andare su tutti gli indirizzi... Se hai nell'httpd.conf la direttiva

Codice: Seleziona tutto

Listen 127.0.0.1:80
non ti funzionerà nemmeno se picchi il computer!!! :D :D :D :D
Corregila con

Codice: Seleziona tutto

Listen 80

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da danix »

httpd è in ascolto sulla 80 correttamente, nslookup mi ha risposto:

Codice: Seleziona tutto

# nslookup danixland.endofinternet.org
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   danixland.endofinternet.org
Address: 79.19.188.250
e ifconfig

Codice: Seleziona tutto

# ifconfig ppp0
ppp0      Link encap:Point-to-Point Protocol  
          inet addr:79.19.188.250  P-t-P:192.168.100.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:1042 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1155 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:587968 (574.1 KiB)  TX bytes:121075 (118.2 KiB)
dove sta l'inghippo??
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da conraid »

netstat -autpn | grep 80

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da danix »

mmmh... questa non è una bella cosa...

Codice: Seleziona tutto

# netstat -autpn |grep 80
tcp        0      0 192.168.7.1:8022        0.0.0.0:*               LISTEN      1122/sshd       
tcp        0      0 192.168.7.1:8022        192.168.7.100:49666     ESTABLISHED 1788/sshd: danix [p
tcp6       0      0 :::80                   :::*                    LISTEN      1337/httpd      
Ho sbagliato a configurare apache??
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da conraid »

danix ha scritto:mmmh... questa non è una bella cosa...

Codice: Seleziona tutto

# netstat -autpn |grep 80
tcp        0      0 192.168.7.1:8022        0.0.0.0:*               LISTEN      1122/sshd       
tcp        0      0 192.168.7.1:8022        192.168.7.100:49666     ESTABLISHED 1788/sshd: danix [p
tcp6       0      0 :::80                   :::*                    LISTEN      1337/httpd      
Ho sbagliato a configurare apache??
sì, sembra in ascolto solamente su ipv6

La direttiva Listen come ce l'hai?

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: iptables - creazione rc.firewall

Messaggio da danix »

Codice: Seleziona tutto

Listen 80
ServerName danixland.endofinternet.org:80
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Rispondi