W tej sekcji posaram siê wyjaśniæ sposób użycia nowych celów dla netfiler. Łaty przedstawione zostaną w kolejności alfabetycznej. Nie poruszymy łat, które powodują uszkadzanie innych łat, choæ byæ może kiedyś tak siê stanie.
Ogólnie rzecz biorąc, możesz uzyskaæ pomoc dla celów wpisując:
# iptables -m cel_o_który_ci_chodzi --help
Wyświetli to normalną pomoc iptables, oraz dodatkowe informacje dotyczące `celu_o_który_ci_chodzi' na koñcu.
Łata autorstwa Matthew G. Marsh <mgm@paktronix.com> dodaje nowy cel, umożliwiający ustawianie wartości TOS pakietu na określoną wartośæ.
Na przykład, jeśli chcesz ustawiaæ wartośæ TOS wszystkich wychodzących pakietów na wartośæ 15, napisz:
# iptables -t mangle -A OUTPUT -j FTOS --set-ftos 15
# iptables -t mangle --list
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
FTOS all -- anywhere anywhere TOS set 0x0f
Opcje dostêpne dla celu `FTOS' to:
--set-ftos wartośæ- ustaw pole TOS na wartośæ. Wartośæ może byæ w postaci decymalnej (np.:
32
) lub heksdecymalnej (np.: 0x20
)Łata autorstwa Fabrice MARIE <fabrice@celestix.com> dodaje nowy cel, umożliwiający obranie pakietu IPv4 z jego opcji.
Używa siê jej po prostu tak:
# iptables -t mangle -A PREROUTING -j IPV4OPTSSTRIP
# iptables -t mangle --list
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
IPV4OPTSSTRIP all -- anywhere anywhere
Ten cel nie udostêpnia żadnych opcji.
Łata autorstwa Gianni Tedesco <gianni@ecsc.co.uk> dodaje nowy cel, który umożliwia wysyłanie odrzucanych pakietów do przestrzeni użytkownika przez gniazdo netlink.
Na przykład, by odrzucając wszystkie pingi wysyłaæ je jednocześnie do wspomnianego gniazda, napisz:
# iptables -A INPUT -p icmp --icmp-type echo-request -j NETLINK --nldrop
# iptables --list
Chain INPUT (policy ACCEPT)
target prot opt source destination
NETLINK icmp -- anywhere anywhere icmp echo-request nldrop
Opcje dostêpne dla celu `NETLINK' to:
--nldrop- po przesłaniu odrzuæ pakiet
--nlmark <numer>- zaznacz pakiet
--nlsize <bajtów>- ogranicz rozmiar pakietu
Po wiêcej informacji dotyczących gniazd netlink, odsyłam pod adres http://www.skyfree.org/linux/kernel_network/netlink.html.
Łata autorstwa Svenning Soerensen <svenning@post5.tele.dk> dodaje nowy cel, pozwalający na mapowanie adresów sieci 1:1, przy zachowaniu adresu hosta.
Na przykład, jeśli chciałbyś zmieniæ adres docelowy połączeñ przychodzących z 1.2.3.0/24 na 5.6.7.0/24, napisz:
# iptables -t nat -A PREROUTING -d 1.2.3.0/24 -j NETMAP --to 5.6.7.0/24
# iptables -t nat --list
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
NETMAP all -- anywhere 1.2.3.0/24 5.6.7.0/24
Opcje dostêpne dla celu `NETMAP' to:
--to adres[/maska]- adres sieciowy do mapowania
Łata autorstwa Martina Josefssona <gandalf@wlug.westbo.se> dodaje nowy cel, podobny do SNAT, dający danemu klientowi ten sam adres dla każdego połączenia.
Na przykład, jeśli chcesz modyfikowaæ adres źródłowy połączeñ na 1.2.3.4-1.2.3.7 możesz napisaæ:
# iptables -t nat -A POSTROUTING -j SAME --to 1.2.3.4-1.2.3.7
# iptables -t nat --list
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SAME all -- anywhere anywhere same:1.2.3.4-1.2.3.7
Opcje dostêpne dla celu `SAME' to:
--to <ipaddr>-<ipaddr>- adresy na które mapowaæ źródło. Mogą byæ podane wielokrotnie, dla wielu zakresów.
--nodst- nie używaj adresu docelowego przy wybieraniu źródłowego
Łata autorstwa Marca Bouchera <marc+nf@mbsi.ca> dodaje nowy cel, który pozwala badaæ i zmieniaæ wartośæ MSS pakietów TCP SYN, co pozwala na kontrolowanie maksymalnej wartości dla danego połączenia.
Tak jak tłumaczy sam Marc, TO JEST HACK, używany w przypadku napotkania zbrodniczo debilnych dostawców internetowych, lub serwerów, które blokują pakiety ICMP Fragmentation Needed.
Typowe użycie wygląda tak:
# iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# iptables --list
Chain FORWARD (policy ACCEPT)
target prot opt source destination
TCPMSS tcp -- anywhere anywhere tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
Opcje dostêpne dla celu `tcp-MSS' to (można podawaæ tylko pojedyñczo):
--set-mss wartośæustaw wartośæ MSS na podaną liczbê
--clamp-mss-to-pmtuautomatycznie dopasuj wartośæ MSS do (MTU_ścieżki - 40)
Łata autorstwa Haralda Welte <laforge@gnumonks.org>, dodaje nowy cel umożliwiający użytkownikowi ustawienie wartości TTL dla pakietu IP, lub zwiêkszanie/zmniejszanie jej o określoną wartośæ.
Na przykład, jeśli chcesz ustawiæ TTL wszystkich wychodzących połączeñ na wartośæ 126, napisz:
# iptables -t mangle -A OUTPUT -j TTL --ttl-set 126
# iptables -t mangle --list
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
TTL all -- anywhere anywhere TTL set to 126
Opcje dostêpne dla celu `TTL' to:
--ttl-set wartośæ- ustaw wartośæ TTL na <wartośæ>
--ttl-dec wartośæ- zmniejsz wartośæ TTL o <wartośæ>
--ttl-inc wartośæ- zwiêksz wartośæ TTL o <wartośæ>
Łata autorstwa Haralda Welte <laforge@gnumonks.org>, dodaje nowy cel, udostêpniający trochê bardziej zaawansowany mechanizm logowania niż standardowy cel `LOG'. Katalog `libipulog/' zawiera bibliotekê obsługującą odbieranie wiadomości `ULOG'.
Harald utrzymuje stronê http://www.gnumonks.org/projects/ulogd zawierającą odpowiednią dokumentacjê dla celu, wiêc nie ma sensu cytowaæ tego tutaj.