handdator

Visa fullständig version : Problem med att öppna portar i iptables



hoggan
2011-02-22, 19:21
Hej!
Har problem med att öppna lite portar till p2p program. Har detta i min iptables config just nu:
$iptables -A INPUT -p tcp --dport 49152:65535 -j ACCEPT -m state --state NEW
$iptables -A OUTPUT -p tcp --sport 49152:65535 -j ACCEPT -m state --state NEW

Är det något mer man måste lägga till för jag får då banne mig de inte att fungera.
Tacksamm för hjälp.

jhunden
2011-02-22, 20:35
Är servern där du kör iptables en router? Eller är det maskinen själv som har p2p-programmet?
INPUT- och OUTPUT-reglerna är ju till och från den egna maskinen.

Om du vill forwarda trafiken in till en dator på insidan måste du använda dig av dnat samt forward.

hoggan
2011-02-22, 20:41
server jag kör iptables på kör jag även p2p programmet på så det är där det ska öppnas portar. Maskinerna in på nätverket fungerar bra som det är nu.

jhunden
2011-02-22, 20:41
Om det är den egna maskinen och du har flera interface, testa med att lägga till -i eth0 (eller vilket interface det nu är du vill ha in/ut trafiken på...)

jhunden
2011-02-22, 20:43
$iptables -A INPUT -p tcp --dport 49152:65535 -j ACCEPT -i eth0 -m state --state NEW
$iptables -A OUTPUT -p tcp --sport 49152:65535 -j ACCEPT -i eth0 -m state --state NEW

hoggan
2011-02-22, 20:43
$iptables -A INPUT -i eth0 -p tcp --dport 49152:65535 -j ACCEPT -m state --state NEW -m state --state ESTABLISHED
$iptables -A OUTPUT -o eth0 -p tcp --sport 49152:65535 -j ACCEPT -m state --state NEW -m state --state ESTABLISHED

Har sådär nu men det fungerar inte heller

jhunden
2011-02-22, 20:47
$IPTABLES -P INPUT DROP
$IPTABLES -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
$iptables -A INPUT -i eth0 -p tcp --dport 49152:65535 -j ACCEPT -m state --state NEW -m state --state ESTABLISHED

$IPTABLES -P OUTPUT DROP
$IPTABLES -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED

samt att kör med --dport på OUTPUT-regeln oxå. inte --sport.

hoggan
2011-02-22, 20:59
Dom är fortfarande stängd :/

jhunden
2011-02-22, 21:07
Ok, då vet jag inte vad felet är :/ (du har väl startat om brandväggen??)

hoggan
2011-02-22, 21:09
Ja absolut startar om den efter varje ändring. Du har inte lust och skumma igenom den och se om nåt är tokigt? Men tycker en grej är lite skumt och alla andra portar jag har öppnat fungerar och visar att dom är öppen enligt http://www.yougetsignal.com/tools/open-ports/

jhunden
2011-02-22, 21:13
Sure, dra in en dump på configen här så finns det fler än jag som kan komma med tips. Jag kör iptables och är väl mediokert bra på det. Men kan behövas mer kloka ögon :-)

hoggan
2011-02-22, 21:16
#!/bin/sh
#
# generated by ./quicktables-2.3 on 2010.12.12.43
#

# set a few variables
echo ""
echo " setting global variables"
echo ""
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
iptables="/usr/sbin/iptables"

# adjust /proc
echo " applying general security settings to /proc filesystem"
echo ""
if [ -e /proc/sys/net/ipv4/tcp_syncookies ]; then echo 1 > /proc/sys/net/ipv4/tcp_syncookies; fi
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter; fi
if [ -e /proc/sys/net/ipv4/ip_forward ]; then echo 1 > /proc/sys/net/ipv4/ip_forward; fi

# load some modules
if [ -e /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip_nat_irc.o ]; then modprobe ip_nat_irc; fi
if [ -e /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip_conntrack_irc.o ]; then modprobe ip_conntrack_irc; fi
if [ -e /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip_conntrack_ftp.o ]; then modprobe ip_conntrack_ftp; fi
if [ -e /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip_nat_ftp.o ]; then modprobe ip_nat_ftp; fi

# flush any existing chains and set default policies

$iptables -F INPUT
$iptables -F OUTPUT
$iptables -P INPUT DROP
$iptables -P OUTPUT ACCEPT
$iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
$iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED

