[Risolto] Aprire porta http sul firewall

Da console, in remoto, sono riuscito ad aprire la porta http con il seguente comando:

iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

Sul computer ho aperto il browser, ho digitato l’IP e ha funzionato.
Ho provato a salvare la configurazione

service iptables save

E ho riavviato il computer.

Ho provato a digitare l’IP nel browser
E non riesce a colegarsi

Ho digitato di nuovo il comando
iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
IP sul browser e non riesce a collegarsi…

Non riesco a capire la natura del problema, chi mi da una mano? Grazie.

Possiamo sapere che versione di Fedora stai utilizzando? Lo sai che state è deprecato (non influisce in questo caso, ma hai sicuramente un warning)?
Puoi far vedere:

$ service iptables status

Uso il sistema operativo Fedora 20

#service iptables status
Redirecting to /bin/systemctl status  iptables.service
iptables.service - IPv4 firewall with iptables
   Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled)
   Active: inactive (dead)

#service iptables start
Redirecting to /bin/systemctl start  iptables.service

# service iptables status
Redirecting to /bin/systemctl status  iptables.service
iptables.service - IPv4 firewall with iptables
   Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled)
   Active: active (exited) since dom 2014-04-20 23:22:31 CEST; 1s ago
  Process: 2916 ExecStart=/usr/libexec/iptables/iptables.init start (code=exited, status=0/SUCCESS)
 Main PID: 2916 (code=exited, status=0/SUCCESS)

apr 20 23:22:30 server.localdomain systemd[1]: Starting IPv4 firewall with iptables...
apr 20 23:22:31 server.localdomain iptables.init[2916]: iptables: Applying firewall ...]
apr 20 23:22:31 server.localdomain systemd[1]: Started IPv4 firewall with iptables.
Hint: Some lines were ellipsized, use -l to show in full.

Se il firewall è attivo il problema rimane.
Loaded è disabilitato… domani guardo cosa devo fare, non so dove mettere le mani.

Grazie.

No, non sapevo che state è deprecato… ho cercato su internet e ho trovato questo codice.

Fedora 20? Sposto la discussione lì allora.
Iptables è disabilitato di default, Fedora 20 utilizza firewalld. Lo hai configurato? Perchè utilizzi iptables?
Idem il “service iptables status”, abbiamo systemd da 3 anni ormai.

Alla fine non ho proprio capito cosa vuoi fare. Hai impostato una regola per iptables, non hai fatto partire il servizio e dici che non funziona. Ora che lo tiri su dici che se il firewall è attivo non riesci a collegarti. Cosa vuoi fare e soprattutto utilizzando che cosa?
Posta:

# cat /etc/sysconfig/iptables

Quella regola è alquanto confusa.

Dopo aver installato apache sul computer sto cercando di aprire il servizio http sul firewall per accedere con il browser. Non sapendo come si fa, ho fatto una ricerca su Internet e ho trovato il comando iptables.

Il computer ha una installazione ex novo di fedora 20, quindi se iptables non serve allora è meglio che sia disabilitato, voglio solo sapere come si fa ad abilitare il servizio http sul firewall da console. Non so che comando devo usare…

Ieri da Internet non ho trovato nessun riferimento a firewalld, perdendo qualche ora per un comando che è deprecato.
Se c’è ancora bisogno di visualizzare iptables entro stasera posto il risultato altrimenti è meglio usare firewalld ( e cerco la documentazione a riguardo)

P.s. scusa se sembro seccato, ma ce l’ho con me stesso per il tempo perso per un semplice comando…

Grazie per l’aiuto.

$ /usr/bin/firewall-config

digiti la password di root, e, nella scheda “Servizi” metti la spunta si “http” e, se ti serve, “https”.
Se vuoi rendere permanente la cosa, vai su “Configurazione” (in alto a sinistra), e scegli, al posto di “In esecuzione”, la voce “Salvata”, e metti anche lì la spinta su “http” e “https”.

[quote=marcomotta]$ /usr/bin/firewall-config
digiti la password di root, e, nella scheda “Servizi” metti la spunta si “http” e, se ti serve, “https”.
Se vuoi rendere permanente la cosa, vai su “Configurazione” (in alto a sinistra), e scegli, al posto di “In esecuzione”, la voce “Salvata”, e metti anche lì la spinta su “http” e “https”.[/quote]
Scusami ma non mi serve farlo con l’interfaccia grafica, voglio usare il terminale, per due motivi:
imparare linux da riga di comando;
collegarmi via ssh ad una vps (e quindi devo provare con due pc prima di mettere mano ad una vps)

Io non ho mai gestito il firewall a linea di comando, ma forse partendo da http://docs.fedoraproject.org/en-US/Fedora/19/html/Security_Guide/sec-Configure_Port_Forwarding-CLI.html trovi qualche indicazione.

Il firewalld gestisce il tutto tramite “zone”, come hai visto nell’esempio della GUI postata da marcomotta. Puoi listarle con:

# firewall-cmd --get-zones

Quella che interessa è la home, la pubblica e l’esterna, probabilmente. Puoi aggiungere una porta, come un servizio, per esempio nella zona pubblica:

# firewall-cmd --zone=public --add --port=5911/tcp

Listando le porte aperte:

# firewall-cmd --zone=public --list-ports 5911/tcp
Lo stesso principio si applica ai servizi, come http o https, li vedi con:

# firewall-cmd --zone=public --list-services

E aggiungi un servizio con:

# firewall-cmd --zone=public --add-service=http

Questi esempi aprono la porta per la singola sessione, se vuoi che sia permanente devi solo dirglielo aggiungendo l’opzione --permanent. Per esempio:

# firewall-cmd --permanent --zone=public --add --port=5911/tcp

Sono giusto degli esempi per i quali ho preso la zona pubblica, se vuoi leggerti qualcosa su firewalld trovo molto utile https://fedoraproject.org/wiki/FirewallD. Spero ti possa servire.
Ciao

Ho usato systemctl per avviare il servizio http ed ad abilitarlo automaticamente all’avvio.
Con firewall-cmd aggiunto il servizio http e messo permanente.

Il problema è risolto, grazie mille a tutti e due! :slight_smile: :thumb:

Ottimo, bravo. :wink: