diff --git a/access.ips b/access.ips
new file mode 100644
index 0000000000000000000000000000000000000000..0e75ef97d9b0895d7353de06749a5278246daef1
--- /dev/null
+++ b/access.ips
@@ -0,0 +1,62 @@
+### HAProxy Stats - Start ###
+172.22.0.0/16
+### HAProxy Stats - End   ###
+
+
+### Nifi Management - Start ###
+172.22.0.0/16
+0.0.0.0/0
+::/0
+### Nifi Management - End   ###
+
+
+### Nifi ports - Start ###
+172.22.0.0/16
+0.0.0.0/0
+::/0
+### Nifi ports - End   ###
+
+
+### ODFE - Start ###
+172.22.0.0/16
+### ODFE - End   ###
+
+
+### KeyCloak - Start ###
+172.22.0.0/16
+0.0.0.0/0
+::/0
+### KeyCloak - End   ###
+
+
+### TheHive - Start ###
+172.22.0.0/16
+0.0.0.0/0
+::/0
+### TheHive - End   ###
+
+
+### Cortex - Start ###
+172.22.0.0/16
+0.0.0.0/0
+::/0
+### Cortex - End   ###
+
+
+### MISP - Start ###
+172.22.0.0/16
+0.0.0.0/0
+::/0
+### MISP - End   ###
+
+
+### User Management UI - Start ###
+0.0.0.0/0
+::/0
+### User Management UI - End   ###
+
+
+### Kibana - Start ###
+0.0.0.0/0
+::/0
+#### Kibana - End   ###
diff --git a/configure.sh b/configure.sh
index 474618105ff68bf49353e075fb69a20faffa801f..1533ed66f9d82a4b8661b6317d5a301d0064a692 100755
--- a/configure.sh
+++ b/configure.sh
@@ -1,5 +1,65 @@
 #!/bin/bash
 set -e
+
+wait () {
+	secs=${1}
+	while [ $secs -gt 0 ]; do
+	   echo -ne "$secs\033[0K\r"
+	   sleep 1
+	   : $((secs--))
+	done
+}
+
+echo "By default, all services except HAProxy stats and ODFE are public! Do you want to modify accesses to the services?"
+read -p "(yes|no) [no] : " MODIFY
+MODIFY=${MODIFY:-no}
+case $MODIFY in
+	yes|Yes|YES )
+		echo modify
+		echo "please enter(command) which editor want to use for modification(it should be installed already and you should be able to use it)"
+		read -p "[vi] : " EDITOR
+		EDITOR=${EDITOR:-vi}
+		if [[ ( $EDITOR = "vi" ) || $EDITOR = "vim" ]]; then
+			if `which $EDITOR > /dev/null 2>&1`; then
+				echo "Instruction: "
+				echo -e "\t 1. press i to edit file"
+				echo -e "\t 2. modify file based on your needs"
+				echo -e "\t 3. to save changes use followng sequence: 'Esc : wq' and press enter"
+				echo "to discurd changes, use: 'Esc : q!' and press enter"
+				wait 15
+				$EDITOR access.ips
+			else
+				echo "$EDITOR not found. install it and start over"
+                                exit 1
+                        fi
+		else
+			if `which $EDITOR > /dev/null 2>&1`; then
+				$EDITOR access.ips
+			else
+				echo "$EDITOR not found. install it and start over"
+				exit 1
+			fi
+		fi
+		;;
+	no|No|NO )
+		echo no
+		;;
+	* )
+		echo "Unknown answer, not modifing access rules!"
+		wait 5
+		;;
+esac
+
+./generate_haproxy_whitelis_files.sh
+if [ $? -gt 0 ]; then
+	echo "error occured, please check access.ips file structure. lines starting with '###' should not be modified"
+	exit 1
+else
+	echo "access restrictions configured successfully"
+	wait 5
+fi
+
+
 if [ -f group_vars/all/variables.yml ]; then 
 	echo "Variables file (group_vars/all/variables.yml) is configure manually. please take a look if everything is correct and move to next step"
 	cat group_vars/all/variables.yml
