DirectAdmin

بررسی و رفع مشکلات مربوط به ورود به دایرکت ادمین

اگر بخواهیم به معرفی دایرکت ادمین به صورت کوتاه بپردازیم می توان گفت ، دایرکت ادمین در واقع یک کنترل پنل وب هاستینگ مشابه cPanel می باشد، با محیطی کاملا گرافیکی و با کاربردی راحت و آسان، که باعث می شود مدیریت وب سایت بسیار راحت و ساده شود. همچنین به شما امکان می دهد وب سایت و گزینه های میزبانی خود را با استفاده از یک رابط گرافیکی و مبتنی بر وب مدیریت کنید. اما گاهی ممکن است بعد از نصب DirectAdmin هنگام ورود با مشکل مواجه شوید. ما در این پست به بررسی مشکلات ورود به دایرکت ادمین می پردازیم.

اشکال زدایی اولیه دایرکت ادمین

در ابتدا یافتن مشکلات ورود به دایرکت ادمین باید به اشکال زدایی (debug) بپردازید. برای این کار دستور زیر را اجرا کنید:

cd /usr/local/directadmin
killall -9 directadmin
./directadmin server "--debug=2000"

اکنون، هنگامی که به DA (DirectAdmin) متصل می شوید، هر کاری که انجام می دهید در این قسمت نمایش داده می شوندو شما به راحتی می توانید مشکل را پیدا کنید. اما اگر می‌ خواهید به اشکال زدایی یک اسکریپت API بپردازید، یک راه مفید برای فیلتر کردن خروجی و راه‌ اندازی DA، اجرای دستور زیر است:

./directadmin server "--debug=2000" | grep string

با اجرای دستور فوق فقط داده های ارسال شده به شما نشان داده می شود. اما راه دیگری هم برای فیلتر کردن این داده ها وجود دارد. برای این کار تمام داده های debug را در یک فایل ذخیره کنید و سپس دستور زیر را اجرا کنید:

./directadmin server "--debug=2000" > /var/log/directadmin/debug.log

برای گرفتن خروجی در این روش، Ctrl+C را فشار دهید، سپس دستور زیر را در ترمینال تایپ کنید:

./directadmin server --debug=10

با اجرای این دستور دایرکت ادمین در حالت پیش‌ فرض “daemon” بارگیری می‌ شود.

مشکلات رایج ورود به دایرکت ادمین

در ادامه به معرفی برخی از رایج ترین مشکلات ورود به دایرکت ادمین می پردازیم.

خطای اول: Cannot connect to DA on port 2222

اگر نمی توانید از طریق پورت 2222 به سرور خود دسترسی پیدا کنید، باید موارد زیر را بررسی کنید:

1. آیا دایرکت ادمین روی سرور اجرا می شود؟

اگر مشاهده کردید که سرویس از کار افتاده است، دستور زیر را اجرا کنید:

tail /var/log/directadmin/error.log

مشکلات رایج عبارتند از:

1.ethernet_dev به صورت نادرست در فایل /usr/local/directadmin/conf/directadmin.conf تنظیم شده است.
2.به دلیل uid/lid یا IP اشتباه مجوز نا معتبر است.

3. IP شما در لیست سیاه /usr/local/directadmin/data/admin/ip_blacklist قرار دارد. برای این مورد باید “brute force login detection” در Admin Settings بررسی شود. در این قسمت می توانید تعداد دفعات تلاش نا موفق را تنظیم کنید تا دیگر مشکل قرار گرفتن در لیست سیاه برای شما اتفاق نیفتد. ما پیشنهاد می کنیم این تعداد دفعات تلاش نا موفق کمتر از 10 بار نباشد، زیرا حتی بارگیری صفحه ورود به سیستم، به عنوان یک تلاش ناموفق به حساب می آید.
4. برای باینری ها از یک سیستم عامل دیگر استفاده کرد.

اگر دایرکت ادمین قبلا اجرا نشده است سعی کنید آن را به کمک دستور زیر به صورت دستی اجرا کنید تا ببینید مشکل چیست:

