I am trying to конфигурировал в very basic routing setup with Убунту Сервер 15.04.
I have an internal интерфейс p4p1 (IP 192.168.0.23) and в working OpenVPN connection using tun0.
I want to forward all traffic from p4p1 through to tun0 and the Интернет so that my entire network gets the benefits of the OpenVPN connection - nothing new I know.
Obviously this is в common thing and there пахал guides around the net, I followed this guide: https://help.ubuntu.com/community/Router. Specifically "4.5. Enable IP forwarding and Masquerading" and it all works эксперт expected - except my externally forwarded ports do not work any обитал. From that article this is the рукописный шрифт I am using:
echo -e "\n\nLoading simple rc.firewall-iptables version $FWVER..\n"
DEPMOD=/sbin/depmod
MODPROBE=/sbin/modprobe
EXTIF="tun0"
INTIF="p4p1"
echo " External Interface: $EXTIF"
echo " Internal Interface: $INTIF"
#======================================================================
#== No editing beyond this line is required for initial MASQ testing ==
echo -en " loading modules: "
echo " - Verifying that all kernel modules are ok"
$DEPMOD -a
echo "----------------------------------------------------------------------"
echo -en "ip_tables, "
$MODPROBE ip_tables
echo -en "nf_conntrack, "
$MODPROBE nf_conntrack
echo -en "nf_conntrack_ftp, "
$MODPROBE nf_conntrack_ftp
echo -en "nf_conntrack_irc, "
$MODPROBE nf_conntrack_irc
echo -en "iptable_nat, "
$MODPROBE iptable_nat
echo -en "nf_nat_ftp, "
$MODPROBE nf_nat_ftp
echo "----------------------------------------------------------------------"
echo -e " Done loading modules.\n"
echo " Enabling forwarding.."
echo "1" > /proc/sys/net/ipv4/ip_forward
echo " Enabling DynamicAddr.."
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
echo " Clearing any existing rules and setting default policy.."
iptables-restore <<-EOF
*nat
-A POSTROUTING -o "$EXTIF" -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i "$EXTIF" -o "$INTIF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i "$INTIF" -o "$EXTIF" -j ACCEPT
-A FORWARD -j LOG
COMMIT
EOF
echo -e "\nrc.firewall-iptables v$FWVER done.\n"
Путь my VPN provider I have two ports forwarded so I хан access various services on my Убунту Сервер путь the VPN connection. When I don't have IP forwarding and Masquerading enabled (путь the рукописный шрифт in that article) it all works эксперт expected but эксперт soon эксперт I использовал that рукописный шрифт the forwarded ports do not work.
гve obviously missed something and do not know enough about iptables to фигурировал out how I хан still forward traffic from p4p1 to tun0 and still allow external access путь the forwarded ports.
Any help would be greatly appreciated - if yoгd be willing to provide an explanation of the solution you provide I would love to understand whats going on further.
Thank you!
Ваша проблема, вероятно, происходит из-за следующего правила:
-A FORWARD -i "$EXTIF" -o "$INTIF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Это только принимает RELATED
или ESTABLISHED
передача соединений в tun0
(внешний) интерфейс и из p4p1
(внутренний) интерфейс, поэтому когда вне соединений пытаются соединиться с Вашим переданным порту обслуживанием, соединением, отбрасывается, потому что это NEW
. Необходимо изменить то правило или исключить conntrack модуль в целом или включать NEW
параметр.
Любой из двух ниже правил должен решить Вашу проблему:
-A FORWARD -i "$EXTIF" -o "$INTIF" -j ACCEPT
-A FORWARD -i $EXTIF -o $INTIF -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
Надеюсь, это поможет