Di solito eseguo le mie regole iptables ogni volta che eseguo l'accesso. Dal terminale I digito;
sudo sh firewall.sh
Configurando il computer di mia sorella, voglio darle una protezione di base per il firewall. Non accederà come amministratore, solo un account standard. Come posso eseguire uno script firewall ogni volta che accede senza che sia necessario digitare alcuna password?
La sceneggiatura che ho scritto per il computer di mia sorella contiene;
#!/bin/sh
modprobe ip_conntrack
iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -I OUTPUT -p tcp --dport 80 --sport 32768:61000 -j ACCEPT
iptables -I OUTPUT -p udp --dport 53 --sport 32768:61000 -j ACCEPT
iptables -I OUTPUT -p tcp --dport 443 --sport 32768:61000 -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -I OUTPUT -p icmp -j DROP
iptables -I INPUT -p icmp -j DROP
iptables -I INPUT -p udp -j DROP
iptables -I INPUT -p tcp -m tcp --syn -j DROP
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
L'ho inserito nella sua cartella home come firewall.sh e l'ho impostato come eseguibile (fare clic con il tasto destro sul file e selezionare l'opzione "consenti l'esecuzione di file come programma" nella scheda delle autorizzazioni).
L'esecuzione di questo script dal terminale come root funziona bene.
Dopo aver digitato;
sudo sh firewall.sh
Ho digitato nel terminale
sudo iptables -L -v
e ho capito
Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- any any anywhere anywhere ctstate RELATED,ESTABLISHED
0 0 ACCEPT all -- lo any anywhere anywhere
0 0 DROP tcp -- any any anywhere anywhere tcpflags: FIN,SYN,RST,ACK/SYN
0 0 DROP udp -- any any anywhere anywhere
0 0 DROP icmp -- any any anywhere anywhere
Chain FORWARD (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
Chain OUTPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
0 0 DROP icmp -- any any anywhere anywhere
0 0 ACCEPT tcp -- any any anywhere anywhere tcp spts:32768:61000 dpt:https
0 0 ACCEPT udp -- any any anywhere anywhere udp spts:32768:61000 dpt:domain
0 0 ACCEPT tcp -- any any anywhere anywhere tcp spts:32768:61000 dpt:http
0 0 ACCEPT all -- any lo anywhere anywhere
Come posso fare in modo che questo script venga eseguito automaticamente all'accesso o eventualmente salvare queste regole in modo permanente per il computer delle mie sorelle? Potresti fornire qualche codice dettagliato, poiché i miei primi tentativi di metodo rc.local e iptables-save non hanno avuto molto successo. Ad ogni riavvio, tutte le catene INPUT, OUTPUT e FORWARD vengono reimpostate su ACCETTA, senza criteri elencati quando scrivosudo iptables -L -v
ip6tables
regole se ottieni la connettività v6 un giorno, poiché IPv6 è gestitoip6tables
e noiptables
.