diff --git a/interface/web/admin/form/firewall.tform.php b/interface/web/admin/form/firewall.tform.php
index e136b345be40b4cc6e48d0c16d1f98d1ef48a104..7c5a29b016023a26a5a88fd4492300a96ac654ef 100644
--- a/interface/web/admin/form/firewall.tform.php
+++ b/interface/web/admin/form/firewall.tform.php
@@ -76,7 +76,7 @@ $form["tabs"]['firewall'] = array (
 			'datatype' => 'VARCHAR',
 			'formtype' => 'TEXT',
 			'validators' => array (  0 => array ( 'type' => 'REGEX',
-					'regex' => '/^[\s0-9\,\:]{0,255}$/',
+					'regex' => '/^\d{1,5}(?::\d{1,5})?(?:,\d{1,5}(?::\d{1,5})?)*$/',
 					'errmsg'=> 'tcp_ports_error_regex'),
 			),
 			'default' => '20,21,22,25,53,80,110,143,443,465,587,993,995,3306,8080,8081,10000',
@@ -88,8 +88,8 @@ $form["tabs"]['firewall'] = array (
 			'datatype' => 'VARCHAR',
 			'formtype' => 'TEXT',
 			'validators' => array (  0 => array ( 'type' => 'REGEX',
-					'regex' => '/^[\s0-9\,\:]{0,255}$/',
-					'errmsg'=> 'tcp_ports_error_regex'),
+					'regex' => '/^\d{1,5}(?::\d{1,5})?(?:,\d{1,5}(?::\d{1,5})?)*$/',
+					'errmsg'=> 'udp_ports_error_regex'),
 			),
 			'default' => '53,3306',
 			'value'  => '',
diff --git a/interface/web/admin/lib/lang/ar_firewall.lng b/interface/web/admin/lib/lang/ar_firewall.lng
index e626345d3c1ee3bbce74ffd70c36fcc7ff3297c2..4b1efe7540a4d997bb0a814a68f437082f768122 100644
--- a/interface/web/admin/lib/lang/ar_firewall.lng
+++ b/interface/web/admin/lib/lang/ar_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Separated by comma';
 $wb['udp_port_help_txt'] = 'Separated by comma';
 $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
-$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, : and ,.';
-$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, : and ,.';
+$wb['tcp_ports_error_regex'] = 'Character not allowed in TCP port definition. Allowed characters are numbers, colons (:) and commas.';
+$wb['udp_ports_error_regex'] = 'Character not allowed in UDP port definition. Allowed characters are numbers, colons (:) and commas.';
 ?>
diff --git a/interface/web/admin/lib/lang/br_firewall.lng b/interface/web/admin/lib/lang/br_firewall.lng
index da0936b007ed9c79766690839374599ecd208e37..3fd7f77d3e4f0c651d7dffaf10231649ccab6e0f 100644
--- a/interface/web/admin/lib/lang/br_firewall.lng
+++ b/interface/web/admin/lib/lang/br_firewall.lng
@@ -1,7 +1,7 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
-$wb['tcp_port_txt'] = 'Portas tcp abertas';
-$wb['udp_port_txt'] = 'Portas udp abertas';
+$wb['tcp_port_txt'] = 'Portas TCP abertas';
+$wb['udp_port_txt'] = 'Portas UDP abertas';
 $wb['tcp_port_help_txt'] = 'Separado por vírgula';
 $wb['udp_port_help_txt'] = 'Separado por vírgula';
 $wb['active_txt'] = 'Ativo';
diff --git a/interface/web/admin/lib/lang/br_firewall_list.lng b/interface/web/admin/lib/lang/br_firewall_list.lng
index 94ef3aab7d61e48ec2d428211bb97357bb00072a..d90ee33d4e5b969bb8fbb1cf0f8c0bebf6755bf8 100644
--- a/interface/web/admin/lib/lang/br_firewall_list.lng
+++ b/interface/web/admin/lib/lang/br_firewall_list.lng
@@ -2,7 +2,7 @@
 $wb['list_head_txt'] = 'Firewall';
 $wb['active_txt'] = 'Ativo';
 $wb['server_id_txt'] = 'Servidor';
-$wb['tcp_port_txt'] = 'Portas tcp abertas';
-$wb['udp_port_txt'] = 'Portas udp abertas';
+$wb['tcp_port_txt'] = 'Portas TCP abertas';
+$wb['udp_port_txt'] = 'Portas UDP abertas';
 $wb['add_new_record_txt'] = 'Adicionar nova regra';
 ?>
diff --git a/interface/web/admin/lib/lang/ca_firewall.lng b/interface/web/admin/lib/lang/ca_firewall.lng
index 06a51c80cfded45c5d62e1a3618ec061033ae025..b81149e1c063da036681d55103a3430bb445fadd 100644
--- a/interface/web/admin/lib/lang/ca_firewall.lng
+++ b/interface/web/admin/lib/lang/ca_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Separated by comma';
 $wb['udp_port_help_txt'] = 'Separated by comma';
 $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
-$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
-$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['tcp_ports_error_regex'] = 'Character not allowed in TCP port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['udp_ports_error_regex'] = 'Character not allowed in UDP port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
 ?>
diff --git a/interface/web/admin/lib/lang/dk_firewall.lng b/interface/web/admin/lib/lang/dk_firewall.lng
index 96608b2830ad4e755d195023c45083f03f658b7d..8137f0560a66a098ecceb5bb307a34144a0ab31e 100644
--- a/interface/web/admin/lib/lang/dk_firewall.lng
+++ b/interface/web/admin/lib/lang/dk_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Adskilt af komma';
 $wb['udp_port_help_txt'] = 'Adskilt af komma';
 $wb['active_txt'] = 'Aktiv';
 $wb['firewall_error_unique'] = 'Der er allerede en firewall post for denne server.';
-$wb['tcp_ports_error_regex'] = 'Tegn ikke tilladt i tcp port definition. Tilladt tegn er tal, \\":\\" og \\",\\".';
-$wb['udp_ports_error_regex'] = 'Tegn ikke tilladt i udp port definition. Tilladt tegn er tal, \\":\\" og \\",\\".';
+$wb['tcp_ports_error_regex'] = 'Tegn ikke tilladt i TCP port definition. Tilladt tegn er tal, \\":\\" og \\",\\".';
+$wb['udp_ports_error_regex'] = 'Tegn ikke tilladt i UDP port definition. Tilladt tegn er tal, \\":\\" og \\",\\".';
 ?>
diff --git a/interface/web/admin/lib/lang/en_firewall.lng b/interface/web/admin/lib/lang/en_firewall.lng
index 94529325a14b88a8f7d59233a885e70866f16ccd..4b1efe7540a4d997bb0a814a68f437082f768122 100644
--- a/interface/web/admin/lib/lang/en_firewall.lng
+++ b/interface/web/admin/lib/lang/en_firewall.lng
@@ -6,7 +6,6 @@ $wb['tcp_port_help_txt'] = 'Separated by comma';
 $wb['udp_port_help_txt'] = 'Separated by comma';
 $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
-$wb['active_txt'] = 'Active';
-$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, ":" and ",".';
-$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, ":" and ",".';
-?>
\ No newline at end of file
+$wb['tcp_ports_error_regex'] = 'Character not allowed in TCP port definition. Allowed characters are numbers, colons (:) and commas.';
+$wb['udp_ports_error_regex'] = 'Character not allowed in UDP port definition. Allowed characters are numbers, colons (:) and commas.';
+?>
diff --git a/interface/web/admin/lib/lang/hu_firewall.lng b/interface/web/admin/lib/lang/hu_firewall.lng
index 461c16d324eda9154ddf9ef35fe07ca27f7ecf8e..1346d37657e86c288f3713f34795a623e7a0230e 100644
--- a/interface/web/admin/lib/lang/hu_firewall.lng
+++ b/interface/web/admin/lib/lang/hu_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Vesszővel elválasztva';
 $wb['udp_port_help_txt'] = 'Vesszővel elválasztva';
 $wb['active_txt'] = 'Aktív';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
-$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, : and ,.';
-$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, : and ,.';
+$wb['tcp_ports_error_regex'] = 'Character not allowed in TCP port definition. Allowed characters are numbers, colons (:) and commas.';
+$wb['udp_ports_error_regex'] = 'Character not allowed in UDP port definition. Allowed characters are numbers, colons (:) and commas.';
 ?>
diff --git a/interface/web/admin/lib/lang/id_firewall.lng b/interface/web/admin/lib/lang/id_firewall.lng
index 34e13422593ac323a2383909417eececf6b899d8..f335c3f94f806f4151d32786f3eb098036825e74 100644
--- a/interface/web/admin/lib/lang/id_firewall.lng
+++ b/interface/web/admin/lib/lang/id_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Dipisahkan oleh koma';
 $wb['udp_port_help_txt'] = 'Dipisahkan oleh koma';
 $wb['active_txt'] = 'Aktif';
 $wb['firewall_error_unique'] = 'Telah ada record firewall untuk server ini.';
-$wb['tcp_ports_error_regex'] = 'Karakter di definisi port tcp tidak diperbolehkan. Karakter yang diizinkan adalah angka, : dan ,.';
-$wb['udp_ports_error_regex'] = 'Karakter di definisi port udp tidak diperbolehkan. Karakter yang diizinkan adalah angka, : dan ,.';
+$wb['tcp_ports_error_regex'] = 'Karakter di definisi port TCP tidak diperbolehkan. Karakter yang diizinkan adalah angka, : dan ,.';
+$wb['udp_ports_error_regex'] = 'Karakter di definisi port UDP tidak diperbolehkan. Karakter yang diizinkan adalah angka, : dan ,.';
 ?>
diff --git a/interface/web/admin/lib/lang/it_firewall.lng b/interface/web/admin/lib/lang/it_firewall.lng
index 95a4336dae81c06b19c7dfb7d869311085780c71..d523ea79f7bf2a66efa47f9d093efff87a56a49f 100644
--- a/interface/web/admin/lib/lang/it_firewall.lng
+++ b/interface/web/admin/lib/lang/it_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Separate dalla virgola';
 $wb['udp_port_help_txt'] = 'Separate dalle virgola';
 $wb['active_txt'] = 'Attivo';
 $wb['firewall_error_unique'] = 'Esiste già  un record firewall per questo server.';
-$wb['tcp_ports_error_regex'] = 'Carattere non ammesso nella definizione di tcp port. Caratteri ammessi sono numeri, : e ,.';
-$wb['udp_ports_error_regex'] = 'Carattere non ammesso nella definizione di udp port. Caratteri ammessi sono numeri, : and ,.';
+$wb['tcp_ports_error_regex'] = 'Carattere non ammesso nella definizione di TCP port. Caratteri ammessi sono numeri, : e ,.';
+$wb['udp_ports_error_regex'] = 'Carattere non ammesso nella definizione di UDP port. Caratteri ammessi sono numeri, : and ,.';
 ?>
diff --git a/interface/web/admin/lib/lang/ro_firewall.lng b/interface/web/admin/lib/lang/ro_firewall.lng
index e626345d3c1ee3bbce74ffd70c36fcc7ff3297c2..4b1efe7540a4d997bb0a814a68f437082f768122 100644
--- a/interface/web/admin/lib/lang/ro_firewall.lng
+++ b/interface/web/admin/lib/lang/ro_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Separated by comma';
 $wb['udp_port_help_txt'] = 'Separated by comma';
 $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
-$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, : and ,.';
-$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, : and ,.';
+$wb['tcp_ports_error_regex'] = 'Character not allowed in TCP port definition. Allowed characters are numbers, colons (:) and commas.';
+$wb['udp_ports_error_regex'] = 'Character not allowed in UDP port definition. Allowed characters are numbers, colons (:) and commas.';
 ?>
diff --git a/interface/web/admin/lib/lang/ru_firewall.lng b/interface/web/admin/lib/lang/ru_firewall.lng
index 70beb30437001e94beb6109e8c518019a5d6059f..179ad739bad695d6b349d19177273cc8f2c2c75f 100644
--- a/interface/web/admin/lib/lang/ru_firewall.lng
+++ b/interface/web/admin/lib/lang/ru_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Перечислить порты TCP через з
 $wb['udp_port_help_txt'] = 'Перечислить порты UDP через запятую';
 $wb['active_txt'] = 'Активно';
 $wb['firewall_error_unique'] = 'Уже есть такая запись брандмауэра для этого сервера.';
-$wb['tcp_ports_error_regex'] = 'Недопустимый символ в указании tcp порта. Корректные сиволы - цифры, \\":\\" и \\",\\"';
+$wb['tcp_ports_error_regex'] = 'Недопустимый символ в указании TCP порта. Корректные сиволы - цифры, \\":\\" и \\",\\"';
 $wb['udp_ports_error_regex'] = 'Некорректный символ в указании UDP порта. Допустимые сиволы - цифры, \\":\\" и \\",\\"';
 ?>
diff --git a/interface/web/admin/lib/lang/se_firewall.lng b/interface/web/admin/lib/lang/se_firewall.lng
index 123a648300bc9d158e2ca319a1819619f4f96c52..fdbfa5ee14b33f90408c356e6d6868b6e3d8d030 100644
--- a/interface/web/admin/lib/lang/se_firewall.lng
+++ b/interface/web/admin/lib/lang/se_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Kommaseparerade';
 $wb['udp_port_help_txt'] = 'Kommaseparerade';
 $wb['active_txt'] = 'Aktiv';
 $wb['firewall_error_unique'] = 'Det finns redan ett brandväggsinlägg för den här servern';
-$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, : and ,.';
-$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, : and ,.';
+$wb['tcp_ports_error_regex'] = 'Character not allowed in TCP port definition. Allowed characters are numbers, colons (:) and commas.';
+$wb['udp_ports_error_regex'] = 'Character not allowed in UDP port definition. Allowed characters are numbers, colons (:) and commas.';
 ?>