021-91008989

لینوکس Centos


آموزش تنظیمات و کانفیگ فایروال csf

 

فایروال متن باز و رایگان Config Server Firewall با نام اختصاری CSF قوی ترین فایروال رایگان و Open Source لینوکس است . فایروال CSF روی کلیه توزیع های لینوکس نصب شده و بهترین فایروال برای استفاده در سرور مجازی محسوب میشود . کانفیگ فایروال CSF در سرور های لینوکس مبتنی بر کنترل پنل های وب هاستینگ cPanel ، Directadmin و همچنین Webmin به دلیل وجود یک UI یا یک پنل گرافیگی و وب بیس به خصوص برای افرادی که دانش کار در محیط Command Line را ندارند ساده تر است . با کانفیگ صحیح فایروال CSF قادر به تشخیص و کنترل بسیاری از حملات و Attack ها مانند اسکن کردن پورت ، حملات SYN flood ، حملات لاگین بیس brute force attacks و … خواهید بود .

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

http://www.configserver.com/cp/csf.html

این مقاله به کانفیگ فایروال CSF روی سرور های مجازی لینوکس بر پایه Debian مانند Debian Linux و Ubuntu Linux می پردازد . در صورت آشنا بودن با مباحث پایه ای لینوکس میتوانید از همین آموزش برای کانفیگ و تنظیمات CSF در توزیع های RHEL مانند CentOS ، Fedora و RedHat نیز استفاده کنید .

دستورات اجرا و نصب فایروال CSF باید با دسترسی های root super user در سیستم عامل لینوکس سرور اجرا شوند :

su root

آموزش تنظیمات و کانفیگ فایروال CSF

فایروال CSF امکانات زیادی برای محافظت سرور مجازی و سرور اختصاصی لینوکس شما در برابر انواع حملات سایبری ارائه میکند که به معرفی آن ها میپردازیم :

جلوگیری از تلاش های لاگین بدون مجوز یا Login authentication failure daemon

فایروال CSF به صورت مداوم و در بازه های زمانی مشخص شده لاگ های سرور را برای بررسی تلاش های ناموفق لاگین به سرور بررسی میکند . CSF بر اساس خواسته شما به این دسته از حملات پاسخ میدهد . برای مثال میتوانید با کانفیگ صحیح به CSF اعلام کنید در صورت مشاهده بیش از ۵ تلاش ناموفق برای لاگین به یکی از سرویس های لینوکس ، آی پی Attacker را برای مدت محدودی (با به صورت دائمی) بلاک کند . نرم افزار ها و سرویس های زیر در حال حاضر توسط CSF محافظت میشوند :

  • سرویس های Courier imap, Dovecot, uw-imap, Kerio
  • سرویس openSSH
  • کنترل پنل WHM/cPanel و صفحه Webmail
  • سرویس های Pure-ftpd, vsftpd, Proftpd
  • دایرکتوری های رمز دار (htpasswd)
  • مغایرت های Mod_security
  • مغایرت های Suhosin
  • سرویس Exim SMTP AUTH

امکان سفارسی کردن لاگ ها و محل ذخیره سازی آن ها برای فایروال CSF وجود دارد .

رد یابی پراسس های لینوکس Process tracking

فایروال CSF در صورت کانفیگ ، امکان ردیابی و تعقیب پراسس های مشکوک اجرا شده در background را به سرور مجازی و اختصاصی شده هدیه میکند . با استفاده از این ابزار قادر به شناسایی و جلوگیری از Exploit در VPS یا VDS خود خواهید بود .

مانیتور کردن دایرکتوری ها Directory watching

با کمک این ابزار CSF قادر به مانیتور لحظه ای پوشه /tmp و سایر دایرکتوری های مورد نظر شما برای شناسایی اسکریپت های خطرناک و تروژان ها میباشد . در صورت شناسایی هر گونه اسکریپت ها بدافزار ، CSF مدیر سرور را از طریق ارسال ایمیل اگاه خواهد ساخت .

محافظ Port flood protection

کانفیگ صحیح و تنظیمات حرفه ای در این بخش به شما امکان جلوگیری از حملات port flood attacks و انواع خاصی از حملات Dos و DDos را میدهد . با انجام تنظیمات این بخش شما مشخص میکنید حد اکثر چند کانکشن در یک بازه زمانی مشخص و روی یک پورت خاص مجوز اتصال دارند . مثلا هر IP مجاز به اتصال ۱۰ کانکشن در ۵ ثانیه روی پورت ۸۰ خواهد بود و در صورت تجاوز از این تعداد ، بر اساس تنظیمات انجام شده IP مورد نظر به صورت موقت یا دائم بلاک خواهد شد .

در زدن به پورت Port knocking

با کمک تنظیمات این بخش فایروال CSF مجوز اتصال به پورت های بسته را برای گروهی از کلاینت ها که مرحله در زدن به پورت را با موفقیت پش سر میگذارند فراهم میکند . این ابزار امنیت سرور مجازی و اختصاصی لینوکس را به میزان قابل ملاحظه ای بالا میبرد .

برای کسب اطلاعات بیشتر در زمینه Port Knocking به آدرس زیر مراجعه کنید :

http://www.portknocking.org

