جمعه , ۱۸ آذر ۱۴۰۱

نمایش Not Acceptable در دستور service httpd status

سلام بر همه دوستان عزیزم

چند روزه برام یه مشکلی پیش اومده بود تا بالاخره امروز تونستم مشکل رو پیدا و حلش کنم تصمیم گرفتم این موضوع رو به شکل یک مقاله در بیارم تا اگه شما هم با چنین مشکلی برخورد کردید مثل من چند روزی رو سر کار نباشید 😀

مشکل از این قرار بود که روی سرور یکی از دوستان زمانی که دستور service httpd status رو داخل ترمینال میزدم بهم خطای Not Acceptable نشون میداد.

بعد از این که کل برنامه های نصب شده روی سرور رو بررسی کردم متوجه شدم بر روی سرور Mod Sec نصب شده و به صورت نا صحیحی کانفیگ شده و زمانی که من قصد دارم وضعیت آپاچی رو مشاهده کنم درخواست منو به عنوان یه درخواست نا معتبر فیلتر میکرد.

زمانی که لاگ آپاچی رو مشاهده کردم متوجه شدم یک سری خطا به این صورت داخل لاگ فایل موجوده

[Sun Feb 02 09:37:26.125630 2014] [:error] [pid 7839] [client ::1] ModSecurity: Access denied with code 406 (phase 2). Match of “rx ^apache.*perl” against “REQUEST_HEADERS:User-Agent” required. [file “/usr/local/apache/conf/modsec2.user.conf”] [line “61”] [id “1234123429”] [msg “Request Indicates an automated program explored the site”] [severity “NOTICE”] [hostname “localhost”] [uri “/whm-server-status”] [unique_id “Uu4R1kPNTJIAAB6filoAAAAA”]

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

زمانی که در ترمینال با وارد کردن service httpd status با این خطا مواجه شدید

Not Acceptable

An appropriate representation of the requested resource
/whm-server-status could not be found on this server.

Additionally, a 404 Not Found error was encountered while trying to use
an ErrorDocument to handle the request.

ابتدا به مسیر

/usr/local/apache/logs

رفته سپس با دستور grep لاگ فایل آپاچی رو مشاهده کنید

grep "/whm-server-status" error_log

سپس اگر در خروجی دستور خطایی مشابه خطای دریافتی من داشتید فایل کانفیگ Mod Sec که در مسیر

 /usr/local/apache/conf/modsec2.user.conf

هستش رو باز کنید و خطوط زیر رو داخلش به صورت کامنت در بیارید

#SecRule REQUEST_HEADERS:User-Agent "(?:\b(?:(?:indy librar|snoop)y|microsoft url control|lynx)\b|d(?:ownload demon|isco)|w(?:3mirror|get)|l(?:ibwww|wp)|p(?:avuk|erl)$
#        "chain,log,auditlog,msg:'Request Indicates an automated program explored the site',id:'1234123429',severity:'5'"
#SecRule REQUEST_HEADERS:User-Agent "!^apache.*perl"

سپس سرویس آپاچی رو restart کنید

service httpd restart

مشکل برطرف شد اکنون با زدن زدن دستور service httpd status با خروجی شبیه زیر رو به رو میشید

root@cl-t244-314cl [/usr/local/apache/logs]# service httpd status
                  Apache Server Status for localhost (via ::1)

   Server Version: Apache/2.4.7 (Unix) OpenSSL/1.0.1e-fips
          mod_bwlimited/1.4

   Server MPM: prefork
   Server Built: Jan 27 2014 12:32:53
     __________________________________________________________________

   Current Time: Tuesday, 04-Feb-2014 08:00:41 GMT
   Restart Time: Tuesday, 04-Feb-2014 08:00:39 GMT
   Parent Server Config. Generation: 133
   Parent Server MPM Generation: 132
   Server uptime: 2 seconds
   Server load: 0.32 0.30 0.31
   Total accesses: 13 - Total Traffic: 167 kB
   CPU Usage: u0 s0 cu.03 cs0 - 1.5% CPU load
   ۶٫۵ requests/sec - 83.5 kB/second - 12.8 kB/request
   ۸ requests currently being processed, 0 idle workers

WWKKKKKK........................................................
................................................................
................................................................
................................................................
............................................

   Scoreboard Key:
   "_" Waiting for Connection, "S" Starting up, "R" Reading Request,
   "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
   "C" Closing connection, "L" Logging, "G" Gracefully finishing,
   "I" Idle cleanup of worker, "." Open slot with no current process
root@cl-t044-394cl [/usr/local/apache/logs]#

موفق و پیروز باشید.

پاسخ بدهید

آدرس ایمیل شما منتشر نخواهد شدفیلدهای الزامی علامت دار شده اند *

*