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 %}