Permalänk
Medlem

Iptables problem

Jag kör iptables på min debian router för att få saker o ting att fungera. Men den loggar allting i den aktiva ttyn av ngn anledning.

Så här ser rc.fwrules ut:

#!/bin/sh
LAN_IP="192.168.0.1/32"
LAN_BCAST_ADRESS="192.168.0.255/32"
LAN1_IP="192.168.1.1/32"
LAN1_BCAST_ADRESS="192.168.1.255/32"
LOCALHOST_IP="127.0.0.1/32"
#Uncomment next line if you have a static IP to the Internet.
#STATIC_IP="yourinternetip/32"
#Uncomment next line if you have a dynamic IP to the Internet. Pay attention to select the correct ethernetcard.
STATIC_IP=`/sbin/ifconfig eth0 |sed -n '/inet/s/^[ ]*inet addr:\([0-9.]*\).*/\1/p'`
INET_IFACE="eth0"
LAN_IFACE="eth2"
LAN1_IFACE="eth1"
IPTABLES="/sbin/iptables"

#This line will start the NAT.
echo "1" > /proc/sys/net/ipv4/ip_forward

#This line will protect from some DOS (Denial of service) attacks.
echo "1" > /proc/sys/net/ipv4/tcp_syncookies

#Log and drop packets that do not follow the rules bellow.
$IPTABLES -N logdrop
$IPTABLES -A logdrop -j LOG
$IPTABLES -A logdrop -j DROP

#Log and drop connections that were not started from your network.
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "NEW NOT SYN "
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

$IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "NEW NOT SYN "
$IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP

#Log and drop connections that tried to reach your internal network.
$IPTABLES -A FORWARD --in-interface $INET_IFACE --destination $LAN_BCAST_ADRESS -j logdrop
$IPTABLES -A FORWARD --in-interface $LAN_IFACE --destination $STATIC_IP -j logdrop
#Allowing forwarding.
$IPTABLES -A FORWARD --in-interface $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD --in-interface $INET_IFACE -m state --state
#ESTABLISHED,RELATED -j ACCEPT

# Want a portforward? Note that you cannot access this port from the inside if you connect to the external IP.
$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -p tcp --dport 21 -j DNAT --to-destination 192.168.0.100:21

#Want to disable access to a site on the net? This line will do this for you.
#$IPTABLES -A PREROUTING -t nat -d www.lunarstorm.se -j DROP

#Want to disable all connections from a certain ip on your network?
#$IPTABLES -A PREROUTING -t nat -s 192.168.0.3 -j DROP

#Accepting some icmptypes...
$IPTABLES -A INPUT -p icmp --icmp-type 0 -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type 8 -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type 3 -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type 11 -j ACCEPT

#Allow the server to talk to itself.
$IPTABLES -A INPUT --in-interface lo --source 127.0.0/8 -j ACCEPT

#Allow connections that starts from you network to get answer.
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#Allow all connections with source from your local network. Only comment this line out if you are sure of what you are doing.
$IPTABLES -A INPUT -p ALL -d $LAN_IP -j ACCEPT

# Accepting connections from the Internet to your server's tcpport
$IPTABLES -A INPUT -p tcp -m state --state NEW --destination-port 22 -j ACCEPT

$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to $STATIC_IP
$IPTABLES -A INPUT -j logdrop

När jag executar den så får jag följande felmeddelande:

