#!/bin/sh set -e set -x port="$1" reverseproxy_ip="$2" integration_ip="$3" # switch SSH to port $port sed -i -e 's/^#\?\s*Port\s*[0-9]\+\s*$/Port '$port'/g' /etc/ssh/sshd_config # Install SELinux yum install -y selinux-policy policycoreutils-python # Tell SELinux to allow the new port if grep -q '/$' /proc/1/cgroup; then # not in a container semanage port -a -t ssh_port_t -p tcp "$port" else # in container; will fail if host does not have SELinux enabled if ! semanage port -a -t ssh_port_t -p tcp "$port"; then echo "I: can't use SELinux, your host probably does not have it enabled" fi fi # Restart SSH systemctl restart sshd # Clean iptables before adding our rules systemctl stop iptables || echo "Not Installed" iptables -F iptables -F -t nat # Setup port redirect iptables -t nat -A PREROUTING -d $reverseproxy_ip/32 -p tcp -m tcp --dport 22 -j DNAT --to-destination $integration_ip:22 iptables -t nat -A POSTROUTING -d $integration_ip/32 -p tcp -m tcp --dport 22 -j SNAT --to-source $reverseproxy_ip if grep -q '/$' /proc/1/cgroup; then # only on non-containers sysctl -w net.ipv4.ip_forward=1 fi