Merhaba,
Cpanel için malum güvenlik açığı nedeniyle çoğu firma 2087, 2083 gibi portları kapatmaya başladı. Bu portları hosting kullanıcılarına özel port ile açmak isteyenler aşağıdaki adımları uygulayabilir. 1111 ve 1112 yazan portları kendinize göre uyarlama yapabilirsiniz.

NOT: BU İŞLEM 2087 2083 PORTLARINI KAPATMAZ. BU PORTLARI VERİ MERKEZİNİZDEN KAPATMASINI YADA CSF GİBİ YAZILIMLAR İLE KAPATINIZ. BU İŞLEM SADECE WHM VE CPANELE GİRMEK İÇİN TÜNEL OLUŞTURUR.

cat > /root/cpanel-custom-port-proxy.sh <<'EOF'
#!/bin/bash
set -e

WHM_PORT="1111"
CPANEL_PORT="1112"

HOSTNAME="$(hostname -f)"
CONF="/etc/apache2/conf.d/includes/pre_main_global.conf"
BACKUP="${CONF}.bak.$(date +%F-%H%M%S)"

SSL_CRT="/var/cpanel/ssl/exim/myexim.crt"
SSL_KEY="/var/cpanel/ssl/exim/myexim.key"

echo "Hostname: $HOSTNAME"

if [ ! -f "$SSL_CRT" ] || [ ! -f "$SSL_KEY" ]; then
    echo "HATA: SSL dosyaları bulunamadı."
    echo "Beklenen:"
    echo "$SSL_CRT"
    echo "$SSL_KEY"
    exit 1
fi

echo "SSL kontrol ediliyor..."
openssl x509 -in "$SSL_CRT" -noout -subject -issuer -dates

mkdir -p "$(dirname "$CONF")"

if [ -f "$CONF" ]; then
    cp "$CONF" "$BACKUP"
    echo "Yedek alındı: $BACKUP"
fi

cat > "$CONF" <<EOC
Listen ${WHM_PORT}
Listen ${CPANEL_PORT}

<VirtualHost *:${WHM_PORT}>
    ServerName ${HOSTNAME}

    SSLEngine on
    SSLCertificateFile ${SSL_CRT}
    SSLCertificateKeyFile ${SSL_KEY}

    SSLProxyEngine On
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off

    ProxyPreserveHost On
    ProxyPass / https://127.0.0.1:2087/
    ProxyPassReverse / https://127.0.0.1:2087/
</VirtualHost>

<VirtualHost *:${CPANEL_PORT}>
    ServerName ${HOSTNAME}

    SSLEngine on
    SSLCertificateFile ${SSL_CRT}
    SSLCertificateKeyFile ${SSL_KEY}

    SSLProxyEngine On
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off

    ProxyPreserveHost On
    ProxyPass / https://127.0.0.1:2083/
    ProxyPassReverse / https://127.0.0.1:2083/
</VirtualHost>
EOC

echo "Apache config test..."
apachectl configtest

echo "Rebuild Apache config..."
/scripts/rebuildhttpdconf

echo "Restart HTTPD..."
/scripts/restartsrv_httpd

if [ -x /usr/local/lsws/bin/lswsctrl ]; then
    echo "Restart LiteSpeed..."
    /usr/local/lsws/bin/lswsctrl stop || true
    sleep 3
    /usr/local/lsws/bin/lswsctrl start
fi

echo "Firewall portları açılıyor..."

if command -v firewall-cmd >/dev/null 2>&1; then
    firewall-cmd --permanent --add-port=${WHM_PORT}/tcp || true
    firewall-cmd --permanent --add-port=${CPANEL_PORT}/tcp || true
    firewall-cmd --reload || true
fi

if command -v csf >/dev/null 2>&1; then
    echo ""
    echo "CSF tespit edildi."
    echo "CSF kullanıyorsan /etc/csf/csf.conf içindeki TCP_IN alanına şunları ekle:"
    echo "${WHM_PORT},${CPANEL_PORT}"
    echo "2083 ve 2087 dışarı kapatılacaksa TCP_IN içinden çıkar."
    csf -r || true
fi

echo ""
echo "Test:"
echo "https://${HOSTNAME}:${WHM_PORT}  -> WHM"
echo "https://${HOSTNAME}:${CPANEL_PORT} -> cPanel"
echo ""
echo "SSL kontrol:"
echo "openssl s_client -connect ${HOSTNAME}:${WHM_PORT} -servername ${HOSTNAME} </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates"
echo "openssl s_client -connect ${HOSTNAME}:${CPANEL_PORT} -servername ${HOSTNAME} </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates"
EOF

chmod +x /root/cpanel-custom-port-proxy.sh
bash /root/cpanel-custom-port-proxy.sh