محدودیت در تعداد کانکشن ها Connection limit protection

این قابلیت به شما امکان تعیین کردن تعداد مجاز کانکشن برای هر IP را میدهد . با کانفیگ اصولی این بخش مثلا هر IP قابلیت اتصال حد اکثر ۲۰۰ یا ۳۰۰ کانکشن همزمان را خواهد داشت . یکی از تنظیمات موثر در کنترل بعضی از انواع حملات Dos و Ddos در سرور های لینوکس همین قسمت است .

پنل ادمین فایروال بر پایه وب UI integration

فایروال CSF از یک پنل وب بیس قوی و کاربر پسند برای کنتل پنل های هاستینگ cPanel ، Webmin و دایرکت ادمین پشتیبانی میکند . با کمک این ابزار قدرتمند تسلط شما بر مدیریت فایروال بیشتر شده و انجام تغییرات در فایروال به مراتب ساده تر میگردد .

موارد فوق تنها بخشی از امکانات فایروال قدرتمند CSF بودند که به اختصار به آن ها اشاره شد . در ادامه مبحث ، به آموزش نصب و کانفیگ حرفه ای فایروال CSF در سرور لینوکس میپردازیم :

آموزش تنظیمات و کانفیگ فایروال csf نصب فایروال CSF

فایروال CSF به صورت پیش فرض در مخازن توزیع های Debian و Ubuntu و CentOS از لینوکس موجود نیست . بنا بر این برای نصب فایروال CSF باید آن را از وب سایت رسمی سی اس اف دانلود کنیم :

wget http://www.configserver.com/free/csf.tgz

tar -xzf csf.tgz

cd csf

sh install.sh

با اجرای دستورات فوق فایروال CSF روی سرور شما نصب میشود . ولی در اولین قدم ابتدا باید از وجود کلیه ماژول های IPTABLES مورد نیاز CSF روی سرور اطمینان حاصل کنیم . برای بررسی وجود یا عدم وجود ماژول های ضروری IPTABLES روی سرور لینوکس باید اسکریپت پرل CSF مخصوص بررسی ماژول های IPTABLES زیر را اجرا کنیم :

perl /usr/local/csf/bin/csftest.pl

در صورت عدم دریافت هر گونه fatal errors توسط اسکریپت پرل فوق ، فایروال CSF بدون مشکل روی سرور شما کار خواهد کرد . در حین فرایند نصب CSF روی سرور ، IP کامپیوتر شما به صورت اتوماتیک WHITELIST میشود . نکته بعدی که در هنگام نصب اولیه فایروال باید به آن توجه کنید قرار گرفتن اتوماتیک فایروال به صورت پیش فرض  در وضعیت و حالت  تست است . دلیل آن نیز مشخص است . اگر نیاز به باز کردن پورت های خاصی روی سرور دارید ، حتما قبل از خارج کردن فایروال از حالت تست آن ها را باز کنید . اگر از کنترل پنل های هاستینگ استفاده میکنید یا مثلا پورت SSH شما یک پورت غیر استاندارد و به جز پورت ۲۲ هست ، باید این پورت ها را قبل از فعال کردن کامل فایروال  و خروج از وضعیت تست باز کنید و در غیر این صورت به محض خارج کردن فایروال CSF از حالت تست امکان قطع  شدن دسترسی های شما  به سرور وجود خواهد داشت . برای جلوگیری از این مشکل اجازه بدهید سرور با فایروال در وضعیت تست حد اقل ۵ یا ۱۰ دقیقه کار کنید . فایروال csf در وضعیت testing هر ۵ دقیقه کلیه رول های IPTABLES را پاک میکند . بنا بر این اگر هم ایرادی در کانفیگ فایروال باشد که منجر به قطع دسترسی های شما شده باشد ، بعد از ۵ دقیقه خود به خود غیر فعال میگردد .

کانفیگ مقدماتی و پایه فایروال CSF

برای کانفیگ فایروال CSF باید فایل csf.conf را ویرایش کنید . بعد از ذخیره تغییرات در فایل csf.conf با ریست کردن فایروال تغییرات در IPTABLES اعمال خواهند شد :

vi /etc/csf/csf.conf

csf -r

مرحله اول : تنظیمات پورت های سرور

هر چقدر دسترسی ها به سرور شما محدود تر باشد ، امنیت سرور خواه نا خواه افزایش پیدا میکند . این یک قاعده کلی است و پورت های سرور هم مشمول همین قانون هستند . هیچ دلیلی وجود ندارد که پورت های بی استفاده سیستم عامل لینوکس سرور مجازی یا سرور اختصاصی شما باز باشند . بنا بر این در اولین قدم به مدیریت پورت ها در لینوکس میپردازیم . با نصب فایروال CSF پورت های زیر به صورت پیش فرض باز خواهند شد :

TCP_IN = “20,21,22,25,53,80,110,143,443,465,587,993,995”

TCP_OUT = “20,21,22,25,53,80,110,113,443”

UDP_IN = “20,21,53”

UDP_OUT = “20,21,53,113,123”

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

