Strona 1 z 2

[+] jądro 2.6.27 i niedziałające iptables

: 09 listopada 2008, 11:24
autor: fenix23
Witam Serdecznie

Zgłaszam się do was z problemem następującej maści. Zainstalowałem najnowszy stabilny kernel z kernel.org 2.6.27 i nie jestem w stanie uruchomić działającego iptables. Krzyczy, że nie ma tablicy nat i czy przypadkiem nie potrzebuję użyć insmod. Dodam, że ten sam kernel instalowałem na mojej domowej maszynie i iptables działa. Ten sam skrypt wywala ten właśnie błąd. Niestety nie zacytuje bo maszyna jest wyłączona. I nawet ustawiając tą samą konfigurację co na domowej maszynie nadal jest ten błąd.

Oto fragment .config:

Kod: Zaznacz cały

# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=y
CONFIG_NETFILTER_NETLINK_QUEUE=y
CONFIG_NETFILTER_NETLINK_LOG=y
CONFIG_NF_CONNTRACK=y
CONFIG_NF_CT_ACCT=y
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_CT_PROTO_DCCP=m
CONFIG_NF_CT_PROTO_GRE=m
CONFIG_NF_CT_PROTO_SCTP=m
CONFIG_NF_CT_PROTO_UDPLITE=m
CONFIG_NF_CONNTRACK_AMANDA=m
CONFIG_NF_CONNTRACK_FTP=y
CONFIG_NF_CONNTRACK_H323=m
CONFIG_NF_CONNTRACK_IRC=y
CONFIG_NF_CONNTRACK_NETBIOS_NS=m
CONFIG_NF_CONNTRACK_PPTP=m
CONFIG_NF_CONNTRACK_SANE=m
CONFIG_NF_CONNTRACK_SIP=m
CONFIG_NF_CONNTRACK_TFTP=m
CONFIG_NF_CT_NETLINK=m
CONFIG_NETFILTER_XTABLES=y
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
CONFIG_NETFILTER_XT_TARGET_RATEEST=m
# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
CONFIG_NETFILTER_XT_MATCH_COMMENT=m
CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DSCP=m
CONFIG_NETFILTER_XT_MATCH_ESP=m
CONFIG_NETFILTER_XT_MATCH_HELPER=m
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
CONFIG_NETFILTER_XT_MATCH_LENGTH=m
CONFIG_NETFILTER_XT_MATCH_LIMIT=m
CONFIG_NETFILTER_XT_MATCH_MAC=m
CONFIG_NETFILTER_XT_MATCH_MARK=m
CONFIG_NETFILTER_XT_MATCH_OWNER=m
CONFIG_NETFILTER_XT_MATCH_POLICY=m
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_NETFILTER_XT_MATCH_RATEEST=m
CONFIG_NETFILTER_XT_MATCH_REALM=m
CONFIG_NETFILTER_XT_MATCH_SCTP=m
CONFIG_NETFILTER_XT_MATCH_STATE=m
CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
CONFIG_NETFILTER_XT_MATCH_TIME=m
CONFIG_NETFILTER_XT_MATCH_U32=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m

#
# IP: Netfilter Configuration
#
CONFIG_NF_CONNTRACK_IPV4=y
CONFIG_NF_CONNTRACK_PROC_COMPAT=y
CONFIG_IP_NF_QUEUE=y
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_MATCH_RECENT=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_NF_NAT=y
CONFIG_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_IP_NF_TARGET_REDIRECT=y
CONFIG_IP_NF_TARGET_NETMAP=y
# CONFIG_NF_NAT_SNMP_BASIC is not set
CONFIG_NF_NAT_PROTO_DCCP=m
CONFIG_NF_NAT_PROTO_GRE=m
CONFIG_NF_NAT_PROTO_UDPLITE=m
CONFIG_NF_NAT_PROTO_SCTP=m
CONFIG_NF_NAT_FTP=y
CONFIG_NF_NAT_IRC=y
CONFIG_NF_NAT_TFTP=m
CONFIG_NF_NAT_AMANDA=m
CONFIG_NF_NAT_PPTP=m
CONFIG_NF_NAT_H323=m
CONFIG_NF_NAT_SIP=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
Próbowałem już nawet z samymi y-kami. Przy tej konfiguracji działa u mnie w domu, a w pracy nie chce.

Macie jakieś pomysły? Jeszcze się dopytam czy na pewno zmiany są aktualne bo może uruchamiam cały czas to samo i nawet o tym nie wiem.
Po każdej zmianie konfiguracji robię make clean żeby usunął stare obiekty po czym make, następnie make modules, a na koniec po uprzednim usunięciu /lib/modules/2.6.27, make modules_install.

Po tej operacji kopiuję wykonując:

Kod: Zaznacz cały

cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.27
cp System.map /boot/System.map -2.6.27
i na koniec

Kod: Zaznacz cały