cd /usr/local/directadmin
./directadmin b200

به احتمال زیاد، پیام خطا روی صفحه نمایش داده می شود. اگر خطایی دیده نشد برای توقف کلید های Ctrl+C را بزنید.

2. آیا پورت 2222 در فایروال باز است؟

اگر DirectAdmin در حال اجرا است اما نمی توانید از خارج به آن دسترسی داشته باشید، دلیل رایج این است که پورت 2222 در فایروال بسته است. ابتدا دسترسی به پورت 2222 را در IP 127.0.0.1 باز کنید. برای این کار دستور زیر را اجر کنید:

telnet 127.0.0.1 2222

در ادامه به کمک دستور زیر فایروال را در CentOS7 متوقف کنید:

systemctl disable firewalld
systemctl stop firewalld

سپس می توانید با اجرای دستور زیر پورت 2222 را باز کنید:

firewall-cmd --zone=public --add-port=2222/tcp --permanent

اما برای متوقف کردن فایروال در CentOS 6، اوبونتو و دبیان باید دستور زیر را اجرا کنید:

service iptables stop
chkconfig iptables off
iptables -I INPUT -p tcp --dport 3030 -j ACCEPT

برای متوقف کردن فایروال درFreeBSD نیز باید دستور زیر را اجرا کنید:

ipfw -a list
ipfw add 02222 allow ip from any to any 2222

خطای دوم: Cannot login to DA as admin

یکی دیگر از مشکلات ورود به دایرکت ادمین، این است که نمی توانید به عنوان ادمین وارد دایرکت ادمین شوید، این مشکل معمولاً به خاطر یکی از موارد زیر است:

  1. پارتیشن شما که فایل های DirectAdmin را ذخیره می کند احتمالا پر شده است. این فایل ها برای ذخیره اطلاعات ورود مورد نیاز است. برای بررسی پارتیشن های خود، دستور df -h را اجرا کنید تا بررسی کنید، فایل ها در /usr/local/directadmin/data/sessions ذخیره می‌ شوند.
  2. IP شما در حال تغییر است. این مشکل ممکن است زمانی اتفاق بیفتد که ارائه دهنده اینترنت شما یک آدرس IP را که مدام در حال تغییر است را به شما داده باشد. رایج ترین ارائه دهنده ای که این کار را انجام می دهد ارائه دهنده اینترنت ماهواره ای است. دایرکت ادمین IP را برای هر درخواست بررسی می کند، بنابراین اگر IP شما تغییر کند، به صفحه ورود منتقل می شوید. برای حل این مشکل هنگام ورود به دایرکت ادمین، می توانید بررسی IP را غیر فعال کنید تا IP متغییر شما مجاز باشد.
  3. شما از رمز عبور اشتباه استفاده می کنید. سعی کنید آن را از طریق SSH به عنوان کاربر Root تنظیم مجدد کنید و رمز جدید وارد کنید. برای این کار دستور زیر را اجرا کنید:
passwd admin

از همین دستور برای بازنشانی رمز عبور برای هر کاربر نیز می توانید استفاده کنید (در دستور بالا به جای admin نام کاربری که نیاز به بازنشانی رمز عبور دارد را جایگزین کنید).

4. ساعت سیستم ممکن است تنظیم نباشد، در این صورت کوکی‌ ها ممکن است پیش از موعد منقضی شوند.
5. غیر فعال بودن کوکی ها.اطمینان حاصل کنید که کوکی های مرورگر فعال است، اگر کوکی های مرورگرتان غیر فعال است باید به فعال سازی کوکی های مرورگر خود بپردازید.
6. اگر دایرکت ادمین به تازگی به روز رسانی شده است باید راه اندازی مجدد شود.
7. شما باینری برای یک سیستم عامل دیگر دارید.
8. تنظیمات “usersdir” شما در directadmin.conf خالی یا خراب است. دستور /usr/local/directadmin/directadmin config را وارد کنید، با اجرای این دستور باید خروجی مشابه زیر دریافت کنید:

