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