Bu iptables kurallarını başlangıçta çalışacak şekilde nasıl ayarlayabilirim

19

Giriş yaptığımda genellikle iptables kurallarını çalıştırıyorum. I terminalinden;

sudo sh firewall.sh

Kız kardeşimin bilgisayarını kurmak, ona bazı temel güvenlik duvarı koruması vermek istiyorum. Sadece standart bir hesap olarak yönetici olarak giriş yapmayacak. Parola yazmak zorunda kalmadan giriş yaptığı her defasında bir güvenlik duvarı betiği nasıl çalıştırabilirim?

Kız kardeşimin bilgisayarında yazdığım senaryoda;

#!/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

Firewall.sh olarak kendi home klasörüne koydum ve çalıştırılabilir olarak ayarladım (dosyaya sağ tıklayıp "izinler sekmesinde" dosyayı dosya olarak çalıştırmaya izin ver "seçeneğini işaretleyin).

Kökü iyi çalışır gibi bu betiği terminalden çalıştırır.

Yazdıktan sonra;

sudo sh firewall.sh

Terminale yazdım

sudo iptables -L -v

ve ben aldım

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

Bu betiğin girişte otomatik olarak nasıl çalıştırılabileceğini veya kız kardeşlerim bilgisayarında bu kuralları kalıcı olarak saklayabileceğim nasıl olabilir? Rc.local yöntemindeki ilk denemelerim ve iptables-save'in çok başarılı olmadığından bazı ayrıntılı kodlar verebilir misiniz? Her yeniden başlatmada, tüm INPUT, OUTPUT ve FORWARD zincirleri sudo iptables -L -v

yazarken hiçbir politika listelenmemiş olarak KABUL olarak sıfırlanır.     
sordu Mikelane 21.03.2013 05:14

2 cevap

32

Önyükleme komut dosyalarınızla uğraşmak yerine iptables-persistent paketini kullanmak isteyebilirsiniz. Öncelikle, güvenlik duvarı kurallarını ayarlamak için komut dosyasını çalıştırın. İkinci olarak, sudo apt-get install iptables-persistent dosyasını çalıştırın ve komutları izleyin. Mevcut kuralları kaydetmek istediğinde, her iki istemde de "Evet" e basın. Şimdi, yeniden başlatmalarda iptables kurallarınız geri yüklenecektir.

NOT: Kurallarınızı bundan sonra değiştirirseniz, değişikliklerden sonra aşağıdaki komutları yapmanız gerekir:

IPv4 iptables kurallarınızı kaydetmek için: sudo su -c 'iptables-save > /etc/iptables/rules.v4'

IPv6 ip6tables kurallarınızı kaydetmek için: sudo su -c 'ip6tables-save > /etc/iptables/rules.v6'

    
verilen cevap Thomas Ward 21.03.2013 05:18
3

Güvenlik duvarı kurallarına sahip olduğunuzu varsayarsak:

/etc/iptables.up.rules

Belki de en belirgin cevap iptables adında bir dosya oluşturmak olacaktır:

/etc/network/if-pre-up.d

içeriğiyle:

#!/bin/bash
/sbin/iptables-restore < /etc/iptables.up.rules

ve

kullanarak çalıştırılabilir hale getirin
sudo chmod +x /etc/network/if-pre-up.d/iptables

Ağ arayüzünüz etkinleştirilmeden önce, kurallarınız yüklenir.

    
verilen cevap Antonio J. de Oliveira 13.12.2016 12:43

Etiketlerdeki diğer soruları oku