[~]# /usr/local/directadmin/directadmin config | grep usersdir
usersdir=./data/users

خطای سوم: Your IP is blacklisted

یکی از مشکلات ورود به دایرکت ادمین قرار گرفتن در لیست سیاه است. در صورتی که پیامی مشابه آنچه در ادامه می بینید ظاهر شد این به این معناست که IP شما در در لیست سیاه قرار گرفته است:

Your IP is blacklisted

این اتفاق زمانی رخ می دهد که شما تلاش‌ های زیادی برای ورود انجام داده اید که ناموفق بوده است یا بدون اینکه وارد شوید به پورت 2222 دسترسی داشته اید. برای حذف خود از لیست سیاه، /usr/local/directadmin/data/admin/ip_blacklist را ویرایش کنید و IP خود را از لیست حذف کنید. اگر می خواهید اطمینان حاصل کنید که هرگز دوباره در لیست سیاه قرار نخواهید گرفت، می توانید IP خود را به فایل /usr/local/directadmin/data/admin/ip_whitelist اضافه کنید.

تنظیمی که تعداد تلاش های شما را کنترل می کند را نیز می توان در Admin Level -> Admin Settings -> Blacklist IPs تغییر داد. در این تنظیمات برای تعداد دفعات تلاش نا موفق ما معمولاً کمتر از 10 بار را توصیه نمی‌ کنیم. این به این دلیل است که حتی بارگیری صفحه ورود به سیستم به عنوان یک تلاش ورود ناموفق به حساب می‌ آید، بنابراین اگر تعداد را کم تعیین کنید، به احتمال زیاد خودتان را در لیست سیاه قرار می‌ دهید.

و اما در مورد DirectAdmin 1.34.0، می توانید DirectAdmin را طوری تنظیم کنید که پس از مدت زمان مشخصی IP ها را به طور خودکار از لیست سیاه حذف کند.

خطای چهارم: Rejected session for user admin because IP does not match session file

اگر وارد سیستم شده اید، یا مشکل ورود به دایرکت ادمین دارید، احتمالا به صفحه ورود به سیستم اصلی منتقل می شوید و /var/log/directadmin/error.log شما این خطا را نشان می دهد.

Rejected session for user admin because IP (1.2.3.4) doesn't match session file (5.6.7.8)

هر دو IP در این خطا متعلق به شما هستند، اما این اتفاق احتمالاً به دلیل تغییر IP است، اما IP زمانی تغییر می کند که که از پراکسی ها، یا دستگاه های تلفن همراه استفاده کنید همچنین زمانی که برای اتصال از هر دو IPv4 و IPv6 به جای یکدیگر استفاده کنید نیز این اتفاق رخ می دهد.

بنابراین سطح امنیت بالا تری در نظر گرفته می‌ شود، بنابراین در صورت نیاز می‌ توانید با اجرای دستور زیر آن را غیر فعال کنید:

disable_ip_check=1

خطای پنجم: The request you’ve made cannot be executed because it does not exist in your authority level

هنگام استفاده از DirectAdmin، احتمالا با خطای زیر مواجه شده اید:

You cannot execute that command
The request you've made cannot be executed because it does not exist in your authority level

بروز این خطا به این دلیل است که درخواست CMD در دسترس شما نیست. این موضوع می تواند دلایل مختلفی داشته باشد. در زیر دلایل احتمالی و روش های اشکال زدایی مورد نیاز برای رفع این خطا را بیان می کنیم.

1.به عنوان حساب متفاوتی وارد شده اید

DirectAdmin از session برای احراز هویت مبتنی بر مرورگر استفاده می کند. در واقع دایرکت ادمین از یک کوکی استفاده می‌ کند که در تمام برگه‌ های یک مرورگر مشخص می‌ شود. اگر بیش از 2 برگه باز داشته باشید و به عنوان یک حساب کاربری با دسترسی کمتر در برگه B وارد شوید، سایر برگه ها نیز با این حساب وارد می شوند، حتی اگر صفحه آن ها به روز نشده باشد. بنابراین انجام یک کار در برگه A، امکان پذیر نیست، زیرا اکنون session به یک حساب با سطح دسترسی پایین تر اختصاص دارد.

