پیکربندی 1:1 NAT، بهترین شیوه‌های سطح دسترسی اسکریپت‌ها، و معرفی کامل PHP داخلی cPanel

این مقاله نحوه پیکربندی 1:1 NAT در cPanel & WHM، مدیریت IPها و بازسازی فایل cpnat، بهترین شیوه‌های امنیتی برای سطح دسترسی اسکریپت‌ها و جلوگیری از افزایش سطح دسترسی، و همچنین معرفی کامل ماژول‌ها، لودرها و تنظیمات PHP داخلی cPanel را توضیح می‌دهد.

1:1 NAT cPanelScript PermissionSecurity cPanelPHP Modules

~3 min read • Updated Feb 18, 2026

1. پیکربندی 1:1 NAT در cPanel & WHM


cPanel & WHM هنگام نصب، شبکه NAT را شناسایی کرده و به‌صورت خودکار IPهای خصوصی را به IPهای عمومی نگاشت می‌کند. این فرآیند فقط باید روی نصب تازه انجام شود.


هشدار: هرگز روی سرورهای در حال استفاده (Production) پیکربندی NAT را تغییر ندهید.


نحوه انجام نگاشت IP


سیستم از هر IP محلی یک درخواست به http://myip.cpanel.net/v1.0/ ارسال می‌کند. این سرویس IP عمومی را برمی‌گرداند و سیستم آن را با IP خصوصی نگاشت می‌کند.


نکته مهم: هرگز چند IP خصوصی را به یک IP عمومی نگاشت نکنید.


مدیریت IPها در WHM


  • WHM » IP Functions » Add a New IP Address
  • WHM » IP Functions » Show or Delete Current IP Addresses
  • WHM » IP Functions » IP Migration Wizard

اگر چند IP خصوصی به یک IP عمومی برسند، فقط اولین IP در فایل /var/cpanel/cpnat استفاده می‌شود.


بازسازی فایل cpnat


برای استفاده از سرویس lookup متفاوت:


echo "MYIP=https://ifconfig.me/ip" >> /etc/cpsources.conf
/usr/local/cpanel/scripts/build_cpnat

اگر فایل cpnat حذف یا خراب شد، با همین اسکریپت بازسازی کنید.


برای غیرفعال‌سازی NAT، فایل زیر را حذف کنید:


/var/cpanel/cpnat

2. بهترین شیوه‌ها برای سطح دسترسی اسکریپت‌ها


اجرای اسکریپت‌ها با کاربری غیر از مالک فایل، ریسک امنیتی جدی ایجاد می‌کند. در نسخه 132، سطح دسترسی فایل /etc/trueuserowners محدود شد تا از خواندن آن توسط کاربران دیگر جلوگیری شود.


خطاهای احتمالی


  • CGIهایی که با کاربر nobody اجرا می‌شوند، اطلاعات تماس اشتباه نمایش می‌دهند.
  • در لاگ Apache ممکن است ببینید:
    [SCRIPT-NAME] /etc/trueuserowners is not readable as nobody

چرا نباید اسکریپت را با کاربر دیگر اجرا کرد؟


  • خطر افزایش سطح دسترسی (Privilege Escalation)
  • نیاز به world-readable کردن فایل‌ها
  • عدم سازگاری با استانداردهای امنیتی مدرن

روش صحیح


فقط با کاربر مالک فایل اسکریپت را اجرا کنید. سطح دسترسی پیشنهادی:


chmod 640 filename
chmod 750 directory

رفتار EasyApache 4


EasyApache 4 برنامه‌های Podman و Passenger را با کاربر مالک اجرا می‌کند.


اسکریپت‌های CGI با این هندلرها به‌عنوان کاربر اجرا می‌شوند:


  • suexec
  • ruid2
  • ITK

رفتار PHP:


  • PHP-FPM و Ruid2 همیشه PHP را به‌عنوان کاربر اجرا می‌کنند.
  • suexec فقط با PHP CGI یا lsapi کاربر را حفظ می‌کند.
  • suphp نیاز به suphp + suexec دارد.
  • ITK فقط با PHP-FPM کاربر را حفظ می‌کند.

3. معرفی کامل PHP داخلی cPanel


cPanel & WHM شامل PHP 8.4 و ماژول‌های PEAR، PECL و لودرهای PHP است.


ماژول‌های PHP


ماژول‌های داخلی شامل موارد زیر هستند:


bcmath, bz2, Core, ctype, curl, date, dom, fileinfo, filter, ftp, gd, gettext, hash, iconv, intl, json, ldap, libxml, mbstring, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, random, Reflection, session, SimpleXML, soap, sockets, SPL, sqlite3, standard, sysvsem, sysvshm, tidy, tokenizer, xml, xmlreader, xmlwriter, xsl, zip, zlib


ماژول‌های PEAR و PECL


شامل:


Archive_Tar, Auth_SASL2, Cache, Console_Color, Date, Date_Holidays, File, HTML_Template_IT, HTTP, Log, Mail, MDB2, Net_DNS2, Net_FTP, Net_IMAP, Net_SMTP, Net_Socket, Net_URL, Services_Weather, XML_Parser, XML_RPC, XML_Serializer, XML_SVG


PHP Loaders


  • ioncube
  • sourceguardian

کتابخانه‌های SQL


  • PostgreSQL
  • SQLite

فایل php.ini


مهم: تغییرات مستقیم در php.ini داخلی cPanel ذخیره نمی‌شود. از مسیر زیر استفاده کنید:


WHM » Server Configuration » Tweak Settings » PHP

این فایل با php.ini مربوط به EasyApache 4 متفاوت است.


نتیجه‌گیری


این مقاله پیکربندی 1:1 NAT، بهترین شیوه‌های امنیتی برای سطح دسترسی اسکریپت‌ها و معرفی کامل PHP داخلی cPanel را پوشش می‌دهد. رعایت این موارد باعث افزایش امنیت، پایداری و سازگاری سرور می‌شود.


Written & researched by Dr. Shahin Siami