سلام بر همه دوستان عزیزم
چند روزه برام یه مشکلی پیش اومده بود تا بالاخره امروز تونستم مشکل رو پیدا و حلش کنم تصمیم گرفتم این موضوع رو به شکل یک مقاله در بیارم تا اگه شما هم با چنین مشکلی برخورد کردید مثل من چند روزی رو سر کار نباشید 😀
مشکل از این قرار بود که روی سرور یکی از دوستان زمانی که دستور 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]#
موفق و پیروز باشید.