2. دستورات allow/deny

دایرکت ادمین از لیست هایی پشتیبانی می کند که دستوراتی را که ممکن است در دسترس یک حساب کاربری باشند، مجاز یا رد می کنند.

اشکال زدایی نهایی دایرکت ادمین

برای اشکال زدایی (Debug) نهایی، می توانید از دستور زیر استفاده کنید:

cd /usr/local/directadmin
service directadmin stop
./directadmin b703

با اجرای این دستور خطایی رخ می دهد.

User::isAllowedToExecute
User::deny_override

در نهایت برای خروج از حالت اشکال زدایی از Ctrl+C استفاده کنید و دستور زیر را اجرا کنید:

service directadmin start

با اجرای این دستور DA دوباره اجرا می شود.

چگونه یک Segfault را در DirectAdmin اشکال زدایی کنیم

اگر پیامی دریافت کردید با عنوان “A segmentation fault has occurred”، این خطای برنامه است که معمولاً به دلیل ناسازگاری باینری ها با سیستم عامل شما یا مدیریت نادرست داده ها رخ داده است. اولین کاری که باید انجام دهید این است که به Admin Level -> Licenses/Updates بروید و بررسی کنید که سیستم عاملی که باینری ها برای آن کامپایل شده اند با سیستم عامل مورد استفاده شما مطابقت دارند.

برای رفع این مشکل، اولین کاری که باید انجام دهید این است که /var/log/directadmin/error.log خود را بررسی کنید تا ببینید مشکل چیست. برای اشکال‌ زدایی بیشتر خطا، باید «gdb» را نصب کنید. در ادامه برای رفع مشکل ورود به دایرکت ادمین مراحل زیر را دنبال کنید:

  1. به طور معمول به DA وارد شوید، به صفحه ای بروید که یک کلیک تا ایجاد segfault فاصله داشته باشید.
  2. به عنوان کاربر root وارد ssh شوید و دستور زیر را اجرا کنید:
cd /usr/local/directadmin
killall -9 directadmin
gdb directadmin
run s

این دستور یک کپی non-forked از DirectAdmin را بارگیری می کند.

3. به مرورگر “1 click away” خود برگردید و فرمی را برای ایجاد segfault ارسال کنید. احتمالا هیچ خروجی ای دریافت نخواهید کرد که این موضوع خوب است.
4. دوباره به SSH بر گردید و دستور زیر را اجرا کنید:

bt full

خطای ششم: Domain Already Exists

اگر دامنه از قبل وجود باشد، هنگام ورود به دایرکت ادمین با مشکل مواجه خواهید شد. DirectAdmin با بررسی فایل named.conf تشخیص می دهد که آیا دامنه از قبل روی سیستم وجود داشته است یا خیر. بنابراین مطمئن شوید که دامنه در هیچ کجای DirectAdmin قبلا اضافه نشده است. در غیر این صورت باید از فایل named.conf به صورت دستی فایل مورد نظر را حذف کنید (Admin Panel -> DNS Admin). در نهایت باید بتوانید دامنه را اضافه کنید.

اگر نمی‌ خواهید داده‌ های DNS را از دست بدهید، حتماً اقدام به تهیه نسخه پشتیبان کنید. با اضافه شدن گزینه Multi Server، در DNS، اکنون می توانید بر روی سایر سرور های DA میزبان شوید. اطمینان حاصل کنید که هر سروری که در “Admin Level -> Multi Server Setup” خود فهرست کرده اید نیز دامنه را در فایل های named.conf خود ندارند. توجه داشته باشید اگر گزینه “check domain” را غیر فعال کنید، آن سرور با مشکل مواجه می شود.

