# Iptables > [!warning] > It should be replaced with its successor, [`nftables`][nftables]. Command line utility for configuring the Linux kernel-level firewall implemented within the netfilter project. Inspects, modifies, forwards, redirects, and/or drops IP packets based on _rules_. 1. [TL;DR](#tldr) 1. [Further readings](#further-readings) 1. [Sources](#sources) ## TL;DR Use `iptables` for IPv4 and `ip6tables` for IPv6.
They have the same syntax, but some options are specific to either IPv4 or IPv6. Rules are generally split up in three sections (A.K.A. _chains_): - _INPUT_ manages all packets destined for the local host. - _FORWARD_ manages all packets that are passing through.
This chain is usually given rules when the local host is used as a router. - _OUTPUT_ manages all packets originating from the local host. Rules are applied to a packed, depending on the packet's direction and _**in the order the rules are specified**_.
Should no specific rule apply, the packet is applied the default policy for the chain. Chains must be referenced using their **uppercase** name. Each chain has its own default policy, and it can either be `ACCEPT` or `DROP`.
Rules can then be implemented to configure exceptions to the default policy.
Rules can either be _appended_ (`-A`) to the bottom a chain or _inserted_ (`-I`). When no rule is specified during insertion, that rule is inserted on the top of the chain.
Usage ```sh # List current rules. iptables -L iptables -L --line-numbers # Add rules. iptables -I 'INPUT' -p 'tcp' --dport '443' -j 'ACCEPT' iptables -I 'INPUT' -p 'tcp' -s '192.168.100.100' --dport 22 -j 'ACCEPT' iptables -I 'INPUT' -p 'tcp' -s '!192.168.100.0/24' --dport 22 -j 'REJECT' # Change default policies to 'DROP'. iptables -P 'FORWARD' 'DROP' # Delete specific rules. iptables -D 'INPUT' 2 # Delete *all* rules. iptables -F # Backup and restore rules. iptables-save -f '/etc/iptables/rules.v4' iptables-restore '/etc/iptables/rules.v4' ```
## Further readings - [`nftables`][nftables] - [How to set up a stateful firewall with iptables] - [Simple stateful firewall] ### Sources - [Iptables basics] - [Archlinux wiki] [nftables]: nftables.md [Archlinux wiki]: https://wiki.archlinux.org/title/Iptables [How to set up a stateful firewall with iptables]: https://evilshit.wordpress.com/2013/12/17/how-to-set-up-a-stateful-firewall-with-iptables/ [Iptables basics]: https://www.worldstream.com/nl/article/iptables-basics/ [Simple stateful firewall]: https://wiki.archlinux.org/title/Simple_stateful_firewall