W
artykule tym chciałbym przedstawić zaawansowane
techniki tworzenia firewalli przy użyciu linuxowego
IPTABLES.

| Operator | Opis |
| ACCEPT | kontynuuje podróż pakietu |
| DROP | odrzuca pakiet (pakiet nie kontynuuje swojej drogi) |
| STOLEN | pakiet zostaje przechwycony |
| QUEUE | kolejkuje pakiet (zazwyczaj w przestrzeni użytkownika) |
| REPEAT | pakiet przechodzi cały łańcuch od początku |
| Operator | Opis |
| -A | (append rule) dodaje nową regułkę do łańcucha |
| -I | (insert rule) wstawia nową regułkę do łańcucha |
| -D | (delete rule) usuwa regułkę z łańcucha |
| -R | (replace rule) zamienia regułkę w łańcuchu |
| -L | (list rule) wyświetla regułki z łańcucha |
| Przełącznik | Opis |
| -p | (protocol) protokół (tcp/udp/icmp/...) |
| -s | (source address) adres źródłowy |
| -d | (destination address) adres docelowy |
| -i | (incoming interface) urządzenie z którego pochodzi pakiet |
| -o | (outgoing interface) urządzenie do którego pakiet zmierza |
| Dodatek | Opis |
| TCP | wyłapujemy pakiet po porcie źródłowym lub docelowym oraz flagach TCP |
| UDP | wyłapujemy pakiet po porcie źródłowym lub docelowym |
| ICMP | wyłapujemy pakiet po typie komunikatu ICMP |
| MAC | wyłapujemy pakiet po adresie MAC karty sieciowej |
| MARK | wyłapujemy pakiet po 'nfmark' |
| OWNER | wyłapujemy pakiet po identyfikatorze użytkownika, grupy, procesu lub sesji (tylko dla lokalnych pakietów) |
| LIMIT | wyłapujemy po ilości pakietów w czasie. Przydatne do wyśledzenia ataku typu 'flood' |
| STATE | wyłapujemy pakiety po stanie w którym się znajdują |
| Wyróżniamy następujące stany: | |
|
pakiet błędny pakiet należy do osiagniętego połączenia pakiet tworzący nowe połączenie pakiet należący do połączenia np. pakiet ICMP typu 'error message' |
| Rozszerzenie | Opis |
| LOG | tworzy loga za pomocą syslog() |
| ULOG | tworzy loga za pomocą demona w przestrzeni użytkownika (bardziej elastyczne) |
| REJECT | nie tylko wyrzuca pakiet, ale także wysyła wiadomość z błędem do nadawcy pakietu |
| MIRROR | retransmituje pakiet po sprawdzeniu źródła i miejsca docelowego dla pakietu |
| Rozszerzenie | Opis |
| SNAT | Zamienia adres źródłowy na inny Przykład: iptables -t nat -A POSTROUTING -j SNAT --to-source 1.2.3.4 |
| MASQUERADE | SNAT dla połączeń z dynamicznym adresem IP. Bardzo podobne do SNAT, ale
gdy połączenie zostaje przerwane wszystkie śledzenia połączeń zostają
zresetowane Przykład: iptables -t nat -A POSTROUTING -j MASQUERADE -o ppp0 |
| DNAT | Zamienia adres docelowy na inny. Dzieje się to w łańcuchu
PREROUTING. Przykład: iptables -t nat -A PREROUTING -j DNAT --to-destination 1.2.3.4:8080 -p tcp --dport -i eth1 |
| REDIRECT | Jak sama nazwa wskazuje przekazuje pakiety do lkalnej sieci (będącej za
maskaradą). Generalnie robi to samo co DNAT dla adresu z przychodzącej
lokalizacji. Przykład: iptables -t nat -A PREROUTING -j REDIRECT --to-port 3128 -i eth1 -p tcp --dport 80 |

| Nazwa łańcucha | Opis |
| internal-dmz | regułki określające zasady dla pakietów z sieci LAN do strefy serwerów DMZ |
| external-dmz | regułki określające zasady dla pakietów z sieci INTERNET do strefy serwerów DMZ |
| internal-external | regułki określające zasady dla pakietów z sieci LAN do sieci INTERNET |
| dmz-internal | regułki określające zasady dla pakietów ze strefy serwerów DMZ do sieci LAN |
| dmz-external | regułki określające zasady dla pakietów ze strefy serwerów DMZ do sieci INTERNET |
| external-internal | regułki określające zasady dla pakietów z sieci INTERNET do sieci LAN |
| icmp-accept | regułki określające szczegółowe zasady dla pakietów ICMP |
| NEVER | regułki określające zasady dla pakietów które nigdy nie powinny się pojawić na danym interfejsie |
| LOGDROP | regułki określające zasady tworzenia logów |