|
[+]kernel 2.6.27 i niedziałające iptables
fenix23 - 09-11-2008 11:24
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:
# 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:
cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.27 cp System.map /boot/System.map -2.6.27
i na koniec
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.
markossx - 09-11-2008 11:38
Włącz tamten sprzęt i pokaż ten błąd...
fenix23 - 09-11-2008 14:34
To jest typowy błąd, coś na podobnego do tego, tylko aktualna wersja iptables w kernelu 2.6.27:
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.
Utumno - 09-11-2008 15:27
Swoja droga, znacznie latwiej kompilowac kernel metoda Debiana: 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.
fenix23 - 12-11-2008 11:21
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ć.
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?
lis6502 - 12-11-2008 11:24
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...
fenix23 - 12-11-2008 14:02
Ostatnio robiłem tak: 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:
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?
siarka - 12-11-2008 16:12
jak masz kernela 2.6.27 to iptables przydałoby się do niego dopasować, najlepiej żeby to była wersja >= 1.4.0
sappa - 12-11-2008 18:32
Wklej wynik poleceń:
uname -a lsmod modprobe -l | grep ipt modprobe -l | grep nf_
I sprawdź czy masz ustawione:
CONFIG_NETFILTER=y
i
CONFIG_NETFILTER_ADVANCED=y
Pozdro
fenix23 - 12-11-2008 18:56
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?
...
Niestety wyniki podam dopiero w piątek.
Utumno - 13-11-2008 08:04
Z tym dopasowaniem wersji iptables to bzdura.
Wszelkie znaki na niebie i ziemi sugeruja, ze zle kompilujesz. Dlatego ponownie apeluje o uzywanie Debianowego sposobu :) Zwykly nie ma zadnych przewag, ewentualnie moze jesli kompilujesz tez kernele na innych systemach i chcesz to wszedzie robic w ten sam sposob...
siarka - 13-11-2008 08:05
Część modułów netfilter jest już pisana na xtables, a im starsze iptables tym więcej modułów na iptables.
Utumno - 13-11-2008 10:27
Sugerujesz ze iptables w oficjalnym kernelu 2.6.27 z kernel.org nie dzialaja i trzeba je patchowac? Szczerze watpie.
Rad - 13-11-2008 12:32
Chodzi mu o program do sterowania iptables (notabene o nazwie iptables), który się znajduje w repozytorium Sarge'a. Być może nie potrafi obsłużyć modułów z najnowszego jądra. Piszę może, bo nie miałem z tym nigdy problemów (ale też nie używałem ostatnio Sarge'a).
fenix23 - 14-11-2008 10:03
...
Wyniki o które prosiłeś.
uname -a Linux serwis 2.6.27 #6 Wed Nov 12 13:37:00 CET 2008 i686 GNU/Linux
lsmod Module Size Used by ipv6 198356 - 8250_pnp 13884 - 8250 18452 - serial_core 15548 - parport_pc 28196 - parport 29896 - floppy 44964 - ehci_hcd 26216 - usbcore 111280 - 8139cp 15740 - rng_core 3744 - shpchp 24848 - pci_hotplug 11300 - intel_agp 22620 - 8139too 19228 - bitrev 1884 - crc32 3708 - e100 28264 - mii 4668 - agpgart 28876 - dm_mod 41284 - ide_cd_mod 26560 - cdrom 29888 - rtc 8504 - ext3 103300 - jbd 34800 - ide_disk 9948 - via82cxxx 5632 - trm290 3424 - triflex 2364 - slc90e66 3100 - sis5513 6976 - siimage 6748 - serverworks 4896 - sc1200 4284 - rz1000 2140 - piix 5536 - pdc202xx_old 5660 - pdc202xx_new 5148 - opti621 2528 - ns87415 3400 - ide_pci_generic 3424 - hpt366 12284 - cs5530 3196 - cmd64x 4956 - cmd640 3248 - atiixp 3260 - amd74xx 5476 - alim15x3 5672 - aec62xx 4284 - ide_core 81908 - unix 18828 - modprobe -l | grep ipt /lib/modules/2.6.27/kernel/net/ipv4/netfilter/iptable_raw.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/iptable_mangle.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/ipt_ttl.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/ipt_recent.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/ipt_ecn.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/ipt_ah.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/ipt_addrtype.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/ipt_ULOG.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/ipt_TTL.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/ipt_REJECT.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/ipt_LOG.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/ipt_ECN.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko modprobe -l | grep nf_ /lib/modules/2.6.27/kernel/net/netfilter/nf_conntrack_tftp.ko /lib/modules/2.6.27/kernel/net/netfilter/nf_conntrack_sip.ko /lib/modules/2.6.27/kernel/net/netfilter/nf_conntrack_sane.ko /lib/modules/2.6.27/kernel/net/netfilter/nf_conntrack_proto_udplite.ko /lib/modules/2.6.27/kernel/net/netfilter/nf_conntrack_proto_sctp.ko /lib/modules/2.6.27/kernel/net/netfilter/nf_conntrack_proto_gre.ko /lib/modules/2.6.27/kernel/net/netfilter/nf_conntrack_proto_dccp.ko /lib/modules/2.6.27/kernel/net/netfilter/nf_conntrack_pptp.ko /lib/modules/2.6.27/kernel/net/netfilter/nf_conntrack_netlink.ko /lib/modules/2.6.27/kernel/net/netfilter/nf_conntrack_netbios_ns.ko /lib/modules/2.6.27/kernel/net/netfilter/nf_conntrack_h323.ko /lib/modules/2.6.27/kernel/net/netfilter/nf_conntrack_amanda.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/nf_nat_tftp.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/nf_nat_sip.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/nf_nat_pptp.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/nf_nat_h323.ko /lib/modules/2.6.27/kernel/net/ipv4/netfilter/nf_nat_amanda.ko
CONFIG_NETFILTER=y
jest i
CONFIG_NETFILTER_ADVANCED=y
również jest
Również pozdrawiam :)
sappa - 14-11-2008 12:05
hmm dopiero teraz zauwarzylem ze nat i filter masz na stale wkompilowane w jajo. Moze faktycznie iptables z sarge nie portrafi komunikowac sie z modulami z nowego jaja. Moze testowo zainstaluj sobie jakies nowesze iptables ze zrodelek i zobacz czy problem sie pojawi
fenix23 - 14-11-2008 12:40
To dlaczego na zupełnie innej maszynie, kompilowałem to samo jądro i uruchamiam ten sam skrypt i wszystko działa? Linux firebird 2.6.27 #3 Tue Nov 4 18:04:59 CET 2008 i686 GNU/Linux
Bardzo nie lubię jak coś jest pozbawione sensu :/
Ale spróbuję z nowszym iptables.
[Dodano: 2008-11-14, 12:59]
To się chyba skończy zawałem :/ FATAL: Module ip_tables not found. iptables v1.4.2-rc1: can't initialize iptables table `NAT': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded.
hiper - 14-11-2008 21:28
hm.. że tak zapytam...
wpisz iptables w konsoli... bo mam wrażenie że nie usunąłeś starego iptables domyślnie zainstalowanego w dystrybucji. I zapewne nie przeniosło i nie nadpisało nowy - być może dlatego różnica.
Ręcznie przekopiuj nowo skompilowane IPTABLES do /sbin.
Daj znać jak poszło.
fenix23 - 14-11-2008 21:50
jeśli polecenie zwraca nową wersję to raczej nie jest to kwestia przeniesienia pozatym zrobiłem w folderze ./iptables dla pewności.
Napiszę może jak to się zaczęło może się przyda. Otóż system instalowałem z netinstal z jądrem 2.4 i u mnie w domu już domyślnie było iptables a tam jak później się okazało nie było. Na szczęście mogę sobie jeszcze pozwolić na postawienie systemu od nowa z płyty z aktualniejszym jądrem. Zobaczymy jaki będzie wynik.
PS: Dam znać po weekendzie
Pozdrawiam
[ Dodano: 2008-11-18, 11:07 ] chciałem się tylko pochwalić że przeinstalowałem linuxa bo mogłem sobie na to pozwolić i działa z kernelem 2.6.18 , troszkę windowsowe podejście ale dla mnie ważne że skuteczne :]
Pozdrawiam wszystkich i dziękuje za pomoc i zainteresowanie.
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|