MS CRM 2011 Port Forwarding Error(Without IFD) - dynamics-crm-2011

One of our client wants to do port forwarding to the crm server , so that users can access the crm from Internet. They are using ZyXel firewall (for port forwarding).
They have mapped 203.xx.xx.xx(public ip) to 192.Xx.xx.xx(local ip) with incoming and outgoing port 5555(default port of our crm server), but it doesn't work. Any suggestions?
I tried to map for rdp and sql report server(web server), these things are able to access.
I have been stuck with this more than a day. Can anyone please help

It's more common to see full IFD implementation with crm 2011, since SSL allows for more security. I do think it's possible to configure CRM to work with just regular port forwarding though, although I have never done it myself.
Take a look here: http://www.mscrmguru.com/2013/05/exposing-microsoft-dynamics-crm-2011.html
Examples of software that can be used for port forwarding includes
Microsoft Forefront Treat Management Gateway (TMG) and Microsoft
Forefront Unified Access Gateway. Basically what it comes down to is
the following:
The user enters an internet address e.g. http://crm.mycompany.com.au
The internet address is recognised and points to the external
registered IP address e.g. 162.123.123.11
The external IP address is redirected to your internal IP address
through your reverse proxy / tunnelling / port forwarding e.g.
10.0.0.10
The user enters username and password and gets authenticated.
The Microsoft Dynamics CRM 2011 pages is displayed to the user.

Finally I solved the issue by binding port 80 to the crm website in IIS. Not sure why 5555 port didnt work, even though the port is opened in the firewall.

You have to add a corresponding Policy Control to pair with the corresponding NAT rule otherwise when the NAT / port forwarding rule is applied, it will be directed to the stateful packet inspection part of the device controlled by the Policy Control rules and be dropped from that point forward.
Policy Control is found by selecting the Configuration menu option (looks like two yellow gear or cogs whatever you call them), then selecting Security Policy, then Policy Control.
The rule structure is similar to NAT, except on this screen you permit or deny traffic based on ZONES that maps to any physical or logical interface configured. In most cases, you want to permit port 5555 traffic coming from the WAN zone from ANY IP address, to the LAN, DMZ or VLAN zones to the IP of the host or object configured in the ZyXEL firewall.
You'll want to ensure that port 5555/TCP or 5555/UDP, whichever is applicable to permit, is configured as a Service Object under the Configuration->Object->Service menu.
Configuring the service before will allow easy setup afterwards when setting your NAT and policy rules, because you'll be able to select the new service object instead of entering ports only. It's also required to set a service object anyways for all Policy Routes.
It feels like the work has been done twice, but NAT and Policy Routes are two different things that have to be configured to allow most kinds of non-standard traffic. You admin might have had an easier time configuring other rules such as HTTP, FTP, SMTP and various common services, because the firewall has built-in objects for those services, which makes configuring rules for services running non-standard high-range ports a little but more tricky.

Related

Forward specific port of a domain.com:1234 to different IP

my domain "https://example.com forwards to my webserver IP eg "0.0.0.1".
Is it possible that when I call the domain like "tcp://example.com:1234" to forward the request to a different IP like "0.0.0.2:1234"? Or is the only way to use a subdomain?
Thank You!
It's about a self-host or a shared host on a service provider?
If it's a self-host:
Someone receives your internet connection, in the business environment we usually use a firewall, so you just need to create/configure (on the firewall) your "nat rules" to work as you need with specific ports and IP.
If it's a service provider:
You must do check if they allow nat configuration (can be called port forward or publish rules)

express project running on the server but could not get any response

My express server seems okay in the host. But I try to access an endpoint using IP:PORT/something. I didn't get nothing. Even I didn't get any 500 error.
POSTMON says
How do I fix this error?
From the image you have uploaded, it looks like your server is hosted on AWS EC2. Since you are not even able to reach your node server, it looks like you haven't added that port(on which it is hosted) in the inbound rules of your EC2 security group.
You need to open that port for all IPs (if you want it to access form anywhere) or specific IP, if you want to access only from your specific IP.
Please read it in detail here
Update
If you are using Digital Ocean, you can open the access to that port in the firewall rules.
To open a custom Port for inbound access, you need to add custom Rules in firewall.
From official Docs
Protocol. You can choose either TCP or UDP. Because ICMP has no port
abstraction, to allow ICMP traffic, you select it directly from the
New rule dropdown.
Port Range. For the TCP and UDP protocols, you can specify:
A single port.
A range of ports by entering the starting and ending ports separated by a dash - with no spaces, e.g. 3000-4000. To open
multiple non-sequential ports, create a separate rule for each.
All ports by leaving the field blank.
Sources for inbound rules, which
lets you restrict the source of incoming connections.
Destinations for outbound rules, which lets you restrict the
destination of outgoing connections.
You can limit the sources/destinations to:
Droplets, chosen by name, IP address, or tag DigitalOcean Load
Balancers, chosen by name, IP address, or tag Non-DigitalOcean servers
by IP addresses, subnets, or CIDR ranges.
Please read about how to configure firewall rules in Digital Ocean, in their official Documentation
If you directly want to jump to Adding Custom Rules, read here

