WoW зад Linux Firewall?

2 отговора 301 прегледа
#1

WoW зад Linux Firewall?

Здравейте,

Имам следния проблем. Имам домашен компютър който е на wintendo, този компютър е свързан с интернет чрез linux рутер, който аз съм си направил и стои на балкона. Въпроса ми е как да настроя iptables така че да мога да си играя World Of Warcraft (WoW) към някой сървър. След като се разтърсих из интернет разбрах че трябва определени портове да са ми отворени и да правя forward на пакетите към локалната машина. Ще paste скрипта който ми конфигурира таблиците. Портовете които са forward са тези за които знам че трябва да се пренасочат. Мерси предварително

# 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="/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 eth0 -j ACCEPT
$iptables -A INPUT -i eth0 -j ACCEPT
$iptables -A OUTPUT -o eth0 -j ACCEPT
$iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to-source 82.146.19.194

# 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 eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

# 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 -m limit --limit 1/s -i eth1 -j ACCEPT

# 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 53 -j ACCEPT
$iptables -A INPUT -p tcp --dport 6669 -j ACCEPT
$iptables -A INPUT -p tcp --dport 7999 -j ACCEPT

# open and forward ports to the internal machine(s)
echo " applying port forwarding rules"
echo ""
$iptables -A FORWARD -i eth1 -p tcp --dport 3724 -j ACCEPT
$iptables -t nat -A PREROUTING -i eth1 -p tcp -d 82.146.19.194 --dport 3724 -j DNAT --to-destination 192.168.1.3:3724
$iptables -A FORWARD -i eth1 -p tcp --dport 8086 -j ACCEPT
$iptables -t nat -A PREROUTING -i eth1 -p tcp -d 82.146.19.194 --dport 8086 -j DNAT --to-destination 192.168.1.3:8086
$iptables -A FORWARD -i eth1 -p tcp --dport 8087 -j ACCEPT
$iptables -t nat -A PREROUTING -i eth1 -p tcp -d 82.146.19.194 --dport 8087 -j DNAT --to-destination 192.168.1.3:8087
$iptables -A FORWARD -i eth1 -p tcp --dport 9081 -j ACCEPT
$iptables -t nat -A PREROUTING -i eth1 -p tcp -d 82.146.19.194 --dport 9081 -j DNAT --to-destination 192.168.1.3:9081
$iptables -A FORWARD -i eth1 -p tcp --dport 9087 -j ACCEPT
$iptables -t nat -A PREROUTING -i eth1 -p tcp -d 82.146.19.194 --dport 9087 -j DNAT --to-destination 192.168.1.3:9087
$iptables -A FORWARD -i eth1 -p tcp --dport 9090 -j ACCEPT
$iptables -t nat -A PREROUTING -i eth1 -p tcp -d 82.146.19.194 --dport 9090 -j DNAT --to-destination 192.168.1.3:9090
$iptables -A FORWARD -i eth1 -p tcp --dport 9100 -j ACCEPT
$iptables -t nat -A PREROUTING -i eth1 -p tcp -d 82.146.19.194 --dport 9100 -j DNAT --to-destination 192.168.1.3:9100
$iptables -A FORWARD -i eth1 -p udp --dport 3724 -j ACCEPT
$iptables -t nat -A PREROUTING -i eth1 -p udp -d 82.146.19.194 --dport 3724 -j DNAT --to-destination 192.168.1.3:3724
$iptables -A FORWARD -i eth1 -p udp --dport 8086 -j ACCEPT
$iptables -t nat -A PREROUTING -i eth1 -p udp -d 82.146.19.194 --dport 8086 -j DNAT --to-destination 192.168.1.3:8086
$iptables -A FORWARD -i eth1 -p udp --dport 8087 -j ACCEPT
$iptables -t nat -A PREROUTING -i eth1 -p udp -d 82.146.19.194 --dport 8087 -j DNAT --to-destination 192.168.1.3:8087
$iptables -A FORWARD -i eth1 -p udp --dport 9081 -j ACCEPT
$iptables -t nat -A PREROUTING -i eth1 -p udp -d 82.146.19.194 --dport 9081 -j DNAT --to-destination 192.168.1.3:9081
$iptables -A FORWARD -i eth1 -p udp --dport 9087 -j ACCEPT
$iptables -t nat -A PREROUTING -i eth1 -p udp -d 82.146.19.194 --dport 9087 -j DNAT --to-destination 192.168.1.3:9087
$iptables -A FORWARD -i eth1 -p udp --dport 9090 -j ACCEPT
$iptables -t nat -A PREROUTING -i eth1 -p udp -d 82.146.19.194 --dport 9090 -j DNAT --to-destination 192.168.1.3:9090
$iptables -A FORWARD -i eth1 -p udp --dport 9100 -j ACCEPT
$iptables -t nat -A PREROUTING -i eth1 -p udp -d 82.146.19.194 --dport 9100 -j DNAT --to-destination 192.168.1.3:9100


# logging
echo " applying logging rules"
echo ""
$iptables -A INPUT -i eth1 -p tcp -m limit --limit 1/s --dport 0:65535 -j LOG --log-prefix "tcp connection: "
$iptables -A INPUT -i eth1 -p udp -m limit --limit 1/s --dport 0:65535 -j LOG --log-prefix "udp connection: "

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

echo ""


Отговор
в отговор на HADES #2

Re: WoW зад Linux Firewall?

Аз съм този дето го направи тоя post, само исках да уточня че така конфигуриран firewall-a не ми позволява да играя. А в логовете също не пише да е блокирал пакети от съответния сървър.

Отговор
в отговор на Joshuah #3

Re: WoW зад Linux Firewall?

Не разбирам много от netfilter, но ми се струва че отваряш само отделни портове, пък warcrafta иска range някакъв

Отговор