PDA

View Full Version : perche' iptables si comporta cosi?


sgdfgsgfsgs
07-06-2005, 15:22
# iptables -A INPUT -p tcp --dport 80 -i ppp0 -j DROP

ma iptables-save > file

cat file

# Generated by iptables-save v1.2.11 on Tue Jun 7 16:03:17 2005
*filter
:INPUT ACCEPT [300:436596]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [370:422110]
-A INPUT -i ppp0 -p tcp -m tcp --dport 80 -j DROP
COMMIT
# Completed on Tue Jun 7 16:03:17 2005


me lo mette sotto la catena di OUTPUT?? :confused:

pluton
07-06-2005, 15:56
me lo mette sotto la catena......
xkè dove dovrebbe mettertelo? :D

la posizione è ok, + che altro ho dei dubbi sulla politica che hai scelto: in INPUT accetti tutto di default e poi metti un singolo DROP sulla porta 80, in genere si fa il contrario, DROP di default e poi singole regole di ACCEPT.

Regards!!!

PiloZ
07-06-2005, 16:15
# iptables -A INPUT -p tcp --dport 80 -i ppp0 -j DROP

ma iptables-save > file

cat file

# Generated by iptables-save v1.2.11 on Tue Jun 7 16:03:17 2005
*filter
:INPUT ACCEPT [300:436596]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [370:422110]
-A INPUT -i ppp0 -p tcp -m tcp --dport 80 -j DROP
COMMIT
# Completed on Tue Jun 7 16:03:17 2005


me lo mette sotto la catena di OUTPUT?? :confused:

touch rc.firewall
vim rc.firewall


#!/bin/sh

IPTABLES=$(which iptables)
MODPROBE=$(which modprobe)

start()

{

# Carico i moduli.
$MODPROBE ip_tables
$MODPROBE iptable_nat
$MODPROBE ip_conntrack
$MODPROBE ipt_MASQUERADE

#Cancello la regole precedenti e imposto il DROP.
$IPTABLES -F INPUT
$IPTABLES -F FORWARD
$IPTABLES -F OUTPUT
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT

$IPTABLES -A INPUT -p tcp --dport 80 -i ppp0 -j DROP

#funzione per stoppare il firewall
stop()

{

echo "Resetto IPTABLES"

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


show() {

$IPTABLES -L -n -v --line-numbers


case "$1" in
'start')
start
;;

'stop')
stop
;;
'show')
show
;;

'restart')
$0 stop && $0 start
;;

*)

echo "Usage: $0 {start|stop|restart|show}"
echo "start) carica i settaggi e forza le regole"
echo "stop) cancella tutte le regole ed imposta tutto su ACCEPT"
echo "restart) will restart firewall"
echo "show) Shows the status"
exit 3
;;
esac




./rc.firewall stop
./rc.firewall start
./rc.firewall show

vedrai che così funge ;)


eventualmente cosa più giusta cambia tutto in DROP e poi metti in ACCEPT la regola.
Ciao

sgdfgsgfsgs
07-06-2005, 16:45
grazie piloz ora me lo studio.
@pluton: io sono connesso ad internet con l'interfaccia ppp0, e voglio che solo io posso utilizzare, da locale, il servizio apache....non va bene cosi?

pluton
07-06-2005, 19:47
certo che va bene, infatti ti ho detto che non importa la posizione (importante che stia sotto *filter e prima di commit). Così come hai impostato iptables in pratica stai dicendo: accetta tutto, tranne le connessioni in ingresso sulla porta 80. Se non hai particolari servizi attivi (come il P2P) allora ti bastava semplicemente impostare la politica di default in DROP e non ACCEPT, ovvero rifiuta tutto in ingresso. Se poi ti serve aprire qualche porta metti una regola in ACCEPT.

Se il tuo problema, inoltre, riguarda solo il poter accedere ad apache dal tuo PC (e non da altri PC nella tua, se esiste, rete locale), ti basta semplicemente far partire apache in modo tale che stia in ascolto in localhost e quindi 127.0.0.1. In questo modo puoi accedervi solo dal PC dove è in esecuzione (o se hai una rete lan domestica far stare apache in ascolto sull' IP statico del PC).

Best Regards!!!

sgdfgsgfsgs
07-06-2005, 20:01
certo che va bene, infatti ti ho detto che non importa la posizione (importante che stia sotto *filter e prima di commit). Così come hai impostato iptables in pratica stai dicendo: accetta tutto, tranne le connessioni in ingresso sulla porta 80. Se non hai particolari servizi attivi (come il P2P) allora ti bastava semplicemente impostare la politica di default in DROP e non ACCEPT, ovvero rifiuta tutto in ingresso. Se poi ti serve aprire qualche porta metti una regola in ACCEPT.

Se il tuo problema, inoltre, riguarda solo il poter accedere ad apache dal tuo PC (e non da altri PC nella tua, se esiste, rete locale), ti basta semplicemente far partire apache in modo tale che stia in ascolto in localhost e quindi 127.0.0.1. In questo modo puoi accedervi solo dal PC dove è in esecuzione (o se hai una rete lan domestica far stare apache in ascolto sull' IP statico del PC).

Best Regards!!!

ho risolto cosi, visto che nel mio desktop non ho attivo nessun sevizio, avvio solo apache per utilizzare un mio script php in locale, ma voglio cmq navigare su internet con firefox e chattare con irssi con tranquillita


# Generated by iptables-save v1.2.11 on Tue Jun 7 20:32:09 2005
*filter
:INPUT DROP [86:17108]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2516:1641739]
-A INPUT -i ppp0 -p tcp -m tcp ! --dport 1:1024 -j ACCEPT
-A INPUT -i ppp0 -p udp -m udp ! --dport 1:1024 -j ACCEPT
-A INPUT -i ppp0 -p icmp -j ACCEPT
COMMIT
# Completed on Tue Jun 7 20:32:09 2005


ps: dopo committ cosa ci andrebbe? cos'è?