You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/openvidu-pro/deployment/on-premises.md
+55-35
Original file line number
Diff line number
Diff line change
@@ -71,50 +71,34 @@ Once you have your instances ready, be sure to meet the following criteria in th
71
71
72
72
-**2 CPUs and 8GB of RAM at least**, as well as a generous network bandwidth
73
73
74
-
-**Opened ports in _OpenVidu Server Pro Node_**
74
+
-**Configure a domain name**: OpenVidu Pro is deployed using HTTPS because it is mandatory to use WebRTC. Then, if you do not have a domain name, an autogenerated SSL certificate will be used and an ugly warning will appear to your users when enter to your site. And of course you can suffer a man-in-the-middle attack. So it is recommended that you configure a domain name pointing to OpenVidu Server Pro Node public IP (Media Nodes do not need a domain name, it is enough for them to have a public IP). A valid SSL certificate can be automatically generated using Let's Encrypt in the installation process. If you already have a valid SSL certificate of your own, it also can be configured.
75
75
76
-
-**22 TCP**: to connect using SSH to admin OpenVidu.
77
-
-**80 TCP**: if you select Let's Encrypt to generate an SSL certificate this port is used by the generation process.
78
-
-**443 TCP**: OpenVidu Inspector is served in standard https port.
79
-
-**3478 TCP+UDP**: used by TURN server to resolve clients IPs.
80
-
-**40000 - 65535 TCP+UDP**: used by TURN server to establish relayed media connections.<br><br>
76
+
-**Port configuration in _OpenVidu Server Pro Node_**
81
77
82
-
Please take care to close ports not mentioned above to block access to some of the internal services of OpenVidu platform (like Redis). For example, you can configure public/private ports in any cloud platform ([OpenStak security groups](https://docs.openstack.org/horizon/latest/user/configure-access-and-security-for-instances.html#), [AWS security groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html), etc..) or installing [UFW](https://manpages.ubuntu.com/manpages/bionic/en/man8/ufw.8.html) with the following configuration:
78
+
-**Open these ports** ([here](#close-ports-in-openvidu-server-pro-node-to-avoid-external-attacks) you have an UFW sample to configure a firewall)
83
79
84
-
```
85
-
ufw allow ssh
86
-
ufw allow 80/tcp
87
-
ufw allow 443/tcp
88
-
ufw allow 3478/tcp
89
-
ufw allow 3478/udp
90
-
ufw allow 40000:65535/tcp
91
-
ufw allow 40000:65535/udp
92
-
ufw enable
93
-
```
94
-
95
-
-**Free ports in _OpenVidu Server Pro Node_**: OpenVidu platform services will need the following ports to be available in the machine: 80, 443, 3478, 5442, 5443, 6379. If some of these ports is used by any process, OpenVidu platform won't work correctly. It is a typical error to have an NGINX process in the system before installing OpenVidu. Please uninstall it.
80
+
- **22 TCP**: to connect using SSH to admin OpenVidu.
81
+
- **80 TCP**: if you select Let's Encrypt to generate an SSL certificate this port is used by the generation process.
82
+
- **443 TCP**: OpenVidu Inspector is served by default in standard https port.
83
+
- **3478 TCP+UDP**: used by TURN server to resolve clients IPs.
84
+
- **40000 - 65535 TCP+UDP**: used by TURN server to establish relayed media connections.<br><br>
96
85
97
-
-**Opened portsin _Media Nodes_**
86
+
-**Close all other ports**: this is VERY important to avoid external attacks to OpenVidu internal services. Check troubleshooting section [Close ports in OpenVidu Server Pro Node to avoid external attacks](#close-ports-in-openvidu-server-pro-node-to-avoid-external-attacks) to learn more about this.
98
87
99
-
-**22 TCP**: to connect using SSH to admin OpenVidu.
100
-
-**40000 - 65535 TCP+UDP**: used by Kurento Media Server to establish media connections.
101
-
-**8888 TCP**: Kurento Media Server handler listens on port 8888. <strongstyle="color: #990000">WARNING!!</strong> Port 8888 **must only be accessible for OpenVidu Server Pro instance**. Access trough this port must be restricted from the Internet, or anyone could spy your sessions.<br><br>
88
+
-**Free ports inside the server**: OpenVidu Server Pro Node services will need the following ports to be available inside the machine: 80, 443, 3478, 5442, 5443, 6379. If some of these ports is used by any process, OpenVidu platform won't work correctly. It is a typical error to have an NGINX process in the system before installing OpenVidu. Please uninstall it.
102
89
103
-
If you use [UFW](https://manpages.ubuntu.com/manpages/bionic/en/man8/ufw.8.html) the configuration is:
104
-
105
-
```
106
-
ufw allow ssh
107
-
ufw allow 40000:65535/tcp
108
-
ufw allow 40000:65535/udp
109
-
ufw allow 8888/tcp from <OPENVIDU_SERVER_PRO_IP>
110
-
ufw enable
111
-
```
90
+
-**Port configuration in _Media Nodes_**
112
91
113
-
-**Free ports in _Media Nodes_**: OpenVidu platform services will need the port 8888 to be available in the machine.
92
+
-**Open these ports** ([here](#close-ports-in-media-nodes-to-avoid-external-attacks) you have an UFW sample to configure a firewall)
114
93
115
-
-**Configure a domain name**: OpenVidu Pro is deployed using HTTPS because it is mandatory to use WebRTC. Then, if you do not have a domain name, an autogenerated SSL certificate will be used and an ugly warning will appear to your users when enter to your site. And of course you can suffer a man-in-the-middle attack. So it is recommeded that you configure a domain name pointing to **OpenVidu Server Pro Node** public IP. A valid SSL certificate can be automatically generated using Let's Encrypt in the installation process. If you already have a valid SSL certificate of your own, it also can be configured.
94
+
- **22 TCP**: to connect using SSH to admin OpenVidu.
95
+
- **80 TCP**: to allow OpenVidu Server Pro Node downloading recording files.
96
+
- **40000 - 65535 TCP+UDP**: used by Kurento Media Server to establish media connections.
97
+
- **8888 TCP**: Kurento Media Server handler listens on port 8888. <strong style="color: #990000">WARNING!!</strong> Port 8888 **must only be accessible for OpenVidu Server Pro instance**. Access trough this port must be restricted from the Internet, or anyone could spy your sessions.<br><br>
116
98
99
+
-**Close all other ports**: this is VERY important to avoid external attacks to OpenVidu internal services. Check troubleshooting section [Close ports in Media Nodes to avoid external attacks](#close-ports-in-media-nodes-to-avoid-external-attacks) to learn more about this.
117
100
101
+
-**Free ports inside the server**: Media Node services will need the port 8888 to be available inside the machine.
By default, the [OpenVidu Call](demos/openvidu-call/){:target="_blank"} application is deployed alongside OpenVidu Platform. It is accessible in the URL:
220
204
221
205
```console
222
-
https://openvidu_domain_or_public_ip/
206
+
https://OPENVIDU_DOMAIN_OR_PUBLIC_IP/
223
207
```
224
208
225
209
This application is defined in file `docker-compose.override.yml`. To disable OpenVidu Call application, you can delete the file `docker-compose.override.yml` (or just rename it in case you want to enable it again in the future).
@@ -610,6 +594,25 @@ Configuration properties
610
594
611
595
To change the level of _openvidu-server_ logs change the property `OV_CE_DEBUG_LEVEL` in configuration file `.env`.
612
596
597
+
#### Close ports in OpenVidu Server Pro Node to avoid external attacks
598
+
599
+
Closing all non-necessary ports in your OpenVidu Server Pro Node machine is very important to avoid external attacks. Some administrators using OpenVidu have reported attacks because their ports weren't properly closed. Of course, all of the opened ports stated in [Prerequisites](#1-prerequisites) section must be accessible from the exterior, but the rest must be closed to grant proper protection.
600
+
601
+
Typically, cloud providers initiate their machines with all ports closed by default, so usually it is only necessary to open the required ones. For example, you can configure public/private ports in in OpenStack with [OpenStack security groups](https://docs.openstack.org/horizon/latest/user/configure-access-and-security-for-instances.html#){:target="_blank"}, in AWS with [AWS security groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html){:target="_blank"}, etc...
602
+
603
+
If your only choice is to manually configure a firewall, you can for example install in any GNU/LInux system the great [UFW (Uncomplicated Firewall)](https://manpages.ubuntu.com/manpages/bionic/en/man8/ufw.8.html){:target="_blank"} (`sudo apt install ufw`) with the following configuration to only allow the required ports necessary in your OpenVidu Server Pro Node:
604
+
605
+
```
606
+
ufw allow ssh
607
+
ufw allow 80/tcp
608
+
ufw allow 443/tcp
609
+
ufw allow 3478/tcp
610
+
ufw allow 3478/udp
611
+
ufw allow 40000:65535/tcp
612
+
ufw allow 40000:65535/udp
613
+
ufw enable
614
+
```
615
+
613
616
---
614
617
615
618
### Troubleshooting Media Nodes
@@ -657,6 +660,23 @@ To change the level of Kurento Media Server _kms_ logs change the property `KMS_
657
660
658
661
OpenVidu and Kurento Media Server evolve at a different pace. Sometimes, it is possible that a new KMS is released but OpenVidu is not still updated. In that case, if you hit a bug that might be solved in the last KMS version, you can test if just updating KMS fixes your issue. `KMS_IMAGE` property allows you to specify the new KMS image in configuration file `.env`.
659
662
663
+
#### Close ports in Media Nodes to avoid external attacks
664
+
665
+
Closing all non-necessary ports in your Media Node machines is very important to avoid external attacks. Some administrators using OpenVidu have reported attacks because their ports weren't properly closed. Of course, all of the opened ports stated in [Prerequisites](#1-prerequisites) section must be accessible from the exterior, but the rest must be closed to grant proper protection.
666
+
667
+
Typically, cloud providers initiate their machines with all ports closed by default, so usually it is only necessary to open the required ones. For example, you can configure public/private ports in in OpenStack with [OpenStack security groups](https://docs.openstack.org/horizon/latest/user/configure-access-and-security-for-instances.html#){:target="_blank"}, in AWS with [AWS security groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html){:target="_blank"}, etc...
668
+
669
+
If your only choice is to manually configure a firewall, you can for example install in any GNU/LInux system the great [UFW (Uncomplicated Firewall)](https://manpages.ubuntu.com/manpages/bionic/en/man8/ufw.8.html){:target="_blank"} (`sudo apt install ufw`) with the following configuration to only allow the required ports necessary in your Media Nodes:
0 commit comments