iptables v1.2.6a: Unknown arg `--state'

Vad är det som fattas? Jag kan tyvärr inte visa loggtexten som syns hela tiden, för jag kan inte göra någonting vid den datorn pg. utav det här problemet. Men det ser ut så här ungefär:

Sep 21 06:48:50 stralbaver kernel: IN=eth0 OUT= MAC=00:00:e8:5c:3c:ce:00:10:67:00:9a:51:08:00 SRC=213.64.149.9 DST=213.64.137.64.137.160 LEN=48 TOS=0x00 PREC=0x00 TTL=123 ID=45798 DF PROTO=TCP SPT=2609 DPT=135 WINDOW=16384 RES=0x00 SYN URGP=0

Tack på förhand.

EDIT: Obs, "echo" raderna kan man inte ta bort, då fungerar ingenting.

EDIT2: Nu finns loggtexten eftersom jag har hittat logfilen.

Visa signatur

Specs: Fräsig dator

Permalänk
Inaktiv

IPTABLES -A INPUT -j logdrop
är felet att du får i ttyn om jag inte kommer ihåg helt fel.

Permalänk
Medlem

Skall genast testas.

EDIT: Funkade inte.

Visa signatur

Specs: Fräsig dator

Permalänk
Medlem

iptables -A INPUT -p tcp -i eth0 --syn -m state --state NEW \
-j LOG --log-level info --log-prefix "SYN"

fungerar för mig..

men jag har alla moduler kompilerade och laddade, som behövs för att detta skall fungera..

har du gjort översättningen från svenska till engelska i kommentarerna själv?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av leo-leo
har du gjort översättningen från svenska till engelska i kommentarerna själv?

Dem var engelska från början. Vilka moduler behövs?
körde med det där du skrev och det funkade inte.

Visa signatur

Specs: Fräsig dator

Permalänk
Medlem

Tja du... Det kommer jag inte ihåg faktiskt..
Satt någon gång och skulle bara ha dom som behövdes, men det var länge sedan nu.

Men det bör kanske vara connection_state_match_support

Permalänk
Medlem

Var väljer du dem? iptables hade ingen menuconfig så jag antar att det inte är därifrån.

Den kerneln jag drog ner hade inte några menyer i närhet som det du har där (2.5.x)

Visa signatur

Specs: Fräsig dator

Permalänk
Medlem

Efter intensivt googlande fann jag:

Note that if you get undesired logging direct to consoles, this is not an iptables or Netfilter problem, but rather a problem caused by your syslogd configuration - most probably /etc/syslog.conf. Read more in man syslog.conf for information about this kind of problem.

Efter att ha läst man sidan o testat lite med syslog.conf står jag kvar på ruta 1.

Visa signatur

Specs: Fräsig dator

Permalänk
Medlem
Citat:

#
# I like to have messages displayed on the console, but only on a virtual
# console I usually leave idle.
#
#daemon,mail.*;\
# news.=crit;news.=err;news.=notice;\
# *.=debug;*.=info;\
# *.=notice;*.=warn /dev/tty8

Kan det vara lösningen på problemet..?

Att du inte kan ta bort echo-raderna är för att det inte skriver ut någonting till skärmen, de ändrar nollan i filerna till en etta, därav '>', så att ditt internet delas ut.

Efter lite enkelt googlande fick jag fram följande(fick googla eftersom jag inte har iptables själv, och därför ingen manpage:

Citat:

state
This module, when combined with connection tracking, allows access to the connection tracking state for this packet.

--state state
Where state is a comma separated list of the connection states to match. Possible states are INVALID meaning that the packet is associated with no known connection, ESTABLISHED meaning that the packet is associated with a connection which has seen packets in both directions, NEW meaning that the packet has started a new connection, or otherwise associated with a connection which has not seen packets in both directions, and RELATED meaning that the packet is starting a new connection, but is associated with an existing connection, such as an FTP data transfer, or an ICMP error.

Iptables ligger under Networking options ---> Network Packet filtering, sen får du fram en "IP: Netfilter configuration", där ligger iptables. Sen behöver du ha med lite grejer där oxo. Menyn du antagligen kollar på, om du hamnat rätt, är den som leo-leo postade en bild på. Vilka grejer du ska ha med, kan antagligen google svara på.

Visa signatur

Äntligen har jag fått svar på om vandrande pinnar kan gäspa. Det kan de inte. Ett av världens stora mysterier är löst.

Permalänk
Medlem

Jag håller ju på med ditt -m state --state....
Det andra kanske löser sig under tiden..

jag knåpade ihop en pedagogisk bild också.. riktigt stolt:

Permalänk
Medlem

Aha!
$IPTABLES -A FORWARD --in-interface $INET_IFACE -m state --state
#ESTABLISHED,RELATED -j ACCEPT

fel, det där skulle ju va på en rad.

Finns ingen Netfilter någonting i den här menuconfigen.. :/

Kollar upp vad filigran sa just nu.

Visa signatur

Specs: Fräsig dator

Permalänk
Medlem

är det på två rader så skall det vara ett \ tecken i slutet på första raden.

Permalänk
Medlem

jepp vet det nu, jag lärt mig.

så här ser det ut i menuconfig för 2.5.x:

[*] TCP/IP networking
¦ ¦ [*] IP: multicasting
¦ ¦ [*] IP: advanced router
¦ ¦ [*] IP: policy routing (NEW)
¦ ¦ [*] IP: fast network address translation (NEW)
¦ ¦ [*] IP: equal cost multipath (NEW)
¦ ¦ [*] IP: use TOS value as routing key (NEW)
¦ ¦ [*] IP: verbose route monitoring (NEW)
¦ ¦ [*] IP: large routing tables (NEW)
¦ ¦ [*] IP: kernel level autoconfiguration
¦ ¦ [*] IP: DHCP support (NEW)
¦ ¦ [*] IP: BOOTP support (NEW)
¦ ¦ [*] IP: RARP support (NEW)
¦ ¦ <M> IP: tunneling
¦ ¦ <M> IP: GRE tunnels over IP
¦ ¦ [*] IP: broadcast GRE over IP (NEW)
¦ ¦ [*] IP: multicast routing
¦ ¦ [*] IP: PIM-SM version 1 support (NEW)
¦ ¦ [*] IP: PIM-SM version 2 support (NEW)
¦ ¦ [*] IP: TCP Explicit Congestion Notification support
¦ ¦ [*] IP: TCP syncookie support (disabled per default)

Visa signatur

Specs: Fräsig dator

Permalänk
Medlem

#Want to disable access to a site on the net? This line will do this for you.
#$IPTABLES -A PREROUTING -t nat -d www.lunarstorm.se -j DROP

Och du har en # framför därför att..? Ta bort den genast

Visa signatur

Äntligen har jag fått svar på om vandrande pinnar kan gäspa. Det kan de inte. Ett av världens stora mysterier är löst.

Permalänk
Medlem

Därför att lillasyrran inte är så ond

Har den bara som ett exempel, om jag har lunarstorm där så kommer jag ihåg vad funktionen gör direkt

Visa signatur

Specs: Fräsig dator

Permalänk
Medlem

Woho! funkar nu!!

skriver detta med links från datorn ifråga.

Ska ge er lösningen med hjälp av den andra datorn.

EDIT: eller inte alls. jag skall nu testa att ta bort alla "LOG" som finns i rc.fwrules

Visa signatur

Specs: Fräsig dator

Permalänk
Medlem

Att ta bort alla LOGs fixade problemet.

ÄNTLIGEN.

Visa signatur

Specs: Fräsig dator

Permalänk
Medlem

Kollade du nå mer på syslog.conf?

När du kör loggning med iptables så skickas det som ett kernel meddelande.

Du kanske har nåt liknande i syslog.conf
kern.* (eller kern.info) /dev/tty????

Om du nu vill ha kvar loggningen vill säga.

Visa signatur

Mina vräk datorer med olika stats:mansica.mine.nu/stats

Permalänk
Medlem

nä allt skickades bara till loggfiler

Visa signatur

Specs: Fräsig dator

Permalänk
Medlem

asså grejen är att syslogd skriver ut meddelanden som är "viktiga" till konsolen direkt så om du bara vill logga sakerna till en fil och inte till konsolen får du sänka viktighetsgraden eller vad man ska kalla det. kolla manpages för mer info för jag minns varken hur man gör eller vad det kallas. själv stängde jag av loggningen i mitt script

Visa signatur

"Det finns inga buggar, bara features..."

Permalänk
Medlem

Har jag också gjort nu som sagt

Mycket trevligare.

Visa signatur

Specs: Fräsig dator

Permalänk
Medlem

(Gammal tråd, men kan vara bra att ha ett ordentligt svar)

Det är ett vanligt problem att iptables loggar till console i Debian. Såhär löser du det smidigast:

1. Editera filen /etc/init.d/klogd och byt ut KLOGD="" mot KLOGD="-c 4".
2. Starta om klogd genom kommandot "/etc/init.d/klogd restart".

Iptables använder sig av kernelmeddelanden för att rapportera "incidenter" och övriga meddelanden från regler man definierat med LOG. Dessa meddelanden snappas upp och loggas av kernelloggern klogd. Defaultvärdet för klogd är att logga alla meddelanden till konsollen som har prioritetsnivå lägre än 7 (debug). Genom att starta klogd med flaggan "-c 4" skrivs endast meddelanden med nivå under 4 (0-3 är för mer eller mindre allvarliga fel) till konsollen, vilket gör att dina meddelanden från iptables endast hamnar i den avsedda loggfilen. Detfaultvärdet på meddelanden från iptables är nämligen 4 (warning), om man inte defninerar det explicit med flaggan "--log-level X", där X är antingen ett numeriskt värde (0-7), eller motsvarande keyword (debug, info, notice, warning, err, crit, alert eller emerg).