آموزش امنیت tmp و dev/shm/ در سرور لینوکس
در این ساعت قصد داریم تا امن نمودن فایل tmp و shm یک سرور لینوکس رو خدمتتون عرض کنیم . در مرحله اول عرض کنم که فرقی نداره شما دایرکت ادمین نصب کرده باشید یا سی پنل .. این آموزش کلا برای لینوکس هست و به سیستم نصب شده شما ربطی ندارد .
cd /dev
dd if=/dev/zero of=tmpMnt bs=1024 count=2000000
/sbin/mke2fs /dev/tmpMnt
cp -R /tmp/ /tmp_backup
mount -o loop,rw,nosuid,noexec /dev/tmpMnt /tmp
chmod 0777 /tmp
cp -R /tmp_backup/* /tmp/
rm -rf /tmp_backup
امن سازی dev/shm/ :
به ترتیب دستورات زیر را وارد نمایید :
اول از همه فایل زیر را با ویرایشگر نانو باز کنید (با دستور زیر می توانید این کار را انجام بدید)
حال پارامتر زیر را پیدا کرده
tmpfs defaults,rw 0 0
و به
tmpfs defaults,nosuid,noexec,rw 0 0
تغییر دهید
و سیو کنید و
mount -o remount /dev/shm
را بزنید تا بر تنظیمات جدید مونت شود
در نهایت reboot کنید سرور را .
آموزش جلوگیری از حمله متد Symlink در آپاچی
با سلام.
برای جلوگیری از هک سرور و بدست آوردن فایل های کانفیگ روی هاست های روی سرور شما وارد ssh شوید و دستور زیر را وارد کنید:
nano /usr/local/apache/conf/httpd.conf
سپس کلید ترکیبی ctrl+w را فشار دهید و کد <Directory “/”> را سرچ کنید سپس بعد از کد :
<Directory "/">
Options -ExecCGI -FollowSymLinks Includes IncludesNOEXEC Indexes -MultiViews SymLinksIfOwnerMatch
AllowOverride All
</Directory>
کد زیر را وارد کنید:
<Directory "/home">
Options -ExecCGI -FollowSymLinks -Includes IncludesNOEXEC Indexes -MultiViews SymLinksIfOwnerMatch
AllowOverride AuthConfig Indexes Limit FileInfo Options=IncludesNOEXEC,Indexes,Includes,MultiViews,SymLinksIfOwnerMatch
</Directory>
سپس دستور زیر را وارد کنید:
ctrl+x
و در اخر هم y را بزنید و سیو کنید و با دستور
service httpd restart
آپاچی را ریستارت کنید.
بک آپ گیری از دیتابیس در SSH
با استفاده از دستور زیر می توانیم از دیتابیس backup تهیه نماییم:
mysqldump databasename -u username -p password > file.sql
databasename نام دیتابیس مورد نظر برای backup گیری می باشد.
Username نام کاربری دیتابیس مورد نظر می باشد.
Password پسورد دیتابیس می باشد.
انتقال اطلاعات از طریق rsync
برای انتقال اطلاعات از یک سرور ب سرور دیگر می توانید از دستور rsync استفاده کرد.
screen rsync -arPvz file.tar --rsh= 'ssh -p227' root@187.92.8.45:/your/destination/address
|
مقابل -p باید port سرور مقصد را وارد نمایید و پس از @ باید IP سرور مقصد را وارد کنید.
r جهت انتقال اطلاعات زیر پوشه ها
P جهت resume انتقال در صورت قطع شدن پیش از اتمام
امن سازی SSH
پیش از هر چیز سرور را بروز رسانی نمایید:
port مربوط به ssh را تغییر دهید.
nano /etc/ssh/sshd_config
|
و عبارت
را بصورت زیر تغییر دهید.
فراموش نکنید این port را در csf باز کنید!
خط شامل:
را بصورت زیر تنظیم کنید.
همچنین عبارت GSSAPIAuthentication را بصورت زیر تنظیم نمایید:
قابلیت Limit Users’ SSH Access را نیز فعال نمایید. با این کار امکان ssh با root بصورت مستقیم وجود ندارد.
ابتدا باید یک group ایجاد نمایید تا user های درون این گروه تنها دسترسی ssh داشته باشند.
اضافه کردن user جدید در گروه مورد نظر:
useradd -G developers newuser
|
در صورتی که user قبلا ایجاد شده برای اضفه کردن به گروه خاص از دستور زیر استفاده نمایید:
usermod -a -G developers newuser
|
در فایل sshd_config در انتهای کد ها باید به group خود اجازه دسترسی ssh را وارد نمایید:
در ادامه باید به user نیز این اجازه را بدهید:
در انتها برای جلوگیری از ورود مستقیم با root خط :
را بصورت زیر تنظیم نمایید:
توجه داشته باشید با این تغییر امکان ssh با root وجود نخواهد داشت.
در پایان سرویس sshd را restart نمایید.
IPtables چیست؟ وچگونه کار میکند؟
یک فایروال وابزار شبکه است که در تمام نسخه های لینوکس وجود دارد و به تجزیه و تحلیل بست ها در سطح kernel می پردازد. هر جدول از تعدادی زنجیره و هر زنجیره از تعدادی قانون تشکیل شده است. سه زنجیر پیش فرض ، INPUT ، OUTPUT و Forward هستند . یک زنجیر فهرستی ساده از قوانین است و مشخص می کند با هر پکت چطور رفتار شود .
برای مشاهده rule های iptable :
Policies:
Accept :
هیچ قانونی روی این نوع اعمال نخواهد شد. امکان دسترسی به برنامه کاربردی را پیدا می کند.
Reject :
همانند DROP عمل می کند با این تفاوت که بعد از، از بین بردن پکت پیامی به فرستنده آن مبنی بر نابودی پکت ارسال می کند.
DROP :
پکت بدون ارسال پیام برای فرستنده آن نابود می شود .
برای allow کردن ssh :
iptables –I INPUT 1 –p tcp --dport 22 –j ACCEPT
|
اجازه دسترسی به rang IP خاص 192.168.1.0 – 192.168.1.255
iptables –I INPUT 1 –p tcp –dport 22 –s 192.168.1.0/24 –j ACCEPT
|
برای اعمال rule های پیش فرض:
تمام rule های اعمالی باید save شوند، در غیر اینصورت تمام rule ها پس از اولین reboot از بین خواهند رفت.
/etc/init.d/iptables save
|
برای restart کردن iptable :
برای غیر فعال کردن iptable :
chkconfig –level 12345 iptables off
|
اطلاعات تکمیلی :
http://www.cyberciti.biz/tips/linux-iptables-examples.html
چگونه محدودیت مموری (memory limit) سایت خود را بالا ببرم؟
معمولاً سرورهایی که هاست اشتراکی ارائه می دهند، محدودیتی برای استفاده ی هر سایت از منابع سرور و بویژه RAM قائل می شوند. هر کاربر می تواند این محدودیت را به میزان لازم خود بالا ببرد. در صورتی که سایتی از این محدودیت تخطی کند، سایت پیغام خطایی شبیه به پیغام زیر را نمایش می دهد:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 73336 bytes) in
/home/sites/website.ir/public_html/libraries/joomla/database/database/mysql.php on line 462
جهت افزایش این محدودیت، کافی است که خط زیر را به فایل php.ini موجود در قسمت public_html سایت بیفزایید:
memory_limit = 32M; Maximum amount of memory a script may consume (32MB)
توجه کنید که مقدار 32 می تواند بنابر خواست کاربر و میزان استفاده ی اسکریپت به مقادیر بالاتر (از جمله 64 و 128) افزایش یابد.
در صورتی که فایل php.ini در داخل پوشه ی public_html موجود نیست، باید این فایل را خودتان به صورت دستی اضافه نمایید.
موفق باشید ../.
آموزش باز کردن پورت در فایروال
ابتدا دستور زیر را وارد میکنیم:
nano /etc/csf/csf.conf
سپس ctrl+w را می زنیم و tcp_in و tcp_out را سرچ میکنیم
سپس پورت 22 یا هر پورتی را که در سرور لازم است پاک یا اضافه کنید.
سپس ctrl+x و سیو میکنیم به همین راحتی پورت در سرور باز می شود.
پا نوشت: لازم به ذکر است که در این دو مقدار باید پورتی که وارد میکنید یکی باشد ضمنا توصیه نمی شود که پورت های عادی را ببنید چون ممکنه است سرور از کار بیافتد.
ایمن کردن پوشه tmp
از دستور زیر استفاده میکنیم:
/scripts/securetmp
اگر سوالی پرسید پرسید y را بزنید.
آموزش نصب Rkhunter یا Rootkits Hunte
آموزش نصب Rkhunter یا Rootkits Hunter
برای نصب دستورات زیر را به ترتیب وارد کنید:
Cd
Wget link download
بجای link download اخرین نسخه را از صفحه زیر بگیرید:
Rootkit Hunter
سپس
tar -zxvf rkhunter-x.x.x.tar.gz
به جای x.x.x ورژن رو وارد کنید.
cd rkhunter-x.x.x
به جای x.x.x ورژن را وارد کنید.
جهت اسکن کردن سرور به صورت دستی می توانید از دستور زیر استفاده کنید:
/ usr/local/bin/rkhunter –c
جهت اسکن کردن خودکار به صورت روزانه از دستورات زیر استفاده کنید:
ابتدا :
pico /etc/cron.daily/rkhunter.sh
سپس مقادیر زیر را وارد کنید:
#!/bin/bash
(/usr/local/bin/rkhunter -c –cronjob 2>&1 | mail -s “Daily Rkhunter Scan Report” email@domain.com)
بجای email@domain.com
جهت بروزرسانی از دستور rkhunter –update استفاده میکنیم( بهتر است چند روزی یک بار این دستور را اجرا کنیم)