~3 دقیقه مطالعه • بروزرسانی ۲۹ بهمن ۱۴۰۴
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/cpnat2. بهترین شیوهها برای سطح دسترسی اسکریپتها
اجرای اسکریپتها با کاربری غیر از مالک فایل، ریسک امنیتی جدی ایجاد میکند. در نسخه 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
ioncubesourceguardian
کتابخانههای SQL
- PostgreSQL
- SQLite
فایل php.ini
مهم: تغییرات مستقیم در php.ini داخلی cPanel ذخیره نمیشود. از مسیر زیر استفاده کنید:
WHM » Server Configuration » Tweak Settings » PHPاین فایل با php.ini مربوط به EasyApache 4 متفاوت است.
نتیجهگیری
این مقاله پیکربندی 1:1 NAT، بهترین شیوههای امنیتی برای سطح دسترسی اسکریپتها و معرفی کامل PHP داخلی cPanel را پوشش میدهد. رعایت این موارد باعث افزایش امنیت، پایداری و سازگاری سرور میشود.
نوشته و پژوهش شده توسط دکتر شاهین صیامی