# setup nat
echo " applying nat rules"
echo ""
$iptables -F FORWARD
$iptables -F -t nat
$iptables -P FORWARD DROP
$iptables -A FORWARD -i eth1 -j ACCEPT
$iptables -A INPUT -i eth1 -j ACCEPT
$iptables -A OUTPUT -o eth1 -j ACCEPT
$iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

# allow all packets on the loopback interface
$iptables -A INPUT -i lo -j ACCEPT
$iptables -A OUTPUT -o lo -j ACCEPT

# allow established and related packets back in
$iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# blocking reserved private networks incoming from the internet
echo " applying incoming internet blocking of reserved private networks"
echo ""
$iptables -I INPUT -i eth0 -s 10.0.0.0/8 -j DROP
$iptables -I INPUT -i eth0 -s 172.16.0.0/12 -j DROP
$iptables -I INPUT -i eth0 -s 192.168.0.0/16 -j DROP
$iptables -I INPUT -i eth0 -s 127.0.0.0/8 -j DROP
$iptables -I FORWARD -i eth0 -s 10.0.0.0/8 -j DROP
$iptables -I FORWARD -i eth0 -s 172.16.0.0/12 -j DROP
$iptables -I FORWARD -i eth0 -s 192.168.0.0/16 -j DROP
$iptables -I FORWARD -i eth0 -s 127.0.0.0/8 -j DROP

# blocked hosts
#echo " dropping all packets from blocked hosts"
#echo ""
$iptables -I INPUT -s 192.168.0.0/24 -j DROP
$iptables -I FORWARD -s 192.168.0.0/24 -j DROP

# icmp
echo " applying icmp rules"
echo ""
$iptables -A OUTPUT -p icmp -m state --state NEW -j ACCEPT
$iptables -A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A INPUT -p icmp --icmp-type echo-request -i eth0 -j DROP

# apply icmp type match blocking
echo " applying icmp type match blocking"
echo ""
$iptables -I INPUT -p icmp --icmp-type redirect -j DROP
$iptables -I INPUT -p icmp --icmp-type router-advertisement -j DROP
$iptables -I INPUT -p icmp --icmp-type router-solicitation -j DROP
$iptables -I INPUT -p icmp --icmp-type address-mask-request -j DROP
$iptables -I INPUT -p icmp --icmp-type address-mask-reply -j DROP

# open ports to the firewall
echo " applying the open port(s) to the firewall rules"
echo ""

$iptables -A INPUT -p tcp --dport 8112 -j ACCEPT
$iptables -A INPUT -p tcp --dport 80 -j ACCEPT
$iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
$iptables -A INPUT -p tcp --dport 10000 -j ACCEPT
$iptables -A INPUT -p tcp --dport 10001 -j ACCEPT
$iptables -A INPUT -p tcp --dport 20 -j ACCEPT
$iptables -A INPUT -p tcp --dport 21 -j ACCEPT
$iptables -A INPUT -p tcp --dport 22 -j ACCEPT
$iptables -A INPUT -p udp --dport 53 -j ACCEPT
$iptables -A INPUT -p tcp --dport 53 -j ACCEPT
$iptables -A INPUT -i eth0 -p tcp --dport 49152:65535 -j ACCEPT -m state --state NEW -m state --state ESTABLISHED
$iptables -A OUTPUT -o eth0 -p tcp --dport 49152:65535 -j ACCEPT -m state --state NEW -m state --state ESTABLISHED


# open and forward ports to the internal machine(s)
echo " applying port forwarding rules"
echo ""


# drop all other packets
echo " applying default drop policies"
echo ""
$iptables -A INPUT -i eth0 -p tcp --dport 0:65535 -j DROP
$iptables -A INPUT -i eth0 -p udp --dport 0:65535 -j DROP

echo "### quicktables is loaded ###"
Ja som du ser är inte mina ögon så klok på iptables :)
echo ""

jhunden
2011-02-22, 21:22
Testa med att lägga till samma regler för udp

hoggan
2011-02-22, 21:27
$iptables -A INPUT -i eth0 -p udp --dport 49152:65535 -j ACCEPT -m state --state NEW -m state --state ESTABLISHED
$iptables -A OUTPUT -o eth0 -p udp --dport 49152:65535 -j ACCEPT -m state --state NEW -m state --state ESTABLISHED