@@ -27,7 +87,7 @@ else
 	echo "DN 	- Distinguished Name of the user, for user certificate"
 	echo "CN 	- Common Name of the user, for user certificate"
 	echo "Email will be generated automatically in Username@Domain format becouse of format restrictions in some services"
-	sleep 10
+	wait 10
 	for i in firstname lastname username; do
 		read -p "${i}: " $i
 	      	if [ -z $i ]; then
@@ -41,7 +101,7 @@ else
 	echo
 	echo
 	echo
-	sleep 2
+	wait 2
 	echo "Please check the gethered variables and type 'yes' if everything is correct: "
 	echo "soctoolsproxy: 	$soctoolsproxy"
 	echo "domain: 		$domain"
@@ -52,7 +112,7 @@ else
 	echo "CN:		$CN"
 	echo
 	echo
-	sleep 10
+	wait 10
 	read -p "Correct? type 'yes' or 'no': " ANSWER
 	if [ $ANSWER = "yes" ]; then
 		if ! [ -f group_vars/all/variables.template ]; then
@@ -72,7 +132,7 @@ else
 			echo
 			echo
 			echo "variables file generated (group_vars/all/variables.yml)"
-			sleep 2
+			wait 2
 			echo "move to next command to deploy the soctools cluster."
 			echo 'Thank You!'
 		fi
diff --git a/generate_haproxy_whitelis_files.sh b/generate_haproxy_whitelis_files.sh
new file mode 100755
index 0000000000000000000000000000000000000000..1ddb6dacedf20cd3da673bb1b36b04a2a6fec4f6
--- /dev/null
+++ b/generate_haproxy_whitelis_files.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+awk '/HAProxy Stats - Start/{flag=1; next} /HAProxy Stats - End/{flag=0} flag' access.ips > roles/haproxy/files/stats_whitelist.lst
+awk '/Nifi Management - Start/{flag=1; next} /Nifi Management - End/{flag=0} flag' access.ips > roles/haproxy/files/nifi_whitelist.lst
+awk '/Nifi ports - Start/{flag=1; next} /Nifi ports - End/{flag=0} flag' access.ips > roles/haproxy/files/nifiports_whitelist.lst
+awk '/ODFE  - Start/{flag=1; next} /ODFE - End/{flag=0} flag' access.ips > roles/haproxy/files/odfe_whitelist.lst
+awk '/KeyCloak - Start/{flag=1; next} /KeyCloak - End/{flag=0} flag' access.ips > roles/haproxy/files/keycloak_whitelist.lst
+awk '/TheHive - Start/{flag=1; next} /TheHive - End/{flag=0} flag' access.ips > roles/haproxy/files/thehive_whitelist.lst
+awk '/Cortex - Start/{flag=1; next} /Cortex - End/{flag=0} flag' access.ips > roles/haproxy/files/cortex_whitelist.lst
+awk '/MISP - Start/{flag=1; next} /MISP - End/{flag=0} flag' access.ips > roles/haproxy/files/misp_whitelist.lst
+awk '/User Management UI - Start/{flag=1; next} /User Management UI - End/{flag=0} flag' access.ips > roles/haproxy/files/user-mgmt-ui_whitelist.lst
+awk '/Kibana - Start/{flag=1; next} /Kibana - End/{flag=0} flag' access.ips > roles/haproxy/files/kibana_whitelist.lst
diff --git a/roles/build/templates/cassandra/Dockerfile.j2 b/roles/build/templates/cassandra/Dockerfile.j2
index f5d2a601c1526e9cf119c01bea5e36c2edf8223d..1be98c2e2e82010dd4d4760ccf3f70c9131587cd 100644
--- a/roles/build/templates/cassandra/Dockerfile.j2
+++ b/roles/build/templates/cassandra/Dockerfile.j2
@@ -16,5 +16,4 @@ RUN echo "[cassandra]" > /etc/yum.repos.d/cassandra.repo && \
     sed -i -e 's,/etc/cassandra,/usr/share/cassandra,g' /usr/share/cassandra/cassandra.in.sh && \
     yum -y clean all
 COPY cassandrasupervisord.conf /etc/supervisord.conf
