diff --git a/package/comgt/files/3g.iface b/package/comgt/files/3g.iface
index a8476ca8dff4d62b9f965e0b2d0960003df55798..cd4e4cc5c611280525dcb5ec1aa9a894588c9733 100644
--- a/package/comgt/files/3g.iface
+++ b/package/comgt/files/3g.iface
@@ -3,8 +3,19 @@ config_load network
 scan_interfaces
 config_get proto "$INTERFACE" proto
 [ "$proto" = "3g" ] && {
+	config_get iface "$INTERFACE" ifname
 	case "$ACTION" in
-		ifup) set_3g_led 1 1 0;;
-		ifdown) set_3g_led 0 0 0;;
+		ifup)
+			iptables -I LAN_ACCEPT 1 -i "$iface" -j RETURN
+			iptables -A FORWARD -o "$iface" -j ACCEPT
+			iptables -t nat -A POSTROUTING -o "$iface" -j MASQUERADE 
+			set_3g_led 1 1 0
+		;;
+		ifdown)
+			iptables -D LAN_ACCEPT -i "$iface" -j RETURN
+			iptables -D FORWARD -o "$iface" -j ACCEPT
+			iptables -t nat -D POSTROUTING -o "$iface" -j MASQUERADE 
+			set_3g_led 0 0 0
+		;;
 	esac
 }