mkinitrd -o /boot/initrd.img-2.6.27 /lib/modules/2.6.27
dowiązań symbolicznych już nie robię bo one wskazują nadal na te same miejsca mimo podmiany vmlinuz. Dla pewności sprawdzam czy faktycznie zrobiło nadpisanie, i data i godzina modyfikacji odpowiada tej faktycznej, chyba że zmienia się tylko data, a obraz jest nadal ten sam.

Robię coś źle? Dlaczego nadal nie mogę tego uruchomić? Czy może brakuje mi czegoś z poza modułu netfilter ale nie mam wtedy pojęcia czego.

: 09 listopada 2008, 11:38
autor: markossx
Włącz tamten sprzęt i pokaż ten błąd...

: 09 listopada 2008, 14:34
autor: fenix23
To jest typowy błąd, coś na podobnego do tego, tylko aktualna wersja iptables w kernelu 2.6.27:

Kod: Zaznacz cały

iptables v1.2.10: can't initialize iptables table `NAT': Table does not exist (do you need to insmod?) 
Problem ten udało mi się rozwiązać w domu ale w pracy niestety mimo wielokrotnej kompilacji jest lipa.

: 09 listopada 2008, 15:27
autor: Utumno
Swoja droga, znacznie latwiej kompilowac kernel metoda Debiana:

Kod: Zaznacz cały

aptitude install kernel-package
cd $(zrodla kernela)
make gconfig
make-kpkg kernel_image
I zrobi ci paczke .deb ktora potem instalujesz dpkg -i jak kazda inna.

: 12 listopada 2008, 11:21
autor: fenix23
Dziękuję ale metodą klasyczną mi się dobrze pracuje, problem podejrzewam nie leży w sposobie kompilacji.

Wedle życzenia cytuję błąd ... Chociaż chciałem móc jakieś rozwiązania próbować.

Kod: Zaznacz cały

FATAL: Module ip_tables not found
iptables v1.3.6: can't initialize iptables table 'NAT': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded
Można prosić o jakieś propozycje rozwiązania?

: 12 listopada 2008, 11:24
autor: lis6502
głupie pytanie: po kompilacji zrobiłeś make modules && make modules_install, później ew depmod?. Poszukaj czy faktycznie masz w /lib/modules/$(uname -r)/net/gdzieśtam moduł iptables...

: 12 listopada 2008, 14:02
autor: fenix23
Ostatnio robiłem tak:

Kod: Zaznacz cały

make bzImage
make modules <---po tym robię za każdym razem rm -R /lib/modules/($uname -r)
make modules_install
Po kompilacji kopiuje z katalogu arch/x86/boot plik bzImage sprawdzałem tylko tam jest ten plik.
Kopiuję System.map w odpowiednie miejsce.
Wykonuje mkinitrd -o /boot/init.... /lib/modules/2.6.27

Nie robię już linków bo one istnieją.

depmod nigdy nie robiłem.

W katalogu o którym wspomniałeś nie ma samego w sobie modułu ip_tables bo powinien być on wkompilowany w jądro i tak ma być i tak jest bo komenda iptables -L zwraca wynik:

Kod: Zaznacz cały

Chain INPUT (policy ACCEPT)
target   prot opt source    destination

Cahin FORWARD (policy ACCEPT)
target   prot opt source      destination

Chain OUTPUT  (policy ACCEPT)
target   prot opt soruce      destination
Oczywiście to nam w niczym nie pomoże ale chciałem pokazać że moduł ip_tables jest działający.
Problem w tym, że nigdzie nie widzę modułów dotyczących NAT co z jednej strony jest dobrze bo kazałem je wkompilować w jajko ale jak widać nie działają. Czy może spróbować je skompilować jako moduły?

PS. NAT nie było w katalogu netfilter ale za to w katalogu ../net/ipv4/netfilter jest coś takiego jak:

np. takie coś nf_nat_amanda.ko oraz nf_nat_h323.ko nf_pptp.ko ...

PS. Jak uruchamiać moduły może znajdę jakoś brakujący moduł i go wkompiluje na stałe?

: 12 listopada 2008, 16:12
autor: siarka
jak masz kernela 2.6.27 to iptables przydałoby się do niego dopasować, najlepiej żeby to była wersja >= 1.4.0

: 12 listopada 2008, 18:32
autor: sappa
Wklej wynik poleceń:

Kod: Zaznacz cały

uname -a
lsmod 
modprobe -l | grep ipt
modprobe -l | grep nf_
I sprawdź czy masz ustawione:

Kod: Zaznacz cały

CONFIG_NETFILTER=y
i

Kod: Zaznacz cały

CONFIG_NETFILTER_ADVANCED=y
Pozdro

: 12 listopada 2008, 18:56
autor: fenix23
siarka pisze:jak masz kernela 2.6.27 to iptables przydałoby się do niego dopasować, najlepiej żeby to była wersja >= 1.4.0
Co mam przez to rozumieć? że w tym kernelu który mam jest jakiś stary iptables ? czy to kwestia zrobienia apt-get upgrade?
sappa pisze:...
Niestety wyniki podam dopiero w piątek.