-EXPOSE 7000 9042
 ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
diff --git a/roles/build/templates/cortex/Dockerfile.j2 b/roles/build/templates/cortex/Dockerfile.j2
index a6488add6a4218e6e2d773b5e9f8bd18768e0fa5..7d6de8ff805be2cf23c74474870c7e9dd2513e60 100644
--- a/roles/build/templates/cortex/Dockerfile.j2
+++ b/roles/build/templates/cortex/Dockerfile.j2
@@ -23,6 +23,5 @@ RUN echo "[thehive-project]" > /etc/yum.repos.d/thehive.repo && \
     for I in analyzers/*/requirements.txt; do LC_ALL=en_US.UTF-8 pip3 install --no-cache-dir -U -r $I || true; done && \
     for I in responders/*/requirements.txt; do LC_ALL=en_US.UTF-8 pip3 install --no-cache-dir -U -r $I || true; done && \
     yum -y clean all
-EXPOSE 9001
 COPY cortexsupervisord.conf /etc/supervisord.conf
 ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
diff --git a/roles/build/templates/elasticsearch/Dockerfile.j2 b/roles/build/templates/elasticsearch/Dockerfile.j2
index 6f273d635c0c0135bf99fc07efe06c37134c5379..7947f249dfbcd76cd796e5599269bdf25d436b29 100644
--- a/roles/build/templates/elasticsearch/Dockerfile.j2
+++ b/roles/build/templates/elasticsearch/Dockerfile.j2
@@ -17,6 +17,5 @@ RUN rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch && \
 
 RUN echo 'elasticsearch ALL=(ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers
 
-EXPOSE 9200 9300
 ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
 
diff --git a/roles/build/templates/keycloak/Dockerfile.j2 b/roles/build/templates/keycloak/Dockerfile.j2
index 561a6466f121ee2462dab388ed99a580f16ba39c..1b1d181af974dbdcd8882c4eeeb1e0d63c2a8e40 100644
--- a/roles/build/templates/keycloak/Dockerfile.j2
+++ b/roles/build/templates/keycloak/Dockerfile.j2
@@ -34,9 +34,6 @@ ENV PATH="/opt/jboss/keycloak/bin:${PATH}"
 
 WORKDIR /opt/jboss/keycloak
 
-EXPOSE 8080
-EXPOSE 8443
-
 RUN echo 'jboss ALL=(ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers
 
 COPY keycloaksupervisord.conf /etc/supervisord.conf
diff --git a/roles/build/templates/kibana/Dockerfile.j2 b/roles/build/templates/kibana/Dockerfile.j2
index ef2a4768f809d02b8320cb90963ea701cbddec16..db7d064db56e385b1c695a349db18a610346e5a3 100644
--- a/roles/build/templates/kibana/Dockerfile.j2
+++ b/roles/build/templates/kibana/Dockerfile.j2
@@ -17,7 +17,6 @@ RUN rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch && \
 
 RUN echo 'kibana ALL=(ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers
 
-EXPOSE 5601
 COPY kibanasupervisord.conf /etc/supervisord.conf
 ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
 
diff --git a/roles/build/templates/misp/Dockerfile.j2 b/roles/build/templates/misp/Dockerfile.j2
index 4f7518b56e168bcfd5229d4a1381c48dc09b9560..f5e6557cb0d00a5e45dfcac089452e00ebbeb6fc 100644
--- a/roles/build/templates/misp/Dockerfile.j2
+++ b/roles/build/templates/misp/Dockerfile.j2
@@ -80,9 +80,6 @@ RUN chown -R apache:apache /var/www/MISP ; \
 
 COPY misp_rh-php72-php-fpm /etc/logrotate.d/rh-php72-php-fpm
 
-# 80/443 - MISP web server, 3306 - mysql, 6379 - redis, 6666 - MISP modules, 50000 - MISP ZeroMQ
-EXPOSE 80 443 6443 6379 6666 50000
-
 ENV PATH "$PATH:/opt/rh/rh-php72/root/bin/"
 
 COPY mispsupervisord.conf /etc/supervisord.conf
