fwbuilder
is undoubtedly among the best of them.
iptables
and ip6tables
commands. The difference between these two commands is that the former acts on the IPv4 network, whereas the latter acts on IPv6. Since both network protocol stacks will probably be around for many years, both tools will need to be used in parallel.
filter
menyangkut aturan penyaringan (menerima, menolak, atau mengabaikan suatu paket);
nat
menyangkut penerjemahan alamat dan port sumber atau tujuan dari paket-paket;
mangle
menyangkut perubahan-perubahan lain ke paket-paket IP (termasuk ToS — Type of Service — ruas dan opsi);
raw
mengizinkan modifikasi manual lain pada paket-paket sebelum mereka mencapai sistem pelacakan koneksi.
filter
memiliki tiga rantai standar:
INPUT
: menyangkut paket-paket yang tujuannya adalah firewall itu sendiri;
OUTPUT
: menyangkut paket-paket yang dipancarkan oleh firewall;
FORWARD
: menyangkut paket-paket yang transit melalui firewall (yang bukan sumber atau tujuan mereka).
nat
juga memiliki tiga rantai standar:
PREROUTING
: untuk mengubah paket segera setelah mereka tiba;
POSTROUTING
: untuk mengubah paket-paket ketika mereka siap melanjutkan perjalanan;
OUTPUT
: untuk mengubah paket-paket yang dibuat oleh firewall itu sendiri.
-j
option in the commands) to the specified action to continue processing. The most common behaviors are standardized, and dedicated actions exist for them. Taking one of these standard actions interrupts the processing of the chain, since the packet's fate is already sealed (barring an exception mentioned below):
ACCEPT
: mengizinkan paket melanjutkan perjalanannya;
REJECT
: menolak paket dengan paket galat ICMP (opsi --reject-with tipe
ke iptables
mengizinkan memilih tipe galat);
DROP
: hapus (abaikan) paket;
LOG
: mencatat log (melalui syslog
) suatu pesa dengan keterangan atas paket; perhatikan bahwa aksi ini tidak mengiterupsi pemrosesan, dan eksekusi dari rantai berlanjut pada aturan berikutnya, sehingga untuk mencatat log paket yang ditolak memerlukan aturan LOG dan REJECT/DROP;
ULOG
: mencatat log pesan melalui ulogd
, yang bisa diadaptasi lebih baik dan lebih efisien daripada syslogd
untuk menangani banyak pesan; perhatikan bahwa aksi ini, seperti LOG, juga kembali memroses ke aturan selanjutnya dalan rantai pemanggil;
RETURN
: menginterupsi pemrosesan dari rantai saat ini, dan kembali ke rantai pemanggil; dalam hal rantai saat ini adalah suatu rantai standar, tidak ada rantai pemanggil, sehingga aksi baku (didefinisikan dengan opsi -P
ke iptables
) dieksekusi sebagai pengganti;
SNAT
(hanya dalam tabel nat
): menerapkan NAT Sumber (opsi tambahan menjelaskan perubahan eksak yang akan diterapkan);
DNAT
(hanya dalam tabel nat
): menerapkan NAT Tujuan (opsi tambahan menjelaskan perubahan eksak apa yang akan diterapkan);
MASQUERADE
(hanya dalam tabel nat
): menerapkan masquerading (suatu kasus khusus dari NAT Sumber);
REDIRECT
(hanya dalam tabel nat
): mengalihkan suatu paket ke port lain firewall itu sendiri; ini dapat dipakai untuk menyiapkan satu proksi web transparan yang bekerja tanpa konfigurasi pada sisi klien, karena klien mengira dia menyambung ke penerima padahal komunikasi sebenarnya melalui proksi.
mangle
, di luar cakupan dari teks ini. iptables(8) dan ip6tables(8) mempunyai daftar yang komprehensif.
iptables
dan ip6tables
mengizinkan manipulasi tabel, rantai, dan aturan. Opsi -t tabel
mengindikasikan tabel mana tempat beroperasi (bakunya, filter
).
-N chain
membuat sebuah rantai baru. -X rantai
menghapus suatu rantai yang kosong dan tidak dipakai. -A rantai aturan
menambahkan suatu aturan di ujung rantai yang diberikan. Opsi -I rantai no_aturan aturan
menyisipkan suatu aturan sebelum aturan nomor no_aturan. Opsi -D rantai no_aturan
(atau -D rantai aturan
) menghapus suatu aturan dalam sebuah ranti, sintaks pertama mengidentifikasi aturan yang akan dihapus berdasarkan nomornya, sedangkan yang belakangan mengidentifikasi menurut isinya. Opsi -F rantai
menggelontor suatu rantai (menghapus semua aturannya); bila tidak ada rantai yang disebutkan, semua rantai dalam tabel dihapus. Opsi -L rantai
menampilkan daftar aturan dalam suatu rantai. Akhirnya, opsi -P rantai aksi
menentukan aksi baku, atau "kebijakan", bagi suatu rantai yang diberikan; perhatikan bahwa hanya rantai standar yang bisa memiliki kebijakan seperti itu.
kondisi -j aksiopsi_aksi
. Bila beberapa kondisi diuraikan dalam aturan yang sama, maka kriteria adana konjungsi (and lojik) dan kondisi-kondisi, yang paling kurang membatasi daripada setiap kondisi individual.
-p protokol
dicocokkan dengan field protokol dari paket IP. Nilai-nilai paling umum adalah tcp
, udp
, icmp
, dan icmpv6
. Memberi awalan tanda seru ke syarat menegasi kondisi, yang kemudian menjadi kecocokan atas "sebarang paket dengan protokol yang berbeda dengan yang dinyatakan". Mekanisme negasi ini tidak spesifik ke opsi -p
dan juga dapat diterapkan ke syarat-syarat lain.
-salamat
atau -s jaringan/mask
mencocokkan alamat sumber paket. Sedangkan -d alamat
atau -d jaringan/mask
mencocokkan alamat tujuan.
-i antarmuka
memilih paket-paket yang datang dari antarmuka jaringan tertentu. -o antarmuka
memilih paket-paket yang akan keluar pada antarmuka tertentu.
-p tcp
condition can be complemented with conditions on the TCP ports, with clauses such as --source-port port
and --destination-port port
.
--state state
condition matches the state of a packet in a connection (this requires the ipt_conntrack
kernel module, for connection tracking). The NEW
state describes a packet starting a new connection; ESTABLISHED
matches packets belonging to an already existing connection, and RELATED
matches packets initiating a new connection related to an existing one (which is useful for the ftp-data
connections in the “active” mode of the FTP protocol).
LOG
action, for instance, has the following options:
--log-level
, with default value warning
, indicates the syslog
severity level;
--log-prefix
allows specifying a text prefix to differentiate between logged messages;
--log-tcp-sequence
, --log-tcp-options
and --log-ip-options
indicate extra data to be integrated into the message: respectively, the TCP sequence number, TCP options, and IP options.
DNAT
action provides the --to-destination address:port
option to indicate the new destination IP address and/or port. Similarly, SNAT
provides --to-source address:port
to indicate the new source IP address and/or port.
PENGALIHAN
(hanya tersedia jika NAT tersedia ) menyajikan --to-ports port(s)
pilihn untuk mengindikasi port, atau jangkauan port, dimana paket harusnya dialihkan.
iptables
/ip6tables
. Typing these commands manually can be tedious, so the calls are usually stored in a script so that the same configuration is set up automatically every time the machine boots. This script can be written by hand, but it can also be interesting to prepare it with a high-level tool such as fwbuilder
.
#
apt install fwbuilder
fwbuilder
translate the rules according to the addresses assigned to the objects.
fwbuilder
kemudian dapat menghasilkan skrip konfigurasi firewall sesuai dengan aturan yang telah ditentukan. Arsitektur modular memberi kemampuan untuk menghasilkan skrip-skrip yang menarget sistem-sistem yang berbeda (iptables
untuk Linux, ipf
untuk FreeBSD, dan pf
untuk OpenBSD).
up
directive of the /etc/network/interfaces
file. In the following example, the script is stored under /usr/local/etc/arrakis.fw
.
Contoh 14.1. interfaces
file calling firewall script
auto eth0 iface eth0 inet static address 192.168.0.1 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 up /usr/local/etc/arrakis.fw