Port 20: FTP data transfer
Port 21: FTP control
Port 22: Secure shell -SSH
Port 25: Simple mail transfer protocol -SMTP
Port 53: Domain name system -DNS
Port 80: Hypertext transfer protocol -HTTP
Port 110: Post office protocol v3 -POP3
Port 113: Authentication service/identification protocol
Port 123: Network time protocol -NTP
Port 143: Internet message access protocol -IMAP
Port 443: Hypertext transfer protocol over SSL/TLS -HTTPS
Port 465: URL Rendesvous Directory for SSM -Cisco
Port 587: E-mail message submission -SMTP
Port 993: Internet message access protocol over SSL -IMAPS
Port 995: Post office protocol 3 over TLS/SSL -POP3S

اگر از هر یک از پورت های فوق استفاده نمیکنید یا سرویس های استفاده کننده از این پورت ها در سرور شما کاربردی ندارند ، حتما آن ها را از طریق فایروال CSF ببندید .

مرحله دوم : سایر تنظیمات CSF

در ادامه مبحث آموزش کانفیگ و تنیظمات فایروال CSF به آموزش پیکربندی پر استفاده ترین و مهم ترین قسمت های فایروال CSF در لینوکس می پردازیم .

کنترل پینگ LICMP_IN

مجموعه پروتوکل های ICMP  یکی از پر استفاده ترین سرویس های دنیای اینترنت ، شبکه و هاستینگ هستند . با کمک ICMP_IN در فایروال CSF قادر به باز کردن و بستن پینگ آی پی سرور هستید . با قرار دادن مقدار ۱ پینگ سرور باز میشود و در صورت مقدار دهی ۰ پینگ سرور به طور کامل بسته میشود . اگر سرور شما یک سرور اشتراکی است بستن پینگ میتوانید مشکلاتی برای سرور به همراه داشته باشد .

محدود کردن تعداد IP های بلاک شده با DENY_IP_LIMIT

با مقدار دهی به DENY_IP_LIMIT حد اکثر تعداد IP های مجاز برای نگهداری در لیست بلاک فایروال CSF را مشخص میکنید . مقدار دهی زیاد به این پارامترسبب افزایش لود سرور و مصرف CPU میگردد . خیلی از وب مستران به دلایلی که عموما  اشتباه است این مقدار را روی ۱۰۰۰ یا بیشتر تنظیم میکنند که سبب مصرف بالای منابع سرور میگردد . حد اکثر مقدار توصیه شده ۲۰۰ است .

تعداد آی پی ها بلاک شده به صورت موقت DENY_TEMP_IP_LIMIT

با مقدار دهی به DENY_TEMP_IP_LIMIT حد اکثر تعداد IP هایی که به صورت موقتی بلاک میشوند را تعیین کنید . مانند بلاک دائمی IP افزایش تعداد این آی پی ها نیز سبب کند شدن فایروال و سرور میگردد .

محدود کردن پکت ها PACKET_FILTER

به کمک این ابزار پکت های اشتباه ، بدون کاربرد و غیر قانونی را فیلتر کنید

کنترل حملات SYNFLOOD به کمک SYNFLOOD, SYNFLOOD_RATE , SYNFLOOD_BURST

به کمک این ابزار قادر به کنترل حملات SYNFLOOD روی سرور خود خواهید بود . با فعال سازی این قسمت شکل گیری و اتصال کانکشن های جدید به سرور کند میشود . در واقع با این تکنیک و با افزایش زمان شکل گیری و اتصال کانکشن های جدید به سرور تا حدودی حملات flood از نوع SYN کنترل خواهند شد . بنا بر این فقط زمانی که زیر حملات SYNFLOOD هستید این قسمت را فعال کنید ، چرا که ناخواسته سبب کند شدن سرعت لود شدن سایت برای کاربران جدید (کاربرانی که بعد از فعال سازی این قسمت سایت های روی سرور را باز میکنند) میشود .

محدود کردن کانکشن ها به کمک CONNLIMIT

یکی از قوی ترین امکانات فایروال CSF برای کنترل کردن حملات DOS و بعضی از انواع DDOS ابزای CONNLIMIT است . CONNLIMIT به شما این امکان را میدهد تا تعداد کانکشن های همزمان و فعال (concurrent connections) روی پورت های دلخواه را برای هر IP تعیین و محدود کنید . برای درک بهتر این موضوع یک مثال میزنیم :

آموزش تنظیمات و کانفیگ فایروال csf

آموزش تنظیمات و کانفیگ فایروال csf

این مقدار دهی به CONNLIMIT در فایروال CSF به این معنیست که تعداد کانکشن های همزمان مجاز برای هر آی پی روی پورت ۲۲ حد اکثر ۵ کانکشن و روی پورت ۴۴۳ حد اکثر ۲۰ کانکشن می باشد .

محدود کردن کانکشن ها به کمک PORTFLOOD

یکی دیگر از امکانات بسیار کاربردی و موثر فایروال CSF در کنترل حملات DOS و DDOS ویژگی محدود کردن تعداد کانکشن های مجاز برای اتصال بر روی پورت های تعیین شده در بازه ها زمانی مشخص است . با مقدار دهی صحیح و دقیق به PORTFLOOD سرعت کانکشن زدن یک آی پی روی پورت های مورد نظر شما کنترل خواهد شد . برای درک بهتر چگونگی عملکرد PORTFLOOD در فایروال CSF یک مثال میزنیم :

