Le tabelle IP consentono solo l'accesso all'host locale


58

Ho lottato nel corso degli anni per ottenere una solida conoscenza di iptables. Ogni volta che provo a leggere le pagine man i miei occhi iniziano a sbirciare.

Ho un servizio a cui voglio solo consentire all'host locale di avere accesso.

Quali termini (o configurazione, se qualcuno si sente generoso) dovrei Google per consentire a un solo host localhost di avere accesso a una determinata porta?


2
Su quale porta è in esecuzione questo servizio?
Bart De Vos,

44344, è un servizio scritto internamente
iptablessuck,

1
Vorrei cambiare temporaneamente il mio nick per "iptablesrules" ma non posso
Art Shayderov

@Art, fanno schifo solo perché non li capisco :)
iptablessuck

@iptablessuck in realtà sembra che io possa. Ma non lo farò, non sono sicuro di poterlo cambiare di nuovo :)
Art Shayderov

Risposte:


65

Se per servizio intendi una porta specifica, le seguenti due linee dovrebbero funzionare. Cambia "25" in qualunque porta stai cercando di limitare.

iptables -A INPUT -p tcp -s localhost --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j DROP

1
"Tutto ciò che proviene da localhost sulla porta 25, accetta" e la seconda regola dice "Rilascia tutto ciò che entra nella porta 25". La prima riga viene elaborata per prima, consentendo localhost e qualsiasi altra cosa verrà eliminata dalla seconda riga. Sì?
iptablessuck,

È corretto!
Hyppy

4
@Hyppy, come potresti "annullare" questo?
tester

10
@tester digita nuovamente questi comandi, ma sostituiscili -Acon-D
pepoluan il

1
@Astronaut digitare 'sudo service iptables save' per salvare le modifiche. quindi riavviare. puoi verificare se le modifiche sono state salvate digitando 'sudo iptables -L'
Vinayak

30

Consiglierei:

iptables -A INPUT -i lo -p tcp --dport $APP_PORT -j ACCEPT
iptables -A INPUT -p tcp --dport $APP_PORT -j DROP

Perché, i pacchetti autoindirizzati non hanno necessariamente 127.0.0.1 come sorgente, ma tutti 'entrano' lodall'interfaccia.

Ora, se vuoi davvero capire iptablesla prima cosa che dovresti fare è scaricare e stampare buoni diagrammi che spiegano le relazioni delle netfiltertabelle. Eccone due fantastici:

Infine, leggi molti iptablesHOWTO. Gli esempi pratici ti aiuteranno ad aggiornarti molto velocemente :)


ty! losi presenta per me dopo aver usato questi comandi con l'ultimo comando da questo link cyberciti.biz/faq/howto-display-linux-iptables-loaded-rules iptables -L -v -n --line-numbers

2
@Gracco Trovo molto più facile da usare iptables-save, salvare l'output in un file, modificarlo con vimo emacse reimportare il file modificato utilizzandoiptables-apply
pepoluan

Penso che, a seconda del caso d'uso, la seconda regola dovrebbe rifiutare esplicitamente invece di cadere silenziosamente. È lasciato cadere silenziosamente come best practice? REJECT è sicuro da usare?
Mr. Doomsbuster il

1
@ tech-pro Sì, REJECT è sicuro da usare. Dipende da cosa stai cercando di realizzare e se vuoi essere cortese con le persone che cercano di usare la porta. REJECT invierà indietro un pacchetto TCP RST indicando al client che la macchina è attiva ma la porta è chiusa. Se stai chiudendo una porta che le persone potrebbero legittimamente aspettarsi di usare, allora REJECT è buono. Se ti aspetti solo gli scanner delle porte, DROP è migliore.
Legge 29

1
@ x-yuri Ad esempio, corro unboundcome DNS Cache, davanti a dnscrypt-proxy. unboundsi lega 127.0.53.1:53e si dnscrypt-proxylega a 127.0.53.2:53. Quando un'app richiede unbound o proxy dnscrypt per risolvere un nome di dominio completo, indovina quale indirizzo di origine risponderà unbound / dnscrypt-proxy?
pepoluan
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.