Autore Topic: iptables / postgres [RISOLTO]  (Letto 19370 volte)

Offline dado

  • Jr. Member
  • **
  • Post: 28
    • Mostra profilo
iptables / postgres [RISOLTO]
« il: 07 Febbraio 2013, 17:46:10 »
Ciao, stavo cercando di ottimizzare la sicurezza sul mio server
non riesco, una volta avviato iptables, ad accedere alla mia web application su postgres
semplicemente non riesco ad aprire in maniera corretta la porta 5432 dove sto sbagliando ?

# Generated by iptables-save v1.4.7 on Thu Feb  7 18:05:28 2013
*filter
:INPUT DROP [2:356]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 8443 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 5432 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 43 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 43 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 123 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 123 -j ACCEPT
-A OUTPUT -p tcp -j REJECT --reject-with tcp-reset
COMMIT
# Completed on Thu Feb  7 18:05:28 2013
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -s 192.168.0.0/24 -j ACCEPT
-A RH-Firewall-1 OUTPUT -m  state -- state NEW -m tcp -p tcp --dport 5432 -s 192.168.0.0/24 -j ACCEPT
« Ultima modifica: 14 Febbraio 2013, 19:18:40 da dado »

Offline smeserver

  • Hero Member
  • *****
  • Post: 1313
    • Mostra profilo
Re: iptables / postgres
« Risposta #1 il: 07 Febbraio 2013, 19:06:15 »
la tua applicazione dove sta?
sei sicuro che sia un problema di iptables?
la macchina con postgresql è esposta su wan?

Offline dado

  • Jr. Member
  • **
  • Post: 28
    • Mostra profilo
Re: iptables / postgres
« Risposta #2 il: 08 Febbraio 2013, 09:38:23 »
in locale anche il posgres , se stoppo iptables funziona,
sulla config del postgres sono esposto a tutto
pg_hba.conf

all   all

Offline smeserver

  • Hero Member
  • *****
  • Post: 1313
    • Mostra profilo
Re: iptables / postgres
« Risposta #3 il: 08 Febbraio 2013, 09:46:45 »
per cortesia, considerando che "noi" da qui non sappiamo nulla di quello che vedi ed hai intorno, puoi rispondere alle domande che ti vengono poste?

l'applicazione ed il db sono su macchine diverse?
quale delle (eventuali) macchine è esposta su wan?
puoi descrivere la struttura della rete?

Offline LonelyWolf

  • Moderator
  • Hero Member
  • *****
  • Post: 1396
    • Mostra profilo
    • Traversate dei laghi
Re: iptables / postgres
« Risposta #4 il: 08 Febbraio 2013, 10:43:23 »
smeserver: la tua applicazione dove sta?
dado: in locale anche il posgres

smeserver: sei sicuro che sia un problema di iptables?
dado: se stoppo iptables funziona

il "fattore wan" non credo che sia un problema, per ora.

@ dado:
in postgresql.conf sei sicuro che l'indirizzo ip e la porta siano corretti?
riavvio di iptables dopo le modifiche?
pg_hba.conf com'è? (la riga con local deve comunque essere presente)
A.e.:
local      all all


Edit:
dimenticavo, non mi risulta sia necessario OUTPUT per la porta in iptables, e sarebbe opportuno, almeno per ora in cui si cerca il problema, che rimuovi l'opzione -s da iptables
« Ultima modifica: 08 Febbraio 2013, 10:46:01 da LonelyWolf »

Offline smeserver

  • Hero Member
  • *****
  • Post: 1313
    • Mostra profilo
Re: iptables / postgres
« Risposta #5 il: 08 Febbraio 2013, 10:59:48 »
@lonely: cercavo di capire la necessità di un iptables in lan.. :-)

Offline LonelyWolf

  • Moderator
  • Hero Member
  • *****
  • Post: 1396
    • Mostra profilo
    • Traversate dei laghi
Re: iptables / postgres
« Risposta #6 il: 08 Febbraio 2013, 11:15:35 »
@lonely: cercavo di capire la necessità di un iptables in lan.. :-)

;)
e' che di default c'è e magari SUCCESSIVAMENTE (in maiuscolo x dado) deve aprire all'esterno.

Offline smeserver

  • Hero Member
  • *****
  • Post: 1313
    • Mostra profilo
Re: iptables / postgres
« Risposta #7 il: 08 Febbraio 2013, 11:28:04 »
ovvio.. ma se parliamo di una macchina in lan che deve essere interrogata per servizi (mysql, apache, postgresql, sarc@##o) e *NON* ci sono necessità di firewalling, si può tirar giù..

solo che se l'OP non ci dice come è strutturata la cosa..

Offline dado

  • Jr. Member
  • **
  • Post: 28
    • Mostra profilo
Re: iptables / postgres
« Risposta #8 il: 08 Febbraio 2013, 16:59:04 »
perdonatemi,
al momento sulla stessa macchina sono presenti: 
postgres
tomcat
apache
lan locale 192.168.0.0
al momento non devo pubblicare all'asterno, la mia era solo una pianificazione futura
il file di configurazione di postgres, erroneamente inserito in maniera incompleta, permette la connessione a tutti:
pg_hba.conf
host    all    all    0.0.0.0/0     md5
postgresql.conf
listen_address ='*'
port = 5432
l'applicativo, una webapps, richiama attraverso un file di configurazione il db di postgres.

Offline LonelyWolf

  • Moderator
  • Hero Member
  • *****
  • Post: 1396
    • Mostra profilo
    • Traversate dei laghi
Re: iptables / postgres
« Risposta #9 il: 10 Febbraio 2013, 10:14:07 »
deve obbligatoriamente esserci la riga con local in pg_hba.conf altrimenti non funzionano le connessioni.
« Ultima modifica: 11 Febbraio 2013, 09:14:58 da LonelyWolf »

Offline dankan77

  • Moderator
  • Hero Member
  • *****
  • Post: 1365
    • Mostra profilo
    • E-mail
Re: iptables / postgres
« Risposta #10 il: 11 Febbraio 2013, 09:52:41 »
Ciao a tutti,
al di là delle disquisizioni mi sembra mancare qualcosa lato regole di iptables.
Potrebbe essere utile inserire le seguenti entry

 -m state --state NEW,ESTABLISHED

su tutte le entry dove c'è una "dport"

Inoltre si può leggere qualcosa di completo già qui

http://www.cyberciti.biz/tips/postgres-allow-remote-access-tcp-connection.html

P.S.
Questo sistema ha una sola nic?

Ciao

Offline LonelyWolf

  • Moderator
  • Hero Member
  • *****
  • Post: 1396
    • Mostra profilo
    • Traversate dei laghi
Re: iptables / postgres
« Risposta #11 il: 11 Febbraio 2013, 10:42:07 »
dankan a lui non vanno le connessioni locali (x ora), quindi come da manuale ( http://www.postgresql.org/docs/8.3/static/auth-pg-hba-conf.html ) deve necessariamente avere la riga "local"

Citazione
local

    This record matches connection attempts using Unix-domain sockets. Without a record of this type, Unix-domain socket connections are disallowed.

Offline dankan77

  • Moderator
  • Hero Member
  • *****
  • Post: 1365
    • Mostra profilo
    • E-mail
Re: iptables / postgres
« Risposta #12 il: 11 Febbraio 2013, 14:29:51 »
Nella doc passata c'è scritto tutto, inoltre io mi ero soffermato su  :

"in locale anche il posgres , se stoppo iptables funziona,
sulla config del postgres sono esposto a tutto
pg_hba.conf

all   all"

Ho capito io male?

Offline LonelyWolf

  • Moderator
  • Hero Member
  • *****
  • Post: 1396
    • Mostra profilo
    • Traversate dei laghi
Re: iptables / postgres
« Risposta #13 il: 11 Febbraio 2013, 15:17:16 »
Sì ho visto, a me ha "tratto in inganno", quindi sono andato per gradi, se manca la riga con local sicuramente non funziona (come dice la documentazione) per cui sistemato quello si può procedere con il resto.

Offline dado

  • Jr. Member
  • **
  • Post: 28
    • Mostra profilo
Re: iptables / postgres
« Risposta #14 il: 13 Febbraio 2013, 11:45:18 »
ho provato con le indicazioni fornite

inserito nelle entry con "dport" -m state --state NEW,ESTABLISHED
rimossa l'opzione -s
aggiunto nelle entry la porta 8080
controllato il file pg_hba.conf dove trovo inserita anche l'ozione"local" di default
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               md5
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
host    all         all         0.0.0.0/0             md5
# IPv6 local connections:
host    all         all         ::1/128               md5
ma continua a non funzionare