Difference between revisions of "IPv6 Firewall: Penggunaan"

From OnnoWiki
Jump to navigation Jump to search
(New page: 18.3. Usage 18.3.1. Check for support Load module, if so compiled # modprobe ip6_tables Check for capability # [ ! -f /proc/net/ip6_tables_names ] && echo "Current kernel doesn't supp...)
 
 
(28 intermediate revisions by the same user not shown)
Line 1: Line 1:
18.3. Usage
+
Bagi mereka yang familiar dengan firewall iptables, sebetulnya tidak terlalu sulit untuk menset ip6tables. Pada dasarnya IPv6 netfiter, ip6tables, sangat mirip dengan iptables. Perbedaan utama-nya adalah ip6tables menggunakan IPv6, sementara iptables menggunakan IPv4.
18.3.1. Check for support
 
  
Load module, if so compiled
 
  
# modprobe ip6_tables
+
==Cek untuk Dukungan==
  
Check for capability
+
Sebagian besar sistem operasi Linux modern sudah mendukung ip6tables. Cek menggunakan modinfo
  
# [ ! -f /proc/net/ip6_tables_names ] && echo "Current kernel doesn't support
+
# modinfo ip6_tables
¬ 'ip6tables' firewalling (IPv6)!"
 
  
18.3.2. Learn how to use ip6tables
+
Hasilnya kira-kira:
18.3.2.1. List all IPv6 netfilter entries
 
  
     Short
+
filename:      /lib/modules/4.15.0-20-generic/kernel/net/ipv6/netfilter/ip6_tables.ko
 +
description:    IPv6 packet filter
 +
author:        Netfilter Core Team <coreteam@netfilter.org>
 +
license:        GPL
 +
srcversion:     3A41F26537483F4CD281C89
 +
depends:        x_tables
 +
retpoline:      Y
 +
intree:        Y
 +
name:          ip6_tables
 +
vermagic:      4.15.0-20-generic SMP mod_unload
 +
signat:        PKCS#7
 +
signer:       
 +
sig_key:       
 +
sig_hashalgo:  md4
  
# ip6tables -L
 
  
    Extended
+
Berikut ini hanya berlaku pada Linux lama, pada Linux baru ini tidak berlaku. Pada Linux versi lama, bisa di-cek untuk dukungan IPv6 Firewall. Load module, jika sudah di compile.
  
# ip6tables -n -v --line-numbers -L
+
# modprobe ip6_tables
  
18.3.2.2. List specified filter
+
Pastikan tidak ada error pada saat perintah di atas di berikan.  
 +
Cek untuk kemampuan Sistem Operasi untuk menjalankan ip6tables
  
# ip6tables -n -v --line-numbers -L INPUT
+
# [ ! -f /proc/net/ip6_tables_names ] && echo "Current kernel doesn't support 'ip6tables' firewalling (IPv6)!"
  
18.3.2.3. Insert a log rule at the input filter with options
+
Pastikan tidak keluar kata-kata “Current kernel doesn't support 'ip6tables' firewalling (IPv6)!”. Jika keluar kata-kata tersebut, maka kita punya masalah karena kernel tidak mendukung IPv6 firewalling.
  
# ip6tables --table filter --append INPUT  -j LOG --log-prefix "INPUT:"
+
==Belajar Mengunakan ip6tables==
¬ --log-level 7
 
  
18.3.2.4. Insert a drop rule at the input filter
+
===Lihat Semua Entri IPv6 netfilter===
  
# ip6tables --table filter --append INPUT  -j DROP
+
Pendek
  
18.3.2.5. Delete a rule by number
+
# ip6tables -L
  
# ip6tables --table filter --delete INPUT 1
+
Panjang
  
18.3.2.6. Enable connection tracking
+
# ip6tables -n -v --line-numbers -L
  
Since kernel version 2.6.20 IPv6 connection tracking is well supported and should be used instead of using stateless filter rules.
+
===Lihat filter tertentu===
  
# ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
+
# ip6tables -n -v --line-numbers -L INPUT
  
18.3.2.7. Allow ICMPv6
+
===Masukan aturan log rule pada input filter dengan opsi tertentu===
  
Using older kernels (unpatched kernel 2.4.5 and iptables-1.2.2) no type can be specified
+
# ip6tables --table filter --append INPUT  -j LOG --log-prefix "INPUT:" --log-level 7
  
    Accept incoming ICMPv6 through tunnels
+
===Masukan aturan drop pada input filter===
  
# ip6tables -A INPUT -i sit+ -p icmpv6 -j ACCEPT
+
# ip6tables --table filter --append INPUT  -j DROP
  
    Allow outgoing ICMPv6 through tunnels
+
===Buang aturan berdasarkan nomor===
  
# ip6tables -A OUTPUT -o sit+ -p icmpv6 -j ACCEPT
+
# ip6tables --table filter --delete INPUT 1
  
Newer kernels allow specifying of ICMPv6 types:
+
===Aktifkan connection tracking===
  
# ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-request -j ACCEPT
+
Sejak kernel versi 2.6.20 IPv6 connection tracking sudah didukung dengan baik dan sebaiknya digunakan daripada menggunakan rules filter stateless
  
18.3.2.8. Rate-limiting
+
# ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  
Because it can happen (author already saw it to times) that an ICMPv6 storm will raise up, you should use available rate limiting for at least ICMPv6 ruleset. In addition logging rules should also get rate limiting to prevent DoS attacks against syslog and storage of log file partition. An example for a rate limited ICMPv6 looks like:
+
===Ijinkan ICMPv6===
  
# ip6tables -A INPUT --protocol icmpv6 --icmpv6-type echo-request
+
Menggunakan kernel lama (kernel 2.4.5 tidak di patch dan iptables-1.2.2) kita tidak dapat menspesifikasi tipe
¬ -j ACCEPT --match limit --limit 30/minute
 
  
18.3.2.9. Allow incoming SSH
+
Terima ICMPv6 yang masuk melalui tunnel
  
Here an example is shown for a ruleset which allows incoming SSH connection from a specified IPv6 address
+
# ip6tables -A INPUT -i sit+ -p icmpv6 -j ACCEPT
  
    Allow incoming SSH from 2001:0db8:100::1/128
+
Terima ICMPv6 yang keluar melalui tunnel
  
# ip6tables -A INPUT -i sit+ -p tcp -s 2001:0db8:100::1/128 --sport 512:65535
+
# ip6tables -A OUTPUT -o sit+ -p icmpv6 -j ACCEPT  
¬ --dport 22 -j ACCEPT  
 
  
    Allow response packets (no longer needed if connection tracking is used!)
+
Kernel baru memungkinkan untuk mengijinkan tipe ICMPv6:
  
# ip6tables -A OUTPUT -o sit+ -p tcp -d 2001:0db8:100::1/128 --dport 512:65535
+
# ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-request -j ACCEPT
¬ --sport 22 ! --syn -j ACCEPT  
 
  
18.3.2.10. Enable tunneled IPv6-in-IPv4
+
===Rate-limiting===
  
To accept tunneled IPv6-in-IPv4 packets, you have to insert rules in your IPv4 firewall setup relating to such packets, for example
+
Karena kemungkinan bisa saja terjadi badai ICMPv6, kita perlu menggunakan rate limiting paling tidak untuk ICMPv6. Selain itu, kita perlu menambahkan rule rate limiting untuk logging supaya tidak ada serangan DoS terhadap syslog maupun partisi log. Contoh dari rate limiting ICMPv6 adalah sebagai berikut:
  
    Accept incoming IPv6-in-IPv4 on interface ppp0
+
# ip6tables -A INPUT --protocol icmpv6 --icmpv6-type echo-request \
 +
  -j ACCEPT --match limit --limit 30/minute
  
# iptables -A INPUT -i ppp0 -p ipv6 -j ACCEPT
+
===Ijinkan SSH yang masuk===
  
    Allow outgoing IPv6-in-IPv4 to interface ppp0
+
Berikut adalah contoh rule yang mengijinkan sambungan masuk SSH dari address IPv6 tertentu.
  
# iptables -A OUTPUT -o ppp0 -p ipv6 -j ACCEPT
+
Ijin SSH masuk dari 2001:0db8:100::1/128
  
If you have only a static tunnel, you can specify the IPv4 addresses, too, like
+
# ip6tables -A INPUT -i sit+ -p tcp -s 2001:0db8:100::1/128 --sport 512:65535 --dport 22 -j ACCEPT
  
    Accept incoming IPv6-in-IPv4 on interface ppp0 from tunnel endpoint 192.0.2.2
+
Ijin responds paket (tidak di perlukan kalau connection tracking digunakan)
  
# iptables -A INPUT -i ppp0 -p ipv6 -s 192.0.2.2 -j ACCEPT  
+
# ip6tables -A OUTPUT -o sit+ -p tcp -d 2001:0db8:100::1/128 --dport 512:65535 --sport 22 ! --syn -j ACCEPT
  
    Allow outgoing IPv6-in-IPv4 to interface ppp0 to tunnel endpoint 1.2.3.4
+
===Aktifkan tunnel IPv6-in-IPv4===
  
# iptables -A OUTPUT -o ppp0 -p ipv6 -d 192.0.2.2 -j ACCEPT
+
Untuk menerima paket tunnel IPv6-in-IPv4 , kita perlu menambahkan rule di firewall IPv4 terhadap paket tersebut, contoh
  
18.3.2.11. Protection against incoming TCP connection requests
+
Menerima masukan IPv6-in-IPv4 di interface ppp0
  
VERY RECOMMENDED! For security issues you should really insert a rule which blocks incoming TCP connection requests. Adapt "-i" option, if other interface names are in use!
+
# iptables -A INPUT -i ppp0 -p ipv6 -j ACCEPT
  
    Block incoming TCP connection requests to this host
+
Mengijinkan keluaran IPv6-in-IPv4 ke interface ppp0
  
# ip6tables -I INPUT -i sit+ -p tcp --syn -j DROP
+
# iptables -A OUTPUT -o ppp0 -p ipv6 -j ACCEPT
  
    Block incoming TCP connection requests to hosts behind this router
+
Jika kita hanya mempunyai statik tunnel, kita dapat menentukan address IPv4 tersebut, seperti,
  
# ip6tables -I FORWARD -i sit+ -p tcp --syn -j DROP
+
Menerima masukan IPv6-in-IPv4 di interface ppp0 dari tunnel endpoint 192.0.2.2
  
Perhaps the rules have to be placed below others, but that is work you have to think about it. Best way is to create a script and execute rules in a specified way.
+
# iptables -A INPUT -i ppp0 -p ipv6 -s 192.0.2.2 -j ACCEPT
18.3.2.12. Protection against incoming UDP connection requests
 
  
ALSO RECOMMENDED! Like mentioned on my firewall information it's possible to control the ports on outgoing UDP/TCP sessions. So if all of your local IPv6 systems are using local ports e.g. from 32768 to 60999 you are able to filter UDP connections also (until connection tracking works) like:
+
Mengijinkan keluaran IPv6-in-IPv4 di interface ppp0 dari tunnel endpoint 1.2.3.4
  
    Block incoming UDP packets which cannot be responses of outgoing requests of this host
+
# iptables -A OUTPUT -o ppp0 -p ipv6 -d 192.0.2.2 -j ACCEPT
  
# ip6tables -I INPUT -i sit+ -p udp ! --dport 32768:60999 -j DROP
+
===Proteksi terhadap permohonan sambungan masuk TCP===
  
    Block incoming UDP packets which cannot be responses of forwarded requests of hosts behind this router
+
SANGAT DI SARANKAN! Untuk keamanan kita sebaiknya menambahkan aturan yang memblok permohonan masuk sambungan TCP. Pakai opsi "-i" , jika nama interface lain digunakan.
  
# ip6tables -I FORWARD -i sit+ -p udp ! --dport 32768:60999 -j DROP
+
Blok permohonan sambungan masuk TCP ke mesin ini
  
18.3.3. Examples
+
# ip6tables -I INPUT -i sit+ -p tcp --syn -j DROP
18.3.3.1. Simple example for Fedora
 
  
Following lines show a simple firewall configuration for Fedora 6 (since kernel version 2.6.20). It was modfied from the default one (generated by system-config-firewall) for supporting connection tracking and return the proper ICMPv6 code for rejects. Incoming SSH (port 22) connections are allowed.
+
Blok permohonan sambungan masuk TCP ke mesin di belakangan router
 +
 
 +
# ip6tables -I FORWARD -i sit+ -p tcp --syn -j DROP
 +
 
 +
Mungkin aturan-aturan ini harus di letakan di bawah yang lain, anda perlu memikirkan tentang itu.
 +
Cara yang lebih baik adalah membuat script yang menjalankan aturan secara tertentu.
 +
 
 +
===Proteksi terhadap sambungan masuk UDP===
 +
 
 +
SANGAT DI ANJURKAN! kita perlu mengontrol port untuk sambungan UDP/TCP keluar. Jika sistem IPv6 yang kita gunakan menggunakan local port, seperti, dari 32768 s/d 60999 kita dapat memfilter sambungan UDP sebagai berikut:
 +
 
 +
Blok paket masuk UDP yang tidak dapat di responds oleh permohonan paket keluar dari mesin ini.
 +
 
 +
# ip6tables -I INPUT -i sit+ -p udp ! --dport 32768:60999 -j DROP
 +
 
 +
Blok paket masuk UDP yang tidak bisa di responds untuk permohonan forward dari mesin di belakang router ini.
 +
 
 +
# ip6tables -I FORWARD -i sit+ -p udp ! --dport 32768:60999 -j DROP
 +
 
 +
 
 +
===NAT menggunakan netfilter6===
 +
 
 +
Sejak Linux kernel versi 3.9.0 dan menggunakan ip6tables sejak 1.4.18 maka Network Address Translation (NAT) dapat digunakan.
 +
 
 +
====IPv6 Masquerading====
 +
 
 +
Seperti layaknya client IPv4, maka client dapat di sembunyikan di belakang router dengan IPv6 masquerading (hide/overlap NAT), seperti
 +
 
 +
ip6tables -t nat -A POSTROUTING -s fec0::/64 -o tun0-j MASQUERADE
 +
ip6tables -t nat -A POSTROUTING -s 2a07:123:456::/80 -o tun0 -j MASQUERADE
 +
 
 +
====IPv6 Destination NAT====
 +
 
 +
Sebuah dedicated IPv6 address global dapat di forward ke internal IPv6 address, seperti,
 +
 
 +
ip6tables -t nat -A PREROUTING -d 2001:db8:0:1:5054:ff:fe01:2345 -i sixxs -j DNAT --to-destination fec0::5054:ff:fe01:2345
 +
 
 +
====IPv6 Port Forwarding====
 +
 
 +
Sebuah port yang spesifik dapat di forward ke jaringan internal, seperti,
 +
 
 +
ip6tables -t nat -A PREROUTING -i sixxs -p tcp --dport 8080 -j DNAT --to-destination [fec0::1234]:80
 +
 
 +
==Contoh==
 +
 
 +
===Contoh Sederhana untuk Fedora===
 +
 
 +
Perintah berikut memperlihatkan konfigurasi firewalll sederhana untuk Fedora 6 (sejak kernel versi 2.6.20). Perintah ini di modifikasi dari default yang di buat oleh system-config-firewall untuk mendukung connection tracking dan memberikan kode  yang benar untuk menolak ICMPv6. Sambungan SSH masuk ke port 22 di ijinkan.
  
 
File: /etc/sysconfig/ip6tables
 
File: /etc/sysconfig/ip6tables
  
*filter :INPUT ACCEPT [0:0]
+
*filter :INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
+
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
+
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
+
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
+
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
+
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
+
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmpv6 -j ACCEPT
+
-A RH-Firewall-1-INPUT -p icmpv6 -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
+
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
+
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d ff02::fb -j ACCEPT
+
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d ff02::fb -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT  
+
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT  
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
+
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
+
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
+
-A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp6-adm-prohibited
+
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp6-adm-prohibited
COMMIT  
+
COMMIT  
  
For completeness also the IPv4 configuration is shown here:
+
Untuk melengkapi konfigurasi IPv4 di perlihatkan disini.
  
 
File: /etc/sysconfig/iptables
 
File: /etc/sysconfig/iptables
  
*filter :INPUT ACCEPT [0:0]
+
*filter :INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
+
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
+
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
+
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
+
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
+
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
+
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
+
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
+
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
+
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
+
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
+
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
+
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
+
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
+
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
+
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT  
+
COMMIT  
 +
 
 +
Penggunaan:
 +
 
 +
* Buat / modifikasi file konfigurasi.
 +
* Aktifkan firewall IPv4 & IPv6.
 +
 
 +
# service iptables start
 +
# service ip6tables start
 +
 
 +
* Aktifkan start automatis setelah reboot.
 +
 
 +
# chkconfig iptables on
 +
# chkconfig ip6tables on
 +
 
 +
 
 +
===Contoh Yang Lebih Kompleks===
 +
 
 +
Kalimat berkut menunjukan sebuah contoh yang lebih sophisticated tapi masih tetap filter stateless.
 +
 
 +
# ip6tables -n -v -L
 +
 
 +
Chain INPUT (policy DROP 0 packets, 0 bytes)
 +
  pkts bytes target    prot opt in    out    source              destination
 +
    0    0 extIN      all      sit+  *      ::/0                ::/0
 +
    4  384 intIN      all      eth0  *      ::/0                ::/0
 +
    0    0 ACCEPT    all      *      *      ::1/128              ::1/128
 +
    0    0 ACCEPT    all      lo    *      ::/0                ::/0
 +
    0    0 LOG        all      *      *      ::/0                ::/0     
 +
¬        LOG flags 0 level 7 prefix `INPUT-default:'
 +
    0    0 DROP      all      *      *      ::/0                ::/0
 +
 
 +
Chain FORWARD (policy DROP 0 packets, 0 bytes)
 +
  pkts bytes target    prot opt in    out    source              destination
 +
¬
 +
    0    0 int2ext    all      eth0  sit+    ::/0                ::/0
 +
    0    0 ext2int    all      sit+  eth0    ::/0                ::/0
 +
    0    0 LOG        all      *      *      ::/0                ::/0     
 +
¬        LOG flags 0 level 7 prefix `FORWARD-default:'
 +
    0    0 DROP      all      *      *      ::/0                ::/0
 +
 
 +
Chain OUTPUT (policy DROP 0 packets, 0 bytes)
 +
  pkts bytes target    prot opt in    out    source              destination
 +
¬
 +
    0    0 extOUT    all      *      sit+    ::/0                ::/0
 +
    4  384 intOUT    all      *      eth0    ::/0                ::/0
 +
    0    0 ACCEPT    all      *      *      ::1/128              ::1/128
 +
    0    0 ACCEPT    all      *      lo      ::/0                ::/0
 +
    0    0 LOG        all      *      *      ::/0                ::/0     
 +
¬        LOG flags 0 level 7 prefix `OUTPUT-default:'
 +
    0    0 DROP      all      *      *      ::/0                ::/0
 +
 
 +
Chain ext2int (1 references)
 +
  pkts bytes target    prot opt in    out    source              destination
 +
¬
 +
    0    0 ACCEPT    icmpv6    *      *      ::/0                ::/0
 +
    0    0 ACCEPT    tcp      *      *      ::/0                ::/0     
 +
¬        tcp spts:1:65535 dpts:1024:65535 flags:!0x16/0x02
 +
    0    0 LOG        all      *      *      ::/0                ::/0     
 +
¬        LOG flags 0 level 7 prefix `ext2int-default:'
 +
    0    0 DROP      tcp      *      *      ::/0                ::/0
 +
    0    0 DROP      udp      *      *      ::/0                ::/0
 +
    0    0 DROP      all      *      *      ::/0                ::/0
 +
 
 +
Chain extIN (1 references)
 +
  pkts bytes target    prot opt in    out    source              destination
 +
¬
 +
    0    0 ACCEPT    tcp      *      *      3ffe:400:100::1/128  ::/0     
 +
¬        tcp spts:512:65535 dpt:22
 +
    0    0 ACCEPT    tcp      *      *      3ffe:400:100::2/128  ::/0     
 +
¬        tcp spts:512:65535 dpt:22
 +
    0    0 ACCEPT    icmpv6    *      *      ::/0                ::/0
 +
    0    0 ACCEPT    tcp      *      *      ::/0                ::/0     
 +
¬        tcp spts:1:65535 dpts:1024:65535 flags:!0x16/0x02
 +
    0    0 ACCEPT    udp      *      *      ::/0                ::/0     
 +
¬        udp spts:1:65535 dpts:1024:65535
 +
    0    0 LOG        all      *      *      ::/0                ::/0     
 +
¬        limit: avg 5/min burst 5 LOG flags 0 level 7 prefix `extIN-default:'
 +
    0    0 DROP      all      *      *      ::/0                ::/0
 +
 
 +
Chain extOUT (1 references)
 +
  pkts bytes target    prot opt in    out    source              destination
 +
¬ 
 +
    0    0 ACCEPT    tcp      *      *      ::/0               
 +
¬ 2001:0db8:100::1/128tcp spt:22 dpts:512:65535 flags:!0x16/0x02
 +
    0    0 ACCEPT    tcp      *      *      ::/0               
 +
¬ 2001:0db8:100::2/128tcp spt:22 dpts:512:65535 flags:!0x16/0x02
 +
    0    0 ACCEPT    icmpv6    *      *      ::/0                ::/0
 +
    0    0 ACCEPT    tcp      *      *      ::/0                ::/0     
 +
¬        tcp spts:1024:65535 dpts:1:65535
 +
    0    0 ACCEPT    udp      *      *      ::/0                ::/0     
 +
¬        udp spts:1024:65535 dpts:1:65535
 +
    0    0 LOG        all      *      *      ::/0                ::/0     
 +
¬        LOG flags 0 level 7 prefix `extOUT-default:'
 +
    0    0 DROP      all      *      *      ::/0                ::/0
 +
 
 +
Chain int2ext (1 references)
 +
  pkts bytes target    prot opt in    out    source              destination
 +
¬
 +
    0    0 ACCEPT    icmpv6    *      *      ::/0                ::/0
 +
    0    0 ACCEPT    tcp      *      *      ::/0                ::/0     
 +
¬        tcp spts:1024:65535 dpts:1:65535
 +
    0    0 LOG        all      *      *      ::/0                ::/0     
 +
¬        LOG flags 0 level 7 prefix `int2ext:'
 +
    0    0 DROP      all      *      *      ::/0                ::/0
 +
    0    0 LOG        all      *      *      ::/0                ::/0     
 +
¬        LOG flags 0 level 7 prefix `int2ext-default:'
 +
    0    0 DROP      tcp      *      *      ::/0                ::/0
 +
    0    0 DROP      udp      *      *      ::/0                ::/0
 +
    0    0 DROP      all      *      *      ::/0                ::/0
 +
 
 +
Chain intIN (1 references)
 +
  pkts bytes target    prot opt in    out    source              destination
 +
¬
 +
    0    0 ACCEPT    all      *      *      ::/0               
 +
¬ fe80::/ffc0::
 +
    4  384 ACCEPT    all      *      *      ::/0                ff02::/16
 +
 
 +
Chain intOUT (1 references)
 +
  pkts bytes target    prot opt in    out    source              destination
 +
¬
 +
    0    0 ACCEPT    all      *      *      ::/0               
 +
¬ fe80::/ffc0::
 +
    4  384 ACCEPT    all      *      *      ::/0                ff02::/16
 +
    0    0 LOG        all      *      *      ::/0                ::/0     
 +
¬        LOG flags 0 level 7 prefix `intOUT-default:'
 +
    0    0 DROP      all      *      *      ::/0                ::/0
 +
 
 +
 
 +
==Simpan konfigurasi iptables==
 +
 
 +
ip6tables rules akan jalan secara automatis / instan, akan tetapi, apa yang kita set akan hilang jika server di restart. Oleh karenanya kita butuh untuk bisa menyimpan rules yang kita set tersebut, sehingga jika server / komputer di reboot akan langsung aktif.
 +
 
 +
Ada beberapa cara sebetulnya, salah satu yang paling mudah adalah menggunakan package iptables-persistent. Ketik perintah berikut untuk menginstall,
  
Usage:
+
sudo apt-get install iptables-persistent
  
    Create/modify the configuration files
+
Ketik 'Yes" untuk rules IPv4 dan IPv6 saat di prompt.
  
    Activate IPv4 & IPv6 firewalling
+
Setelah instalasi kita akan menemukan dua file di
  
# service iptables start
+
/etc/iptables
# service ip6tables start
 
  
    Enable automatic start after reboot
+
dengan nama IPv4 dan IPv6. Kita dapar mengedit rules sesuai dengan apa yang kita inginkan. Selanjutnya kita dapat start|restart|reload|force-reload|save|flush. Sebagai contoh, jika kita ingin "save" rules yang sedang berjalan, ketik perintah berikut:
  
# chkconfig iptables on
+
sudo /etc/init.d/iptables-persistent save
# chkconfig ip6tables on
 
  
18.3.3.2. Sophisticated example
+
Ini akan menyimpan rule dari IPv4 dan IPv6.
  
Following lines show a more sophisticated but still stateless filter setup as an example. Happy netfilter6 ruleset creation....
+
==Pranala Menarik==
  
# ip6tables -n -v -L
+
* [[IPv6]]
Chain INPUT (policy DROP 0 packets, 0 bytes)
 
pkts bytes target    prot opt in    out    source              destination
 
    0    0 extIN      all      sit+  *       ::/0                ::/0
 
    4  384 intIN      all      eth0  *      ::/0                ::/0
 
    0    0 ACCEPT    all      *      *      ::1/128              ::1/128
 
    0    0 ACCEPT    all      lo    *      ::/0                ::/0
 
    0    0 LOG        all      *      *      ::/0                ::/0     
 
¬        LOG flags 0 level 7 prefix `INPUT-default:'
 
    0    0 DROP      all      *      *      ::/0                ::/0
 
 
Chain FORWARD (policy DROP 0 packets, 0 bytes)
 
pkts bytes target    prot opt in    out    source              destination
 
¬
 
    0    0 int2ext    all      eth0  sit+    ::/0                ::/0
 
    0    0 ext2int    all      sit+  eth0    ::/0                ::/0
 
    0    0 LOG        all      *      *      ::/0                ::/0     
 
¬        LOG flags 0 level 7 prefix `FORWARD-default:'
 
    0    0 DROP      all      *      *      ::/0                ::/0
 
 
Chain OUTPUT (policy DROP 0 packets, 0 bytes)
 
pkts bytes target    prot opt in    out    source              destination
 
¬
 
    0    0 extOUT    all      *      sit+    ::/0                ::/0
 
    4  384 intOUT    all      *      eth0    ::/0                ::/0
 
    0    0 ACCEPT    all      *      *      ::1/128              ::1/128
 
    0    0 ACCEPT    all      *      lo      ::/0                ::/0
 
    0    0 LOG        all      *      *      ::/0                ::/0     
 
¬        LOG flags 0 level 7 prefix `OUTPUT-default:'
 
    0    0 DROP      all      *      *      ::/0                ::/0
 
 
Chain ext2int (1 references)
 
pkts bytes target    prot opt in    out    source              destination
 
¬
 
    0    0 ACCEPT    icmpv6    *      *      ::/0                ::/0
 
    0    0 ACCEPT    tcp      *      *      ::/0                ::/0     
 
¬        tcp spts:1:65535 dpts:1024:65535 flags:!0x16/0x02
 
    0    0 LOG        all      *      *      ::/0                ::/0     
 
¬        LOG flags 0 level 7 prefix `ext2int-default:'
 
    0    0 DROP      tcp      *      *      ::/0                ::/0
 
    0    0 DROP      udp      *      *      ::/0                ::/0
 
    0    0 DROP      all      *      *      ::/0                ::/0
 
 
Chain extIN (1 references)
 
pkts bytes target    prot opt in    out    source              destination
 
¬
 
    0    0 ACCEPT    tcp      *      *      3ffe:400:100::1/128  ::/0     
 
¬        tcp spts:512:65535 dpt:22
 
    0    0 ACCEPT    tcp      *      *      3ffe:400:100::2/128  ::/0     
 
¬        tcp spts:512:65535 dpt:22
 
    0    0 ACCEPT    icmpv6    *      *      ::/0                ::/0
 
    0    0 ACCEPT    tcp      *      *      ::/0                ::/0     
 
¬        tcp spts:1:65535 dpts:1024:65535 flags:!0x16/0x02
 
    0    0 ACCEPT    udp      *      *      ::/0                ::/0     
 
¬        udp spts:1:65535 dpts:1024:65535
 
    0    0 LOG        all      *      *      ::/0                ::/0     
 
¬        limit: avg 5/min burst 5 LOG flags 0 level 7 prefix `extIN-default:'
 
    0    0 DROP      all      *      *      ::/0                ::/0
 
 
Chain extOUT (1 references)
 
pkts bytes target    prot opt in    out    source              destination
 
¬
 
    0    0 ACCEPT    tcp      *      *      ::/0               
 
¬ 2001:0db8:100::1/128tcp spt:22 dpts:512:65535 flags:!0x16/0x02
 
    0    0 ACCEPT    tcp      *      *      ::/0               
 
¬ 2001:0db8:100::2/128tcp spt:22 dpts:512:65535 flags:!0x16/0x02
 
    0    0 ACCEPT    icmpv6    *      *      ::/0                ::/0
 
    0    0 ACCEPT    tcp      *      *      ::/0                ::/0     
 
¬        tcp spts:1024:65535 dpts:1:65535
 
    0    0 ACCEPT    udp      *      *      ::/0                ::/0     
 
¬        udp spts:1024:65535 dpts:1:65535
 
    0    0 LOG        all      *      *      ::/0                ::/0     
 
¬        LOG flags 0 level 7 prefix `extOUT-default:'
 
    0    0 DROP      all      *      *      ::/0                ::/0
 
 
Chain int2ext (1 references)
 
pkts bytes target    prot opt in    out    source              destination
 
¬
 
    0    0 ACCEPT    icmpv6    *      *      ::/0                ::/0
 
    0    0 ACCEPT    tcp      *      *      ::/0                ::/0     
 
¬        tcp spts:1024:65535 dpts:1:65535
 
    0    0 LOG        all      *      *      ::/0                ::/0     
 
¬        LOG flags 0 level 7 prefix `int2ext:'
 
    0    0 DROP      all      *      *      ::/0                ::/0
 
    0    0 LOG        all      *      *      ::/0                ::/0     
 
¬        LOG flags 0 level 7 prefix `int2ext-default:'
 
    0    0 DROP      tcp      *      *      ::/0                ::/0
 
    0    0 DROP      udp      *      *      ::/0                ::/0
 
    0    0 DROP      all      *      *      ::/0                ::/0
 
 
Chain intIN (1 references)
 
pkts bytes target    prot opt in    out    source              destination
 
¬
 
    0    0 ACCEPT    all      *      *      ::/0               
 
¬ fe80::/ffc0::
 
    4  384 ACCEPT    all      *      *      ::/0                ff02::/16
 
 
Chain intOUT (1 references)
 
pkts bytes target    prot opt in    out    source              destination
 
¬
 
    0    0 ACCEPT    all      *      *      ::/0               
 
¬ fe80::/ffc0::
 
    4  384 ACCEPT    all      *      *      ::/0                ff02::/16
 
    0    0 LOG        all      *      *      ::/0                ::/0     
 
¬        LOG flags 0 level 7 prefix `intOUT-default:'
 
    0    0 DROP      all      *      *      ::/0                ::/0
 

Latest revision as of 03:07, 8 February 2024

Bagi mereka yang familiar dengan firewall iptables, sebetulnya tidak terlalu sulit untuk menset ip6tables. Pada dasarnya IPv6 netfiter, ip6tables, sangat mirip dengan iptables. Perbedaan utama-nya adalah ip6tables menggunakan IPv6, sementara iptables menggunakan IPv4.


Cek untuk Dukungan

Sebagian besar sistem operasi Linux modern sudah mendukung ip6tables. Cek menggunakan modinfo

# modinfo ip6_tables

Hasilnya kira-kira:

filename:       /lib/modules/4.15.0-20-generic/kernel/net/ipv6/netfilter/ip6_tables.ko
description:    IPv6 packet filter
author:         Netfilter Core Team <coreteam@netfilter.org>
license:        GPL
srcversion:     3A41F26537483F4CD281C89
depends:        x_tables
retpoline:      Y
intree:         Y
name:           ip6_tables
vermagic:       4.15.0-20-generic SMP mod_unload 
signat:         PKCS#7
signer:         
sig_key:        
sig_hashalgo:   md4


Berikut ini hanya berlaku pada Linux lama, pada Linux baru ini tidak berlaku. Pada Linux versi lama, bisa di-cek untuk dukungan IPv6 Firewall. Load module, jika sudah di compile.

# modprobe ip6_tables 

Pastikan tidak ada error pada saat perintah di atas di berikan. Cek untuk kemampuan Sistem Operasi untuk menjalankan ip6tables

# [ ! -f /proc/net/ip6_tables_names ] && echo "Current kernel doesn't support 'ip6tables' firewalling (IPv6)!"

Pastikan tidak keluar kata-kata “Current kernel doesn't support 'ip6tables' firewalling (IPv6)!”. Jika keluar kata-kata tersebut, maka kita punya masalah karena kernel tidak mendukung IPv6 firewalling.

Belajar Mengunakan ip6tables

Lihat Semua Entri IPv6 netfilter

Pendek

# ip6tables -L 

Panjang

# ip6tables -n -v --line-numbers -L 

Lihat filter tertentu

# ip6tables -n -v --line-numbers -L INPUT 

Masukan aturan log rule pada input filter dengan opsi tertentu

# ip6tables --table filter --append INPUT  -j LOG --log-prefix "INPUT:" --log-level 7 

Masukan aturan drop pada input filter

# ip6tables --table filter --append INPUT  -j DROP 

Buang aturan berdasarkan nomor

# ip6tables --table filter --delete INPUT 1 

Aktifkan connection tracking

Sejak kernel versi 2.6.20 IPv6 connection tracking sudah didukung dengan baik dan sebaiknya digunakan daripada menggunakan rules filter stateless

# ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Ijinkan ICMPv6

Menggunakan kernel lama (kernel 2.4.5 tidak di patch dan iptables-1.2.2) kita tidak dapat menspesifikasi tipe

Terima ICMPv6 yang masuk melalui tunnel

# ip6tables -A INPUT -i sit+ -p icmpv6 -j ACCEPT 

Terima ICMPv6 yang keluar melalui tunnel

# ip6tables -A OUTPUT -o sit+ -p icmpv6 -j ACCEPT 

Kernel baru memungkinkan untuk mengijinkan tipe ICMPv6:

# ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-request -j ACCEPT

Rate-limiting

Karena kemungkinan bisa saja terjadi badai ICMPv6, kita perlu menggunakan rate limiting paling tidak untuk ICMPv6. Selain itu, kita perlu menambahkan rule rate limiting untuk logging supaya tidak ada serangan DoS terhadap syslog maupun partisi log. Contoh dari rate limiting ICMPv6 adalah sebagai berikut:

# ip6tables -A INPUT --protocol icmpv6 --icmpv6-type echo-request \
  -j ACCEPT --match limit --limit 30/minute

Ijinkan SSH yang masuk

Berikut adalah contoh rule yang mengijinkan sambungan masuk SSH dari address IPv6 tertentu.

Ijin SSH masuk dari 2001:0db8:100::1/128

# ip6tables -A INPUT -i sit+ -p tcp -s 2001:0db8:100::1/128 --sport 512:65535 --dport 22 -j ACCEPT 

Ijin responds paket (tidak di perlukan kalau connection tracking digunakan)

# ip6tables -A OUTPUT -o sit+ -p tcp -d 2001:0db8:100::1/128 --dport 512:65535 --sport 22 ! --syn -j ACCEPT

Aktifkan tunnel IPv6-in-IPv4

Untuk menerima paket tunnel IPv6-in-IPv4 , kita perlu menambahkan rule di firewall IPv4 terhadap paket tersebut, contoh

Menerima masukan IPv6-in-IPv4 di interface ppp0

# iptables -A INPUT -i ppp0 -p ipv6 -j ACCEPT 

Mengijinkan keluaran IPv6-in-IPv4 ke interface ppp0

# iptables -A OUTPUT -o ppp0 -p ipv6 -j ACCEPT 

Jika kita hanya mempunyai statik tunnel, kita dapat menentukan address IPv4 tersebut, seperti,

Menerima masukan IPv6-in-IPv4 di interface ppp0 dari tunnel endpoint 192.0.2.2

# iptables -A INPUT -i ppp0 -p ipv6 -s 192.0.2.2 -j ACCEPT 

Mengijinkan keluaran IPv6-in-IPv4 di interface ppp0 dari tunnel endpoint 1.2.3.4

# iptables -A OUTPUT -o ppp0 -p ipv6 -d 192.0.2.2 -j ACCEPT

Proteksi terhadap permohonan sambungan masuk TCP

SANGAT DI SARANKAN! Untuk keamanan kita sebaiknya menambahkan aturan yang memblok permohonan masuk sambungan TCP. Pakai opsi "-i" , jika nama interface lain digunakan.

Blok permohonan sambungan masuk TCP ke mesin ini

# ip6tables -I INPUT -i sit+ -p tcp --syn -j DROP 

Blok permohonan sambungan masuk TCP ke mesin di belakangan router

# ip6tables -I FORWARD -i sit+ -p tcp --syn -j DROP 

Mungkin aturan-aturan ini harus di letakan di bawah yang lain, anda perlu memikirkan tentang itu. Cara yang lebih baik adalah membuat script yang menjalankan aturan secara tertentu.

Proteksi terhadap sambungan masuk UDP

SANGAT DI ANJURKAN! kita perlu mengontrol port untuk sambungan UDP/TCP keluar. Jika sistem IPv6 yang kita gunakan menggunakan local port, seperti, dari 32768 s/d 60999 kita dapat memfilter sambungan UDP sebagai berikut:

Blok paket masuk UDP yang tidak dapat di responds oleh permohonan paket keluar dari mesin ini.

# ip6tables -I INPUT -i sit+ -p udp ! --dport 32768:60999 -j DROP 

Blok paket masuk UDP yang tidak bisa di responds untuk permohonan forward dari mesin di belakang router ini.

# ip6tables -I FORWARD -i sit+ -p udp ! --dport 32768:60999 -j DROP


NAT menggunakan netfilter6

Sejak Linux kernel versi 3.9.0 dan menggunakan ip6tables sejak 1.4.18 maka Network Address Translation (NAT) dapat digunakan.

IPv6 Masquerading

Seperti layaknya client IPv4, maka client dapat di sembunyikan di belakang router dengan IPv6 masquerading (hide/overlap NAT), seperti

ip6tables -t nat -A POSTROUTING -s fec0::/64 -o tun0-j MASQUERADE
ip6tables -t nat -A POSTROUTING -s 2a07:123:456::/80 -o tun0 -j MASQUERADE

IPv6 Destination NAT

Sebuah dedicated IPv6 address global dapat di forward ke internal IPv6 address, seperti,

ip6tables -t nat -A PREROUTING -d 2001:db8:0:1:5054:ff:fe01:2345 -i sixxs -j DNAT --to-destination fec0::5054:ff:fe01:2345

IPv6 Port Forwarding

Sebuah port yang spesifik dapat di forward ke jaringan internal, seperti,

ip6tables -t nat -A PREROUTING -i sixxs -p tcp --dport 8080 -j DNAT --to-destination [fec0::1234]:80

Contoh

Contoh Sederhana untuk Fedora

Perintah berikut memperlihatkan konfigurasi firewalll sederhana untuk Fedora 6 (sejak kernel versi 2.6.20). Perintah ini di modifikasi dari default yang di buat oleh system-config-firewall untuk mendukung connection tracking dan memberikan kode yang benar untuk menolak ICMPv6. Sambungan SSH masuk ke port 22 di ijinkan.

File: /etc/sysconfig/ip6tables

*filter :INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmpv6 -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d ff02::fb -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp6-adm-prohibited
COMMIT 

Untuk melengkapi konfigurasi IPv4 di perlihatkan disini.

File: /etc/sysconfig/iptables

*filter :INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT 

Penggunaan:

  • Buat / modifikasi file konfigurasi.
  • Aktifkan firewall IPv4 & IPv6.
# service iptables start
# service ip6tables start
  • Aktifkan start automatis setelah reboot.
# chkconfig iptables on
# chkconfig ip6tables on


Contoh Yang Lebih Kompleks

Kalimat berkut menunjukan sebuah contoh yang lebih sophisticated tapi masih tetap filter stateless.

# ip6tables -n -v -L 
Chain INPUT (policy DROP 0 packets, 0 bytes) 
 pkts bytes target     prot opt in     out     source               destination
    0     0 extIN      all      sit+   *       ::/0                 ::/0 
    4   384 intIN      all      eth0   *       ::/0                 ::/0 
    0     0 ACCEPT     all      *      *       ::1/128              ::1/128 
    0     0 ACCEPT     all      lo     *       ::/0                 ::/0 
    0     0 LOG        all      *      *       ::/0                 ::/0       
¬        LOG flags 0 level 7 prefix `INPUT-default:' 
    0     0 DROP       all      *      *       ::/0                 ::/0 
 
Chain FORWARD (policy DROP 0 packets, 0 bytes) 
 pkts bytes target     prot opt in     out     source               destination
¬ 
    0     0 int2ext    all      eth0   sit+    ::/0                 ::/0 
    0     0 ext2int    all      sit+   eth0    ::/0                 ::/0 
    0     0 LOG        all      *      *       ::/0                 ::/0       
¬        LOG flags 0 level 7 prefix `FORWARD-default:' 
    0     0 DROP       all      *      *       ::/0                 ::/0 
 
Chain OUTPUT (policy DROP 0 packets, 0 bytes) 
 pkts bytes target     prot opt in     out     source               destination
¬ 
    0     0 extOUT     all      *      sit+    ::/0                 ::/0 
    4   384 intOUT     all      *      eth0    ::/0                 ::/0 
    0     0 ACCEPT     all      *      *       ::1/128              ::1/128 
    0     0 ACCEPT     all      *      lo      ::/0                 ::/0 
    0     0 LOG        all      *      *       ::/0                 ::/0       
¬        LOG flags 0 level 7 prefix `OUTPUT-default:' 
    0     0 DROP       all      *      *       ::/0                 ::/0 
 
Chain ext2int (1 references) 
 pkts bytes target     prot opt in     out     source               destination
¬ 
    0     0 ACCEPT     icmpv6    *      *       ::/0                 ::/0 
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0       
¬        tcp spts:1:65535 dpts:1024:65535 flags:!0x16/0x02 
    0     0 LOG        all      *      *       ::/0                 ::/0       
¬        LOG flags 0 level 7 prefix `ext2int-default:' 
    0     0 DROP       tcp      *      *       ::/0                 ::/0 
    0     0 DROP       udp      *      *       ::/0                 ::/0 
    0     0 DROP       all      *      *       ::/0                 ::/0 
 
Chain extIN (1 references) 
 pkts bytes target     prot opt in     out     source               destination
¬ 
    0     0 ACCEPT     tcp      *      *       3ffe:400:100::1/128  ::/0       
¬        tcp spts:512:65535 dpt:22 
    0     0 ACCEPT     tcp      *      *       3ffe:400:100::2/128  ::/0       
¬        tcp spts:512:65535 dpt:22 
    0     0 ACCEPT     icmpv6    *      *       ::/0                 ::/0 
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0       
¬        tcp spts:1:65535 dpts:1024:65535 flags:!0x16/0x02 
    0     0 ACCEPT     udp      *      *       ::/0                 ::/0       
¬        udp spts:1:65535 dpts:1024:65535 
    0     0 LOG        all      *      *       ::/0                 ::/0       
¬        limit: avg 5/min burst 5 LOG flags 0 level 7 prefix `extIN-default:' 
    0     0 DROP       all      *      *       ::/0                 ::/0 
 
Chain extOUT (1 references) 
 pkts bytes target     prot opt in     out     source               destination
¬  
    0     0 ACCEPT     tcp      *      *       ::/0                
¬ 2001:0db8:100::1/128tcp spt:22 dpts:512:65535 flags:!0x16/0x02 
    0     0 ACCEPT     tcp      *      *       ::/0                
¬ 2001:0db8:100::2/128tcp spt:22 dpts:512:65535 flags:!0x16/0x02 
    0     0 ACCEPT     icmpv6    *      *       ::/0                 ::/0 
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0       
¬        tcp spts:1024:65535 dpts:1:65535 
    0     0 ACCEPT     udp      *      *       ::/0                 ::/0       
¬        udp spts:1024:65535 dpts:1:65535 
    0     0 LOG        all      *      *       ::/0                 ::/0       
¬        LOG flags 0 level 7 prefix `extOUT-default:' 
    0     0 DROP       all      *      *       ::/0                 ::/0 
 
Chain int2ext (1 references) 
 pkts bytes target     prot opt in     out     source               destination
¬ 
    0     0 ACCEPT     icmpv6    *      *       ::/0                 ::/0 
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0       
¬        tcp spts:1024:65535 dpts:1:65535 
    0     0 LOG        all      *      *       ::/0                 ::/0       
¬        LOG flags 0 level 7 prefix `int2ext:' 
    0     0 DROP       all      *      *       ::/0                 ::/0 
    0     0 LOG        all      *      *       ::/0                 ::/0       
¬        LOG flags 0 level 7 prefix `int2ext-default:' 
    0     0 DROP       tcp      *      *       ::/0                 ::/0 
    0     0 DROP       udp      *      *       ::/0                 ::/0 
    0     0 DROP       all      *      *       ::/0                 ::/0 
 
Chain intIN (1 references) 
 pkts bytes target     prot opt in     out     source               destination
¬ 
    0     0 ACCEPT     all      *      *       ::/0                
¬ fe80::/ffc0:: 
    4   384 ACCEPT     all      *      *       ::/0                 ff02::/16 
 
Chain intOUT (1 references) 
 pkts bytes target     prot opt in     out     source               destination
¬ 
    0     0 ACCEPT     all      *      *       ::/0                
¬ fe80::/ffc0:: 
    4   384 ACCEPT     all      *      *       ::/0                 ff02::/16 
    0     0 LOG        all      *      *       ::/0                 ::/0       
¬        LOG flags 0 level 7 prefix `intOUT-default:' 
    0     0 DROP       all      *      *       ::/0                 ::/0


Simpan konfigurasi iptables

ip6tables rules akan jalan secara automatis / instan, akan tetapi, apa yang kita set akan hilang jika server di restart. Oleh karenanya kita butuh untuk bisa menyimpan rules yang kita set tersebut, sehingga jika server / komputer di reboot akan langsung aktif.

Ada beberapa cara sebetulnya, salah satu yang paling mudah adalah menggunakan package iptables-persistent. Ketik perintah berikut untuk menginstall,

sudo apt-get install iptables-persistent

Ketik 'Yes" untuk rules IPv4 dan IPv6 saat di prompt.

Setelah instalasi kita akan menemukan dua file di

/etc/iptables

dengan nama IPv4 dan IPv6. Kita dapar mengedit rules sesuai dengan apa yang kita inginkan. Selanjutnya kita dapat start|restart|reload|force-reload|save|flush. Sebagai contoh, jika kita ingin "save" rules yang sedang berjalan, ketik perintah berikut:

sudo /etc/init.d/iptables-persistent save

Ini akan menyimpan rule dari IPv4 dan IPv6.

Pranala Menarik