آموزش تنظیمات و کانفیگ فایروال csf

آموزش تنظیمات و کانفیگ فایروال csf

این مقدارد هی به PORTFLOOD به فایروال CSF دستور میدهد در صورتی اتصال بیش از ۵ کانکشن در مدت ۲۵۰ ثانیه به پورت ۲۲ از یک IP آن را بلاک کند .

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

فرمت استفاده از PORTFLOOD برای چند پورت به صورت همزمان

آموزش تنظیمات و کانفیگ فایروال csf

محدود کردن کلی کانکشن ها Connection Tracking

به کمک connection tracking فایروال csf میتواند آی پی هایی را که مجموعا بیشتر از تعداد مجاز و تعیین شده به سرور کانکشن زده اند را بلاک کند . این کانکشن ها به صورت کلی محاسبه میشوند و پورت و سرویس خاصی مد نظر نیست .  برای این منظور کافی است تا مقدار CT_LIMIT را مثلا روی ۳۰۰ ست کنیم . در این صورت هر زمانی که بیشتر از ۳۰۰ کانکشن توسط یک ip به سرور متصل شود آن آی پی توسط فایروال CSF بلاک خواهد شد . فایروال CSF به صورت پیش فرض هر ۳۰ ثانیه یک بار تعداد کانکشن های هر آی پی را با مقداری که در CT_LIMIT مشخص کرده اید چک میکند .در صورتی که مایل به افزایش یا کاهش این مدت زمان هستید باید مقدار تعیین شده برای CT_INTERVAL را تغییردهید . توجه داشته باشید که این عدد هر چه کمتر باشد منابع مصرفی توسط CSF بیشتر خواهد بود .

پک امنیتی CSF شامل امکانات بسیار زیاد دیگری نیز هست که میتوانید از دموی CSF در کنترل پنل WHM آن ها را مشاهده کنید :

http://configserver.com/cp/csfdemo/config.html

کلیه تنظیمات فایروال CSF که در لینک فوق مشاهده میکنید در محیط SSH با ویرایش فایل CSF.CONF قابل دسترس هستند . برای ویرایش این فایل در لینوکس دستور زیر را در ssh اجرا کنید :

vi /etc/csf/csf.conf

بعد از پایان کانفیگ فایروال csf و ذخیره کردن تغییرات در فایروال ، باید csf را یک بار ریستارت کنید تا تغییرات اعمال شوند . برای ریست کردن فایروال csf یا از طریق پنل ادمین csf در کنترل پنل های دایرکت ادمین ، سی پنل و وبمین اقدام کنید یا در ssh دستور زیر را وارد کنید :

csf -r

حالا ۵ دقیقه فرصت دارید تا همه موارد کانفیگ شده را بررسی کنید . فایروال CSF در حالت تست ۵ دقیقه بعد از استارت کلیه رول های IPTABLES را پاک میکند تا اگر هم اشتباهی درکانفیگ فایروال رخ داده دسترسی های شما کاملا قطع نشود .در صورتی که همه چیز به درستی کار میکرد و مشکلی در کانفیگ شما وجود نداشت مجددا فایل کانفیگ فایروال csf را ویراش کرده و فایروال را از حالت تست و آزمایش خارج کنید . برای این کار کافیست مقدار TESTING را از ۱ به ۰ تغییر دهید و مجددا فایروال را ریست کنید :

TESTING = 0

csf -r

چند نکته در باره فایروال CSF

  • آی پی های بلاک شده در فایل csf.deny ذخیره میشوند
  • آی پی های مجاز و white در فایل csf.allow ذخیره میشوند
  • برای بلاک کردن آی پی در ssh کافی است تا دستور csf -d ip را وارد کنید
  • برای وایت لیست کردن آی پی در ssh کافی است تا دستور csf -a ip را وارد کنید
  • برای بلاک کرد یا وایت لیست کردن یک رنج آی پی باید آن را به شکل ۲٫۳٫۰٫۰/۱۶ در فایل مربوطه وارد کنید
  • همیشه از به روز بود فایروال خود اطیمنان داشته باشید . برای آپدیت کردن csf در محیط ssh دستور csr -u را وارد کنید
  • برای غیر فعال کردن فایروال در ssh دستور csf -x را اجرا کنید
  • برای فعال کردن مجدد فایروال csf در ssh دستور csf -e را وارد کنید
  • از استفاده همزمان csf با سایرفایروال ها جدا خود داری کنید
  • برای نصب پنل ادمین CSF در  webmin کافی است تا پلاگین مربوطه را از مسیر /usr/local/csf/csfwebmin.tgz روی کنترل پنل وب مین نصب کنید . در cPanel و Directadmin نیازی به نصب پلاگین نیست .

با سلام

شاید شما هم در برخی مواقع با ارور DBException: FATAL: database is not accepting commands to avoid wraparound data loss in database “postgres” به هنگام استارت IBSng مواجه شده اید، حل این مشکل بسیار ساده میباشد ولی گاهاً کاربران را بسیار اذیت میکند، طی پرسش ها و در خواست هایی که برای حل این مشکل داشتیم بر آن شدم تا راه حل ساده این مشکل را در این پست درج کنم