diff --git a/roles/build/templates/mysql/Dockerfile.j2 b/roles/build/templates/mysql/Dockerfile.j2
index 393eb3f8a06e049cbdb9b180f0cd4f093e7e86ab..6ce391e96c27329b3284d415e6277ce0b3d8110a 100644
--- a/roles/build/templates/mysql/Dockerfile.j2
+++ b/roles/build/templates/mysql/Dockerfile.j2
@@ -6,7 +6,6 @@ RUN yum -y update && yum install -y epel-release centos-release-scl scl-utils &&
     /usr/bin/scl enable rh-mariadb103 -- /opt/rh/rh-mariadb103/root/usr/libexec/mysql-prepare-db-dir /var/opt/rh/rh-mariadb103/lib/mysql 
 RUN yum clean all
 
-EXPOSE 3306
 COPY mysqlsupervisord.conf /etc/supervisord.conf
 
 ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
diff --git a/roles/build/templates/nifi/Dockerfile.j2 b/roles/build/templates/nifi/Dockerfile.j2
index f85cf4788654c054d76d7f85697d46387ad60c9d..12161691aad9fe96550e10000f17cc046c5d4e8b 100644
--- a/roles/build/templates/nifi/Dockerfile.j2
+++ b/roles/build/templates/nifi/Dockerfile.j2
@@ -82,9 +82,6 @@ RUN curl -fSL ${MIRROR_BASE_URL}/${NIFI_BINARY_PATH} -o ${NIFI_BASE_DIR}/nifi-${
 # Clear nifi-env.sh in favour of configuring all environment variables in the Dockerfile
 RUN echo "#!/bin/sh\n" > $NIFI_HOME/bin/nifi-env.sh
 
-# Web HTTP(s) & Socket Site-to-Site Ports
-EXPOSE 8080 8443 10000 8000
-
 WORKDIR ${NIFI_HOME}
 
 # Apply configuration and start NiFi
diff --git a/roles/build/templates/odfekibana/Dockerfile-kibana.j2 b/roles/build/templates/odfekibana/Dockerfile-kibana.j2
index 05a1c40b3ac3cb718e524cef5225102e7ece1e55..e61707f4e5eae7e83b4c0fb023ebf3916621dc55 100644
--- a/roles/build/templates/odfekibana/Dockerfile-kibana.j2
+++ b/roles/build/templates/odfekibana/Dockerfile-kibana.j2
@@ -17,7 +17,6 @@ RUN rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch && \
 
 RUN echo 'kibana ALL=(ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers
 
-EXPOSE 5601
 COPY kibanasupervisord.conf /etc/supervisord.conf
 ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
 
diff --git a/roles/build/templates/thehive/Dockerfile.j2 b/roles/build/templates/thehive/Dockerfile.j2
index c1df6fa7d77aaf2a1ce21b10c28b69a00b952d43..fa330f38aef5f963d5694817eef8a803f4c322d2 100644
--- a/roles/build/templates/thehive/Dockerfile.j2
+++ b/roles/build/templates/thehive/Dockerfile.j2
@@ -15,6 +15,5 @@ RUN echo "[thehive-project]" > /etc/yum.repos.d/thehive.repo && \
     mkdir -p /home/thehive && \
     chown -R thehive:thehive /home/thehive /etc/thehive && \
     yum -y clean all
-EXPOSE 9000
 COPY thehivesupervisord.conf /etc/supervisord.conf
 ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
diff --git a/roles/build/templates/zookeeper/Dockerfile.j2 b/roles/build/templates/zookeeper/Dockerfile.j2
index 19ae977882802ec3725ce8f7875b4801786153cf..7215fb6e263951227c297dee7ea067b8a61853f0 100644
--- a/roles/build/templates/zookeeper/Dockerfile.j2
+++ b/roles/build/templates/zookeeper/Dockerfile.j2
@@ -24,9 +24,6 @@ RUN curl -fSL ${MIRROR_BASE_URL}/${ZOOKEEPER_BINARY_PATH} -o ${ZOOKEEPER_BASE_DI
     && rm ${ZOOKEEPER_BASE_DIR}/apache-zookeeper-${ZOOKEEPER_VERSION}-bin.tar.gz \
     && cp ${ZOOKEEPER_BASE_DIR}/zookeeper/conf/zoo_sample.cfg ${ZOOKEEPER_BASE_DIR}/zookeeper/conf/zoo.cfg
 
-# Web HTTP(s) & Socket Site-to-Site Ports
-EXPOSE 2181 2888 3888
-
 WORKDIR ${ZOOKEEPER_BASE_DIR}/zookeeper
 
 #ENTRYPOINT ["/opt/zookeeper/bin/zkServer.sh"]
diff --git a/roles/docker/tasks/haproxy.yml b/roles/docker/tasks/haproxy.yml
index 4eca955c135b997404dd48027ccde47a76ad1bc2..6353030097ab67757f4b08ca2922afa51070b7fb 100644
--- a/roles/docker/tasks/haproxy.yml
+++ b/roles/docker/tasks/haproxy.yml
@@ -9,17 +9,18 @@
       - name: "{{ soctools_netname}}"
     networks_cli_compatible: yes
     published_ports:
-      - "443:443"
-      - "5443:5443"
       - "8888:8888"
-      - "8443:8443"
       - "9443:9443"
       - "9200:9200"
       - "7750:7750"
-      - "5000-5099:5000-5099"
-      - "6000-6099:6000-6099"
       - "9000:9000"
       - "9001:9001"
+      - "12443:12443"
+      - "5601:5601"
+      - "5443:5443"
+      - "6443:6443"
+      - "5000-5099:5000-5099"
+      - "6000-6099:6000-6099"
     interactive: "yes"
   tags:
     - start-docker-containers
diff --git a/roles/docker/tasks/keycloak.yml b/roles/docker/tasks/keycloak.yml
index dfc073cbc62c75d2605d51202b7285d9b71c02e3..719344903170c49c8166204108efd2ff99f73e98 100644
--- a/roles/docker/tasks/keycloak.yml
+++ b/roles/docker/tasks/keycloak.yml
@@ -8,8 +8,6 @@
     networks:
       - name: "{{ soctools_netname }}"
     networks_cli_compatible: yes
-    published_ports:
-      - "12443:8443"
     interactive: "yes"
   with_items: "{{ groups['keycloakcontainers'] }}"
   tags:
diff --git a/roles/docker/tasks/misp.yml b/roles/docker/tasks/misp.yml
index 953f3869b88613156415ed87ad02f9b54236a0d7..acba5eadac6af1f644a5177df1f7c7716afc6492 100644
--- a/roles/docker/tasks/misp.yml
+++ b/roles/docker/tasks/misp.yml
@@ -9,8 +9,6 @@
       - name: "{{ soctools_netname}}"
     interactive: "yes"
     networks_cli_compatible: yes
-    published_ports:
-      - "6443:6443"
   tags:
     - start-docker-containers
 
diff --git a/roles/docker/tasks/odfekibana.yml b/roles/docker/tasks/odfekibana.yml
index af5662297eef035ece118686b1ae6c4865f2a082..8426ce61d2d839917dca6fddfb7166a52f39d7cc 100644
--- a/roles/docker/tasks/odfekibana.yml
+++ b/roles/docker/tasks/odfekibana.yml
@@ -8,8 +8,6 @@
     networks:
       - name: "{{ soctools_netname }}"
     networks_cli_compatible: yes
-    published_ports:
-      - "5601:5601"
     interactive: "yes"
   with_items: "{{ groups['odfekibanacontainers'] }}"
   tags:
diff --git a/roles/haproxy/tasks/init.yml b/roles/haproxy/tasks/init.yml
index a64cc79d5eb6e090be09a704e4ef1cec57ee0f1d..aaf8aa32add3a1c818b3128899b2f90c786116dc 100644
--- a/roles/haproxy/tasks/init.yml
+++ b/roles/haproxy/tasks/init.yml
@@ -6,6 +6,23 @@
     src: haproxy.cfg.j2
     dest: /usr/local/etc/haproxy/haproxy.cfg
 
+- name: Copy acl files
+  ansible.builtin.copy:
+    src: "{{ item }}_whitelist.lst"
+    dest: /usr/local/etc/haproxy/
+    mode: '0644'
+  with_items:
+  - stats
+  - nifi
+  - nifiports
+  - odfe
+  - keycloak
+  - thehive
+  - cortex
+  - misp
+  - user-mgmt-ui
+  - kibana
+
 - name: Create required directories
   file:
    path: "{{ item }}"
diff --git a/roles/haproxy/tasks/main.yml b/roles/haproxy/tasks/main.yml
index d0fb7ab228972bfc8c8469c6df41b91edbef4919..22c71d3f3bfbe7bb248cc9507703fef6289835aa 100644
--- a/roles/haproxy/tasks/main.yml
+++ b/roles/haproxy/tasks/main.yml
@@ -20,3 +20,5 @@
   tags:
    - restart
    - restart-haproxy
+   - update-config
+   - update-haproxy-config
diff --git a/roles/haproxy/tasks/update-config.yml b/roles/haproxy/tasks/update-config.yml
index dc5cb8b945b946e99703bae873010e836317fa33..58506a4340e19d4386d1f9157c38cc49e38fb2ae 100644
--- a/roles/haproxy/tasks/update-config.yml
+++ b/roles/haproxy/tasks/update-config.yml
@@ -6,3 +6,19 @@
     src: haproxy.cfg.j2
     dest: /usr/local/etc/haproxy/haproxy.cfg
 
+- name: Copy acl files
+  ansible.builtin.copy:
+    src: "{{ item }}_whitelist.lst"
+    dest: /usr/local/etc/haproxy/
+    mode: '0644'
+  with_items:
+  - stats
+  - nifi
+  - nifiports
+  - odfe
+  - keycloak
+  - thehive
+  - cortex
+  - misp
+  - user-mgmt-ui
+  - kibana
diff --git a/roles/haproxy/templates/haproxy.cfg.j2 b/roles/haproxy/templates/haproxy.cfg.j2
index 3166247724fe2b6a0a23d58f0b38460e80ed5f76..8a92792b895a8ada0a1fed8176ad6ea9cb44dac6 100644
--- a/roles/haproxy/templates/haproxy.cfg.j2
+++ b/roles/haproxy/templates/haproxy.cfg.j2
@@ -23,6 +23,7 @@ listen stats
         stats uri     /
         stats realm   HAProxy Statistics
         stats auth    haproxy:{{lookup('password', '{{playbook_dir}}/secrets/passwords/haproxy_stats')}}
+	tcp-request connection reject if !{ src -f /usr/local/etc/haproxy/stats_whitelist.lst }
 
 listen nifiserv
 	bind *:9443 ssl crt /etc/ssl/haproxy alpn h2,http/1.1
@@ -35,6 +36,7 @@ listen nifiserv
 {% for nifihost in groups['nificontainers'] %}
 	server {{nifihost}} {{nifihost}}:9443 ssl check verify none
 {% endfor %}
+	tcp-request connection reject if !{ src -f /usr/local/etc/haproxy/nifi_whitelist.lst }
 
 listen odfeserv
         bind *:9200 ssl crt /etc/ssl/haproxy alpn h2,http/1.1
@@ -47,9 +49,10 @@ listen odfeserv
 {% for odfehost in groups['odfeescontainers'] %}
      	server {{odfehost}} {{odfehost}}:9200 ssl check verify none
 {% endfor %}
+	tcp-request connection reject if !{ src -f /usr/local/etc/haproxy/odfe_whitelist.lst }
 	
 listen keycloakserv
-        bind *:10443 ssl crt /etc/ssl/haproxy alpn h2,http/1.1
+        bind *:12443 ssl crt /etc/ssl/haproxy alpn h2,http/1.1
         mode http
         maxconn 5000
         fullconn 5000
@@ -59,6 +62,7 @@ listen keycloakserv
 {% for keycloakhost in groups['keycloakcontainers'] %}
 	server {{keycloakhost}} {{keycloakhost}}:8443 ssl check verify none
 {% endfor %}
+	tcp-request connection reject if !{ src -f /usr/local/etc/haproxy/keycloak_whitelist.lst }
 
 listen thehiveserv
         bind *:9000 ssl crt /etc/ssl/haproxy alpn h2,http/1.1
@@ -72,6 +76,7 @@ listen thehiveserv
 {% for thehivehost in groups['thehive'] %}
 	server {{thehivehost}} {{thehivehost}}:9000 check verify none
 {% endfor %}
+	tcp-request connection reject if !{ src -f /usr/local/etc/haproxy/thehive_whitelist.lst }
 
 listen cortexserv
         bind *:9001 ssl crt /etc/ssl/haproxy alpn h2,http/1.1
@@ -85,9 +90,10 @@ listen cortexserv
 {% for cortexhost in groups['cortex'] %}
 	server {{cortexhost}} {{cortexhost}}:9001 check verify none
 {% endfor %}
+	tcp-request connection reject if !{ src -f /usr/local/etc/haproxy/cortex_whitelist.lst }
 
-listen user-mgmt-ui
-        bind *:5443 ssl crt /etc/ssl/haproxy alpn h2,http/1.1
+listen kibanaserv
+        bind *:5601 ssl crt /etc/ssl/haproxy alpn h2,http/1.1
         mode http
         maxconn 5000
         fullconn 5000
@@ -95,39 +101,36 @@ listen user-mgmt-ui
         option tcpka
         option forwardfor
         option httplog
-        server soctools_server {{ soctools_network_gw }}:8050
+{% for kibanahost in groups['odfekibanacontainers'] %}
+        server {{kibanahost}} {{kibanahost}}:5601 ssl check verify none
+{% endfor %}
+	tcp-request connection reject if !{ src -f /usr/local/etc/haproxy/kibana_whitelist.lst }
 
-{% for port in range(50, 60) %}
-listen nifiservtcp77{{port}}
-	bind *:77{{port}}
-	mode tcp
+listen mispserv
+        bind *:6443 ssl crt /etc/ssl/haproxy alpn h2,http/1.1
+        mode http
         maxconn 5000
         fullconn 5000
         balance source
         option tcpka
-	option tcp-check
-        option tcplog
-	tcp-check connect port 77{{port}}
-{% for nifihost in groups['nificontainers'] %}
-   	server {{nifihost}} {{nifihost}}:77{{port}} check
-
-{% endfor %}
+        option forwardfor
+        option httplog
+{% for misphost in groups['mispcontainers'] %}
+        server {{misphost}} {{misphost}}:6443 ssl check verify none
 {% endfor %}
+	tcp-request connection reject if !{ src -f /usr/local/etc/haproxy/misp_whitelist.lst }
 
-
-listen nifiservtcp7771
-	bind *:7771
-	mode tcp
+listen user-mgmt-ui
+        bind *:5443 ssl crt /etc/ssl/haproxy alpn h2,http/1.1
+        mode http
         maxconn 5000
         fullconn 5000
         balance source
         option tcpka
-	option tcp-check
-        option tcplog
-	tcp-check connect port 7771
-{% for nifihost in groups['nificontainers'] %}
-   	server {{nifihost}} {{nifihost}}:7771 check
-{% endfor %}
+        option forwardfor
+        option httplog
+        server soctools_server {{ soctools_network_gw }}:8050
+	tcp-request connection reject if !{ src -f /usr/local/etc/haproxy/user-mgmt-ui_whitelist.lst }
 
 
 {% for port in range(5000, 5020) %}
@@ -142,6 +145,7 @@ listen nifiservhttp{{port}}
 {% for nifihost in groups['nificontainers'] %}
         server {{nifihost}} {{nifihost}}:{{port}} check
 {% endfor %}
+	tcp-request connection reject if !{ src -f /usr/local/etc/haproxy/nifiports_whitelist.lst }
 
 {% endfor %}
 
@@ -160,5 +164,6 @@ listen nifiservtcp{{port}}
 {% for nifihost in groups['nificontainers'] %}
         server {{nifihost}} {{nifihost}}:{{port}} check
 {% endfor %}
+	tcp-request connection reject if !{ src -f /usr/local/etc/haproxy/nifiports_whitelist.lst }
 
 {% endfor %}