Live Chat Software by Kayako |
بخش اول آموزش لینوکس
ارسال شده توسط عباس پيرنظريان در تاریخ 1390/06/27 02:56 بعد از ظهر
|
|
مقدمه : امروزه نظارت برسیستم و منابع سیستم یکی از اساسی ترین نیازهای هر شبکه و مدیر شبکه ای برای بررسی میزان کارایی اون شبکه و سیستم میباشد.اگر منابع سیستم کم باشد یا به مرور مشکلاتی برای سیستم به وجود آمده باشد عدم آگاهی از این رخددادها عواقب وخیمی درآینده در پی خواهد داشت. منابع سیستم هم بوسیله کاربر می تواند مصرف شود هم بواسطه سرویس هایی که بر روی سرور قرار دارنداز قبیل وب یا میل .توانایی در جهت شناخت اتفاقاتی که در معرض روی دادن است می تواند به تشخیص اینکه سیستم احتیاج به بروزرسانی دارد یا نه کمک شایانی کند یا حتی اگر سیستم نیاز دارد تا یک سرویس به سرور دیگری منتقل شود. ۱-free نمایش دهنده میزانmemory آزاد و مصرف شده free is a UNIX command which displays the total amount of free and used physical and swap memory in the system, as well as the shared memory and buffers used by the kernel. free [-b|-k|-m|-g] [-l] [-o] [-t] [-s delay ] [-c count ] ۲-top امکان مشاهده پروسه هایی که در cpu و memroy در حال انجام هست رو فراهم میکنه top provides an ongoing look at processor activity in real time. It displays a listing of the most CPU-intensive tasks on the system, and can provide an interactive interface for manipulating processes. It can sort the tasks by CPU usage, memory usage and runtime. can be better configured than the standard top from the procps suite. Most features can either be selected by an interactive command or by specifying the feature in the personal or system-wide configuration file. See below for more information. top [-] [d delay] [p pid] [q] [c] [C] [S] [s] [i] [n iter] [b] ۳-htop htop تو مایه های top هستش ولی خیلی بهتر و interactive تر هست.همونطور که از عکسش معلومه براحتی میتونید پروسه ها رو Kill کنید و…من توصیه میکنم ازبجای top از این استفاده کنید منتها برای استفاده از htop باید نصبش کنید روی سیستمتون htop is a very competent interactive process viewer for the shell, providing all the functionality - and more - that the top utility does, in an easier and more intuitive way. htop provides easy-to-use menus for most operations and also has support for using a mouse. htop is an easier to use and friendlier version of top. While it hasn’t as much time behind it and therefore is less tested, it seems to work very well both locally and over SSH, and it’s well worth taking it for a spin. It’s just one of those small utilities that makes life a bit easier نصب : #apt-get install htop Comparison between htop and top In ‘htop’ you can scroll the list vertically and horizontally to see all processes and complete command lines. In ‘top’ you are subject to a delay for each unassigned key you press (especially annoying when multi-key escape sequences are triggered by accident). ‘htop’ starts faster (’top’ seems to collect data for a while before displaying anything). In ‘htop’ you don’t need to type the process number to kill a process, in ‘top’ you do. In ‘htop’ you don’t need to type the process number or the priority value to renice a process, in ‘top’ you do. ‘htop’ supports mouse operation, ‘top’ doesn’t ‘top’ is older, hence, more used and tested ۴-slmon Slmon هم برنامه جالبیه که میزان مصرف cpu ,ram همچین مقدار فضای خالی یا مصرفی mount ها ازقبیل هارد, فلش و… رو نشون میده.برای دیدن پروسه هایی که در حال انجام هستن باید روی p کیک کنید تا پروسه های لیست بشه براتون… SLmon is a tool for monitoring a system's performance. It displays results using a nice and easilyreadable text-based UI. It has the ability to monitor CPU load (SMP is supported), memory/filesystems usage, network interfaces, uptime, date and time, and the number of logged in users. نصب : #apt-get install slmon ۵-sysstat sysstat حاوی sar,mpstat,iostat هستش که هر کدوم کاری انجام میدن.(منکه اصلا باهاش حال نکردم) نصب : #apt-get install sysstat sar command mpstat command The mpstat command reports global and per-processor statistics iostat command For ۲.۴ kernels the devices is names using the device's major and minor number. In this case the device listed is SCSI. To have iostat print this out for you, use the -x ۶-ps ps لیستی از پروسه هایی که الان در حال اجراست را نشان میده The ps will provide you a list of processes currently running. There is a wide variety of options that this command gives you. ps [-a] [-A] [-c] [-d] [-e] [-f] [-j] [-l] [-L] [-P] [-y] [ -g grplist ] [ -n namelist ] [-o format ] [ -p proclist ] [ -s sidlist ] [ -t term] [ -u uidlist ] [ -U uidlist ] [ -G gidlist ] برای اینکه لیست تمام پروسه هایی که در حال انجام هست رو ببینیم از دستور زیر استفاده میکنیم #ps -ef برای اینکه پروسه های یک کاربر خاص رو ببینیم از دستور زیر استفاده میکنیم #ps -u(defualt is current user) #ps -u zabbix ز kill میتونیم بهمراه ps برای پابان دادن به یک پروسه استفاده کنیم..مثلا pid یه پروسه در عکس آخر ۱۱۳۸ هستش..ما برای اینکه فاتحه!! این پروسه رو بخونیم به این طریق عمل میکنیم . #kill -۹ ۱۱۳۸ ۹ هم برای اطمینان از اجرا شدن مینویسیم ۷-pstree pstree لیست پروسه هایی که الان در حال انجام هستند رو نشون میده pstree - display a tree of processes pstree [ -a ] [ -c ] [ -h | -H pid ] [ -l ] [ -n ] [ -p ] [ -u ][ -A | -G | -U ] [ pid | user] برای نمایش پروسه ها بدین طریق عمل میکنیم #pstree #pstree user(show only trees rooted at processes of that user) ۸-jmon jmon درصد استفاده cpu, memory , swap رو بهمون نشون میده The jmon tool monitors selected resources (memory, cpu, I/O) used by a running batch job on a particular machine, as well as overall machine activities. jmon [ -interval ] [ -count ] [ -outfile ] [ -path ] [ -(no)fg ] [ -version ] [ -help|? ] برای مشاهده خروجی : #jmon ۹-dstat dstat میتونه یک جایگزین خوب برای vmsta , iostat , ifstat باشه که چند محدودیت اونها رو حل کرده وچندین قابلیت هم اضافه شده.بنظرم اگه سیستمون دچار bottleneck شده dstat میتونه کمک خوبی باشه براتون تا در یک زمان تمام منابع سیستمتون از قبیل cpu , disk usage , network bandwidth ,…. رو میتونید ببینید stat allows you to view all of your system resources instantly, you can eg. compare disk usage in combination with interrupts from your IDE controller, or compare the network bandwidth numbers directly with the disk throughput (in the same interval). dstat [-afv] [-cdgilmnpsty] [-D..] [-I..] [-N..] [delay [count]] برای مشاهده خروجی #dsta
۱۰-vmstat اطلاعاتی در مورد پروسه ها , memory, cpu,swap, io ,procs در اختیارمون میزاره vmstat reports information about processes, memory, paging, block IO, traps, and cpu activity. vmstat [-V] [-n] [delay [count]] FIELD DESCRIPTIONS ۱۱-vnstat اگه دنبال یه راه مگیردید که ترافیک کارت شبکه هاتون رو کنترل کنید این یه ابزاره خوبه که باکنسول کار میکنه و بصور روزانه و ماهیانه براتون لاگ برداری میکنه vnStat is a console-base network traffic monitor that keeps a log of daily and monthly network traffic for the selected interface(s). However, it isn't a packet sniffer. The traffic information is analyzed from the proc(۵) -filesystem, so that vnStat can be used without root permissions. نصب : # apt-get install vnstat برای فعال کردن vnstat و ساختن دیتابیس مثلا بر روی eth۰ بدین طریق عمل میکنیم # vnstat -u -i eth۰ u مجبور میکنه که دیتابیس آپدیت بشه یا اگه دیتابیسی وجود نداره اونو میسازه vnstat شروع به جمع آوری دیتا از طریق cronjob میکنه که موقع نصب بصورت خودکار اصافه میشه ۰-۵۵/۵ * * * * root /usr/bin/vnstat –u برای دیدن اطلاعات بدیدن طریق عمل میکنیم #vnstat #vnstat -h(Show traffic for the last ۲۴ hours) #vnstat -d(Show traffic for days) #vnstat -w(Show traffic for ۷ days, current and previous week) #vnstat -m(Show traffic for months) #vnstat -t (Show all time top۱۰ traffic days) #vnstat –help ۱۲-bwm bwm یک برنامه کوچولی مونیتورینگ پهنای باند هست که تا ۱۶ تا کارت شبکه رو همزمان میتونه پشتیبانی کنه This is a very tiny bandwidth monitor (not X۱۱). Can monitor up to ۱۶ interfaces in the in the same time, and shows totals too. نصب : #apt-get install bwm برای اینکه خروجی رو ببینید بدین طریق عمل کنبد #bwm ۱۳-ethstats ethstats خروجی کارت شبکه ها رو براساس مگابیت بر ثانیه و پکت بر ثانیه نشان میده..البته همچین با حال نیست!! ethstats works by parsing the /proc/net/dev file that the Linux kernel maintains, and thus utilizes a negligible amount of CPU time. ethstats shows the throughput of each device in both megabits per second and packets per second. نصب : #apt-get install ethstats برای مشاهده خروجی این طور عمل میکنیم #ethstats تغییر شل پیش فرض در لینوکس شل پیش فرض هر کاربر در فایل etc/passwd/ قابل مشاهده می باشد ولی از طریق این فایل اگر کاربر ریشه نباشید امکان تغییر وجود ندارد. cat /etc/passwd daemon:x:1:1:daemon:/usr/sbin:/bin/sh فایل etc/shells/ حاوی لیستی از شل هایی است که بر روی سیستم موجود میباشد و از طریق آن می توانید شل مورد نظر خود را انتخاب کنید : PersianAdmins:~# cat /etc/shells هر کاربر تنها می تواند شل پیش فرض خود را تغییر دهد و تنها کاربر ریشه قادر است تنظیمات کاربران دیگر را تغییر دهد. chsh -s {shell-name} {user-name}
مثال : chsh -s /bin/csh بعد از زدن این دستور از شما پسورد خواسته می شود که می بایست پسورد خود را وارد کنید. chsh -s /bin/csh reza وقتی از کاربر ریشه استفاده می کنیم پسورد پرسیده نخواهد شد. مشاهده تغییرات : قبل از دستور PersianAdmins:~# cat /etc/passwd | grep reza بعد از دستور PersianAdmins:~# cat /etc/passwd | grep reza
نصب و تنظیم VPN - PPTP client در لینوکس در این آموزش با نحوه تنظیم لینوکس بعنوان یک PPTP client برای اتصال به VPN - PPTP سرور آشنا خواهیم شد. فرض بر این است که شما از محیط متنی استفاده می کنید , از این رو آموزش بر اساس ابزارهای این محیط است ولی شما همچنین قادر خواهید بود تا در محیط گرافیکی هم ازاین روش بهره ببرید. در گذشته برای استفاده از Encryption می بایست وصله مربوط را به هسته اضافه می کردیم در حالیکه بعد از هسته 2.6.15 دیگر نیازی به افزودن وصله به هسته نیست.ورژن جدید اکثر توزیع ها این ویژگی را بهمراه دارد. برای بررسی ورژن هسته از دستور uname -a استفاده کنید. Reza:~# uname -a با آنکه PPTP از لحاظ امنیت نسبت به رقبای دیگر خود نظیر OpenVPN در جایگاه پایین تری قرار دارد ولی نصب آسان و دردسترس بودن در اکثر سیستم عامل ها سبب برتری PPTP در نهایت می شود. شیوه نصب و تنظیم PPTP client که در این آموزش گفته می شود در اکثر لینوکس ها مشابه می باشد.من این تنظیمات را در دبین , آبانتو و فدورا مورد آزمایش قرار داده ام.لازم به تذکر است که همه این ها از هسته بعد از 2.6.15 استفاده می کردند. با گوگلی که انجام دادم متوجه شدم که این شیوه در این سیستم عامل ها جوابگوست : 1. CentOS , RHEL , Fedora همگی با هسته بالاتر از 2.6.15 2. Debian و Ubuntu با هسته بالاتر از 2.6.15 3. FreeBSD همچنین این PPTP client با این سرورها می تواند ارتباط برقرار کند : 1. Microsoft Windows VPN Server 2. Linux PPTP Server 3. Cisco PIX نصب PPTP client اول از همه آخرین نسخه PPTP client که در حال حاظر 1.7.1 می باشد را دانلود می کنیم : Reza:/tmp#wget http://quozl.netrek.org/pptp/pptp-1.7.1.tar.gz سپس tar xvfz pptp-1.7.1.tar.gz client نصب شده و آماده تنظیم می باشد. برای بهره برداری از PPTP client فایل های زیر را مورد استفاده قرار می دهیم : 1. etc/ppp/chap-secrets/ که نام کاربری و پسورد کانکشن را در خود ذخیره می کند 2. etc/ppp/peers/tunnel-name/ این فایل را باید بسازیم و تنظیمات مربوط به تانل از قبیل آدرس سرور VPN را در آن قرار می دهیم.این فایل باید در دایرکتوری peers واقع شده باشد. 3. etc/ppp/options.pptp/ که سعی کنید تنها در صورت نیاز این فایل را ویرایش کنید , چون باعث بروز مشکلات زیادی در صورت عدم آگاهی از تاثیر تغییرات انجام شده خواهد شد. تنظیمات فایل options.pptp بر تمام ارتباطات اعمال می شود و حداقل باید شامل این تنظیمات باشد : lock noauth nobsdcomp nodeflate نکته : modprobe ppp_mppe با یک مثال ادامه می دهیم : فرض کنید می خواهیم به یک VPN سرور با مشخصات زیر ارتباط برقرار کنیم آدرس سرور : vpn.persianadmins.com نام کاربری : reza پسورد : behroozi نام تانل ارتباطی : persianadmins خوب با این مشخصات بدین ترتیب عمل می کنیم : nano /etc/ppp/chap-secrets فایل ازتباطی با نام persianadmins را می سازیم و تنظیم می کنیم : nano /etc/ppp/peers/persianadmins pty "pptp vpn.persianadmins.com --nolaunchpppd" تنظیمات به پایان رسید و حال میتوانیم با سرور ارتباط برقرار کنیم : pppd call persianadmins و دستور دیگر برای لینوکس های بر پایه دبین pon persianadmins اگر همه چیز به درستی انجام شده باشد ارتباط برقرار می شود و شما می توانید با مشاهده ifconfig ببینید که یک اینترفیس با نام pppX اضافه شده است. در صورت بروز خطا می توانید با مشاهده خطاها در فایل var/log/messages/ در ردهت و var/log/syslog/ در دبین به حل مشکل بپردازید. برای قطع ارتباط می توانید ابنگونه عمل کنید : 1-killall pppd که همه ی ارتباطات ppp را قطع خواهد کرد 2- kill pppd-PID برای قطع کردن یک ارتباط خاص با داشتن PID 3- poff tunnel-name برای لینوکس های بر پایه دبین نصب و راه اندازی Squid همراه Radius ابتدا فابل squid_radius_auth را دانلود کرده فایل دانلودشده را باز کزده و Config میکنیم بدین صررت : # cd /etc/squid/ # vi /etc/squid/squid_radius_auth.conf
در نهایت فایل Squid را Config میکنیم بدین صورت : auth_param basic program /etc/squid/squid_radius_auth -f /etc/squid/squid_radius_auth.conf auth_param basic children 6
1 - کلاینت ها در زمان بوت شدن سیستم یا شروع مجدد سرویس یا با استفاده از دستور ipconfig /renew در ویندوز شروع به پخش پیغام هایی به نام DHCP Discover بصورت همگانی (broadcast) می کنند و در این پیغام ها درخواست IP خود را برای DHCP سرور های در محل اعلام می کنند. 2 - سروهای DHCP که این پیغام را دریافت می کنند در جوب پیغامی بنام DHCP Offer برای کلاینت ارسال می کنند و IP مورد نظر خود را به کلاینت پیشنهاد می دهند. 3 - کلاینت که ممکن است از چندین سرور پیشنهاد IP داشته باشد معمولا به سریعترین پیشنهاد با پیغامی بنام DHCP Request درخواست IP می کند.کلاینت این پیغام را بصورت همگانی ارسال می کند که برای سرور مورد نظر نشان دهنده قبول پیشنهاد و برای بقیه نشان دهنده عدم قبول می باشد. 4-سرور DHCP هم با یک پیغام DHCP ACK با این درخواست موافقت می کند. شکل زیر مراحل بالا را بخوبی نشان می دهد: برای جلوگیری از اینکه دو سیستم همزمان از یک آدرس استفاده کنند میتوان DHCP سرور را تنظیم کرد تا قبل از اختصاص IP به کلاینت آن را ping کند تا مشکلی بوجود نیاید.همچنین کلاینت با استفاده از ARP این عمل را انجام می دهد. اگر DHCP سرور و کلاینت ها در دو شبکه مجزا از هم قرار داشته باشند میبایست از یک Relay Agent استفاده کرد تا درخواست ها را از طرف کلاینت ها برای DHCP سرور بازپخش کند و سپس جواب را از طرف DHCP به کلاینت ها منتقل کند.
بعد از فهمیدن اینکه DHCP چیست و چه انتظاری از آن داریم به سراغ نصب و تنظیم آن در لینوکس می رویم. apt-get install dhcp3-server نصب در لینوکس های بر پایه ردهت : yum install dhcp محل قرار گیری فایل کانفیگ : etc/dhcp3/dhcpd.conf/ در ردهت : etc/dhcpd.conf/ برای آغاز بکار کردن سرویس یا شروع مجدد در هر دو نمونه توزیع بدین شکل عمل می کنیم : etc/init.d/dhcpd start/restart/ تنظیم سرویس برای اینکه هنگام بوت شدن سیستم اجرا شود : chkconfig dhcpd on در دبین بصورت خودکار تنظیم می شود. nano /etc/default/dhcp3-server در ردهت : nano /etc/sysconfig/dhcpd DHCPDARGS=eth0 در دبین فایل کانفیگ بصورت پیش فرض دربردارنده یک سری از تنظیمات می باشد که با تغییر آنها با نیازهای خودتان می توانید سرویس را راه اندازی کنید. cp /usr/share/doc/dhcp-<version>/dhcpd.conf.sample /etc/dhcpd.conf یک نمونه فایل کانفیگ ساده و بهمراه Optionهای پر کاربرد و مهم بهمراه توضیحات : ddns-update-style none; 1 - 1-این گزینه به DHCP می گوید که آیا IP های کلاینت ها را در DNS سرور بروز رسانی کند یا خیر. 11-با استفاده از host می توانیم یک آدرس را برای کلاینت خاص رزرو کنیم. سطوح اعمال تنظیمات برای زمانی که کلاینت از رنچ آدرس تعیین شده IP می گیرد : Global Declaration سطوح اعمال تنظیمات برای زمانی که آدرس IP برای کلاینت از قبل رزرو شده است : 1-Global Declaration Option هایی که در سطوح پایین تر تنظیم شده اند بر دیگر تنظیمات اولویت پیدا خواهند کرد. Global Declaration :
تمامی IP ها و تنظیماتی که به کلاینت ها اختصاص داده می شود در فایلی به نام dhcpd.leases واقع شده در دایرکتوری var/lib/dhcp/ ذخیره می شود.نمونه این فایل : cat /var/lib/dhcp3/dhcpd.leases تمامی مراحلی که dhcp سرور به کلاینت IP می دهد در syslog ثبت می شود : Jul 15 20:57:42 debian dhcpd: DHCPDISCOVER from 00:0c:29:49:b9:30 via eth1 از این ویژگی می توانید برای پیدا کردن مشکلات احتمالی استفاده کنید , همچنین تمامی خطاهایی که در طول شروع سرویس روی می دهد در syslog ثبت می شود.
---------------------------------------------------------------------- پایان ------------------------------------------------------------------------------ | |
|