How to access a site on AWS EC2 without a domain name

I just created a new site on my IIS on Amazon's EC2 and I was wondering if there is a way to access it publicly without assigning a domain.
In detail. I created a new site dev.example.com which is accessible when I am logged in my instance. Is there a way to access it outside by doing let's say 54.xxx.xx.xxx:80:dev.example.com
I don't know if that's even possible so any hints are appreciated
You can definitely do this, but here's what you'll need to do:
Make sure IIS is configured to route any incoming connection on a particular IP address to your site. This is distinct from IIS specifically listening for a particular hostname (e.g. mywebsite.com).
As an alternative to the above, you could also manually set your DNS on your local computer and then use your web browser to visit mywebsite.com. From IIS's perspective, a user will have requested mywebsite.com just as if public DNS were set
As far as the IP address you visit, your instance will either have an ephemeral Public IP Address which will be reset when the instance is stopped and started, or an Elastic IP Address, which persists across restarts.
As #Anthony Manzo mentioned, you'll need to make sure that your Security Group associated with this instance allows Port 80. In addition, you may want to disable Windows Firewall completely (or check that it allows Port 80 on all three "Zones" (Windows Firewall has 3 different zones to manage).
Afaik the IP addresses assigned to EC2 instances can change throughout its lifetime and therefore you should instead generate an Elastic IP Address (which will always direct to your instance). That way, you don't have to deal with DNS yourself and still are always able to connect to your instance.
Have a look at the "Security Groups" on the left hand of your EC2 web console. You'll have to allow TCP 80 (and whatever else) in the Security Group (probably 'default') first.

Azure VM Endpoint Allow All or Deny All by Default?

I have setup an http endpoint (port 80) for my Azure VM. I have verified that the firewall is allowing port 80 both in and out. (My VM operating system is Windows Server 2012.)
Yet still, I am unable to hit IIS on port 80 from a remote machine. (Locally I can hit localhost just fine.)
So I'm wondering if what I'm missing is a network acl. However, the Azure documentation (as of 12/2/2013) seems contradictory:
When a virtual machine is created, a default ACL is put in place to
block all incoming traffic. However, if an endpoint is created for
(port 3389), then the default ACL is modified to allow all inbound
traffic for that endpoint.
Yet below it says:
It’s important to note that by default, when an endpoint is created,
all traffic is denied to the endpoint.
Which is correct? Do I need to create an allow all ACL? Am I missing something else about how Azure DNS and network traffic works?
That same page follows on to write
No ACL – By default when an endpoint is created, we permit all for the
endpoint.
I believe that the comment suggesting all traffic is denied by default is wrong.
To confirm I have just deployed a brand new Windows Server 2012 Data Centre VM, installed IIS, open the Windows Firewall and configured an endpoint for TCP port 80 and it all worked just fine although its worth pointing out that it took a few minutes between configuring the endpoint and being able to browse to the server.

Strange behaviour with Azure web role IP addresses in IIS

Test case:
Created new cloud project with standard asp.net web site template.
Deployed.
The default configuration defines an endpoint on port 80 without any host headers.
I would have thought this translates to a binding of
*:80:
However, it actually creates a binding of:
10.211.196.111:80:
Where 10.211.196.111 is an IP address of the web role instance.
If we look at the available IP addresses on the machine we have 2:
10.211.196.111
2001:0:4137:9e76:c8c:387d:f52c:3b90
What's interesting is that if we change our IIS binding to listen on all IP addresses *:80 the web site actually stops working. Instead we get a 503 - Service unavailable error.
Why is this important to me? Well we've been recently making use of the Azure Accelerator for web roles and have found that it does not work if you don't specify a host name. The reason, as explained above, is that it will interpret an empty host name as *.80 which of course results in the 503 error.
So the first question is - could someone explain this behaviour (why listening on all IP addresses doesn't work) and what that second IP address is used for?
Since it looks like I need to patch the azure accelerator so that it uses a specific IP address of the instance, what's the recommended way of finding this? Do you think it's safe to look for an adapter that starts with Microsoft Virtual Machine Bus Network Adapter or perhaps a specific subnet?
Thanks,
Ben
I believe the other IP address is for a second network adapter in the VM that's used for internal communication between the VMs and the fabric controller. It's possible you don't have permission to bind to that other address (so the wildcard "all unassigned IP addresses" mapping doen't work).
However, I'm not quite convinced of that. If (which is I believe what you're saying) the Windows Azure Accelerator for Web Roles binds everything to *:80:hostname, that seems like evidence that you can do bindings like that.
In any case, to get the IP address, you'd just use RoleEnvironment.CurrentRoleInstance.Endpoints["name"].IPEndpoint. I think for name you'll want HttpIn for the accelerator. You can try using that IP address instead of "*" in that code and see if it helps, but note that the management UI itself has a wildcard mapping, so you're likely to have some sort of conflict (and be unable to make other management changes) unless you also change the management UI to listen on a specific hostname.

Resources