De va så du menade väl ? Det blev inget bättre av den ändringen :(

jhunden
2011-02-22, 21:34
Jag skulle ha en öppning av varje, en för tcp och en för udp. Så har jag själv i alla fall,dock i en forwardregel.

hoggan
2011-02-22, 21:37
Jo det verkar ju inte fungera någe bra att köra 49152:65535 tex den här fungerar perfekt: $iptables -A INPUT -p tcp --dport 10000 -j ACCEPT
Men brukar det krångla med iptables när man ska öppna många portar utan att skriva en rad för varje ?

Bogdan
2011-02-23, 06:54
Har du testat detta?
Istället för

$iptables -A INPUT -i eth0 -p tcp --dport 49152:65535 -j ACCEPT -m state --state NEW -m state --state ESTABLISHED
$iptables -A OUTPUT -o eth0 -p tcp --dport 49152:65535 -j ACCEPT -m state --state NEW -m state --state ESTABLISHED

så kör bara

$iptables -A INPUT -p tcp --dport 49152:65535 -j ACCEPT

tänkte att output inte behövs då den inte droppas någonstans. Kan ha fel iofs.

hoggan
2011-02-23, 07:40
Testade nu, men det blev ingen skillnad :(

Bogdan
2011-02-23, 12:14
Dom svarar är väl för att du har en tjänst som ligger där och svarar. Men du har knappast en tjänst som svarar på alla de där portarna som du vill öppna. Möjligtvis på några portar när ditt p2p program är igång.
Har du testat programmet istället när du öppnat portarna? Vad är det för p2p program du försöker få igång? Med sådär många portar ser det ut som MSN messenger tex.



Ja absolut startar om den efter varje ändring. Du har inte lust och skumma igenom den och se om nåt är tokigt? Men tycker en grej är lite skumt och alla andra portar jag har öppnat fungerar och visar att dom är öppen enligt http://www.yougetsignal.com/tools/open-ports/

hoggan
2011-02-23, 14:28
Men har ju kollat vilken port som dom ansluter på i p2p programmet som för övrigt heter deluge och sen har jag kört dom på den där sidan. Behöver inte alls ha sådär många heller bara nåt jag höftade till med.

Bogdan
2011-02-24, 10:40
Jag förstår inte riktigt hur dom kan ansluta till en port i p2p programmet om den nu inte är öppen. Eller du kanske bara slog av firewallen och kollade vilka portar som användes?

Det borde finnas en log som talar om vad firewallen blockar och då kolla vilka portar som kan tänkas användas av detta program.

Men sedan undrar jag om det inte bara räcker att öppna en port för detta? Och vilken port det är går att ställa in i settings i deluge. Gör man inte det så tar den en randon port. Det står som exempel står det att man kan använda EN port mellan 49152 and 65535 och inte alla.

http://dev.deluge-torrent.org/wiki/Faq#WhichportsshouldIuse

Which ports should I use? ¶ (http://dev.deluge-torrent.org/wiki/Faq#WhichportsshouldIuse)

The official ports for Bittorrent are 6881-6889, but most ISPs block or at least throttle those ports, so users are encouraged to use a port range of something between 49152 and 65535.
Deluge uses random ports instead of selected one, why? ¶ (http://dev.deluge-torrent.org/wiki/Faq#Delugeusesrandomportsinsteadofselectedonewhy)

Click Apply after changing the port. Deluge will pick a random port if the chosen port is not available.
Run "netstat" to check if the port is free.

hoggan
2011-02-24, 12:19
Okej jag som missuppfattade de där lite då. Ska testa och köra med bara en port då.
Kör med en port på incomming och en på outgoing och en för deluge deamonen, ser att det några är established på just dom portarna när jag kör netstat men kollar jag på http://www.yougetsignal.com/tools/open-ports/ så säger den att dom fortfarande är stängda.

$iptables -A INPUT -i eth0 -p tcp --dport 49152 -j ACCEPT
$iptables -A INPUT -i eth0 -p udp --dport 49152 -j ACCEPT
$iptables -A INPUT -i eth0 -p tcp --dport 58846 -j ACCEPT
$iptables -A INPUT -i eth0 -p tcp --dport 49153 -j ACCEPT
$iptables -A INPUT -i eth0 -p udp --dport 49153 -j ACCEPT

hoggan
2011-02-25, 12:53
Problemet löst! Bytte deluge mot transmission och sen fungerade det perfekt. Tack för hjälpen den va väldigt bra för en iptables noob :)