برای اطمینان از تکراری نبودن دامنه موارد زیر را بررسی کنید:

  • بررسی IP راه اندازی چند سرور از راه دور، با گزینه “Domain Check”.
  • فایل /etc/virtual/domains را بررسی کنید.
  • بررسی فایل /etc/virtual/domainowners
  • فایل /etc/virtual/domain.com را بررسی کنید.
  • در هر فایل /var/named/*.nzf از rndc برای افزودن/حذف استفاده شود.

خطای هفتم: Your hostname and the servername you have set in DirectAdmin, do not match

شما ممکن است هنگام ورود به دایرکت ادمین با یکی از دو ارور زیر مواجه شوید:

Your hostname, , and the servername you have set in DirectAdmin, server.host.com, do not match.
hostname: Name or service not known

در صورت بروز یکی از این دو خطا موارد زیر را بررسی کنید:

1.نام میزبان را بررسی کنید، باید یک FQDN باشد تا نام دامنه کاملاً واجد شرایط باشد، برای بررسی آن می توانید دستور زیر را اجرا کنید:

hostname --fqdn

2. با اجرای دستور بالا اگر یک Host name در خروجی دارید، به این معنی است که فقط باید Host name را در Admin Level -> Admin Settings -> servername به روز کنید. آن را تنظیم و ذخیره کنید. ممکن است لازم باشد آن را به چیز دیگری تغییر دهید، سپس دوباره برای همگام‌ سازی مجدد آن تلاش کنید.
3. مطمئن شوید که یک ناحیه کامل برای Host name در DNS خود دارید: Admin Level -> DNS Admin -> server.host.com تا رکورد های MX داشته باشد.
4.فایل /etc/hosts را بررسی کنید و تغییر دهید، برای این کار دستور زیر را اجرا کنید:

1.2.3.4   your.hostname.com
1.2.3.4   your.hostname.com your

خطای هشتم: Handling ethernet devices on VPS/VDS installs

نصب روی VPS/VDS ممکن است به مراحل بیشتری نیاز داشته باشد، تا DirectAdmin دستگاه اترنت مناسب را شناسایی کند. موارد زیر را به کمک دستور زیر به /usr/local/directadmin/conf/directadmin.conf اضافه کنید:

ethernet_dev=devicename

به عنوان مثال، در بسیاری از سیستم های VPS، این دستور به صورت زیر خواهد بود:

ethernet_dev=venet0:0

سایر سیستم‌ هایی که IP، در آن‌ ها IP پایه دستگاه نیست، باید عدد صحیح را به صورتی که در دستور زیر می بینید تنظیم کنید:

ethernet_dev=eth0:1

برای اینکه ببینید IP شما در کدام دستگاه است، دستور زیر را اجرا کنید کنید:

ip a

نام دستگاه را با نام دستگاهی که در دستور بالا گزارش شده است جایگزین کنید. حال اگر سیستم VDS/VPS شما eth0 را شبیه‌ سازی می‌ کند، می‌توانید از این مرحله صرف نظر کنید.

خطای نهم: DirectAdmin not starting, cannot execute binary file

یکی دیگر از مشکلات ورود دایرکت ادمین این است که نمی توان فایل باینری را اجرا کرد. بنابراین ممکن است با یکی از خطا های زیر مواجه شوید:

./directadmin: cannot execute binary file
/lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
error while loading shared libraries: libssl.so.10: cannot open shared object file: No such file or directory

این خطا ها به این معنی است که نسخه سیستم عامل تنظیم شده در فایل مجوز شما، با سیستم عامل مورد استفاده شما مطابقت ندارد. برای اجرای باینری های صحیح، باید سیستم عامل موجود در مجوز خود را تغییر دهید. می‌ توانید با وارد شدن به ناحیه کاربری مشتری خود، روی شناسه مجوز کلیک کنید تا تنظیمات را تغییر دهید و سیستم عامل را در صورت نیاز تنظیم کنید.

اگر فایل نصبی جدید است، setup.sh را دوباره اجرا کنید. اما اگر فایل نصبی موجود است، باینری های جدید را به صورت دستی بگیرید.

منبع: directadmin.com

منتشر شده توسط
F.Sahraeian