ابتدا شما سرویس postgresql را بایستی غیر فعال کنید با دستور زیر service postgresql stop

سپس برای ادامه کار دستور su postgres  را وارد نمایید و دستورات زیر را به ترتیت وارد نمایید

touch /tmp/fix.sql

echo “VACUUM FULL;” > /tmp/fix.sql

postgres -D /var/lib/pgsql/data YOUR_DATABASE_NAME < /tmp/fix.sql

به جای  YOUR_DATABASE_NAME اسم دیتابیسی که مشکل داره و به هنگام ارور بالا اون رو مینویسه اینجا بنویسید.

سپس از postgresql با دستور exit خارج شده و سرویس فوق را ریستارت نمایید service postgresql restart

در صورتی که با اجرای دستورات بالا بازهم مشکلی در اجرای IBSng داشتید با ما در ارتباط باشید.


یکی از بزرگ ترین مشکلات مشتریانی که از هاست اشتراکی و میزبانی وب لینوکس به سرور مجازی یا سرور اختصاصی کوچ میکنند مشکل ریستور کردن فایل های sql بزرگ و حجیم در MySQL سرور لینوکس است . برنامه هایی مانند phpmyadmin یا MySQL  Dumper قادر به ذخیره سازی و ریستور کردن و بازیابی دیتابیس های خیلی بزرگ و حجیم نیستند و در صورت انتقال و ریستور کردن با آن ها همیشه احتمال و خطر بازیابی ناقص اطلاعات و آسیب دیدین دیتابیس وجود دارد .

  MySQL-Backup-and-Restore

از طرفی همیشه امکان ریستور کردن بکاپ کلی یا Full Backup برای خریدار سرور مجازی یا سرور اختصاصی امکان پذیر نیست . مثلا فول بکاپ توسط کنترل پنل cPanel ایجاد شده است ولی سرور مقصد از کنترل پنل دایرکت ادمین یا کلوکسو استفاده میکند . در این وضعیت هیچ راهی نیست جز استفاده از دستورات و کامند های ssh در لینوکس . در صورت استفاده صحیح از این کامند ها و دستورات برای بازیابی و ریستور کردن فایل های MySQL و دیتابیس ، قادر خواهید بود به راحتی فایل های MySQL با پسوند .sql و حجم های بالای ۱۵ و ۲۰ گیگ را در کمترین زمان ممکن و بدون خطا و آسیب دیدن به اطلاعات بازیابی و ریستور کنید .

قبل از انجام ریستور کردن دیتابیس توسط دستورات لینوکس در محیط ssh ابتدا باید اندازه پارامتر max_allowed_packet را بر اساس حجم دیتابیس مورد نظر تنظیم نمایید . برای ایجاد تغییرات در این پارامتر باید فایل my.cnf در مسیر /etc/ را ادیت کرده و میزان مورد نظر خود را وارد نمایید . سپس فایل را ذخیره کرده و سرویس MySQL را ریست کنید .

حالا وارد کنترل پنل وب هاستینگ سرور خود شوید و یک دیتابیس جدید ایجاد کنید . سپس نام کاربری و کلمه عبور این دیتابیس جدید را ساخته و به آن اختصاص دهید . حالا از طریق ssh وارد فولدر و پوشه ای شوید که فایل .sql در آن واقع شده است . با دستورات زیر اقدام به بازیابی و ریستور کردن این فایل .sql داخل دیتابیس MySQL ساخته شده در کنترل پنل وب هاستینگ خود نمایید :

mysql -u dbuser -p  dbname < db.sql

با زدن کلید Enter سیستم عامل از شما رمز و کلمه عبور دیتابیس ساخته شده در کنترل پنل را میخواهد که با وارد کردن آن عملیات بازیابی و ریستور کردن دیتابیس آغاز میگردد . اگر به کلمه عبور MySQL Root Password دسترسی دارید میتوانید بدون نیاز به کلمه عبور و نام کاربری دیتابیس اقدام به بازیابی و ریستور کردن آن با یوزر root پایگاه داده MySQL نمایید :

mysql -u root -p  dbname < db.sql


اسکریپت phpmyadmin معروف ترین برنامه مدیریت تحت وب دیتابیس های مبتنی بر MySQL است که تقریبا تمام کنترل پنل های وب هاستینگ معروف لینوکس ، از آن به عنوان اولین یا تنها برنامه مدیریت دیتابیس های MySQL استفاده میکنند .  ریستور کردن و ایمپورت دیتابیس های بزرگ MySQL  به کمک زبان php و به واسطه اسکریپت phpmyadmin به هیچ عنوان پیشنهاد نمیشود (به دلیل احتمال بروز خطا با ایمپورت ناقص دیتابیس) ، بنا بر این فقط زمانی اقدام به انجام این کار کنید که حجم دیتابیس شما حد اکثر ۲۰ یا ۳۰ مگابایت و سرعت کانکشن و اینترنت شما نیز حد اقل ۵۱۲ است . در غیر این صورت احتمال ایمپورت ناقص و خراب شدن دیتابیس بسیار زیاد است .

phpmyadmin_import

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

