handdator

Visa fullständig version : Fråga till iptables kunnig



hoggan
2010-12-13, 18:43
Hej!

Jag vill öppna lite portar på servern för lite torrent trafik men får de inte att funka.
La till detta i mitt iptables:

$iptables -A INPUT -p tcp --dport 6881:6999 -j ACCEPT
$iptables -A OUTPUT -p tcp --sport 6881:6999 -j ACCEPT

Är det nåt mer man måste lägga till för att öppna en port på servern?? Har port forward funkar bra, men just på servern får ja de inte alls att funka. Mycket tacksam för hjälp :)

matkoh
2010-12-13, 19:06
Hmmmm.

Har du startat om tjänsten efter ändringen ?

hoggan
2010-12-13, 19:08
Yes. Men det är inte nåt mer man måste lägga till för att den ska öppna portar på servern ??

tokper
2010-12-14, 06:59
Kanske en dum fråga, men du har ingen router framför servern? Isf måste du öppna i den oxå :)

jhunden
2010-12-14, 10:32
Som sagt, är det servern/firewallen som ska komma åt detta eller står servern/firewallen och agerar router?

hoggan
2010-12-14, 13:35
Det står ingen router framför servern. Det är servern som ska komma åt det. Men har en router dlink dir-825 kopplad till eth1 för att dela ut trådlöst till resten av kåken där spelar det ingen roll om porten är stängd. Men är på servern som jag vill öppna upp portarna har testat allt men får banne mig inte till det :(

matkoh
2010-12-14, 13:38
Hmmmm.

Ladda ner någon GUI till iptables då, en bra är ex. Firestarter. Suveränt lättanvänd, tom. frugan klarar att definera upp nya regler.

hoggan
2010-12-14, 13:40
gjorde en med quicktables då blev det såhär.

#!/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


# 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 10000 -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 -p tcp --dport 55882 -j ACCEPT
$iptables -A INPUT -p tcp --dport 6881:6999 -j ACCEPT
$iptables -A OUTPUT -p tcp --sport 6881:6999 -j ACCEPT
$iptables -A INPUT -p tcp --dport 12899 -j ACCEPT
$iptables -A OUTPUT -p tcp --sport 12899 -j ACCEPT

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

$iptables -A FORWARD -i eth0 -p tcp --dport 12899 -j ACCEPT
$iptables -t nat -A PREROUTING -i eth0 -p tcp -d 192.168.1.147 --dport 12899 -j DNAT --to-destination 192.168.1.147:12899

# 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 ###"
echo ""

matkoh
2010-12-14, 13:45
Hmmmm.

Det brukar bli lite fler rader när man använder GUI.

hoggan
2010-12-14, 13:46
hehe ja sådär blev det för mig iaf :)

Plow
2010-12-14, 17:33
Testa arno-iptables-firewall. Konfigureras via terminalen

jhunden
2010-12-17, 15:25
Funkar de andra INPUT- och OUTPUT-reglerna?
Annars kan du testa med att lägga in ett "-i eth0" <- antar detta är ditt interface mot internet.
Och även state NEW-flaggan

$iptables -A INPUT -p tcp --dport 6881:6999 -j ACCEPT
$iptables -A OUTPUT -p tcp --sport 6881:6999 -j ACCEPT



istället
$iptables -A INPUT -i eth0 -p tcp --dport 6881:6999 -j ACCEPT -m state --state NEW
$iptables -A OUTPUT -o eth0 -p tcp --sport 6881:6999 -j ACCEPT -m state --state NEW



Så här ser två input-regler jag har. För SSH samt en BNC-server
#-----From Internet
$IPTABLES -A INPUT -j ACCEPT -i $EXT_IF -p tcp -s $INTERNET -d $EXT_IP --dport 22 -m state
--state NEW

$IPTABLES -A INPUT -j ACCEPT -i $EXT_IF -p tcp -s $INTERNET -d $EXT_IP --dport 31337 -m state --state NEW

hoggan
2010-12-17, 17:47
nice nu funkar det :D tackar så mycket för hjälpen. Men jag får en del dropped packets som jag skulle vilja logga fick iordning nån halvdan loggning men den loggade på tok för mycket. Så vad är det för kod om man endast vill logga dropped packets ?