CentOS یک توزیع استاندارد لینوکس است که برگرفته از RedHat Enterprise Linux می باشد. شما ممکن است به محض نصب این سیستم عامل از آن استفاده کنید، اما برای استفاده هرچه بهتر از سیستم خود لازم است آن را آپدیت کنید، برخی از پکیج ها را نصب کنید و خدمات و اپلیکیشن هایی را کانفیگ کنید.
این مقاله برای "30 کاری که بعد از نصب RHEL/CentOS 7 انجام می شود" در نظر گرفته شده است. این پست با این فرض نوشته شده است که شما قبلا RHEL/CentOS مینیمال را که در اینترپرایز و محیط تولید، ترجیح داده می شود، نصب کرده اید. اگر نه، می توانید راهنمایی که در زیر آمده است را دنبال کنید تا به شما نصب مینیمال هر دو را نشان دهد.
آموزش نصب CentOS 7 Minimal
در زیر لیست موارد مهمی آمده است که ما در این راهنما مبتنی بر الزامات استاندارد صنعتی، آنها را پوشش داده ایم. ما امیدوار هستیم که این موارد، در تنظیم سرور شما بسیار مفید باشد.
1. اشتراک Red Hat را رجیستر و فعال کنید
2. شبکه را با آدرس IP استاتیک کانفیگ کنید
3. برای سرور Hostname بگذارید
4. نصب مینیمال CentOS را آپدیت یا آپگرید کنید
5. Command Line Web Browser را نصب کنید
6. Apache HTTP Server را نصب کنید
7. PHP را نصب کنید
8. MariaDB Database را نصب کنید
9. SSH Server را نصب و کانفیگ کنید
10. GCC (GNU Compiler Collection) را نصب کنید
11. Java نصب کنید
12. Apache Tomcat را نصب کنید
13. Nmap را برای نظارت بر پورت های باز نصب کنید
14. نصب FirewallD
15. نصب Wget
16. نصب Telnet
17. نصب Webmin
18. مخازن حزب سوم را فعال کنید
19. ابزار 7-zip را نصب کنید
20. درایور NTFS-3G را نصب کنید
21. Vsftpd FTP Server را نصب کنید
22. Sudo را نصب و کانفیگ کنید
23. SELinux را نصب و فعال کنید
24. Rootkit Hunter را نصب کنید
25. نصب Linux Malware Detect (LMD)
26. تست پهنای باند سرور با Speedtest-cli
27. Cron Jobs را کانفیگ کنید
28. Owncloud را نصب کنید
29. مجازی سازی را با Virtualbox فعال کنید
30. حفاظت از پسورد GRUB
1. اشتراک Red Hat را رجیستر و فعال کنید.
بعد از نصب RHEL 7 مینیمال، نوبت به رجیستر کردن و فعال کردن سیستمتان برای مخازن اشتراک Red Hat و انجام آپدیت کامل سیستم می رسد. این تنها درصورتی معتبر است که شما یک اشتراک معتبر RedHat داشته باشید. لازم است سیستم خود را رجیستر کنید تا مخازن رسمی سیستم RedHat فعال شود و سیستم عامل به طور مداوم آپدیت شود.
در حال حاضر، در راهنمای زیر ما دستورالعمل های دقیقی را در زمینه نحوه رجیستر و اکتیو کردن اشتراک RedHat، پوشش داده ایم.
Register and Enable Red Hat Subscription Repositories in RHEL 7 (به زودی)
2. شبکه را با آدرس IP استاتیک کانفیگ کنید.
اولین کاری که لازم است انجام دهید، کانفیگ کردن آدرس IP استاتیک، Route و DNS برای سرور CentOS شما است. ما از دستور ip به جای دستور ifconfig استفاده خواهیم کرد. با این حال، دستور ifconfig هنوز برای اکثر مخازن لینوکس، قابل استفاده است و می تواند از طریق مخزن پیش فرض نصب شود.
اما همانطور که گفتم، ما از دستور ip برای کانفیگ آدرس IP استاتیک استفاده می کنیم. بنابراین اول مطمئن شوید که آدرس IP فعلی را چک کرده اید.
اکنون فایل etc/sysconfig/network-scripts/ifcfg-enp0s3/ را با استفاده از انتخاب ویرایشگر، باز و ویرایش کنید. در اینجا من از ویرایشگر Vi استفاده می کنم و مطمئن شوید کاربر root هستید تا بتوانید تغییرات ایجاد کنید...
نکته : در اینجا فایل اینترفیس شبکه من ifcfg-enp0s3 میباشد. در سیستم شما شاید فرق داشته باشد. بعد از تایپ ifcfg چند بار دکمه تب را فشار دهید که لیست اینترفیس های شبکه را برایتان نمایش دهد.
اکنون ما فیلدهای زیر را در این فایل ویرایش می کنیم. به فیلدهای زیر توجه داشته باشید و به هیچ چیز دیگری دست نزنید. همچنین دبل کوتیشن را به همان صورت که هست رها کنید و فقط اطلاعات خود را بین آن وارد کنید.
پس از ایجاد تغییرات ‘ifcfg-enp0s3‘، چیزی شبیه زیر را می بینید. به IP، GATEWAY و DNS خود که تغییر خواهند کرد، توجه کنید. لطفا توسط ISP خود، آن را تایید کنید. Save کنید و سپس خارج شوید.
service network را ری استارت کنید و چک کنید IP که اختصاص داده شده است، درست است یا نه. اگر همه چیز درست بود، Ping کنید تا وضعیت شبکه را ببینید...
پس از ری استارت شبکه، برای اطمینان، آدرس IP و وضعیت شبکه را چک کنید...
3. تنظیم Hostname برای سرور
کاری که بعد از آن باید انجام داد، تغییر HOSTNAME سرور CentOS است. HOSTNAME اختصاص داده شده فعلی را چک کنید.
برای تعیین یک HOSTNAME جدید باید ‘etc/hostsname/‘ را ویرایش کرده و آن را جایگزین hostname قدیمی کنیم.
بعد از تنظیم کردن hostname، با خارج شدن و دوباره لاگین کردن، مطمئن شوید که hostname تایید شده است. بعد از لاگین hostname جدید را چک کنید.
به عنوان راهی دیگر شما ممکن است از دستور ‘hostname‘ برای دیدن hostname فعلی خود استفاده کنید.
4. نصب مینیمال CentOS را آپدیت یا آپگرید کنید.
هیچ پکیج دیگری به غیر از آپدیت و نصب آخرین ورژن پکیج های نصب شده و آپدیت های امنیتی را نصب نخواهد کرد. علاوه بر این، آپدیت و آپگرید تقریبا جز این حقیقتی که آپگرید = آپدیت + فعال سازی پروسه های قدمی در طول آپدیت نیست.
مهم : شما همچنین می توانید دستور زیر را اجرا کنید که موجب آپدیت پکیج ها نخواهد شد و نیازی به تایپ ‘y‘ برای قبول تغییرات، ندارید.
با این حال، این همیشه یک ایده خوب برای بازبینی تغییراتی است که میخواهند روی سرور به ویژه در تولید، صورت بگیرند. از این رو، استفاده از دستور زیر ممکن است آپدیت و آپگیرد را به طور خودکار برای شما انجام دهد اما توصیه نمی شود.
5. Command Line Web Browser را نصب کنید.
در اغلب موارد، به خصوص در محیط محصول، ما معمولا CentOS را به عنوان خط فرمان بدون GUI نصب می کنیم، در این موقعیت ما باید ابزار مرور خط فرمان را داشته باشیم تا وب سایت ها را از طریق ترمینال چک کنیم. برای این منظور، ما معروف ترین ابزار که ‘links‘ نامیده می شود را نصب می کنیم.
برای کاربردها و مثال های مرور وب سایت ها با ابزار links، مقاله زیر را مطالعه کنید.
Command Line Web Browsing with Links Tool (به زودی)
6. Apache HTTP Server را نصب کنید.
مهم نیست به چه دلیلی می خواهید از سرور استفاده کنید، در اکثر موارد شما برای راه اندازی وب سایت ها، مالتی مدیا، اسکریپت کلاینت ساید و موارد بسیار دیگری، به یک HTTP server نیاز دارید.
اگر می خواهید پورت پیش فرض (80) Apache HTTP Server را به پورت های دیگر تغییر دهید، باید فایل کانفیگ ‘/etc/httpd/conf/httpd.conf‘ را ویرایش کنید و به دنبال خطی باشید که معمولا این گونه شروع می شود:
پورت شماره ‘80‘ را به هر پورت دیگری (مثلا 3221) تغییر دهید، ذخیره کنید و خارج شوید.
پورتی که فقط برای آپاچی از طریق فایروال باز می کنید را اضافه کنید و سپس فایروال را مجددا لود کنید.
سرویس http را از طریق فایروال امکان پذیر کنید.(همیشه)
پورت 3221 را از طریق فایروال امکان پذیر کنید. (همیشه)
فایروال را Reload کنید.
پس از انجام همه موارد بالا، اکنون زمان ری استارت کردن Apache HTTP server است تا شماره پورت جدید، موثر واقع شود.
اکنون سرویس آپاچی را اضافه کنید تا سیستم گسترده وقتی که بوت شد، به صورت اتوماتیک شروع کند.
حال، Apache HTTP Server با استفاده از ابزار خط دستور links همانطور که در صفحه زیر قابل مشاهده است، تایید می شود.
7. PHP را نصب کنید.
PHP یک زبان اسکریپت نویسی سرور ساید برای سرویس های مبتنی بر وب است. در اغلب موارد، به عنوان زبان برنامه نویسی همه منظوره استفاده می شود. PHP را روی سرور مینیمال CentOS نصب کنید.
بعد از نصب PHP، مطمئن شوید Apache service ری استارت شده است تا PHP در مرورگر وب، رندر شود.
سپس، با ایجاد اسکریپت php زیر در دایرکتوری روت document آپاچی، PHP را تایید کنید.
اکنون فایل PHP را ببینید، ما فقط (phpinfo.php) را در خط فرمان لینوکس، به شرح زیر، ساختیم.
8. MariaDB Database را نصب کنید.
MariaDB شاخه ای از MySQL است. RedHat Enterprise Linux و مشتقات آن، از MySQL به MariaDB تغییر کرده اند. این سیستم مدیریت دیتابیس اصلی است. این دوباره یکی از آن ابزارهایی است که داشتنش ضروری است و دیر یا زود به آن نیاز پیدا می کنید. بدون اینکه نوع سروری که می خواهید تنظیم کنید، مهم باشد. MariaDB را روی سرور نصب مینیمال CentOS، به شرح زیر، نصب کنید.
MariaDB را شروع و کانفیگ کنید تا در زمان بوت، به صورت اتوماتیک آغاز شود.
سرویس mysql (mariadb) را از طریق فایروال امکان پذیر کنید.
اکنون زمان تامین امنیت سرور MariaDB است.
مقالات زیر را نیز بخوانید :
دستورات پایه ای دیتابیس MySQL/MariaDB
9. SSH Server را نصب و کانفیگ کنید.
SSH مخفف Secure Shell است که پروتکل پیش فرض لینوکس برای مدیریت ریموت است. SSH، یکی از بخش های ضروری نرم افزاری است که با سرور مینیمال CentOS به طور پیش فرض عرضه شده است.
چک کنید ورژن SSH به درستی نصب شده باشد.
از پروتکل ایمن، بیشتر از پروتکل SSH پیش فرض استفاده کنید و همچنین برای امنیت بیشتر، شماره پورت را تغییر دهید. ‘etc/ssh/ssh_config/‘، فایل کانفیگوریشن SSH را ویرایش کنید.
خط زیر این خط را Uncomment کنید و یا 1 را از رشته پروتکل حذف کنید، در نتیجه خطی شیبه به این می بینید:
این تغییر، SSH را وادار به استفاده از پروتکل 2 می کند که امن تر از پروتکل 1 به حساب می آید و همچنین از تغییر پورت شماره 22 به هر شماره پورت دیگری در کانفیگوریشن، اطمینان حاصل کنید.
‘root login‘ مربوط به SSH را غیرفعال کنید و درست بعد از لاگین کردن به یک اکانت کاربر نرمال برای حفظ امنیت بیشتر، به روت متصل شوید. برای این کار، فایل کانفیگ ‘etc/ssh/sshd_config/‘ را باز و ویرایش کنید و PermitRootLogin yes را به PermitRootLogin no تغییر دهید.
در نهایت، سرویس SSH را restart کنید تا تغییرات جدید اعمال شوند...
مقاله های زیر را نیز مطالعه کنید :
10. GCC (GNU Compiler Collection) را نصب کنید.
GCC مخفف GNU Compiler Collection (کلکسیون کامپایلرهای گنو)، سیستم کامپایلری است که پروژه GNU که از زبان های برنامه نویسی مختلفی پشتیبانی می کند، آن را توسعه داده است. GCC به طور پیش فرض بر روی CentOS Minimal Install نصب نمی باشد. برای نصب کامپایلر GCC، دستور زیر را اجرا کنید.
ورژن gcc نصب شده را با دستور زیر، چک کنید.
11. Java نصب کنید.
جاوا، یکی از زبان های برنامه نویسی شئ گرا و مبتنی بر کلاس همه منظوره است. جاوا به طور پیش فرض بر روی سرور CentOS Minimal نصب نمی باشد. Java را از مخزنی به شرح زیر، نصب نمائید.
ورژن جاوای نصب شده را چک کنید.
12. Apache Tomcat را نصب کنید.
Tomcat، کانتینر servlet است که آپاچی برای اجرای وب سرور HTTP جاوا، طراحی کرده است. Tomcat را به روش زیر نصب کنید اما لازم به ذکر است که باید قبل از نصب Tomcat، جاوا را نصب کرده باشید.
بعد از اینکه tomcat نصب شد، سرویس tomcat را آغاز کنید.
ورژن tomcat را چک کنید.
سرویس tomcat و پورت پیش فرض (8080) را اضافه کنید و تنظیمات را مجددا لود کنید.
اکنون نوبت به امنیت سرور tomcat رسیده است، یک کاربر و یک پسورد برای دسترسی و مدیریت، ایجاد کنید. لازم است که فایل ‘/etc/tomcat/tomcat-users.xml‘ ویرایش شود. بخشی همچون زیر را می بینید:
در اینجا ما کاربر “linux-zone” را با استفاده از پسورد “linux-zone” به administer/manage tomcat اضافه می کنیم. سرویس tomcat را Stop و start کنید تا تغییرات اعمال شود و سرویس tomcat را برای شروع در بوت سیستم، فعال کنید.
همچنین مقاله زیر را مطالعه کنید :
Installing and Configuring Apache Tomcat 8.0.9 in RHEL/CentOS 7.0/6.x (به زودی)
13. Nmap را برای نظارت بر پورت های باز نصب کنید.
Nmap با پیدا کردن هاستی که در حال اجرا است و همچنین با آنالیز شبکه، برای Network Mapper نقشه ای از شبکه می سازد. Nmap به طور پیش فرض نصب نیست و شما باید آن را از مخزن نصب نمائید.
تمام پورت های باز و خدمات مربوطه که روی هاست از آنها استفاده می کنند را لیست کنید.
همچنین ممکن است شما از firewall-cmd برای لیست کردن تمام پورت ها استفاده کنید، ولی من nmap را مفیدتر می دانم.
مقاله زیر را نیز مطالعه کنید :
29 Useful Nmap Command to Monitor Open Ports (به زودی)
14. نصب FirewallD
Firewalld یک سرویس فایروالی است که به صورت داینامیک، سرور را مدیریت می کند. Firewalld، iptableهای CentOS 7 را حذف می کند. Firewalld به طور پیش فرض بر روی RedHat Enterprise Linux و مشتقات آن نصب شده است. با هر تغییر iptableها در جهت موثر واقع شدن، لازم است تمام دستورات قدیمی کنار گذاشته و دستورات جدید ایجاد شود.
با این حالا با firewalld، فلاشینگ و بازسازی قوانین جدید، نیاز نمی شود و فقط تغییرات بر روی فلای، اعمال می شود.
بررسی کنید که Firewalld، درحال اجرا است یا خیر.
لیستی از تمام مناطق، تهیه کنید.
دریافت جزئیات یک منطقه، قبل از تغییر:
دریافت منطقه پیش فرض:
برای سوئیچ کردن به یک منطقه دیگر از ‘work‘ استفاده کنید:
لیست کردن تمام سرویس های موجود در منطقه:
برای اضافه کردن یک سرویس به طور موقت از http استفاده کنید و firewalld را reload نمائید:
To add a service say http, permanently and reload firewalld.
برای حذف یک سرویس به طور موقت هم از http استفاده کنید:
برای حذف یک سرویس به طور دائم از http به شکل زیر استفاده کنید:
پذیرفتن یک پورت (مثلا 331) به طور موقت:
پذیرفتن یک پورت (مثلا 331) به طور دائم:
بلاک/حذف کردن یک پورت (مثلا 331) به طور موقت:
بلاک/حذف کردن یک پورت (مثلا 331) به طور دائم:
غیر فعال کردم firewalld:
فعال کردن firewalld:
این مقالات را مطالعه کنید :
15. نصب Wget
Wget، یک خط فرمان لینوکسی مبتنی بر خدمات عمومی است که محتوا را از سرورهای وب، بازیابی (دانلود) می کند. این یک ابزار مهم است که شما باید با استفاده از دستور wget، محتویات وب را بازیابی و هر فایلی را دانلود کنید.
برای نمونه های کاربردی تر و عملی تر در مورد نحوه استفاده از دستور wget برای دانلود فایل ها در ترمینال، مقاله زیر را مطالعه کنید.
دستور wget در لینوکس
16. نصب Telnet
Telnet، پروتکل شبکه است که کاربر را قادر می سازد تا به کامپیوتر دیگری در همان شبکه روی TCP/IP لاگین کند. هنگامی که اتصال به کامپیوتر راه دور برقرار شد، تبدیل به یک ترمینال مجازی می شود و به شما اجازه می دهد تا با هاست ریموت داخل کامپیوتر خود به عنوان ارائه امتیازاتی برای شما، ارتباط برقرار کنید.
Telnet، همچنین برای چک کردن پورت های باز کامپیوتر یا هاست راه دور، بسیار مفید می باشد.
17. نصب Webmin
Webmin، ابزار کانفیگوریشن تحت وب برای لینوکس است. همچون یک سیستم مرکزی عمل می کند تا کانفیگوریشن سیستم های مختلف همچون کاربران، فضای دیسک، سرویس ها و تنظیمات HTTP server، Apache، MySQL و غیره را کانفیگ کند.
بعد از نصب webmin، یک پیام در ترمینال دریافت خواهید کرد مبنی بر اینکه با استفاده از پسورد روت خود روی پورت 10000 به هاست خود (http://ip-address:10000) لاگین کنید. اگر یک سرور بدون سرپرست راه اندازی کنید، می توانید پورت و دسترسی به آن را بر روی یک ماشین/سروری که سرپرست دارد، ارسال کنید.
18. مخازن حزب سوم را فعال کنید.
این ایده خوبی برای اضافه کردن مخازن غیر قابل اطمینان به خصوص در تولید نیست و ممکن است مخرب باشد. هرچند به طور مثال در اینجا ما مخازن قابل اطمینانی را برای نصب ابزار و پکیج های حزب سوم اضافه کرده ایم که مورد تایید جامعه است.
پکیج بیشتری برای مخزن Enterprise Linux (EPEL) اضافه کنید.
مخزن Enterprise Linux جامعه را اضافه کنید.
توجه! مراقبت بیشتری در هنگام افزودن مخزن حزب سوم، لازم است.
19. ابزار 7-zip را نصب کنید.
در نصب CentOS مینیمال، شما ابزاری همچون unzip یا unrar دریافت نمی کنید. ما گزینه ای برای نصب هر یک از ابزار همانطور که خواسته شده است، داریم و یا ابزاری که خدمتگذار همه باشند. 7-zip چنین ابزاری است که فایل های اضافی تمامی فرمت های شناخته شده را فشرده می سازد.
توجه : این پکیج دانلود و نصب شده از مخزن Fedora EPEL 7 می باشد.
20. درایور NTFS-3G را نصب کنید.
درایور کوچک NTFS ولی درعین حال بسیار مفیدی که NTFS-3G نامیده می شود، برای اکثر توزیع های شبه یونیکس، قابل دسترس است. برای نصب و دسترسی به سیستم فایل NTFS ویندوز مفید می باشد. با وجود اینکه گزینه های دیگری مانند Tuxera NTFS موجود است، NTFS-3G به طور گسترده تری استفاده می شود.
بعد از اینکه ntfs-3g نصب شد، می توانید پارتیشن های NTFS ویندوز را (که /dev/sda5 درایو ویندوز من است) با استفاده از دستور زیر قرار دهید.
21. Vsftpd FTP Server را نصب کنید
VSFTPD که مخفف Very Secure File Transfer Protocol Daemon (دیمن پروتکل انتقال فایل بسیار امن) است، یک FTP server برای سیستم های شبه یونیکس است. یکی از کارآمدترین و امن ترین FTP Server در دسترس امروز است.
فایل کانفیگوریشن واقع در ‘/etc/vsftpd/vsftpd.conf‘ را برای ایمنی vsftpd ویرایش کنید.
برخی فیلدها را ویرایش کنید و بقیه را همان گونه که هستند رها کنید، مگر اینکه بدانید چه کاری انجام می دهید.
همچنین ممکن است شما شماره پورت را تغییر دهید و پورت vsftpd را از طریق فایروال باز کنید.
سپس vsftpd را ری استارت کنید و استارت در زمان بوت را فعال کنید.
22. Sudo را نصب و کانفیگ کنید
Sudo که به عنوان "به خوبی آنچه کاربر انجام می دهد، انجامش بده" نامیده می شود، برنامه ای برای سیستم عامل شبه یونیکس برای اجرای یک برنامه با امنیت ممتاز کاربر دیگری است. بیایید نحوه کانفیگ sudo را ببینیم...
فایل /etc/sudoers را برای ویرایش باز خواهد کرد...
تمامی دسترسی ها (معادل root) را به کاربر (مثلا linux-zone) که قبلا ایجاد شده است، بدهید.
تمامی دسترسی ها (معادل root)، به جز اجازه ریبوت و خاموش کردن سرور را به کاربر (مثلا linux-zone) بدهید.
مجددا همان فایل را باز کنید و محتوای آن را به محتویات زیر تغییر دهید.
سپس نام مستعاری با منطق (!) اپراتور اضافه کنید.
دسترسی به یک گروه (مثلا debian) را برای اجرای دستور امتیاز ریشه (اضافه و حذف کاربر) بدهید.
و سپس اجازه دسترسی به گروه debian را اضافه کنید.
23. SELinux را نصب و فعال کنید
SELinux که مخفف Security-Enhanced Linux است، یک ماژول امنیتی در سطح کرنل می باشد.
حالت SELinux را چک کنید.
خروجی، حالت به اجرا درآمدن است که به معنی سیاست SELinux در مفهوم است.
برای رفع اشکال، حالت selinux را روی permissive temporarily تنظیم کنید. نیازی به ریبوت کردن نیست.
بعد از اشکال زدایی، selinux را برای اجرای دوباره بدون ریبوت، تنظیم کنید.
24. Rootkit Hunter را نصب کنید
Rootkit Hunter به اختصار Rkhunter، اپلیکیشنی است که rootkitها را اسکن می کند و سوء استفاده های بالقوه مضر در سیستم های لینوکس را اسکن می کند.
Rkhunter را به عنوان برنامه ریز کاری اجرا کنید، با یک فایل اسکریپت یا به صورت دستی، سوء استفاده های بالقوه مضر در سیستم های لینوکس را اسکن کنید.
25. نصب Linux Malware Detect (LMD)
شناسایی بدافزارهای لینوکس (LMD)، یک اسکنر بدافزار و منبع باز لینکوس است که تحت لیسانس GNU GPLv2 منتشر شده است و به طور ویژه برای مواجه با تهدیدات در محیط های هاستینگ، طراحی شده است. برای کامل شدن نصب، کانفیگوریشن و استفاده از LMD مقاله زیر را مطالعه نمائید:
Install and Use (LMD) with ClamAV as Antivirus Engine (به زودی)
26. تست پهنای باند سرور با Speedtest-cli
speedtest-cli ابزار نوشتاری در پایتون برای تست پهنای باند شامل سرعت دانلود و آپلود است. برای تکمیل نصب و استفاده از ابزار speedtest-cli، مقاله زیر را مطالعه کنید.
Check Linux Server Bandwidth Speed from Command Line (به زودی)
27. Cron Jobs را کانفیگ کنید
این یکی از گسترده ترین ابزار نرم افزاری مورد استفاده است. به عنوان برنامه ریز و زمان بندی شغلی عمل می کند. کاری که در آینده انجام خواهد شد را اکنون زمان بندی کنید. این ابزار در لاگین کردن و حفظ سوابق به دست نیامده و همچنین چندین کار روتین دیگر، همچون بکاپ گیری منظم عمل می کند. تمام برنامه های زمان بندی در فایل /etc/crontab نوشته می شود.
فایل crontab شامل 6 فیلد به شرح زیر می باشد:
برای اجرای کار cron (اجرای /home/$USER/script.sh) هر روز در ساعت 4:30 قبل از ظهر:
ورودی زیر را به crontab فایل ‘/etc/crontab/‘ اضافه کنید.
بعد از اینکه خط بالا را به crontab اضافه کردید، به صورت اتوماتیک هر روز در ساعت 4:30 قبل از ظهر اجرا خواهد شد و خروجی به آنچه در فایل اسکریپت وجود دارد، وابسته است. علاوه بر این، اسکریپت می تواند جایگزین دستورات شود. برای مثال بیشتر از کارهای cron، مقاله زیر را مطالعه کنید.
11 Cron Jobs Examples in Linux (به زودی)
28. Owncloud را نصب کنید
Owncloud، یک ابزار هماهنگ سازی اطلاعات مبتنی بر HTTP، اپلیکیشن اشتراک گذاری فایل و ذخیره سازی فایل از راه دور است. برای جزئیات بیشتر در مورد نصب ابر خود، به مقاله Create Personal/Private Cloud Storage in Linux مراجعه کنید.
29. مجازی سازی را با Virtualbox فعال کنید
مجازی سازی، فرآیند ساخت سیستم عمال، سخت افزار و شبکه مجازی است که یکی از محبوب ترین تکنولوژی های عصر حاضر است. ما در مورد نحوه نصب و کانفیگ مجازی سازی با جزئیات بحث خواهیم کرد.
سرور مینیمال CentOS یک سرور بدون سرپرست است. بیایید آن را برای ماشین های مجازی سازی هاست که از طریق HTTP با نصب پکیج های زیر، قابل دسترس است را آماده کنیم.
دایرکتوری در حال کار را به ‘/etc/yum.repos.d/‘ تغییر دهید و مخزن Virtualbox را دانلود کنید.
تنها کلید دانلود شده را نصب کنید.
Virtualbox را آپدیت و نصب کنید.
سپس، پک افزونه Virtualbox را دانلود و نصب کنید.
یک کاربر به نام ‘vbox‘ برای مدیریت virtualbox ایجاد کنید و آن را به گروه vboxusers اضافه کنید.
سرور HTTPD را نصب کنید.
PHP را (با افزونه soap) نصب کنید.
PHP virtualBox را دانلود کنید.
فایل zip را اکسترکت کنید و فولدر اکسترکت شده را در دایرکتوری در حال کار HTTP کپی کنید.
سپس فایل /var/www/html/phpvirtualbox/config.php-example را به var/www/html/phpvirtualbox/config.php تغییر نام دهید.
فایل کانفیگوریشن را برای ویرایش و افزودن ‘username‘ و ‘password‘ باز کنید. ما این کار را در مرحله بالا انجام دادیم.
در نهایت، VirtualBox و HTTP server را ری استارت کنید.
اکنون پورت را ارسال کنید و دسترسی آن را به یک سرور سرپرست شده، ایجاد کنید.
30. حفاظت از پسورد GRUB
پسورد از بوت لودر شما محافظت می کند به طوری که شما یک سطح اضافه ای از امنیت، درست در زمان بوت، دریافت می کنید. همچنین لایه ای محافظتی در سطح فیزیکی دریافت می کنید. سرور خود را با قفل کردن GRUB در بوت محافظت کنید تا از هرگونه دسترسی غیرمجازی جلوگیری کنید.
ابتدا بکاپ دو فایل را تهیه کنید، تا درصورت هر پیشامد بدی، امکان بازگرداندن را داشته باشید. یک بکاپ با عنوان ‘/etc/grub2/grub.cfg.old‘ از ‘/etc/grub2/grub.cfg‘ بگیرید.
همچنین از ‘/etc/grub.d/10_linux‘ بکاپی با عنوان ‘/etc/grub.d/10_linux.old‘ بسازید.
اکنون ‘/etc/grub.d/10_linux‘ را باز کنید و خط زیر را در انتهای فایل، اضافه کنید.
توجه کنید که در فایل بالا، “habili” را به عنوان username و “linux-zone” را به عنوان پسورد به جای username و password خود قرار دهید.
اکنون فایل جدید grub.cfg را با صدور فرمان زیر، تولید کنید.
بعد از ایجاد فایل جدید grub.cfg، سیستم را ریبوت کنید و دکمه ‘e‘ را برای ویرایش بفشارید. خواهید دید که از شما می خواهد تا برای ویرایش منوی بوت، ‘valid credentials‘ وارد کنید.
پس از وارد کردن اعتبارنامه لاگین، شما می توانید منوی بوت grub را ویرایش کنید.
همچنین می توانید همانطور که در مرحله بالا نشان داده شد، پسورد رمزگذاری شده ای بجای پسورد ساده تولید کنید. ابتدا پسورد رمزگذاری شده ای به شرح زیر، بسازید.
اکنون فایل ‘/etc/grub.d/10_linux‘ را باز کنید و خط زیر را به انتهای فایل، اضافه کنید.
پسورد را با پسورد تولید شده، روی سیستم خود تعویض کنید. فراموش نکنید پسورد را چک کنید.
همچنین توجه داشته باشید که لازم است در این مورد، همانطور که در بالا توضیح داده شد، grub.cfg تولید کنید. ریبوت کنید و بعد از آن دکمه ‘e‘ را برای ویرایش فشار دهید، شما برای username و password آماده خواهید بود.
سعی ما بر این بود تا بسیاری از نکات لازم برای نصب استاندارد صنعتی توزیع های RHEL 7 و CentOS 7 را پوشش دهیم. اگر مطلبی را نیاز دارید که به آن اشاره نشده بود، آن را با ما در میان بگذارید.
این مقاله برای "30 کاری که بعد از نصب RHEL/CentOS 7 انجام می شود" در نظر گرفته شده است. این پست با این فرض نوشته شده است که شما قبلا RHEL/CentOS مینیمال را که در اینترپرایز و محیط تولید، ترجیح داده می شود، نصب کرده اید. اگر نه، می توانید راهنمایی که در زیر آمده است را دنبال کنید تا به شما نصب مینیمال هر دو را نشان دهد.
آموزش نصب CentOS 7 Minimal
در زیر لیست موارد مهمی آمده است که ما در این راهنما مبتنی بر الزامات استاندارد صنعتی، آنها را پوشش داده ایم. ما امیدوار هستیم که این موارد، در تنظیم سرور شما بسیار مفید باشد.
1. اشتراک Red Hat را رجیستر و فعال کنید
2. شبکه را با آدرس IP استاتیک کانفیگ کنید
3. برای سرور Hostname بگذارید
4. نصب مینیمال CentOS را آپدیت یا آپگرید کنید
5. Command Line Web Browser را نصب کنید
6. Apache HTTP Server را نصب کنید
7. PHP را نصب کنید
8. MariaDB Database را نصب کنید
9. SSH Server را نصب و کانفیگ کنید
10. GCC (GNU Compiler Collection) را نصب کنید
11. Java نصب کنید
12. Apache Tomcat را نصب کنید
13. Nmap را برای نظارت بر پورت های باز نصب کنید
14. نصب FirewallD
15. نصب Wget
16. نصب Telnet
17. نصب Webmin
18. مخازن حزب سوم را فعال کنید
19. ابزار 7-zip را نصب کنید
20. درایور NTFS-3G را نصب کنید
21. Vsftpd FTP Server را نصب کنید
22. Sudo را نصب و کانفیگ کنید
23. SELinux را نصب و فعال کنید
24. Rootkit Hunter را نصب کنید
25. نصب Linux Malware Detect (LMD)
26. تست پهنای باند سرور با Speedtest-cli
27. Cron Jobs را کانفیگ کنید
28. Owncloud را نصب کنید
29. مجازی سازی را با Virtualbox فعال کنید
30. حفاظت از پسورد GRUB
1. اشتراک Red Hat را رجیستر و فعال کنید.
بعد از نصب RHEL 7 مینیمال، نوبت به رجیستر کردن و فعال کردن سیستمتان برای مخازن اشتراک Red Hat و انجام آپدیت کامل سیستم می رسد. این تنها درصورتی معتبر است که شما یک اشتراک معتبر RedHat داشته باشید. لازم است سیستم خود را رجیستر کنید تا مخازن رسمی سیستم RedHat فعال شود و سیستم عامل به طور مداوم آپدیت شود.
در حال حاضر، در راهنمای زیر ما دستورالعمل های دقیقی را در زمینه نحوه رجیستر و اکتیو کردن اشتراک RedHat، پوشش داده ایم.
Register and Enable Red Hat Subscription Repositories in RHEL 7 (به زودی)
2. شبکه را با آدرس IP استاتیک کانفیگ کنید.
اولین کاری که لازم است انجام دهید، کانفیگ کردن آدرس IP استاتیک، Route و DNS برای سرور CentOS شما است. ما از دستور ip به جای دستور ifconfig استفاده خواهیم کرد. با این حال، دستور ifconfig هنوز برای اکثر مخازن لینوکس، قابل استفاده است و می تواند از طریق مخزن پیش فرض نصب شود.
کد PHP:
# yum install net-tools [Provides ifconfig utility]
کد PHP:
[root@linux-zone ~]# yum install net-tools
Determining fastest mirrors
* base: mirror.centos.org
* extras: mirror.centos.org
* updates: mirror.centos.org
Resolving Dependencies
--> Running transaction check
---> Package net-tools.x86_64 0:2.0-0.17.20131004git.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================
Installing:
net-tools x86_64 2.0-0.17.20131004git.el7 base 304 k
Transaction Summary
============================================================================================================================================
Install 1 Package
Total download size: 304 k
Installed size: 917 k
Is this ok [y/d/N]: y
کد PHP:
[root@linux-zone ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:50:56:b5:19:04 brd ff:ff:ff:ff:ff:ff
inet 192.168.25.30/24 brd 192.168.25.255 scope global dynamic eno16777728
valid_lft 85414sec preferred_lft 85414sec
inet6 fe80::250:56ff:feb5:1904/64 scope link
valid_lft forever preferred_lft forever
[root@linux-zone ~]#
نکته : در اینجا فایل اینترفیس شبکه من ifcfg-enp0s3 میباشد. در سیستم شما شاید فرق داشته باشد. بعد از تایپ ifcfg چند بار دکمه تب را فشار دهید که لیست اینترفیس های شبکه را برایتان نمایش دهد.
کد PHP:
# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
کد PHP:
BOOTPROTO="static"
ONBOOT="yes"
IPADDR = “[Enter your static IP here]”
GATEWAY = “[Enter your Default Gateway]”
DNS1 = “[Your Domain Name System 1]”
DNS2 = “[Your Domain Name System 2]”
کد PHP:
TYPE=Ethernet
BOOTPROTO="static"
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
NAME=eno16777728
UUID=ffdd25d8-acda-4cc5-9006-0d71b70988a3
DEVICE=eno16777728
ONBOOT="yes"
IPADDR="192.168.25.30"
PREFIX="24"
GATEWAY="192.168.25.100"
DNS1="8.8.8.8"
DNS2="4.2.2.4"
کد PHP:
[root@linux-zone ~]# service network restart
Restarting network (via systemctl): [ OK ]
[root@linux-zone ~]#
کد PHP:
# ip addr show
# ping -c4 google.com
کد PHP:
[root@linux-zone ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:50:56:b5:19:04 brd ff:ff:ff:ff:ff:ff
inet 192.168.25.30/24 brd 192.168.25.255 scope global eno16777728
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:feb5:1904/64 scope link
valid_lft forever preferred_lft forever
[root@linux-zone ~]#
کد PHP:
[root@linux-zone ~]# ping -c4 google.com
PING google.com (94.20.252.187) 56(84) bytes of data.
64 bytes from 94.20.252.187: icmp_seq=1 ttl=51 time=22.0 ms
64 bytes from 94.20.252.187: icmp_seq=2 ttl=51 time=38.3 ms
64 bytes from 94.20.252.187: icmp_seq=3 ttl=51 time=21.4 ms
64 bytes from 94.20.252.187: icmp_seq=4 ttl=51 time=19.7 ms
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 26960ms
rtt min/avg/max/mdev = 19.747/25.397/38.324/7.511 ms
[root@linux-zone ~]#
3. تنظیم Hostname برای سرور
کاری که بعد از آن باید انجام داد، تغییر HOSTNAME سرور CentOS است. HOSTNAME اختصاص داده شده فعلی را چک کنید.
کد PHP:
[root@linux-zone ~]# echo $HOSTNAME
linux-zone.org
[root@linux-zone ~]#
کد PHP:
# vi /etc/hostname
کد PHP:
$ echo $HOSTNAME
کد PHP:
$ hostname
4. نصب مینیمال CentOS را آپدیت یا آپگرید کنید.
هیچ پکیج دیگری به غیر از آپدیت و نصب آخرین ورژن پکیج های نصب شده و آپدیت های امنیتی را نصب نخواهد کرد. علاوه بر این، آپدیت و آپگرید تقریبا جز این حقیقتی که آپگرید = آپدیت + فعال سازی پروسه های قدمی در طول آپدیت نیست.
کد PHP:
# yum update && yum upgrade
کد PHP:
rdma noarch 7.2_4.1_rc6-2.el7 updates 28 k
selinux-policy noarch 3.13.1-60.el7_2.7 updates 376 k
selinux-policy-targeted noarch 3.13.1-60.el7_2.7 updates 3.9 M
sudo x86_64 1.8.6p7-17.el7_2 updates 732 k
systemd x86_64 219-19.el7_2.11 updates 5.1 M
systemd-libs x86_64 219-19.el7_2.11 updates 358 k
systemd-sysv x86_64 219-19.el7_2.11 updates 53 k
teamd x86_64 1.17-6.el7_2 updates 109 k
tuned noarch 2.5.1-4.el7_2.3 updates 193 k
tzdata noarch 2016e-1.el7 updates 442 k
util-linux x86_64 2.23.2-26.el7_2.2 updates 1.9 M
Transaction Summary
============================================================================================================================================
Install 1 Package
Upgrade 76 Packages
Total download size: 96 M
Is this ok [y/d/N]: y
با این حال، این همیشه یک ایده خوب برای بازبینی تغییراتی است که میخواهند روی سرور به ویژه در تولید، صورت بگیرند. از این رو، استفاده از دستور زیر ممکن است آپدیت و آپگیرد را به طور خودکار برای شما انجام دهد اما توصیه نمی شود.
کد PHP:
# yum -y update && yum -y upgrade
5. Command Line Web Browser را نصب کنید.
در اغلب موارد، به خصوص در محیط محصول، ما معمولا CentOS را به عنوان خط فرمان بدون GUI نصب می کنیم، در این موقعیت ما باید ابزار مرور خط فرمان را داشته باشیم تا وب سایت ها را از طریق ترمینال چک کنیم. برای این منظور، ما معروف ترین ابزار که ‘links‘ نامیده می شود را نصب می کنیم.
کد PHP:
# yum install links
کد PHP:
---> Package js.x86_64 1:1.8.5-19.el7 will be installed
---> Package nss_compat_ossl.x86_64 0:0.9.6-8.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================
Installing:
elinks x86_64 0.12-0.36.pre6.el7 base 882 k
Installing for dependencies:
gpm-libs x86_64 1.20.7-5.el7 base 32 k
js x86_64 1:1.8.5-19.el7 base 2.3 M
nss_compat_ossl x86_64 0.9.6-8.el7 base 37 k
Transaction Summary
============================================================================================================================================
Install 1 Package (+3 Dependent packages)
Total download size: 3.2 M
Installed size: 9.6 M
Is this ok [y/d/N]: y
Command Line Web Browsing with Links Tool (به زودی)
6. Apache HTTP Server را نصب کنید.
مهم نیست به چه دلیلی می خواهید از سرور استفاده کنید، در اکثر موارد شما برای راه اندازی وب سایت ها، مالتی مدیا، اسکریپت کلاینت ساید و موارد بسیار دیگری، به یک HTTP server نیاز دارید.
کد PHP:
# yum install httpd
کد PHP:
---> Package httpd-tools.x86_64 0:2.4.6-40.el7.centos.1 will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================
Installing:
httpd x86_64 2.4.6-40.el7.centos.1 updates 2.7 M
Installing for dependencies:
apr x86_64 1.4.8-3.el7 base 103 k
apr-util x86_64 1.5.2-6.el7 base 92 k
httpd-tools x86_64 2.4.6-40.el7.centos.1 updates 82 k
mailcap noarch 2.1.41-2.el7 base 31 k
Transaction Summary
============================================================================================================================================
Install 1 Package (+4 Dependent packages)
Total download size: 3.0 M
Installed size: 10 M
Is this ok [y/d/N]: y
کد PHP:
LISTEN 80
کد PHP:
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 3221
سرویس http را از طریق فایروال امکان پذیر کنید.(همیشه)
کد PHP:
# firewall-cmd --add-service=http
کد PHP:
# firewall-cmd -permanent -add-port=3221/tcp
کد PHP:
# firewall-cmd --reload
کد PHP:
# systemctl restart httpd.service
کد PHP:
# systemctl start httpd.service
# systemctl enable httpd.service
کد PHP:
# links 127.0.0.1
7. PHP را نصب کنید.
PHP یک زبان اسکریپت نویسی سرور ساید برای سرویس های مبتنی بر وب است. در اغلب موارد، به عنوان زبان برنامه نویسی همه منظوره استفاده می شود. PHP را روی سرور مینیمال CentOS نصب کنید.
کد PHP:
# yum install php
کد PHP:
# systemctl restart httpd.service
کد PHP:
# echo -e "<?php\nphpinfo();\n?>" > /var/www/html/phpinfo.php
کد PHP:
# php /var/www/html/phpinfo.php
OR
# links http://127.0.0.1/phpinfo.php
8. MariaDB Database را نصب کنید.
MariaDB شاخه ای از MySQL است. RedHat Enterprise Linux و مشتقات آن، از MySQL به MariaDB تغییر کرده اند. این سیستم مدیریت دیتابیس اصلی است. این دوباره یکی از آن ابزارهایی است که داشتنش ضروری است و دیر یا زود به آن نیاز پیدا می کنید. بدون اینکه نوع سروری که می خواهید تنظیم کنید، مهم باشد. MariaDB را روی سرور نصب مینیمال CentOS، به شرح زیر، نصب کنید.
کد PHP:
# yum install mariadb-server mariadb
کد PHP:
perl-libs x86_64 4:5.16.3-286.el7 base 687 k
perl-macros x86_64 4:5.16.3-286.el7 base 43 k
perl-parent noarch 1:0.225-244.el7 base 12 k
perl-podlators noarch 2.5.1-3.el7 base 112 k
perl-threads x86_64 1.87-4.el7 base 49 k
perl-threads-shared x86_64 1.43-6.el7 base 39 k
Transaction Summary
============================================================================================================================================
Install 2 Packages (+35 Dependent packages)
Total download size: 32 M
Installed size: 144 M
Is this ok [y/d/N]: y
کد PHP:
# systemctl start mariadb.service
# systemctl enable mariadb.service
کد PHP:
# firewall-cmd --add-service=mysql
کد PHP:
# /usr/bin/mysql_secure_installation
دستورات پایه ای دیتابیس MySQL/MariaDB
9. SSH Server را نصب و کانفیگ کنید.
SSH مخفف Secure Shell است که پروتکل پیش فرض لینوکس برای مدیریت ریموت است. SSH، یکی از بخش های ضروری نرم افزاری است که با سرور مینیمال CentOS به طور پیش فرض عرضه شده است.
چک کنید ورژن SSH به درستی نصب شده باشد.
کد PHP:
[root@linux-zone ~]# ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013
[root@linux-zone ~]#
خط زیر این خط را Uncomment کنید و یا 1 را از رشته پروتکل حذف کنید، در نتیجه خطی شیبه به این می بینید:
کد PHP:
# Protocol 2,1 (Original)
Protocol 2 (Now)
کد PHP:
# GSSAPIAuthentication no
# GSSAPIDelegateCredentials no
# GSSAPIKeyExchange no
# GSSAPITrustDNS no
# BatchMode no
# CheckHostIP yes
# AddressFamily any
# ConnectTimeout 0
# StrictHostKeyChecking ask
# IdentityFile ~/.ssh/identity
# IdentityFile ~/.ssh/id_rsa
# IdentityFile ~/.ssh/id_dsa
# Port 22
# Protocol 2,1
# Cipher 3des
کد PHP:
# Authentication:
#LoginGraceTime 2m
#PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
در نهایت، سرویس SSH را restart کنید تا تغییرات جدید اعمال شوند...
کد PHP:
# systemctl restart sshd.service
10. GCC (GNU Compiler Collection) را نصب کنید.
GCC مخفف GNU Compiler Collection (کلکسیون کامپایلرهای گنو)، سیستم کامپایلری است که پروژه GNU که از زبان های برنامه نویسی مختلفی پشتیبانی می کند، آن را توسعه داده است. GCC به طور پیش فرض بر روی CentOS Minimal Install نصب نمی باشد. برای نصب کامپایلر GCC، دستور زیر را اجرا کنید.
کد PHP:
# yum install gcc
کد PHP:
--> Running transaction check
---> Package kernel-headers.x86_64 0:3.10.0-327.22.2.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================
Installing:
gcc x86_64 4.8.5-4.el7 base 16 M
Installing for dependencies:
cpp x86_64 4.8.5-4.el7 base 5.9 M
glibc-devel x86_64 2.17-106.el7_2.6 updates 1.0 M
glibc-headers x86_64 2.17-106.el7_2.6 updates 662 k
kernel-headers x86_64 3.10.0-327.22.2.el7 updates 3.2 M
libmpc x86_64 1.0.1-3.el7 base 51 k
mpfr x86_64 3.1.1-4.el7 base 203 k
Transaction Summary
============================================================================================================================================
Install 1 Package (+6 Dependent packages)
Total download size: 27 M
Installed size: 59 M
Is this ok [y/d/N]: y
کد PHP:
[root@linux-zone ~]# gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[root@linux-zone ~]#
11. Java نصب کنید.
جاوا، یکی از زبان های برنامه نویسی شئ گرا و مبتنی بر کلاس همه منظوره است. جاوا به طور پیش فرض بر روی سرور CentOS Minimal نصب نمی باشد. Java را از مخزنی به شرح زیر، نصب نمائید.
کد PHP:
# yum install java
کد PHP:
--> Running transaction check
---> Package python-lxml.x86_64 0:3.2.1-4.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================
Installing:
java-1.8.0-openjdk x86_64 1:1.8.0.91-1.b14.el7_2 updates 219 k
Installing for dependencies:
fontconfig x86_64 2.10.95-7.el7 base 228 k
fontpackages-filesystem noarch 1.44-8.el7 base 9.9 k
giflib x86_64 4.1.6-9.el7 base 40 k
java-1.8.0-openjdk-headless x86_64 1:1.8.0.91-1.b14.el7_2 updates 31 M
javapackages-tools noarch 3.4.1-11.el7 base 73 k
libICE x86_64 1.0.9-2.el7 base 65 k
libSM x86_64 1.2.2-2.el7 base 39 k
libX11 x86_64 1.6.3-2.el7 base 605 k
libX11-common noarch 1.6.3-2.el7 base 162 k
libXau x86_64 1.0.8-2.1.el7 base 29 k
libXext x86_64 1.3.3-3.el7 base 39 k
libXfont x86_64 1.5.1-2.el7 base 150 k
libXi x86_64 1.7.4-2.el7 base 40 k
libXrender x86_64 0.9.8-2.1.el7 base 25 k
libXtst x86_64 1.2.2-2.1.el7 base 20 k
libfontenc x86_64 1.1.2-3.el7 base 30 k
libjpeg-turbo x86_64 1.2.90-5.el7 base 134 k
libpng x86_64 2:1.5.13-7.el7_2 updates 213 k
libxcb x86_64 1.11-4.el7 base 189 k
libxslt x86_64 1.1.28-5.el7 base 242 k
lksctp-tools x86_64 1.0.13-3.el7 base 87 k
python-javapackages noarch 3.4.1-11.el7 base 31 k
python-lxml x86_64 3.2.1-4.el7 base 758 k
ttmkfdir x86_64 3.0.9-42.el7 base 48 k
tzdata-java noarch 2016e-1.el7 updates 180 k
xorg-x11-font-utils x86_64 1:7.5-20.el7 base 87 k
xorg-x11-fonts-Type1 noarch 7.5-9.el7 base 521 k
Transaction Summary
============================================================================================================================================
Install 1 Package (+27 Dependent packages)
Total download size: 35 M
Installed size: 114 M
Is this ok [y/d/N]: y
کد PHP:
[root@linux-zone ~]# java -version
openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
[root@linux-zone ~]#
12. Apache Tomcat را نصب کنید.
Tomcat، کانتینر servlet است که آپاچی برای اجرای وب سرور HTTP جاوا، طراحی کرده است. Tomcat را به روش زیر نصب کنید اما لازم به ذکر است که باید قبل از نصب Tomcat، جاوا را نصب کرده باشید.
کد PHP:
# yum install tomcat
کد PHP:
---> Package xml-commons-apis.noarch 0:1.4.01-16.el7 will be installed
---> Package xml-commons-resolver.noarch 0:1.2-15.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================
Installing:
tomcat noarch 7.0.54-2.el7_1 base 85 k
Installing for dependencies:
apache-commons-collections noarch 3.2.1-22.el7_2 updates 509 k
apache-commons-daemon x86_64 1.0.13-6.el7 base 54 k
apache-commons-dbcp noarch 1.4-17.el7 base 167 k
apache-commons-logging noarch 1.1.2-7.el7 base 78 k
apache-commons-pool noarch 1.6-9.el7 base 113 k
avalon-framework noarch 4.3-10.el7 base 88 k
avalon-logkit noarch 2.1-14.el7 base 87 k
ecj x86_64 1:4.2.1-8.el7 base 1.4 M
geronimo-jms noarch 1.1.1-19.el7 base 31 k
geronimo-jta noarch 1.1.1-17.el7 base 20 k
javamail noarch 1.4.6-8.el7 base 758 k
log4j noarch 1.2.17-15.el7 base 443 k
tomcat-el-2.2-api noarch 7.0.54-2.el7_1 base 76 k
tomcat-jsp-2.2-api noarch 7.0.54-2.el7_1 base 90 k
tomcat-lib noarch 7.0.54-2.el7_1 base 3.7 M
tomcat-servlet-3.0-api noarch 7.0.54-2.el7_1 base 207 k
xalan-j2 noarch 2.7.1-23.el7 base 1.9 M
xerces-j2 noarch 2.11.0-17.el7_0 base 1.1 M
xml-commons-apis noarch 1.4.01-16.el7 base 227 k
xml-commons-resolver noarch 1.2-15.el7 base 108 k
Transaction Summary
============================================================================================================================================
Install 1 Package (+20 Dependent packages)
Total download size: 11 M
Installed size: 14 M
Is this ok [y/d/N]: y
کد PHP:
# systemctl start tomcat
کد PHP:
# /usr/sbin/tomcat version
کد PHP:
[root@linux-zone ~]# /usr/sbin/tomcat version
/usr/sbin/tomcat: line 21: .: /etc/sysconfig/: is a directory
Server version: Apache Tomcat/7.0.54
Server built: May 12 2015 08:07:35
Server number: 7.0.54.0
OS Name: Linux
OS Version: 3.10.0-327.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_91-b14
JVM Vendor: Oracle Corporation
[root@linux-zone ~]#
کد PHP:
[root@linux-zone ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
success
[root@linux-zone ~]# firewall-cmd --reload
success
[root@linux-zone ~]#
کد PHP:
<tomcat-users>
<!--
NOTE: By default, no user is included in the "manager-gui" role required
to operate the "/manager/html" web application. If you wish to use this app,
you must define such a user - the username and password are arbitrary.
-->
<!--
NOTE: The sample user and role entries below are wrapped in a comment
and thus are ignored when reading this file. Do not forget to remove
<!.. ..> that surrounds them.
-->
<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="linux-zone" password="linux-zone" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
-->
<!-- <role rolename="admin"/> -->
<!-- <role rolename="admin-gui"/> -->
<!-- <role rolename="admin-script"/> -->
<!-- <role rolename="manager"/> -->
<!-- <role rolename="manager-gui"/> -->
<!-- <role rolename="manager-script"/> -->
<!-- <role rolename="manager-jmx"/> -->
<!-- <role rolename="manager-status"/> -->
<!-- <user name="admin" password="adminadmin" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" /> -->
</tomcat-users>
کد PHP:
# systemctl stop tomcat
# systemctl start tomcat
# systemctl enable tomcat.service
Installing and Configuring Apache Tomcat 8.0.9 in RHEL/CentOS 7.0/6.x (به زودی)
13. Nmap را برای نظارت بر پورت های باز نصب کنید.
Nmap با پیدا کردن هاستی که در حال اجرا است و همچنین با آنالیز شبکه، برای Network Mapper نقشه ای از شبکه می سازد. Nmap به طور پیش فرض نصب نیست و شما باید آن را از مخزن نصب نمائید.
کد PHP:
# yum install nmap
کد PHP:
Resolving Dependencies
--> Running transaction check
---> Package nmap.x86_64 2:6.40-7.el7 will be installed
--> Processing Dependency: nmap-ncat = 2:6.40-7.el7 for package: 2:nmap-6.40-7.el7.x86_64
--> Running transaction check
---> Package nmap-ncat.x86_64 2:6.40-7.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================
Installing:
nmap x86_64 2:6.40-7.el7 base 4.0 M
Installing for dependencies:
nmap-ncat x86_64 2:6.40-7.el7 base 201 k
Transaction Summary
============================================================================================================================================
Install 1 Package (+1 Dependent package)
Total download size: 4.2 M
Installed size: 17 M
Is this ok [y/d/N]: y
کد PHP:
# nmap 127.0.01
کد PHP:
[root@linux-zone ~]# nmap 127.0.0.1
Starting Nmap 6.40 ( http://nmap.org ) at 2016-06-30 05:36 EDT
Nmap scan report for linux-zone (127.0.0.1)
Host is up (0.000024s latency).
Not shown: 994 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
3306/tcp open mysql
8009/tcp open ajp13
8080/tcp open http-proxy
Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds
[root@linux-zone ~]#
کد PHP:
[root@linux-zone ~]# firewall-cmd --list-ports
8080/tcp
[root@linux-zone ~]#
مقاله زیر را نیز مطالعه کنید :
29 Useful Nmap Command to Monitor Open Ports (به زودی)
14. نصب FirewallD
Firewalld یک سرویس فایروالی است که به صورت داینامیک، سرور را مدیریت می کند. Firewalld، iptableهای CentOS 7 را حذف می کند. Firewalld به طور پیش فرض بر روی RedHat Enterprise Linux و مشتقات آن نصب شده است. با هر تغییر iptableها در جهت موثر واقع شدن، لازم است تمام دستورات قدیمی کنار گذاشته و دستورات جدید ایجاد شود.
با این حالا با firewalld، فلاشینگ و بازسازی قوانین جدید، نیاز نمی شود و فقط تغییرات بر روی فلای، اعمال می شود.
بررسی کنید که Firewalld، درحال اجرا است یا خیر.
کد PHP:
# systemctl status firewalld
OR
# firewall-cmd --state
کد PHP:
[root@linux-zone ~]# systemctl status firewalld
â firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2016-06-30 02:50:18 EDT; 2h 48min ago
Main PID: 613 (firewalld)
CGroup: /system.slice/firewalld.service
ââ613 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
Jun 30 02:50:16 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
Jun 30 02:50:18 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
[root@linux-zone ~]#
[root@linux-zone ~]#
[root@linux-zone ~]#
[root@linux-zone ~]# firewall-cmd --state
running
[root@linux-zone ~]#
کد PHP:
[root@linux-zone ~]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work
[root@linux-zone ~]#
کد PHP:
[root@linux-zone ~]# firewall-cmd --zone=work --list-all
work
interfaces:
sources:
services: dhcpv6-client ipp-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
[root@linux-zone ~]#
کد PHP:
[root@linux-zone ~]# firewall-cmd --get-default-zone
public
[root@linux-zone ~]#
کد PHP:
[root@linux-zone ~]# firewall-cmd --set-default-zone=work
success
[root@linux-zone ~]#
کد PHP:
[root@linux-zone ~]# firewall-cmd --list-services
dhcpv6-client ipp-client ssh
[root@linux-zone ~]#
کد PHP:
[root@linux-zone ~]# firewall-cmd --add-service=http
success
[root@linux-zone ~]#
[root@linux-zone ~]# firewall-cmd --reload
success
[root@linux-zone ~]#
To add a service say http, permanently and reload firewalld.
کد PHP:
[root@linux-zone ~]# firewall-cmd --add-service=http --permanent
success
[root@linux-zone ~]#
[root@linux-zone ~]# firewall-cmd --reload
success
[root@linux-zone ~]#
کد PHP:
[root@linux-zone ~]# firewall-cmd --remove-service=http
success
[root@linux-zone ~]#
[root@linux-zone ~]# firewall-cmd --reload
success
[root@linux-zone ~]#
کد PHP:
[root@linux-zone ~]# firewall-cmd --zone=work --remove-service=http --permanent
success
[root@linux-zone ~]#
[root@linux-zone ~]# firewall-cmd --reload
success
[root@linux-zone ~]#
کد PHP:
[root@linux-zone ~]# firewall-cmd --add-port=331/tcp
success
[root@linux-zone ~]#
[root@linux-zone ~]# firewall-cmd --reload
success
[root@linux-zone ~]#
کد PHP:
[root@linux-zone ~]# firewall-cmd --add-port=331/tcp --permanent
success
[root@linux-zone ~]#
[root@linux-zone ~]# firewall-cmd --reload
success
[root@linux-zone ~]#
کد PHP:
[root@linux-zone ~]# firewall-cmd --remove-port=331/tcp
success
[root@linux-zone ~]#
[root@linux-zone ~]# firewall-cmd --reload
success
[root@linux-zone ~]#
کد PHP:
[root@linux-zone ~]# firewall-cmd --remove-port=331/tcp --permanent
success
[root@linux-zone ~]#
[root@linux-zone ~]# firewall-cmd --reload
success
[root@linux-zone ~]#
کد PHP:
[root@linux-zone ~]# systemctl stop firewalld
[root@linux-zone ~]#
[root@linux-zone ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[root@linux-zone ~]#
[root@linux-zone ~]#
[root@linux-zone ~]# firewall-cmd --state
not running
[root@linux-zone ~]#
کد PHP:
[root@linux-zone ~]# systemctl enable firewalld
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/basic.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
[root@linux-zone ~]#
[root@linux-zone ~]# systemctl start firewalld
[root@linux-zone ~]#
[root@linux-zone ~]# firewall-cmd --state
running
[root@linux-zone ~]#
15. نصب Wget
Wget، یک خط فرمان لینوکسی مبتنی بر خدمات عمومی است که محتوا را از سرورهای وب، بازیابی (دانلود) می کند. این یک ابزار مهم است که شما باید با استفاده از دستور wget، محتویات وب را بازیابی و هر فایلی را دانلود کنید.
کد PHP:
# yum install wget
کد PHP:
[root@linux-zone ~]# yum install wget
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.centos.org
* extras: mirror.centos.org
* updates: mirror.centos.org
Resolving Dependencies
--> Running transaction check
---> Package wget.x86_64 0:1.14-10.el7_0.1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================
Installing:
wget x86_64 1.14-10.el7_0.1 base 545 k
Transaction Summary
============================================================================================================================================
Install 1 Package
Total download size: 545 k
Installed size: 2.0 M
Is this ok [y/d/N]: y
دستور wget در لینوکس
16. نصب Telnet
Telnet، پروتکل شبکه است که کاربر را قادر می سازد تا به کامپیوتر دیگری در همان شبکه روی TCP/IP لاگین کند. هنگامی که اتصال به کامپیوتر راه دور برقرار شد، تبدیل به یک ترمینال مجازی می شود و به شما اجازه می دهد تا با هاست ریموت داخل کامپیوتر خود به عنوان ارائه امتیازاتی برای شما، ارتباط برقرار کنید.
Telnet، همچنین برای چک کردن پورت های باز کامپیوتر یا هاست راه دور، بسیار مفید می باشد.
کد PHP:
# yum install telnet
# telnet google.com 80
کد PHP:
[root@linux-zone ~]# yum install telnet
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.centos.org
* extras: mirror.centos.org
* updates: mirror.centos.org
Resolving Dependencies
--> Running transaction check
---> Package telnet.x86_64 1:0.17-59.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================
Installing:
telnet x86_64 1:0.17-59.el7 base 63 k
Transaction Summary
============================================================================================================================================
Install 1 Package
Total download size: 63 k
Installed size: 113 k
Is this ok [y/d/N]: y
کد PHP:
[root@linux-zone ~]# telnet google.com 80
Trying 62.212.252.39...
Connected to google.com.
Escape character is '^]'.
17. نصب Webmin
Webmin، ابزار کانفیگوریشن تحت وب برای لینوکس است. همچون یک سیستم مرکزی عمل می کند تا کانفیگوریشن سیستم های مختلف همچون کاربران، فضای دیسک، سرویس ها و تنظیمات HTTP server، Apache، MySQL و غیره را کانفیگ کند.
کد PHP:
# wget http://prdownloads.sourceforge.net/webadmin/webmin-1.740-1.noarch.rpm
# rpm -ivh webmin-*.rpm
بعد از نصب webmin، یک پیام در ترمینال دریافت خواهید کرد مبنی بر اینکه با استفاده از پسورد روت خود روی پورت 10000 به هاست خود (http://ip-address:10000) لاگین کنید. اگر یک سرور بدون سرپرست راه اندازی کنید، می توانید پورت و دسترسی به آن را بر روی یک ماشین/سروری که سرپرست دارد، ارسال کنید.
18. مخازن حزب سوم را فعال کنید.
این ایده خوبی برای اضافه کردن مخازن غیر قابل اطمینان به خصوص در تولید نیست و ممکن است مخرب باشد. هرچند به طور مثال در اینجا ما مخازن قابل اطمینانی را برای نصب ابزار و پکیج های حزب سوم اضافه کرده ایم که مورد تایید جامعه است.
پکیج بیشتری برای مخزن Enterprise Linux (EPEL) اضافه کنید.
کد PHP:
# yum install epel-release
کد PHP:
[root@linux-zone ~]# yum install epel-release
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.centos.org
* extras: mirror.centos.org
* updates: mirror.centos.org
Resolving Dependencies
--> Running transaction check
---> Package epel-release.noarch 0:7-6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================
Installing:
epel-release noarch 7-6 extras 14 k
Transaction Summary
============================================================================================================================================
Install 1 Package
Total download size: 14 k
Installed size: 24 k
Is this ok [y/d/N]: y
کد PHP:
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
کد PHP:
[root@linux-zone ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Retrieving http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
warning: /var/tmp/rpm-tmp.l21u13: Header V4 DSA/SHA1 Signature, key ID baadae52: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:elrepo-release-7.0-2.el7.elrepo ################################# [100%]
[root@linux-zone ~]#
19. ابزار 7-zip را نصب کنید.
در نصب CentOS مینیمال، شما ابزاری همچون unzip یا unrar دریافت نمی کنید. ما گزینه ای برای نصب هر یک از ابزار همانطور که خواسته شده است، داریم و یا ابزاری که خدمتگذار همه باشند. 7-zip چنین ابزاری است که فایل های اضافی تمامی فرمت های شناخته شده را فشرده می سازد.
کد PHP:
# yum install p7zip
کد PHP:
[root@linux-zone ~]# yum install p7zip
Loaded plugins: fastestmirror
elrepo | 2.9 kB 00:00:00
epel/x86_64/metalink | 4.5 kB 00:00:00
epel | 4.3 kB 00:00:00
(1/4): elrepo/primary_db | 389 kB 00:00:07
(2/4): epel/x86_64/group_gz | 170 kB 00:00:08
(3/4): epel/x86_64/updateinfo | 577 kB 00:00:14
(4/4): epel/x86_64/primary_db | 4.2 MB 00:00:25
Loading mirror speeds from cached hostfile
* base: mirror.centos.org
* elrepo: elrepo.org
* epel: mirror.pregi.net
* extras: mirror.centos.org
* updates: mirror.centos.org
Resolving Dependencies
--> Running transaction check
---> Package p7zip.x86_64 0:15.09-9.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================
Installing:
p7zip x86_64 15.09-9.el7 epel 640 k
Transaction Summary
============================================================================================================================================
Install 1 Package
Total download size: 640 k
Installed size: 1.9 M
Is this ok [y/d/N]: y
20. درایور NTFS-3G را نصب کنید.
درایور کوچک NTFS ولی درعین حال بسیار مفیدی که NTFS-3G نامیده می شود، برای اکثر توزیع های شبه یونیکس، قابل دسترس است. برای نصب و دسترسی به سیستم فایل NTFS ویندوز مفید می باشد. با وجود اینکه گزینه های دیگری مانند Tuxera NTFS موجود است، NTFS-3G به طور گسترده تری استفاده می شود.
کد PHP:
# yum install ntfs-3g
کد PHP:
[root@linux-zone ~]# yum install ntfs-3g
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.centos.org
* elrepo: mirrors.evowise.com
* epel: mirror.premi.st
* extras: mirror.centos.org
* updates: mirror.centos.org
Resolving Dependencies
--> Running transaction check
---> Package ntfs-3g.x86_64 2:2016.2.22-1.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================
Installing:
ntfs-3g x86_64 2:2016.2.22-1.el7 epel 280 k
Transaction Summary
============================================================================================================================================
Install 1 Package
Total download size: 280 k
Installed size: 659 k
Is this ok [y/d/N]: y
کد PHP:
# mount -ro ntfs-3g /dev/sda5 /mnt
# cd /mnt
# ls -l
21. Vsftpd FTP Server را نصب کنید
VSFTPD که مخفف Very Secure File Transfer Protocol Daemon (دیمن پروتکل انتقال فایل بسیار امن) است، یک FTP server برای سیستم های شبه یونیکس است. یکی از کارآمدترین و امن ترین FTP Server در دسترس امروز است.
کد PHP:
# yum install vsftpd
کد PHP:
[root@linux-zone ~]# yum install vsftpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.centos.org
* elrepo: reflector.westga.edu
* epel: free.nchc.org.tw
* extras: mirror.centos.org
* updates: mirror.centos.org
Resolving Dependencies
--> Running transaction check
---> Package vsftpd.x86_64 0:3.0.2-11.el7_2 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================
Installing:
vsftpd x86_64 3.0.2-11.el7_2 updates 167 k
Transaction Summary
============================================================================================================================================
Install 1 Package
Total download size: 167 k
Installed size: 347 k
Is this ok [y/d/N]: y
کد PHP:
# vi /etc/vsftpd/vsftpd.conf
کد PHP:
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
کد PHP:
# firewall-cmd --add-port=21/tcp
# firewall-cmd --reload
کد PHP:
# systemctl restart vsftpd
# systemctl enable vsftpd
22. Sudo را نصب و کانفیگ کنید
Sudo که به عنوان "به خوبی آنچه کاربر انجام می دهد، انجامش بده" نامیده می شود، برنامه ای برای سیستم عامل شبه یونیکس برای اجرای یک برنامه با امنیت ممتاز کاربر دیگری است. بیایید نحوه کانفیگ sudo را ببینیم...
کد PHP:
# visudo
کد PHP:
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
linux-zone ALL=(ALL) ALL
## Allows members of the 'sys' group to run networking, software,
کد PHP:
linux-zone ALL=(ALL) ALL
مجددا همان فایل را باز کنید و محتوای آن را به محتویات زیر تغییر دهید.
کد PHP:
cmnd_Alias nopermit = /sbin/shutdown, /sbin/reboot
کد PHP:
linux-zone ALL=(ALL) ALL,!nopermit
کد PHP:
cmnd_Alias permit = /usr/sbin/useradd, /usr/sbin/userdel
کد PHP:
debian ALL=(ALL) permit
23. SELinux را نصب و فعال کنید
SELinux که مخفف Security-Enhanced Linux است، یک ماژول امنیتی در سطح کرنل می باشد.
کد PHP:
# yum install selinux-policy
کد PHP:
[root@linux-zone ~]# yum install selinux-policy
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.centos.org
* elrepo: ftp.icm.edu.pl
* epel: mirror.premi.st
* extras: mirror.centos.org
* updates: mirror.centos.org
Resolving Dependencies
--> Running transaction check
---> Package selinux-policy.noarch 0:3.13.1-60.el7_2.7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================
Installing:
selinux-policy noarch 3.13.1-60.el7_2.7 updates 376 k
Transaction Summary
============================================================================================================================================
Install 1 Package
Total download size: 376 k
Installed size: 180
Is this ok [y/d/N]: y
کد PHP:
# getenforce
کد PHP:
[root@linux-zone ~]# getenforce
Enforcing
[root@linux-zone ~]#
برای رفع اشکال، حالت selinux را روی permissive temporarily تنظیم کنید. نیازی به ریبوت کردن نیست.
کد PHP:
# setenforce 0
کد PHP:
# setenforce 1
24. Rootkit Hunter را نصب کنید
Rootkit Hunter به اختصار Rkhunter، اپلیکیشنی است که rootkitها را اسکن می کند و سوء استفاده های بالقوه مضر در سیستم های لینوکس را اسکن می کند.
کد PHP:
# yum install rkhunter
کد PHP:
[root@linux-zone ~]# yum install rkhunter
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.centos.org
* elrepo: ftp.colocall.net
* epel: epel.mirror.angkasa.id
* extras: mirror.centos.org
* updates: mirror.centos.org
Resolving Dependencies
--> Running transaction check
---> Package rkhunter.noarch 0:1.4.2-7.el7 will be installed
--> Processing Dependency: mailx for package: rkhunter-1.4.2-7.el7.noarch
--> Processing Dependency: lsof for package: rkhunter-1.4.2-7.el7.noarch
--> Running transaction check
---> Package lsof.x86_64 0:4.87-4.el7 will be installed
---> Package mailx.x86_64 0:12.5-12.el7_0 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================
Installing:
rkhunter noarch 1.4.2-7.el7 epel 196 k
Installing for dependencies:
lsof x86_64 4.87-4.el7 base 331 k
mailx x86_64 12.5-12.el7_0 base 244 k
Transaction Summary
============================================================================================================================================
Install 1 Package (+2 Dependent packages)
Total download size: 771 k
Installed size: 2.1 M
Is this ok [y/d/N]: y
کد PHP:
# rkhunter --check
کد PHP:
[root@linux-zone ~]# rkhunter --check
[ Rootkit Hunter version 1.4.2 ]
Checking system commands...
Performing 'strings' command checks
Checking 'strings' command [ OK ]
Performing 'shared libraries' checks
Checking for preloading variables [ None found ]
Checking for preloaded libraries [ None found ]
Checking LD_LIBRARY_PATH variable [ Not found ]
Performing file properties checks
Checking for prerequisites [ Warning ]
/usr/sbin/adduser [ OK ]
/usr/sbin/chkconfig [ OK ]
/usr/sbin/chroot [ OK ]
/usr/sbin/depmod [ OK ]
/usr/sbin/fsck [ OK ]
/usr/sbin/groupadd [ OK ]
/usr/sbin/groupdel [ OK ]
/usr/sbin/groupmod [ OK ]
/usr/sbin/grpck [ OK ]
/usr/sbin/ifconfig [ OK ]
/usr/sbin/ifdown [ Warning ]
/usr/sbin/ifup [ Warning ]
/usr/sbin/init [ OK ]
/usr/sbin/insmod [ OK ]
/usr/sbin/ip [ OK ]
/usr/sbin/lsmod [ OK ]
کد PHP:
/usr/bin/mailx [ OK ]
/usr/lib/systemd/systemd [ OK ]
[Press <ENTER> to continue]
Checking for rootkits...
Performing check of known rootkit files and directories
55808 Trojan - Variant A [ Not found ]
ADM Worm [ Not found ]
AjaKit Rootkit [ Not found ]
Adore Rootkit [ Not found ]
aPa Kit [ Not found ]
Apache Worm [ Not found ]
Ambient (ark) Rootkit [ Not found ]
Balaur Rootkit [ Not found ]
BeastKit Rootkit [ Not found ]
beX2 Rootkit [ Not found ]
BOBKit Rootkit [ Not found ]
cb Rootkit [ Not found ]
CiNIK Worm (Slapper.B variant) [ Not found ]
Danny-Boy's Abuse Kit [ Not found ]
Devil RootKit [ Not found ]
Dica-Kit Rootkit [ Not found ]
Dreams Rootkit [ Not found ]
Duarawkz Rootkit [ Not found ]
Enye LKM [ Not found ]
Flea Linux Rootkit [ Not found ]
Fu Rootkit [ Not found ]
Fuck`it Rootkit [ Not found ]
GasKit Rootkit [ Not found ]
Heroin LKM [ Not found ]
HjC Kit [ Not found ]
ignoKit Rootkit [ Not found ]
IntoXonia-NG Rootkit [ Not found ]
Irix Rootkit [ Not found ]
Jynx Rootkit [ Not found ]
KBeast Rootkit [ Not found ]
Kitko Rootkit [ Not found ]
Knark Rootkit [ Not found ]
ld-linuxv.so Rootkit [ Not found ]
Li0n Worm [ Not found ]
Lockit / LJK2 Rootkit [ Not found ]
Mood-NT Rootkit [ Not found ]
MRK Rootkit [ Not found ]
Ni0 Rootkit [ Not found ]
Ohhara Rootkit [ Not found ]
Optic Kit (Tux) Worm [ Not found ]
Oz Rootkit [ Not found ]
Phalanx Rootkit [ Not found ]
Phalanx2 Rootkit [ Not found ]
Phalanx2 Rootkit (extended tests) [ Not found ]
Portacelo Rootkit [ Not found ]
کد PHP:
zaRwT.KiT Rootkit [ Not found ]
ZK Rootkit [ Not found ]
[Press <ENTER> to continue]
Performing additional rootkit checks
Suckit Rookit additional checks [ OK ]
Checking for possible rootkit files and directories [ None found ]
Checking for possible rootkit strings [ None found ]
Performing malware checks
Checking running processes for suspicious files [ None found ]
Checking for hidden processes [ Skipped ]
Checking for login backdoors [ None found ]
Checking for suspicious directories [ None found ]
Checking for sniffer log files [ None found ]
Suspicious Shared Memory segments [ None found ]
Checking for Apache backdoor [ Not found ]
Performing Linux specific checks
Checking loaded kernel modules [ OK ]
Checking kernel module names [ OK ]
[Press <ENTER> to continue]
Checking the network...
Performing checks on the network ports
Checking for backdoor ports [ None found ]
Performing checks on the network interfaces
Checking for promiscuous interfaces [ None found ]
Checking the local host...
Performing system boot checks
Checking for local host name [ Found ]
Checking for system startup files [ Found ]
Checking system startup files for malware [ None found ]
Performing group and account checks
Checking for passwd file [ Found ]
Checking for root equivalent (UID 0) accounts [ None found ]
Checking for passwordless accounts [ None found ]
Checking for passwd file changes [ Warning ]
Checking for group file changes [ Warning ]
Checking root account shell history files [ OK ]
Performing system configuration file checks
Checking for an SSH configuration file [ Found ]
Checking if SSH root access is allowed [ Not set ]
Checking if SSH protocol v1 is allowed [ Not set ]
Checking for a running system logging daemon [ Found ]
Checking for a system logging configuration file [ Found ]
Checking if syslog remote logging is allowed [ Not allowed ]
Performing filesystem checks
Checking /dev for suspicious file types [ None found ]
Checking for hidden files and directories [ None found ]
[Press <ENTER> to continue]
System checks summary
=====================
File properties checks...
Required commands check failed
Files checked: 127
Suspect files: 4
Rootkit checks...
Rootkits checked : 373
Possible rootkits: 0
Applications checks...
All checks skipped
The system checks took: 3 minutes and 39 seconds
All results have been written to the log file: /var/log/rkhunter/rkhunter.log
One or more warnings have been found while checking the system.
Please check the log file (/var/log/rkhunter/rkhunter.log)
[root@linux-zone ~]#
25. نصب Linux Malware Detect (LMD)
شناسایی بدافزارهای لینوکس (LMD)، یک اسکنر بدافزار و منبع باز لینکوس است که تحت لیسانس GNU GPLv2 منتشر شده است و به طور ویژه برای مواجه با تهدیدات در محیط های هاستینگ، طراحی شده است. برای کامل شدن نصب، کانفیگوریشن و استفاده از LMD مقاله زیر را مطالعه نمائید:
Install and Use (LMD) with ClamAV as Antivirus Engine (به زودی)
26. تست پهنای باند سرور با Speedtest-cli
speedtest-cli ابزار نوشتاری در پایتون برای تست پهنای باند شامل سرعت دانلود و آپلود است. برای تکمیل نصب و استفاده از ابزار speedtest-cli، مقاله زیر را مطالعه کنید.
Check Linux Server Bandwidth Speed from Command Line (به زودی)
27. Cron Jobs را کانفیگ کنید
این یکی از گسترده ترین ابزار نرم افزاری مورد استفاده است. به عنوان برنامه ریز و زمان بندی شغلی عمل می کند. کاری که در آینده انجام خواهد شد را اکنون زمان بندی کنید. این ابزار در لاگین کردن و حفظ سوابق به دست نیامده و همچنین چندین کار روتین دیگر، همچون بکاپ گیری منظم عمل می کند. تمام برنامه های زمان بندی در فایل /etc/crontab نوشته می شود.
فایل crontab شامل 6 فیلد به شرح زیر می باشد:
کد PHP:
Minutes Hour Day of Month Month of Year Week Day Command
(0-59) (0-23) (1-31) (1/jan-12/dec) (0-6/sun-sat) Command/script
برای اجرای کار cron (اجرای /home/$USER/script.sh) هر روز در ساعت 4:30 قبل از ظهر:
کد:
Minutes Hour Day of Month month of year Week Day command 30 4 * * * speedtest-cli
کد PHP:
30 4 * * * /home/$user/script.sh
11 Cron Jobs Examples in Linux (به زودی)
28. Owncloud را نصب کنید
Owncloud، یک ابزار هماهنگ سازی اطلاعات مبتنی بر HTTP، اپلیکیشن اشتراک گذاری فایل و ذخیره سازی فایل از راه دور است. برای جزئیات بیشتر در مورد نصب ابر خود، به مقاله Create Personal/Private Cloud Storage in Linux مراجعه کنید.
29. مجازی سازی را با Virtualbox فعال کنید
مجازی سازی، فرآیند ساخت سیستم عمال، سخت افزار و شبکه مجازی است که یکی از محبوب ترین تکنولوژی های عصر حاضر است. ما در مورد نحوه نصب و کانفیگ مجازی سازی با جزئیات بحث خواهیم کرد.
سرور مینیمال CentOS یک سرور بدون سرپرست است. بیایید آن را برای ماشین های مجازی سازی هاست که از طریق HTTP با نصب پکیج های زیر، قابل دسترس است را آماده کنیم.
کد PHP:
# yum groupinstall 'Development Tools' SDL kernel-devel kernel-headers dkms
کد PHP:
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================
Installing for group install "Development Tools":
autoconf noarch 2.69-11.el7 base 701 k
automake noarch 1.13.4-3.el7 base 679 k
bison x86_64 2.7-4.el7 base 578 k
byacc x86_64 1.9.20130304-3.el7 base 65 k
cscope x86_64 15.8-7.el7 base 203 k
ctags x86_64 5.8-13.el7 base 155 k
diffstat x86_64 1.57-4.el7 base 35 k
doxygen x86_64 1:1.8.5-3.el7 base 3.6 M
elfutils x86_64 0.163-3.el7 base 268 k
flex x86_64 2.5.37-3.el7 base 292 k
gcc-c++ x86_64 4.8.5-4.el7 base 7.2 M
gcc-gfortran x86_64 4.8.5-4.el7 base 6.6 M
git x86_64 1.8.3.1-6.el7_2.1 updates 4.4 M
indent x86_64 2.2.11-13.el7 base 150 k
intltool noarch 0.50.2-6.el7 base 59 k
libtool x86_64 2.4.2-21.el7_2 updates 588 k
patch x86_64 2.7.1-8.el7 base 110 k
patchutils x86_64 0.3.3-4.el7 base 104 k
rcs x86_64 5.9.0-5.el7 base 230 k
redhat-rpm-config noarch 9.1.0-68.el7.centos base 77 k
rpm-build x86_64 4.11.3-17.el7 base 143 k
rpm-sign x86_64 4.11.3-17.el7 base 44 k
subversion x86_64 1.7.14-10.el7 base 1.0 M
swig x86_64 2.0.10-4.el7 base 1.3 M
systemtap x86_64 2.8-10.el7 base 25 k
Installing for dependencies:
boost-system x86_64 1.53.0-25.el7 base 39 k
boost-thread x86_64 1.53.0-25.el7 base 57 k
bzip2 x86_64 1.0.6-13.el7 base 52 k
dwz x86_64 0.11-3.el7 base 99 k
dyninst x86_64 8.2.0-2.el7 base 2.5 M
emacs-filesystem noarch 1:24.3-18.el7 base 58 k
gdb x86_64 7.6.1-80.el7 base 2.4 M
gettext-common-devel noarch 0.18.2.1-4.el7 base 368 k
gettext-devel x86_64 0.18.2.1-4.el7 base 315 k
kernel-devel x86_64 3.10.0-327.22.2.el7 updates 11 M
libdwarf x86_64 20130207-4.el7 base 109 k
libgfortran x86_64 4.8.5-4.el7 base 293 k
libgnome-keyring x86_64 3.8.0-3.el7 base 109 k
libquadmath x86_64 4.8.5-4.el7 base 182 k
libquadmath-devel x86_64 4.8.5-4.el7 base 46 k
libstdc++-devel x86_64 4.8.5-4.el7 base 1.5 M
m4 x86_64 1.4.16-10.el7 base 256 k
mokutil x86_64 0.9-2.el7 base 37 k
neon x86_64 0.30.0-3.el7 base 165 k
pakchois x86_64 0.4-10.el7 base 14 k
perl-Error noarch 1:0.17020-2.el7 base 32 k
perl-Git noarch 1.8.3.1-6.el7_2.1 updates 53 k
perl-TermReadKey x86_64 2.30-20.el7 base 31 k
perl-Test-Harness noarch 3.28-3.el7 base 302 k
perl-Thread-Queue noarch 3.02-2.el7 base 17 k
perl-XML-Parser x86_64 2.41-10.el7 base 223 k
perl-srpm-macros noarch 1-8.el7 base 4.6 k
rsync x86_64 3.0.9-17.el7 base 360 k
subversion-libs x86_64 1.7.14-10.el7 base 921 k
systemtap-client x86_64 2.8-10.el7 base 2.9 M
systemtap-devel x86_64 2.8-10.el7 base 1.6 M
systemtap-runtime x86_64 2.8-10.el7 base 270 k
unzip x86_64 6.0-15.el7 base 166 k
zip x86_64 3.0-10.el7 base 260 k
Transaction Summary
============================================================================================================================================
Install 25 Packages (+34 Dependent packages)
Total download size: 55 M
Installed size: 174 M
Is this ok [y/d/N]: y
کد PHP:
# wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc
کد PHP:
# rpm --import oracle_vbox.asc
کد PHP:
# yum update && yum install virtualbox-4.3
کد PHP:
# wget http://download.virtualbox.org/virtualbox/4.3.12/Oracle_VM_VirtualBox_Extension_Pack-4.3.12-93733.vbox-extpack
# VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.3.12-93733.vbox-extpack
کد PHP:
# adduser vbox
# passwd vobx
# usermod -G vboxusers vbox
کد PHP:
# yum install httpd
کد PHP:
# yum install php php-devel php-common php-soap php-gd
کد PHP:
# wget http://sourceforge.net/projects/phpvirtualbox/files/phpvirtualbox-4.3-1.zip
کد PHP:
# unzip phpvirtualbox-4. .zip
# cp phpvirtualbox-4.3-1 -R /var/www/html
کد PHP:
# mv config.php.example config.php
کد PHP:
# vi config.php
کد PHP:
# service vbox-service restart
# service httpd restart
کد PHP:
http://192.168.0.15/phpvirtualbox-4.3-1/
30. حفاظت از پسورد GRUB
پسورد از بوت لودر شما محافظت می کند به طوری که شما یک سطح اضافه ای از امنیت، درست در زمان بوت، دریافت می کنید. همچنین لایه ای محافظتی در سطح فیزیکی دریافت می کنید. سرور خود را با قفل کردن GRUB در بوت محافظت کنید تا از هرگونه دسترسی غیرمجازی جلوگیری کنید.
ابتدا بکاپ دو فایل را تهیه کنید، تا درصورت هر پیشامد بدی، امکان بازگرداندن را داشته باشید. یک بکاپ با عنوان ‘/etc/grub2/grub.cfg.old‘ از ‘/etc/grub2/grub.cfg‘ بگیرید.
کد PHP:
# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.old
کد PHP:
# cp /etc/grub.d/10_linux /etc/grub.d/10_linux.old
کد PHP:
cat <<EOF
set superusers=”habili”
Password tecmint linux-zone
EOF
اکنون فایل جدید grub.cfg را با صدور فرمان زیر، تولید کنید.
کد PHP:
# grub2-mkconfig --output=/boot/grub2/grub.cfg
پس از وارد کردن اعتبارنامه لاگین، شما می توانید منوی بوت grub را ویرایش کنید.
همچنین می توانید همانطور که در مرحله بالا نشان داده شد، پسورد رمزگذاری شده ای بجای پسورد ساده تولید کنید. ابتدا پسورد رمزگذاری شده ای به شرح زیر، بسازید.
کد PHP:
# grub2-mkpasswd-pbkdf2
[Enter Normal password twice]
اکنون فایل ‘/etc/grub.d/10_linux‘ را باز کنید و خط زیر را به انتهای فایل، اضافه کنید.
کد PHP:
cat <<EOF
set superusers=”habili”
Password_pbkdf2 linux-zone
grub.pbkdf2.sha512
EOF
همچنین توجه داشته باشید که لازم است در این مورد، همانطور که در بالا توضیح داده شد، grub.cfg تولید کنید. ریبوت کنید و بعد از آن دکمه ‘e‘ را برای ویرایش فشار دهید، شما برای username و password آماده خواهید بود.
سعی ما بر این بود تا بسیاری از نکات لازم برای نصب استاندارد صنعتی توزیع های RHEL 7 و CentOS 7 را پوشش دهیم. اگر مطلبی را نیاز دارید که به آن اشاره نشده بود، آن را با ما در میان بگذارید.