در بیشتر سرور های میزبانی وب مبتنی بر کنترل پنل های وب هاستینگ سی پنل و دایرکت ادمین ، حد اکثر حجم مجاز آپلود فایل توسط php به صورت پیش فرض روی ۸ مگابایت محدود شده است . بنا بر این در صورت ایمپورت کردن و آپلود کردن دیتابیس های بزرگ تر از ۸ مگابایت با پیام های خطایی مشابه زیر مواجه خواهید شد :

You probably tried to upload too large file. Please refer to documentation for ways to workaround this limit.

the file size exceeded the maximum size permitted by your PHP configuration

برای حل این مشکل و رفع محدودیت حجم آپلود و ایمپورت دیتابیس های MySQL کافی است تا فایل php.ini را ویرایش کرده و مقادیر زیر را به این شکل افزایش دهید :

memory_limit = 128M
post_max_size = 128M
upload_max_filesize = 128M
max_execution_time = 300
max_input_time = 300

بعد از انجام  تغییرات فوق در فایل php.ini اقدام به ریستارت کردن وب سرور و/یا اجرا کننده php کنید تا تغییرات در سرور اعمال شوند :

service httpd restart

با مراجعه مجدد به صفحه ایمپورت phpmyadmin مشاهده خواهید کرد که محدودیت ۸ مگابایتی آپلود دیتابیس به ۱۲۸ مگابایت افزایش پیدا کرده است .

برای ریستور کردن دیتابیس های بزرگ تر از ۲۰ مگابایت حتما از طریق SSH و دستورات مربوط به MySQL استفاده کنید  . در مطالب گذشته وب سایت ، آموزش ریستور کردن فایل های پر حجم و بزرگ MySQL داده شده است


جلوگیری کردن از آپدیت شدن یک پکیج خاص در CentOS

اگر با REPO های سرور های مبتنی بر لینوکس CentOS زیاد کارمیکنید ، احتمالا بار ها و بار ها با آپدیت شدن اجباری بسیاری از برنامه ها و پکیج های لینوکس CentOS بعد از اجرای دستور yum update مواجه شده اید . برای حل این مشکل ، کافی است تا برنامه و پکیج مورد نظر خود را در تنظیمات فایل yum اصطلاحا Exclude کنید .

 

برای مثال ، بعد از نصب یک پکیج RPM از وب سایت RPM FORGE پکیج های geoip و geoip-devel بعد از هر بار اجرای دستور yum update  شروع به آپدیت شدن میکنند که به دلایلی بر خلاف میل ماست . برای exclude کردن این پکیج ها باید فایل yum.conf واقع در مسیر etc را ویرایش کرده و به شکل زیر آن ها را exclude کنیم :

ابتدا فایل yum.conf را ویرایش میکنیم :

vi /etc/yum.conf

حالا نام پکیج های مورد نظر را به این صورت در فایل yum.conf وارد میکنیم :

exclude=geoip* geoip-devel

حالا با دستور :wq فایل را ذخیره کرده و در نهایت دستور yum update را در محیط ssh اجرا میکنیم . همانطور که ملاحظه میکنید ، پکیج های exclude شده در فایل yum.conf هرگز با دستور yum آپدیت نخواهند شد و تنها روش آپگرید کردن آن ها به صورت دستی و کامپایل از سورس برنامه خواهد بود .

برای پیشگیری از بروز مشکلات مربوط به مخازن repository ، از نصب فایل های RPM غیر استاندارد روی سرور لینوکس RHEL اکیدا خود داری کنید . شاید بتوان گفت معتبر ترین وب سایت برای دانلود فایل های RPM وب سایت repoforge.org است . نصب پکیج ها و برنامه های لینوکس از سورس همیشه نسبت به پکیج های RPM ارجحیت دارد . در صورتی که تجربه و دانش کافی برای کامپایل و نصب برنامه ها از سورس دارید ، هرگز اقدام به نصب RPM در یک سرور مهم نکنید .


مشکل استارت نشدن سرویس MySQL در تمام سرور های هاستینگ لینوکس و به خصوص در سرور های مبتنی بر کنترل پنل های معروف سی پنل و دایرکت ادمین بسیار شایع است . پیام هایی خطایی که در هنگام اجرای دستور استارت سرویس MySQL در خروجی ترمینال مشاهده میشود متفاوت است و معمولا بسته به نوع کامپایل کردن MySQL ، ورژن MySQL مورد استفاده در لینوکس ، توزیع لینوکس ، کنترل پنل وب هاستینگ و … پیام خطای خروجی در ترمینال نیز متفاوت است .

برخی از خطا ها و ارور های عدم اجرا شدن سرویس MySQL در لینوکس عبارتند از :

Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock

Starting MySQL. ERROR! Manager of pid-file quit without updating file

Starting MySQL.Manager of pid-file quit without updating file FAILED

MySQL Daemon failed to start

Another MySQL daemon already running with the same unix socket

ERROR 2003 (HY000): Can’t connect to MySQL server on 127.0.0.1

MySQL is not running, but lock exists FAILED

MySQL manager or server PID file could not be found

MySQL is running but PID file could not be found FAILED

Starting MySQL../etc/init.d/mysqld: line 159: kill: (9188) – No such process ERROR

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

وجود خطا در فایل my.cnf

 

در اولین قدم ، محتویات مربوط به فایل my.cnf را بررسی کنید . اگر تعداد خط ها و مقادیر وارد شده در این فایل زیاد هستند ، با دستور زیر فایل رو موقتا تغییر نام داده و سرویس MySQL را ریستارت کنید :

mv /etc/my.cnf /etc/my.cnf.dis

service mysqld restart

در سرور های سی پنل برای رییستارت کردن سرویس MySQL دستور زیر را اجرا کنید :

service mysql restart

در توزیع های لینوکس (بدون کنترل پنل وب هاستینگ) اوبونتو و دبیان نیز برای ویرایش فایل my.cnf مطابق زیر عمل کنید :

vi /etc/mysql/my.cnf

در صورتی که بعد از تغییر نام (و خارج کردن این فایل از دسترس سرویس MySQL) سرویس پایگاه داده MySQL بدون مشاهده ارور خاضی استارت شد‌ ، پس مشکل را باید در syntax یا مقدار دهی غلط به پارامتر های تاثیر گذار بر MySQL جستجو کرد .

خراب شدن یا Corrupt شدن جداول

این مشکل بیشتر در جدول های Innodb مشاهده میشود ولی در به طور کلی برای جداول Myisam نیز صادق است . در این وضعیت باید بسته به نوع جدول و دلایل Crash کردن دیتابیس ، به رفع مشکل بپردازید .

استارت همزمان چند سرویس MySQL

در حالت عادی ِ، با اجرای دستور service mysqld start اگر سرویس MySQL از قبل اجرا شده باشد ، با یک پیام خطا مبنی بر run بودن سرویس دریافت خواهید کرد . در شرایط خاص ، پیش می آید که چند نسخه یا Instance از این سرویس در حال اجرا باشد که خود سبب ایجاد اختلال در کار MySQL میگرردد . در این وضعیت ممکن است شما هرگز متوجه اجرای همزمان چند سرویس همزمان نشوید و حتی با اجرای دستور service mysqld start یکی از پیام های خطای مربوط به استارت نشدن سرویس MySQL در سرور لینوکس را دریافت کنید . در این وضعیت بهترین کار KILL کردن پراسس های مربوط به سرویس MySQL است .

killall -9 mysql

killall -9 mysqld

killall -9 mysql_safe

service mysqld start OR service mysqld start

استفاده یک daemon دیگر از سوکت MySQL

در این حالت کار سختی پیش روی شما نیست . کافی است تا فایل سوکت مربوط به سرویس MySQL را پاک کرده و سپس سرویس MySQL را استارت کنید :

rm /var/lib/mysql/mysql.sock

service mysqld start OR service mysqld start

قفل شدن MySQL در لینوکس

در مواقع خاص و نادر ، سرویس MySQL استاپ میشود ولی فایل مربوط به Lock یا قفل شدن سرویس MySQL از دایرکتوری مربوطه در لینوکس حذف نمیگردد . در این حالت پیام خطای روی خروجی ترمینال شبیه این خواهد بود :

mysql is dead but subsys locked

برای حل این مشکل کافی است تا فایل مربوط به lock شدن mysql را حذف کنید و مجددا اقدام به استارت کردن سرویس MySQL کنید :

rm /var/lock/subsys/mysqld

service mysqld start OR service mysql start

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

 

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


بعد از نصب لینوکس توزیع Centos همانند همه سیستم عامل سرور های دیگر نیازمند تنظیمات کارت شبکه برای اتصال به شبکه داخلی و یا اینترنت و کلاً تنظیمات شبکه میباشد.

برای تنظیم کارت شبکه در لینوکس سنت او اس ابتدا پس از ورود به محیط SSH به آدرس مسیر زیر میرویم:

cd /etc/sysconfig/network-scripts

در مسیر فوق تنظیمات مربوط به کارت شبکه های سرور شما ذخیره میگردد، در صورتی که به صورت پیش فرض از یک کارت شبکه استفاده مینماید باید فایل ifcfg-eth0 را توسط ویرایشگر ویرایش نمایید، شما برای ویرایش فایل در لینوکس میتوانید از دستور vi که بصورت پیش فرض در تمامی توزیع های لینوکس نصب میگردد استفاده نمایید، و یا اینکه از ویرایشگر حرفه ای nano استفاده نمایید (این ویرایشگر بصورت پیش فرض نصب نیست و باید توسط دستور yum install nano نصب گردد)

فایل را همانند دستور مقابل ویرایش می نمایید :

nano ifcfg-eth0

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

تنیظمات IP در لینوکس

 

دقت کنید که گزینه ONBOOT در صورتی که نباشد ، یا no باشد کارت شبکه سرور لینوکس شما به صورت پیش فرض غیر فعال میباشد و باید بصورت دستی فعال نمایید (ifup eth0).

پس از انجام تغییرات مناسب در صورتی که از ویرایش گر vi استفاده کرده اید ابتدا دکمه ESC و سپس : گذاشته و سپس حرف x را برای ذخیره وارد و اینتر را بزنید.

برای انجام تغییرات در ویرایشگر nano در لینوکس ابتدا دکمه های ctrl+o و سپس دکمه ctrl+x را فشار و اینتر را وارد کنید

پس از اعمال تنظیمات یک بار توسط دستور service network restart سرویس کارت شبکه را درسرور لینوکسی خود ریستار نمایید تا بتوانید از سرور لینوکسی خود در شبکه دلخواه استفاده نمایید.

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

موفق باشید.

 


اکثر ویرایش ها و ورژن های مختلف لینوکس به صورت پیش فرض از فایروال IPTABLES استفاده میکنند.این فایروال قدرتمنمد در حالت عادی اغلب پورت های لینوکس را در سرور مجازی و سرور اختصاصی بسته نگه میدارد…اگر شما قصد دارید سرویس و برنامه ای بر روی لینوکس سرور خود نصب کنید ، ابتدا باید پورت های مورد نیاز این برنامه را در فایروال IPTABLES و جدل آی پی های لینوکس باز کنید

برای مثال اگر کنترل پنل وب هاستینگ نصب میکنید ، برای دسترسی به این کنترل پنل باید پورت هایی که کنترل پنل با آن کار میکند را باز کنید.مثلا در کنترل پنل کلوکسو این پورت ۷۷۷۷ و ۷۷۷۸ و در کنترل پنل دایرکت ادمین این پورت ۲۲۲۲ می باشد

در مثال زیر با اجرای این دستورات در محیط SSH لینوکس ، پورت ۷۷۷۸ را که متعلق به کنترل پلنل کلوکسو است را باز میکنیم :

iptables -I INPUT -p tcp –dport 7778 -j ACCEPT

برای راحت تر شدن کار میتوانید به صورت دستی و با ادیتور های لینوکس مانند vi , nano و … فایل iptables را ویرایش کرده و به صورت دستی آی پی و پورت های مورد نظر را برای باز کردن پورت وارد کنید

فایل iptables در این مسیر ذخیره میگردد

/etc/sysconfig/iptables

با دستور vi ابتدا آن را باز میکنیم :

vi /etc/sysconfig/iptables

بعد از اضافه کردن آی پی و پورت های مورد نظر با دستور زیر فایل را ذخیره میکنیم :

wq:

در پایان سرویس فایروال لینوکس جدول آی پی ها یا iptabels باید مجددا راه اندازی شود.برای ریستارت کردن فایروال iptables از دستور زیر استفاده کنید :

service iptables restart

پورت مورد نظر شما باز و آماده استفاده شد!

به نقل از کامپایلر!


ابتدا فایل sshd_config را ویرایش میکنیم :

vi /etc/ssh/sshd_config

سپس خطی که مشابه زیر است را (در خطوط اول فایل) پیدا کرده و پورت ssh را از ۲۲ به پورت مورد نظر تغییرمیدهیم :

Port 22 => Port 3022

در نهایت فایل sshd_config را ذخیره کرده و سرویس sshd را ریستارت میکنیم :

service sshd restart

change-default-ssh-port

با اینکه پورت ssh در سرور لینوکس شما تغییر کرده است ولی ارتباط ترمینال کامپوتر شما همچنان از طریق پورت ۲۲ با سرور برقرار است . دلیل آن نیز white list بودن ip شما در فایروال سرور است . حالا قبل از اینکه (به هر دلیلی) آی پی شما تغییر کند و ارتباط شما با سرور قطع شود باید پورت مورد نظر و جدید SSH را داخل فایروال iptables باز کنید . فرض ما نصب بودن CSF روی سرور است . بنا بر این به سادگی فایل CSF.CONF را ویرایش کرده و پورت مورد نظر را در قسمت مربوط به IPv4 در هر ۲ حالت TCP_IN و TCP_OUT باز میکنیم :

vi /etc/csf/csf.conf

TCP_IN = “20,21,3022,25,53,80,110,143,443,465,587,993,995,2222″

TCP_OUT = “20,21,3022,25,53,80,110,113,443,2222″

در صورتی که فایرفال csf رو سرور شما نصب نشده باشد برای افزودن پورت باز به Iptables به مقاله زیر مراجعه نمایید

باز کردن پورت در فایروال لینوکس

 


در ابتدا برنامه Putty را از لینک زیر دانلود سپس بر روی سیستم خود اجرا کنید.

لینک دانلود Putty Download Link

این نقطه قابل ذکر میباشد که پاتی Putty نیازی به نصب ندارد و فقط Run میشود

در مرحله اول در قسمت آدرس ، آی پی یا دامنه ای که میخواهید به آن متصل شوید را وارد کنید و سپس دکمه Open را انتخاب کنید

یک نقطه قابل ذکر میباشد که در قسمت پورت در صورتی که پورت پیش فرض سرور رو عوض کرده باشید باید پورت جدید را وارد کنید.

استفاده از putty

پس از اتصال طبق شکل زیر از شما نام کاربری را میخواهد – نام کاربری پیش فرض Root میباشد:

2

پس از ورود نام کاربری از شما پسورد سرورتان را خواهد خواست که آن را نوشته و Enter میزند تا به سرور خود متصل شوید.

لازم به ذکر است که در اکثر توزیع های لینوکس پسوردی که وارد میشود نمایش داده نمیشود ؛ حتی بصورت ستاره نیز نشان داده نمیشود.

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