For Linux administrators that use Windows for their desktop OS, Putty is an invaluble tool. This tutorial will help you save time administering your servers without having to login to provide a username and password each time.
Click on image for play tutorial:



1. Download PuTTY

2. Download PuTTYgen

3. Open PuTTYgen
* Select SSH-2 RSA
* Click ‘Generate’

4. Save the Private Key
* Click ‘Save private key’ (you do not have enter a password)
* Save the private key in location easy to remember.

5. Copy public-key
* Select all text in the public key area.
* right-click and select copy

6. Configure the server settings in Putty
* Open Putty
* Click Session (left column)
o Enter the server hostname or IP address
o Enter a name under ‘Saved Sessions’
* Click Connection > Data (left column)
o Enter ‘root’ for the auto-login username
* Click Connection > SSH (left column)
o Select ‘2′ as the Preferred SSH protocol version.
* Click Connection > SSH > Auth (left column)
o Browse to the private key from step 4.
* Click Session (left column)
o Click Save

7. Open a session with the server
* Open PuTTY
* Select the session saved earlier.
* Click ‘Load’
* Click ‘Open’
* Login

8. Add client public key.
* You should still have the public-key in the clip-board from step 5.
* Open the authorized_keys file on the linux server
o [root@server]#vi ~/.ssh/authorized_keys2
o Press the ‘i’ key to insert in vi.
o Go to the bottom of the file and right-click on the putty screen
(This should insert the public key generated with PuTTYgen)
o Press the ‘esc’ key to get out of insert mode in vi.
o Press ‘:’ to enter command mode in vi
o Type ‘wq’ to write and quit vi

9. Now, you should be finished. Let’s test.
* Open PuTTY
* Select the session saved earlier.
* Click ‘Load’
* Click ‘Open’

10. If you were able to login without entering your username and password you are finished!!If not, please continue to troubleshoot.

Troubleshooting:

If you do not have a /root/.ssh folder, we will have to create one and set the permissions
 
[root@server]#mkdir ~/.ssh
[root@server]#chmod 700 ~/.ssh
 
If you do not have a authorized_keys2 file, we will need to create one and set the permissions:

[root@server]#vi ~/.ssh/authorized_keys2
[root@server]#chmod 644 ~/.ssh/authorized_keys2


If you get an error that the key was rejected, you need to make sure the permissions are set correctly on the .ssh directory and authorized_keys2 file.

[root@server]#chmod 700 ~/.ssh
[root@server]#chmod 644 ~/.ssh/authorized_keys2

+ نوشته شده توسط وحید قاسمی در پنجشنبه بیست و دوم دی ۱۳۹۰ و ساعت 12:7 |
برای مشاهده تاریخ و ساعت از این دستور استفاده مکنیم
date
مشاهد زمان مطابق با UTC
date --utc
یا مثلا برای نمایش در فرم سفارشی شده میتوانیم از متغیرهای زیر استفاده کنیم

%% a literal %
%a locale's abbreviated weekday name (Sun..Sat)
%A locale's full weekday name, variable length (Sunday..Saturday)
%b locale's abbreviated month name (Jan..Dec)
%B locale's full month name, variable length (January..December)
%c locale's date and time (Sat Nov 04 12:02:33 EST 1989)
%C century (year divided by 100 and truncated to an integer) [00-99]
%d day of month (01..31)
%D date (mm/dd/yy)
%e day of month, blank padded ( 1..31)
%F same as %Y-%m-%d
%g the 2-digit year corresponding to the %V week number
%G the 4-digit year corresponding to the %V week number
%h same as %b
%H hour (00..23)
%I hour (01..12)
%j day of year (001..366)
%k hour ( 0..23)
%l hour ( 1..12)
%m month (01..12)
%M minute (00..59)
%n a newline
%N nanoseconds (000000000..999999999)
%p locale's upper case AM or PM indicator (blank in many locales)
%P locale's lower case am or pm indicator (blank in many locales)
%r time, 12-hour (hh:mm:ss [AP]M)
%R time, 24-hour (hh:mm)
%s seconds since `00:00:00 1970-01-01 UTC' (a GNU extension)
%S second (00..60); the 60 is necessary to accommodate a leap second
%t a horizontal tab
%T time, 24-hour (hh:mm:ss)
%u day of week (1..7); 1 represents Monday
%U week number of year with Sunday as first day of week (00..53)
%V week number of year with Monday as first day of week (01..53)
%w day of week (0..6); 0 represents Sunday
%W week number of year with Monday as first day of week (00..53)
%x locale's date representation (mm/dd/yy)
%X locale's time representation (%H:%M:%S)
%y last two digits of year (00..99)
%Y year (1970...)
%z RFC-2822 style numeric timezone (-0500) (a nonstandard extension)
%Z time zone (e.g., EDT), or nothing if no time zone is determinable

مثال :
'date '+TIME:%H:%M:%S%nDATE:%m/%d/%y
خروجی بدین شکل است
TIME:13:07:04
DATE:05/12/07

برای مشاهده کلیه متغییرها از دستور زیر استفاده کنید
date --help

تغییر زمان و تاریخ :
برای این کار چندین روش وجود دارد که به دو مورد آن میپردازیم :

1-یکی از راحتترین روش ها که در حافظه هم میماند بدین شکل است :
date -s "month/day/year hour:min:sec"
date -s "05/12/2007 13:07:04"
ترتیب درتاریخ به صورت سال/روز/ماه میباشد.
2-این روش هم بد نیست ولی شیوه نوشتنش من و به شک میاندازه گاهی اوقات
date monthdayhourminyear
date 051213072007

توجه :
این روش ساعت سیستم رو تغییر خواهد داد نه ساعت سخت افزاری(بایوس)
برای مشاهده ساعت سخت افزاری ازاین دستور استفاده مکنیم
hwclock
برای تنظیم ساعت سخت افزاری با ساعت سیستم بدین تریتب عمل میکنیم
hwclock --systohc
همچنین میتوانیم با استفاده از ساعت سیستم , ساعت سخت افزاری رو بر روی UTC تنظیم کنیم
hwclock --utc --systohc
systohc یعنی زمان و تاریخ سخت افزاری رو بر طبق زمان و تاریخ سیستم هماهنگ کن.
hctosys یعنی زمان و تاریخ سیستم رو بر طبق زمان و تاریخ سخت افزاری هماهنگ کن.


تنظیم time zone
در etc/ فایلی بنام localtime بصورت لینکی از فایل اصلی حاوی اطلاعاتی در مورد time zone شما میباشد.این فایل های حاوی نواحی مختلف زمانی معمولا در usr/share/zoneinfo/ قرار دارد البته بسته به نوع توزیع شما ممکن است متفاوت باشد که با استفاده از locate قابل شناسایی است.
اگر فایل localtime به منطقه زمانی مورد نظر شما لینک نشده است میتوانید با پیدا کردن کشور و ناحیه مورد نظر خود در usr/share/zoneinfo/ آن را به localtime لینک دهید.
مثلا برای ایران بدین ترتیب عمل میکنیم :
ln -sf /usr/share/zoneinfo/Iran /etc/localtime

استفاده از NTP (Network Time Protocol)
NTP به یک سرور وصل میشود و ساعت اتمی را میگیرد.
نصب :
apt-get install ntpdate
yum install ntpdate

با ntpdate ساعت سیستم روتنظیم میکنید و از طریق اون ساعت سخت افزاری .

برای تنظیم ساعت و تاریخ باید IP یک سرور را بدانیم و بدین نحو عمل میکنیم :
"ntpdate "server DNS name or IP address
اگر به این پیغام خطا برخورد کردید :

12 Jun 03:05:44 ntpdate[2028]: Can’t adjust the time of day: Invalid argument
بدین نحو عمل کنید :

ntpdate -b pool.ntp.org
b Force the time to be stepped using the settimeofday() system call, rather than slewed (default) using the adjtime() system call. This option should be used when called from a startup file at boot time
برای تنظیم ساعت سخت افزاری
hwclock --systohc

میتوانید از این لینک برای بدست آوردن public time server استفاده کنید
http://www.eecis.udel.edu/~mills/ntp/clock2a.html

برای دقیق نگه داشتن تنظیمات زمان میتوانید از cron job استفاده کنید که دستور زیر را اجرا کند
ntpdate "server name" && hwclock --systohc


همچنین به این طریق می توانید عمل کنید :
nano /etc/cron.d/ntpdate
55 6 * * * root /usr/sbin/ntpdate pool.ntp.org >/dev/null

در صورتیکه برای چندین دستگاه خواهان تنظیم زمان هستید بهترین راه استفاده از یک NTP server داخلی میباشد.

استفاده از rdate
rdate مشابه ntpdate عمل میکند با این تفاوت که نمیتوان rdate server راه انداخت.
rdate "server name" && hwclock --systohc
+ نوشته شده توسط وحید قاسمی در پنجشنبه بیست و دوم دی ۱۳۹۰ و ساعت 12:5 |
Rsync  يک برنامه ساده  و کوچک، همانند يک برنامه انتقال فايل مي باشد، آخرين نسخه اي که در زمان نوشتن اين مقاله وجود دارد نسخه  3.0.4 مي باشد که مي توانيد از سايت رسمي آن با آدرس http://samba.anu.edu.au/rsync   دريافت کنيد.
با اين برنامه حتی مي توان فقط تغييراتي که بر روي يک فايل  انجام شده را انتقال داد ، در نظر بگيريد که شما سروري داريد که مدام مجبوريد اطلاعات آن را با سرور ديگر بروز رساني کنيد، براي اين کار لازم نيست هر بار اطلاعات مورد نظر را تماما انتقال دهيد ، با کمک Rsync  مي توان فقط فايل هايي را که در کامپيوتر مبدا و يا مقصد تغيير کرده اند، انتقال داد. اين کار فوايد بسياري از جمله ، آپلود سريع تر و کم تر شدن ترافيک شبکه و صرفه جويي در پهناي باند مصرفي  را  بدنبال خواهد داشت.

در واقع  Rsync  يک برنامه چند منظوره است که کارهاي Backup  & Mirroring   را براي شما انجام خواهد داد.

بعضي امکانات Rsync   عبارت اند از :
  • پشتيباني از حفظ اطلاعات فايل منتقل شده ، همانند مالک فايل ، گروه فايل ، مجوز هاي فايل و ...
  • عدم نياز به مجوز کاربر ريشه
  • ترانسپرنت شدن با پروتکل هايي نظير ssh  ، rsh
  • قابليت استفاده بصورت anonymous  يا authenticated

براي شروع ابتدا مطمئن شويد که برنامه مورد نظر در سيستم شما نصب ميباشد من از CentOS 5.2 استفاده مي کنم کليه دستوران نوشته شده در اين مقاله هم بر اساس همين توزيع مي باشد.

براي اين کار مي توانيد دستور rsync را اجرا کنيد و يا خروجي دستور زير را ببينيد :
#rpm  -q  rysnc
و خروجي بمانند زير خواهد بود :
[root@centos-test ~]# rpm -q rsync
rsync-3.0.4-1.el5.rf
[root@centos-test ~]#

در صورتي که برنامه در سيستم شما نصب نبود از دستور زير استفاده کنيد :
#yum install rsync

در ديگر توزيع ها همانند fedora , redhat , debian  هماند بالا ميباشد با اين تفاوت که در debian مي بايست از apt-get  استفاده نماييد .
براي راه اندازي شما بايد Rsync  را بصورت Daemon   راه اندازي کنيد اين کار با استفاده از دستور  rsync –daemon   در کنسول انجام خواهد شد، فايل پيکربندي آن بصورت پيشفرض در آدرس  etc/rsyncd.conf/  قرار دارد و با کمک Vi  مي توانيد آن را ويرايش کنيد. تمام دستگاهايي که برنامه Rsync  را اجرا کنند مي توانند با دستگاهي که  در آن Rsync Daemon  راه اندازي شده است همزمان شودند.
براي اين کار شما بايد يک دستگاه را که قرار است نقش سرور را بازي کند بصورت Daemon  راه اندازي کنيد همچنين کلاينت ها نيز مي توانند براي بر قراري يک ارتباط دو طرفه در حالت daemon  راه اندازي شوند.
در زير بعضي از فايل هاي پيکربندي Rsync  را مشاهده مي کنيد

motd file = /etc/rsyncd.motd
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock

[simple_path_name]
path = /rsync_files_here
comment = My Very Own Rsync Server
uid = nobody
gid = nobody
read only = no
list = yes
auth users = username
secrets file = /etc/rsyncd.scrt



  • هر گاه شما بخواهيد پيامي را به کاربران خود نمايش بدهيد مي توانيد از فايل etc/rsyncd.motd/   استفاده کنيد.
  • فايل بعدي فايلي است که لاگ هاي مربوط به Rsync  در آن ريخته خواهد شد.
  • دو فايل بعدي براي شماره پردازش Rsync  و قفل کردن آن مي باشد.
  • در فايل پيکربندي گزينه Path  مسيري را که فايل ها به/ از آن همزمان خواهند شد را نشان مي دهد,
  • Comment مختصري توضيح راجع به مسير داده شده خواهد بود،
  • Uid &Gid  نام کاربري و گروهي که Rsync  با ان اجرا خواهد شد را نشان مي دهد،
  • اگر شما بخواهيد دسترسي را به يوزري که از قبل تعريف شده محدود کنيد مي توانيد Auth Users  را براي آن مشخص کنيد که اين کار با فايلSecret  که بصورتplaintext   نوشته مي شود و با فرمت Key/value  که نشان دهنده نام کاربري و رمز عبور است، انجام مي شود.
rsync remote-update  يک پروتکل براي Rsync  مي باشد که تنها  تغييرات صورت گرفته را بين دو ماشين منتقل مي کند.
دو راه براي اتصال rsync  براي انتقال فايل وجود دارد ، يک راه استفاده از  برنامه هاي remote-shell  مانند ssh   بعنوان انتقال است و راه ديگر اتصال به daemon  برنامه Rsync  توسط پروتکل tcp  مي باشد.
انتقال با remote-shell  هر زماني که  مسير هاي منبع و مقصد  محتوي  تنها يک کالن ( : ) بعد از مشخص کردن ميزبان باشند استفاده ميشود ،  اتصال به daemon  برنامه Rsync   تنها زماني که مسير هاي منبع و مقصد محتوي دو کالن  ( :: ) بعد از مشخص کردن ميزبان  باشند و يا بکار بردن عبارت //:rsync  استفاده ميشود


استفاده از Rsync  :

شما مي توانيد  با مشخص کردن مبدا و مقصد به راحتي از اين برنامه استفاده کنيد براي مثال :
rsync  -t *.c foo:src/
شايد اين کلي ترين دستور براي  rsync   باشد ، در اين دستور تمامي پترن هاي  شامل c.*  به سيستمي با نام foo ، و به دايرکتري src  انتقال پيدا مي کند , اگر فايلي با نام مشابه در دايرکتري مقصد وجود داشته باشد ، rsync remote-update protocol براي بروز رساني آن فايل ها تنها با فرستادن تغييرات شروع به کار مي کند

rsync -avz foo:src/bar  /data/tmp

اين دستور بصورت recursive  تمامي فايل هاي دايرکتري  src/bar را  در ماشين foo   به دايرکتري   data/tmp  در ماشين فعلي کپي مي کند. فايل ها در حالت آرشيو منتقل مي شوند که اين کار باعث مي شود تمامي مجوز ها و اطلاعات فايل در حين انتقال حفظ شود.
همچنين فشرده سازي باعث کاهش حجم فايل در حين انتقال خواهد شد.


در آخر هم سعي مي کنيم يک مثال پيچيده را با هم بررسي کنيم

rsync --verbose  --progress --stats --compress --rsh=/usr/local/bin/ssh --recursive --times --perms --links --delete /www/* webserver:simple_path_name

خوب اين دستور rsync   را با گزينه هاي verbose , progress , stats  راه اندازي مي کند
گزينه Compress براي فشرده سازي اطلاعات و گزينه rsh  براي انتقال اصلاعات بصورت امن از طريق ssh  خواهد بود، خط بعد مشخص مي کند که Rsync  چطور با فايل هاي  رفتار کند:
Recursive  به آن  مي گويد که فايل ها و دايرکتري ها را بصورت recursive  انتقال دهد و اطلاعات زمان و مجوز ها را با دو عبارت times  و perms  انتقال دهد همچنين عبارت links نشان دهنده  کپي کردن symbolic ها و عبارت Delete  نشان دهنده پاک کردن دايرکتري و فايل ها در دايرکتري مقصد که در سيستم فعلي حذف شده اند مي باشد */www/ فايل هايي از سيستم من که قرار است توسط Rsync  انتقال داده شوند را نشان مي دهد و webserver:simple_path_name آدرس کامپيوتر مقصد خواهد بود.
با اجراي دستور فوق تمامي فايل هاي شاخه www  من به کامپيوتر webserver   با حفظ تمامي مجوز ها و اطلاعات ، انتقال پيدا خواهد کرد.

 
+ نوشته شده توسط وحید قاسمی در پنجشنبه بیست و دوم دی ۱۳۹۰ و ساعت 12:3 |
امروزه حتی با وجود هاردها و دستگاههای ذخیره سازی با حجم زیاد , فشرده سازی همچنان یکی از موارد مهم در همه سیستم عامل ها محسوب می شود , برخی از مزایای فشرده سازی عبارت است از :
کاهش حجم اشغالی , راحتی در انتقال , راحتی در به اشتراک گذاری , افزایش سرعت انتقال ( تصور کنید که بخواهید 1000 فایل یک مگابایتی در مقایسه با یک فایل 1 گیگابایتی جا به جا کنید).
معمولترین ابزارهای فشرده سازی در لینوکس gzip , bzip2 و zip می باشد که در بین کاربران عادی zip محبوبیت و کاربرد بیشتری دارد ولی در دنیای لینوکس 2 ابزار دیگر کاربرد و مقبولیت بیشتری دارند.
خروجی پسوند هر کدام از ابزارهای بالا به شرح زیر می باشد :
bzip2=bz2
gzip=gz
zip=zip
شاید در ذهن شما این سوال آمده است که "ما اغلب با پسوندهایی نظیر tar.gz و tar.bz2 روبرو هستیم , پس جایگاه و کاربرد tar چیست؟"
در پاسخ به این سوال باید گفت که tar ابزار فشرده سازی محسوب نمی شود و هیچ گونه فشرده سازی برای ما انجام نمی دهد بلکه ابزاری جهت تهیه پشتیبان و آرشیو است.tar در واقع یک ابزار کمکی برای gzip و bzip2 در امر فشرده سازی محسوب می شود از آنجائیکه این 2 ابزار قادر به فشرده سازی چندین فایل و دایرکتوری در یک فایل واحد نمی باشند , در واقع این ابزارها برای هر فایل , فایل فشرده شده جداگانه می سازند در صورتیکه tar امکان گرد هم آوردن چندین فایل و دایرکتوری در یک فایل را به آسانی در اختیار ما قرار می دهد.


نصب ابزارهای مورد نیاز در صورت لزوم :

معمولا ابزارهای tar و gzip در اکثریت لینوکس ها بطور پیش فرض نصب می باشند.
نصب در دبین :
apt-get install bzip2 zip unzip
نصب در ردهت :
yum install bzip2 zip unzip


استفاده از ابزار zip و unzip :

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

فشرده سازی با استفاده از zip :

حالت معمول فشرده سازی با zip ; در این مثال "*" نشان دهنده همه فایل های موجود در دایرکتوری جاری می باشد , شما می توانید آدرس فایل و دایرکتوری های مختلف را بجای آن وارد کنید :

PersianAdmins:~# zip padmins.zip *
adding: ali/ (stored 0%)
adding: file1.txt (stored 0%)
adding: file2.txt (deflated 50%)
PersianAdmins:~#

در مثال بالا فایل ها و دایرکتوری های واقع در زیردایرکتوری ها فشرده نمی شوند و اصطلاحا برگشتی(recursively) عمل نمی کند , برای حل این مشکل از گزینه r- همراه با zip استفاده می کنیم :

PersianAdmins:~# zip -r padmins.zip *
adding: ali/ (stored 0%)
adding: ali/navid/ (stored 0%)
adding: ali/navid/reza (stored 0%)

adding: file1.txt (stored 0%)
adding: file2.txt (deflated 50%)
PersianAdmins:~#

برای اینکه فایل های فشرده شده را رمزگذاری کنیم به 2 صورت می توان عمل کرد :
1-رمز پرسیده خواهد شد

PersianAdmins:~# zip -r padmins.zip * -e
Enter password:
Verify password:

adding: ali/ (stored 0%)
adding: ali/navid/ (stored 0%)
adding: ali/navid/reza (stored 0%)
adding: file1.txt (stored 0%)
adding: file2.txt (deflated 50%)
PersianAdmins:~#


2- رمز مورد نظر را همزمان وارد می کنیم


PersianAdmins:~# zip -r -P www.admins.ir padmins.zip *
adding: ali/ (stored 0%)
adding: ali/navid/ (stored 0%)
adding: ali/navid/reza (stored 0%)
adding: file1.txt (stored 0%)
adding: file2.txt (deflated 50%)
PersianAdmins:~#


خارج کردن از حالت فشرده با استفاده از دستور unzip :

اگر در زمان باز کزدن فایل zip برخی از فایل ها وحود داشته باشند در مورد جایگزنی آنها از ما سوال خواهد پرسید :

PersianAdmins:~# unzip padmins.zip
Archive: padmins.zip
[padmins.zip] ali/ password:
replace ali/navid/reza? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
extracting: ali/navid/reza
replace file1.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: n
replace file2.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
inflating: file2.txt
PersianAdmins:~#
در غیر اینصورت سوالی پرسیده نخواهد شد :

PersianAdmins:~# unzip padmins.zip
Archive: padmins.zip
[padmins.zip] ali/ password:
creating: ali/
creating: ali/navid/
extracting: ali/navid/reza
extracting: file1.txt
inflating: file2.txt
PersianAdmins:~#
باز کردن فایل zip از حالت فشرده در محل دیگری :
PersianAdmins:~# unzip padmins.zip -d /padmins/
Archive: padmins.zip
[padmins.zip] ali/ password:
creating: /padmins/ali/
creating: /padmins/ali/navid/
extracting: /padmins/ali/navid/reza
extracting: /padmins/file1.txt
inflating: /padmins/file2.txt
PersianAdmins:~#

خارج کردن یک فایل خاص :
PersianAdmins:~# ls test/
PersianAdmins:~# unzip padmins.zip file1.txt -d test/
Archive: padmins.zip
extracting: test/file1.txt
PersianAdmins:~# ls test/
file1.txt
PersianAdmins:~#

بدست آوردن اطلاعاتی در مورد فایل ها و دایرکتوری های موجود در فایل zip :

PersianAdmins:~# unzip -v padmins.zip
Archive:  padmins.zip
Length   Method    Size  Ratio   Date   Time   CRC-32    Name
--------  ------  ------- -----   ----   ----   ------    ----
0  Stored        0   0%  07-18-08 04:08  00000000  ali/
0  Stored        0   0%  07-18-08 04:23  00000000  ali/navid/
0  Stored        0   0%  07-18-08 04:08  00000000  ali/navid/reza
0  Stored        0   0%  07-18-08 03:53  00000000  file1.txt
12  Defl:N        6  50%  07-18-08 03:54  f2b1e508  file2.txt
--------          -------  ---                            -------
12                6  50%                            5 files
PersianAdmins:~#
بدست آوردن لیست فایل ها و دایرکتوری های موجود در فایل zip :


PersianAdmins:~# unzip -l padmins.zip
Archive:  padmins.zip
Length     Date   Time    Name
--------    ----   ----    ----
0  07-18-08 04:08   ali/
0  07-18-08 04:23   ali/navid/
0  07-18-08 04:08   ali/navid/reza
0  07-18-08 03:53   file1.txt
12  07-18-08 03:54   file2.txt
--------                   -------
12                   5 files
PersianAdmins:~#

اطمینان از سالم بودن فایل zip :

PersianAdmins:~# unzip -t padmins.zip
Archive:  padmins.zip
[padmins.zip] ali/ password:
testing: ali/                     OK
testing: ali/navid/               OK
testing: ali/navid/reza           OK
testing: file1.txt                OK
testing: file2.txt                OK
No errors detected in compressed data of padmins.zip.
PersianAdmins:~#


استفاده از ابزار gzip :

فشرده سازی یک فایل :

PersianAdmins:~# ls
file1.txt
PersianAdmins:~# gzip file1.txt
PersianAdmins:~# ls
file1.txt.gz
PersianAdmins:~#

همانطور که مشاهده می کنید فایل اصلی بواسطه تبدیل شدنش به فایل فشرده از بین می رود , برای اینکه فایل اصلی را بهمراه فایل فشرده داشته باشیم , بدین ترتیب عمل می کنیم :

PersianAdmins:~# ls
file1.txt
PersianAdmins:~# gzip -c file1.txt > file1.txt.gz
PersianAdmins:~# ls
file1.txt file1.txt.gz
PersianAdmins:~#

می توانید همزمان آدرس چند فایل را وارد کنید :

PersianAdmins:~# ls
file1.txt file2.txt
PersianAdmins:~# gzip file1.txt file2.txt
PersianAdmins:~# ls
file1.txt.gz file2.txt.gz
PersianAdmins:~#

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

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

به چند روش می توان از این 2 ابزار در کنار یکدیگر استفاده کرد :

  1. ابتدا یک فایل آرشیو با tar ایجاد کنیم و سپس با ابزار gzip آن یک فایل را فشرده کنیم :
    tar cvf padmins.tar file1.txt file2.txt test/
    gzip padmins.tar

    همانطور که در خط اول قابل مشاهده می باشد می توان همزمان آدرس چندین فایل و داریکتوری را داد.
  2. یک فایل آرشیو ایجاد و همزمان خروجی را برای gzip ارسال کنیم :
    tar cvf padmins.tar file1.txt file2.txt test/ | gzip
  3. ساده ترین روش با استفاده از دستور tar در یک مرحله :
    tar cvfz padmins.tar.gz file1.txt file2.txt test/

نکته :
برای اطمینان از اینکه فایل فشرده شده سالم باشد , این دستور را اجرا می کنیم :
gzip -tv padmins.tar.gz

باز کردن فایل های فشرده gz یا tar.gz :

فایل های فشرده شده توسط gzip را به 2 طریق می توان از حالت فشرده خارج کرد :

1-استفاده از دستور gzip -d

PersianAdmins:~# ls
file1.txt.gz
PersianAdmins:~# gzip -d file1.txt.gz
PersianAdmins:~# ls
file1.txt
PersianAdmins:~#

2-استفاده از ابزار gunzip

PersianAdmins:~# ls
file1.txt.gz
PersianAdmins:~# gunzip file1.txt.gz
PersianAdmins:~# ls
file1.txt
PersianAdmins:~#

برای اینکه فایل های فشرده توسط tar و gzip را ازحالت فشرده خارج کنیم 3 راه پیش رو داریم :

  1. در دو مرحله , ابتدا فایل را از حالت فشرده خارج کنیم و سپس از حالت آرشیو
    gzip -d padmins.tar.gz
    tar xvf padmins.tar
    or
    gunzip padmins.tar.gz
    tar xvf padmins.tar
  2. هم زمان که با gzip از حالت فشرده خارج می کنیم , خروجی را به tar ارسال می کنیم :
    gzip -dc tar xvf padmins.tar.gz | tar -x
  3. ساده ترین و بهترین روش در یک مرحله و با دستور tar :
    tar xvfz padmins.tar.gz




استفاده از ابزار bzip2 :

شیوه استفاده از این ابزار کاملا مشابه gzip می باشد.

فشرده سازی یک فایل :

PersianAdmins:~# ls
file1.txt
PersianAdmins:~# bzip2 file1.txt
PersianAdmins:~# ls
file1.txt.bz2
PersianAdmins:~#

همانطور که مشاهده می کنید فایل اصلی بواسطه تبدیل شدنش به فایل فشرده از بین می رود , برای اینکه فایل اصلی را بهمراه فایل فشرده داشته باشیم , بدین ترتیب عمل می کنیم :

PersianAdmins:~# ls
file1.txt
PersianAdmins:~# bzip2 -c file1.txt > file1.txt.bz2
PersianAdmins:~# ls
file1.txt file1.txt.bz2
PersianAdmins:~#

می توانید همزمان آدرس چند فایل را وارد کنید :

PersianAdmins:~# ls
file1.txt file2.txt
PersianAdmins:~# bzip2 file1.txt file2.txt
PersianAdmins:~# ls
file1.txt.bz2 file2.txt.bz2
PersianAdmins:~#

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

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

به چند روش می توان از این 2 ابزار در کنار یکدیگر استفاده کرد :

  1. ابتدا یک فایل آرشیو با tar ایجاد کنیم و سپس با ابزار bzip2 آن یک فایل را فشرده کنیم :
    tar cvf padmins.tar file1.txt file2.txt test/
    bzip2 padmins.tar

    همانطور که در خط اول قابل مشاهده می باشد می تواین همزمان آدرس چندین فایل و داریکتوری را بدهیم.
  2. یک فایل آرشیو ایجاد و همزمان خروجی را برای bzip2 ارسال کنیم :
    tar cvf padmins.tar file1.txt file2.txt test/ | bzip2
  3. ساده ترین روش با استفاده از دستور tar در یک مرحله :
    tar cvfj padmins.tar.bz2 file1.txt file2.txt test/


نکته :
برای اطمینان از اینکه فایل فشرده شده سالم باشد , این دستور را اجرا می کنیم :
bzip2 -tv padmins.tar.bz2


باز کردن فایل های فشرده bz2 یا tar.bz2 :


فایل های فشرده شده توسط bzip2 را به 2 طریق می توان از حالت فشرده خارج کرد :

1-استفاده از دستور bzip2 -d

PersianAdmins:~# ls
file1.txt.gz
PersianAdmins:~# bzip2 -d file1.txt.gz
PersianAdmins:~# ls
file1.txt
PersianAdmins:~#

2-استفاده از ابزار bunzip2

PersianAdmins:~# ls
file1.txt.gz
PersianAdmins:~# bunzip2 file1.txt.gz
PersianAdmins:~# ls
file1.txt
PersianAdmins:~#

برای اینکه فایل های فشرده توسط tar و bzip2 را ازحالت فشرده خارج کنیم 3 راه پیش رو داریم :

  1. در دو مرحله , ابتدا فایل را از حالت فشرده خارج کنیم و سپس از حالت آرشیو
    bzip2 -d padmins.tar.gz
    tar xvf padmins.tar
    or
    bunzip2 padmins.tar.gz
    tar xvf padmins.tar
  2. هم زمان که با bzip2 از حالت فشرده خارج می کنیم , خروجی را به tar ارسال می کنیم :
    bzip2 -dc tar xvf padmins.tar.gz | tar -x
  3. ساده ترین و بهترین روش در یک مرحله و با دستور tar :
    tar xvfj padmins.tar.gz

نکته :
وقتی که از دستور tar استفاده می کنیم برای آنکه فایل در محلی دیگر از حالت فشرده خارج شود بدین ترتیب می توان عمل کرد :
tar xvfz padmins.tar.gz -C /path/to/extract/

با استفاده از tar و گزینه u- می توان فایل آرشیو را بروز کرد ولی این کار برای فایل های آرشیوی فشرده شده قابل انجام نیست.

نکته مهم :

سطوح مختلفی برای فشرده سازی وجود دارد , این سطوح با اعداد 0 الی 9 نشان داده می شوند.هر چه اعداد بزرگتر می شود , فشرده سازی بیشتری صورت می گیرد.در سطح 0 هیچ گونه فشرده سازی صورت نمی گیرد و همانند tar عمل می کند.با بالاتر رفتن سطح فشرده سازی میزان استفاده از منابع سیستم بیشتر شده و همچنین زمان آن هم بالاتر می رود.
سطح فشرده سازی پیش فرض 6 می باشد که ما می توانیم بر حسب نیاز این سطوح را تغییر دهیم , کافیست در زمان استفاده از دستورات فشرده سازی مثلا برای استفاده از سطح 8 گزینه 8- را اضافه کنید.
+ نوشته شده توسط وحید قاسمی در پنجشنبه بیست و دوم دی ۱۳۹۰ و ساعت 12:2 |

برای راه اندازی nat این مراحل را طی میکنیم
1)فعال کردن ip_forward
این command رو بزنید

cat /proc/sys/net/ipv4/ip_forward

باید جواب 1 باشه اگه نبود اینو بزنید


echo 1 > /proc/sys/net/ipv4/ip_forward

 

2)
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

جای eth0 باید اینترفیسی که به اینترنت وصل هست باشه که اگه dialup هست ppp0 میشه


یا

iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE

که به جای 192.168.10.0/24 رنج ip های خودتون رو بنویسید

 

خوب تا اینجا کار تمومه اگه firewall نداشته باشیم در غیر اینصورت باید
3)

iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

 

(فرض بر اینه که eth0 به اینترنت وصله و eth1 به شبکه داخلیمون)
این دو command رو اجرا میکنیم

 

4)حالا برای اینکه بعد از reboat کردن تنظیماتاز بین نرود , دستورات بالا را در فایل etc/rc.local/ می نویسیم.

 

commandهای کمکی

iptables -L -t nat
iptables -L INPUT
iptables -L OUTPUT
iptables -L FORWARD
iptables -t nat -L -n -v -x

+ نوشته شده توسط وحید قاسمی در پنجشنبه بیست و دوم دی ۱۳۹۰ و ساعت 11:59 |
SNAT=Source Address Transtlation
DNAT=Destination Address Transtlation
راه اندازی SNAT با iptables

SNAT یکی از پرکاربردترین انواع nat با iptables بدلیل نوع توپولوژی مورد استفاده میباشد.
برای نمونه سناریو زیر را مورد بررسی قرار می دهیم :
سیستم ها با رنج آدرس 192.168.1.0/24 در دفتر ما واقع شده اند و شبکه محلی و خصوصی در این سناریو به حساب می آیند .یک ارتباط ethernet با تامین کننده اینترنت با IP آدرس 30/1.2.3.1 بر روی روتر لینوکس مورد نظر و Gateway پیش فرض 1.2.3.2 برقرار شده است.
همه سیستم های شبکه محلی 192.168.1.0/24 با دروازه پیش فرض 192.168.1.1 تنظیم شده اند.
روتر لینوکس دارای 2 کارت شبکه می باشد :

1 - Eth0 با IP آدرس 192.168.1.1 و Netmask برابر با 255.255.255.0 به یک سوییچ که با مابقی سیستم ها در شبکه 192.168.1.0/24 ارتباط دارد ویک شبکه محلی را تشکیل می دهند متصل می باشد.
2 - Eth1 با IP آدرس 1.2.3.1 و Netmask برابر با 255.255.255.252 به تامین کننده اینترنت متصل می باشد.

می توان فقط با یک دستور SNAT را برای همه سیستم ها در 192.168.1.0/24 فعال کرد :
iptables -t nat - A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 1.2.3.1

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

اگر IP آدرس Eth1 بصورت پویا اختصاص داده می شود و یا اگر از مودم Dial-UP بجای کارت شبکه استفاده می کنید از ویژگی MASQUERADE به شکل زیر می توان بهره برد :

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE

استفاده از MASQUERADE اثری مشابه SNAT دارد و سیستم ها به اینترنت دسترسی خواهند داشت ، پس کاربرد MASQUERADE بیشتر برای زمانهایی است که آدرس ثابت از سوی تامین کننده اینترنت اختصاص داده نمی شود.

تصور کنید تامین کننده اینترنت کلیه پورت های بالاتر از 1024 را فیلتر کرده است ، در این صورت برای جلوگیری از بروز مشکل نیاز است علاوه بر تغییر IP های منبع پورت های آنان را نیز تغییر دهیم که به شکل زیر قایل اجرا می باشد :

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 1.2.3.1:1-1024

یکی از کابران طرفدار IRC در تماسی با شما اعلام می کند که نمی تواند به هیچ یک از شبکه های IRC متصل شود.این بدان معنی است که ماژول ip_conntrack_irc در کرنل بارگزاری نشده است ، پس برای حل این مشکل برای کاربران IRC و FTP بدین ترتیب عمل می کنیم :
modprobe ip_conntrack_irc
modprobe ip_conntrack_ftp

برای مشاهده ماژول های بارگزاری شده مربوط بهNAT از دستور زیر استفاده می کنیم :
lsmod | grep nat

بعد از چند هفته کاربران دیگر هم شروع به استفاده از IRC می کنند و نتیجه آن شکایت کاربران از عدم اتصال به شبکه IRC خواهد بود و دلیل آن اینست که IRC فقط به تعداد محدودی ارتباط از یک IP اجازه اتصال می دهد. پس برای حل این مشکل باید IP های مورد استفاده در شبکه اینترنت برای اتصال به IRC را افزایش دهیم.طبق محاسبات استفاده از 32 آدرس IP برای حل این مشکل کفایت می کند ، پس با تامین کننده اینترنت تماس گرفته و درخواست تعداد بیشتری IP را به آنها می دهیم و در نهایت محدوده 27/1.2.4.0 را به ما اختصاص می دهند.حال باید قوانین قبلی را بدین صورت تغییر دهیم :

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 1.2.4.0-1.2.4.32
(لازم به یادآوری است که برای حذف قانون قبلی می توان از -D بجای -A استفاده کرد و یا برای حذف کلیه قانون های مربوط به نت از دستور iptables -t nat -F بهره جست.)
بدین ترتیب شکایت کاربران قطع می شود ولی ملاحظه می کنیم که آدرس معتبر ابتدایی ما در این محدوده وجود ندارد، پس می توانیم برای افزایش تعداد آدرس ها ، آن را هم به این محدوده اضافه کنیم :

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 1.2.4.0-1.2.4.32 --to 1.2.3.1

یکی از کاربران در یک شبکه irc اختلال ایجاد میکند در حالیکه IP کاربر مورد نظر به 1.2.4.15 ترجمه شده بوده است ، در نتیجه این IP به لیست فیلترینگ اضافه شده و ما نیاز داریم این آدرس را از محدوده NAT خارج کنیم :

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 1.2.4.0-1.2.4.14 --to 1.2.4.16-1.2.4.32 --to 1.2.3.1

یکی از کاربران با IP آدرس 192.168.1.19 شکایت می کند که قادر نیست به هیچ کدام از سیستم ها با آدرس IP های بالاتر از 192.168.1.32 دسترسی داشته باشد.این امکان وجود دارد که Netmask کاربر مورد نظر 255.255.255.227 باشد ، پس همه بسته های ارسالی به IP های محدوده /24192.168.1.0 که در محدوده 192.168.1.0/27 واقع نشده اند از طریق روتر لینوکسی عبور می کنند و آدرس آنها ترجمه می شود. برای حل این مشکل 2 راه حل وحود دارد :
اول اینکه SNAT برای 192.168.1.0/24زمانیکه مقصد سیستم دیگری در محدوده خودش می باشد صورت نگیرد :
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d ! 192.168.1.0/24 -j SNAT --to 1.2.4.0-1.2.4.30 --to 1.2.3.1

دومین راه این است که SNAT فقط برای بسته های خروجی از Eth1 صورت پذیرد :

iptables -t nat -A POSTROUTNG -s 192.168.1.0/24 -o eth1 -j SNAT --to 1.2.4.0-1.2.4.32 --to 1.2.3.1

فرض کنید بخواهیم به شبکه دیگری در vlan خودمان با محدوده آدرس 24/192.168.2.0 بدون انجام SNAT متصل شویم :

iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -d 24/192.168.2.0 -j ACCEPT

این دستور قانون فوق را قبل از قوانین نت قرار میدهد بنابراین اگر بسته ای از 192.168.1.0/24 برای 24/192.168.2.0 فرستاده شود ، قانون فوق اعمال شده و زنجیره آنالیز بیشتر را ادامه نمی دهد و SNAT صورت نمی پذیرد.

تاج ملک ملوک ، منشی شرکت ، به درست کرن چای عالی معروف هست ولی از وقتی عاشق IRC شده دیگه خبری از چای و … نیست.مدیر بدلیل اعتیاد به چای تاج ملک ملوک نمی خواهد او را اخراج کند(شاید هم علت دیگری داشته باشد!!). پس به سراغ شما آمده و درخواست حل مشکل را می کند.اکنون چند راه حل پیش رو داریم :

از بین بردن بسته هایی از کامپیوتر تاج ملک ملوک (192.168.1.31) که سعی در دسترسی به پورت های 6666 تا 6669 در زنجیره POSTROUTING را دارند:

iptables -t nat -I POSTROUTING -s 192.168.1.31 -p tcp -dport 6666:6669 -j DROP
یا از مدیر لیست کارهایی که می خواهد تاج ملک ملوک قادر به انجام آنها در اینترنت باشد را تهیه می کنیم که برای مثال فقط دسترسی به سایت های اینترنتی مد نظر اوست :

iptables -t nat -I POSTROUTING -s 192.168.1.31 -p tcp -dport ! 80 -j DROP

این قانون دسترسی تاج ملک ملوک تحت پروتکل TCP را فقط برای مشاهده وب باز می گذارد ولی همچنان به سرویس های تحت پروتکل UDP نظیر DNS دسترسی خواهد داشت.

راه اندازی DNAT با iptables :


برای بررسی DNAT همچنان از سناریو در ابتدا معرفی شده پیروی می کنیم.
مدیر شرکت در تماسی خواهان استفاده دسترسی از خانه به سیستمش در دفتر شرکت می شود ، پر واشح است که با تنظیمات فعلی این کار شدنی نیست زیرا سیستم مورد نظر در حال حاظر دارای آدرس غیر معتبر 192.168.1.50 می باشد که در اینترنت قابل مسیریابی نیست.
اگر از آدرس های معتبری که تامین کننده اینترنت به ما داده یکی را به سیستم مدیر اختصاص دهیم ، یکی از IP هایی که همه سیستم ها بصورت مشترک برای دسترسی به اینترنت از آن استفاده می کنند را از دست می دهیم .
راه حل در ترجمه یک IP معتبر( 1.2.4.1 ) به IP غیر معتبر ( 192.168.1.50 ) سیستم مدیر می باشد.
البته در اصطلاح به این عمل DNAT گفته می شود :

iptables -t nat -A PREROUTING -d 1.2.4.1 -j DNAT --to 192.168.1.50

در مرحله بعد ، پس از تماس با مدیر و پاچه خواری حسابی اعلام می کنیم که برای دسترسی به سیستم در شرکت باید از IP آدرس 1.2.4.1 استفاده کنند.

سرور حسابداری شرکت تحت وب و دارای IP آدرس 192.168.1.100 می باشد.
مسئول بخش مالی طی نامه ای خواهان امکان دسترسی به برنامه جهت اضافه کاری در زمانهایی که در شرکت حضور ندارد می باشد ، از آنجایی که دسترسی به برنامه برای عموم خلاف سیاست امنیتی شرکت می باشد ، آدرس معتبری ( 1.2.5.17 ) که فرد مورد نظر از طریق آن خواهان اتصال به برنامه هست را گرفته و بدین شیوه عمل می کنیم :

iptables -t nat -A PREROUTING -s 1.2.5.17 -d 1.2.4.2 -p tcp -dport 80 -j DNAT --to 192.168.1.100
مسئول محترم مالی برای دسترسی به برنامه باید از آدرس 1.2.4.2 استفاده کند.

می خواهیم خارج از شرکت بواسطه ssh به سرور متصل شویم ، ولی برای بالا بردن امنیت سرور مثلا برای مواقعی که با پیدا شدن یک باگ در ssh سرور ، ممکن است امنیت آن به خطر بیافتد پورت دیگری را جز 22 به آن اختصاص می دهیم :

iptables -t nat -A PREROUTING -d 1.2.4.2 -p tcp -dport 65521 -j DNAT --to 192.168.1.100:22

با این روش اگر در شرکت حضور نداشته باشیم و نیاز به ارتباط با سرور داریم ، یک ارتباط ssh به 1.2.4.2 با پورت 65521 برقرار می کنیم.

فرض کنید یک وب سایت را با IP آدرس 192.168.1.200 هاست کرده اید. وب سایت مورد نظر www.PersianAdmins.com می باشد و این دامنه درسرور DNS با آدرس 1.2.4.5 تنظیم شده است. برای در دسترس بودن آن از خارج از شبکه محلی به طریق زیر عمل می کنیم :

iptables -t nat -A PREROUTING -d 1.2.4.5 -p tcp -dport 80 -j DNAT --to 192.168.1.200


استفاده از اسکرپیت :


برای سناریو بالا میتوان از اسکریپت زیر استفاده کرد که با نیازهای مختلف قابل هماهنگی و تغییرات لازم را انجام داد :

#!/bin/bash
IP=/sbin/iptables
#… some packet filtering rules
### NAT SECTION
#first of all، we want to flush the NAT table
$IP -t nat -F
############ SNAT PART
#Taj malek molok's special rule.
#Don't SNAT any TCP connections from her computer except www and all #udp connections except DNS
$IP -t nat -A POSTROUTING -s 192.168.1.31 -p tcp -dport ! 80 -j DROP
$IP -t nat -A POSTROUTING -s 192.168.1.31 -p udp -dport ! 53 -j DROP
#Don't SNAT anything from 192.168.1.0/24 to 192.168.2.0/24
$IP -t nat -A POSTROUTING -s 192.168.1.0/24 -d 24/192.168.2.0 -j ACCEPT
#The boss needs DNAT but we should also SNAT her IP address to 1.2.4.1
$IP -t nat -A POSTROUTING -s 192.168.1.50 -j SNAT --to 1.2.4.1
#Snat Everyone
$IP -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to 1.2.4.0-1.2.4.32 --to 1.2.3.1
############ DNAT PART
#Dnat the boss so he can access her PC from home
$IP -t nat -A PREROUTING -d 1.2.4.1 -j DNAT --to 192.168.1.50
#DNAT the intranet server for the guy in the financial department
$IP -t nat -A PREROUTING -s 1.2.5.17 -d 1.2.4.2 -p tcp -dport 80 -j DNAT --to 192.168.1.100
#DNAT for us to ssh into the intranet server
$IP -t nat -A PREROUTING -d 1.2.4.2 -p tcp -dport 65521 -j DNAT --to 192.168.1.100:22
#DNAT the web server
$IP -t nat -A PREROUTING -d 1.2.4.5 -p tcp -dport 80 -j DNAT --to 192.168.1.200
### End of NAT section

بررسی تنظیمات :
زنجیره های جدول nat را مورد بررسی قرار می دهیم :

root@router:~# iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT all — 0.0.0.0/01.2.4.1 to:192.168.1.50
DNAT tcp — 1.2.5.17 1.2.4.2 tcp dpt:80 to:192.168.1.100
DNAT tcp — 0.0.0.0/01.2.4.2 tcp dpt:65521 to:192.168.1.100:22
DNAT tcp — 0.0.0.0/01.2.4.5 tcp dpt:80 to:192.168.1.200
ACCEPT tcp — 192.168.1.50 0.0.0.0/0tcp dpt:80
REDIRECT tcp — 192.168.1.0/24 0.0.0.0/0tcp dpt:80 redir ports 3128
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
DROP tcp — 192.168.1.31 0.0.0.0/0 tcp dpt:!80
DROP udp — 192.168.1.31 0.0.0.0/0 tcp dpt:!53
ACCEPT all — 192.168.1.0/24 192.168.2.0/24
SNAT all — 192.168.1.50 0.0.0.0/0 to:1.2.4.1
SNAT all — 192.168.1.0/24 0.0.0.0/0 to:1.2.4.0-1.2.4.32 1.2.3.1
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
root@router:~#

نکته مهم :
اجرای دستورات بالا بدون فعال کرده ویژگی IP forwarding ثمری نخواهد داشت ، به عبارت دیگر بدون فعال کردن این ویژگی هیچ کدام از دستورات ذکر شده در بالا کاری صورت نمی دهند.
برای فعال کردن ip forwarding بدین شکل عمل می کنیم :
echo 1 > /proc/sys/net/ipv4/ip_forward
برای اطمینان از اجرای درست دستور فوق مقدار ip forwarding را مورد بررسی قرار می دهیم که می بایست برابر با 1 باشد :
cat /proc/sys/net/ipv4/ip_forward

برای آنکه نخواهید پس از هر بار روشن شدن سیستم دستورات را اجرا کنید ، آنها را در فایل etc/rc.local/ قرار دهید.
 
+ نوشته شده توسط وحید قاسمی در پنجشنبه بیست و دوم دی ۱۳۹۰ و ساعت 11:59 |
 

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

1- تمام ابعاد و فرآیند بازار را که بتوان با اینترنت و تکنولوژی web انجام داد، تجارت الکترونیکی می گویند1.

2- بطور کلی واژه تجارت الکترونیک اشاره به معاملات الکترونیکی می نماید که از طریق شبکه های ارتباطی انجام می پذیرد. ابتدا، خریدار یا مصرف کننده به جستجوی یک مغازه مجازی از طریق اینترنت می پردازد و کالای را از طریق web یا پست الکترونیکی سفارش می دهد. نهایتاً کالا را تحویل می گیرد2.

3- تجارت الکترونیکی یعنی انجام مبادلات تجاری در قالب الکترونیکی3

4- کاربرد تکنولوژی اطلاعات در تجارت4

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

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

تفاوت مبادله الکترونیکی داده ها با تجارت الکترونیک

در موارد زیادی دیده شده که مبادله الکترونیکی داده ها را مترادف با تجارت الکترونیک دانسته و هر کدام را در جای دیگری بکار می برند. این دو تکنولوژی اصلاً مشابه هم نبوده و کاملاً مجزا می باشد. البته می توان اینطور گفت که تجارت الکترونیک مکمل مبادله الکترونیکی داده هاست.

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

 

1- دکتر محمود زرگر، مدلهای راهبردی و راهکارهای تجارت در اینترنت، انتشارات بهینه، 1380.

2- مهندس محمد حسن نیکبخش تهرانی و مهندس مهدی آذر صابری، آشنایی با تجارت الکترونیک و زیر ساختهای آن، انستیتو ایز ایران، 1380.

3- دکتر علی صنایعی، تجارت الکترونیک در هزاره سوم، انتشارات جهاد دانشگاهی واحد اصفحان، 1381.

4- حسین احمدی وم. ویرجینیاری، تجارت الکترونیک، مرکز آموزش و تحقیقات صنعتی ایران، 1381.

5- مهدی علیپور حافظی، تجارت الکترونیکی در مراکز اطلاع رسانی، سخنرانی، همایش جهانی شهرهای الکترونیکی و اینترنتی  جزیره کیش، 11-13 اریبهشت، 1380

6- مژده قزل ایاغ، تجارت الکترونیکی مبتنی بر اینترنت، همایش جهانی شهرهای الکترونیکی و اینترنتی، 1380.

7- دکتر وحید رضا میرابی و دکتر سهیل سرو سعیدی، مدیریت بازاریابی بین المللی در هزاره سوم، انتشارات اندیشه های گوهر بار، 1382.

اقتباس از کتاب تجارت الکترونیک

نوشته : دکتر سهيل سرمدسعيدی و دکتر وحيد رضا ميرابي

+ نوشته شده توسط وحید قاسمی در پنجشنبه بیست و دوم دی ۱۳۹۰ و ساعت 11:54 |
 

فکر میکنید چرا گاهی برخی از دخترهاوپسرهای نوجوان و جوان باشوق و ذوق وارد روابطی با یکدیگر میشوند که ازهمان ابتدا افراد بزرگسال، آن را مخرب و محکوم به شکست میدانند؟به نظر شما چه عواملی در شکل گیری این روابط مؤثرند؟

علل و عوامل گوناگونی در به وجود آمدن برخوردها و روابط نامطلوب و نادرست در بین دختران و پسران نقش دارند که میتوان آنهارا به طور کلی به 3دسته تقسیم نمود:

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

خانواده و شیوه های برخورد با نوجوان: مهمترین عامل، خانواده است که اولاً باید الگوی درستی از روابط اجتماعی را به فرزندش نشان دهد و ثانیاً به او این الگو را بیاموزد و منتقل کند.

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

ب-کنترل بیرونی یا درونی: حتماً این ضرب المثل را شنیدید که دختر و پسر مثل پنبه و آتش هستند و لذا باید از هم دور باشند!!! اگر سطح ارزش نوجوانتان را تاحد یک شئ مثل پنبه و آتش پایین آوردید درواقع او را بی اراده جلوه داده اید پس از چنین فردی انتظار نداشته باشید که بتواند تقوای درون داشته باشد زیرا بی اراده است و هرآن ممکن است دور از چشم شما خطا کند!یادتان باشد این شما نیستید که فرزندتان را متقی میکنید بلکه خود اوست که ایمان آورده و تقوا میکند؛ شما تنها به او آگاهی میدهید، ارزشش را به او یادآوری میکنید و اراده اش را تقویت می نمایید. امام هادی(ع) میفرمایند:«کسی که خودش را محترم میشمارد با گناه آن را خوار نمیکند.»

ج- آیا با جوانتان در مورد واقعیت های جنس مخالف صحبت کرده اید؟ ممکن است فرزند شما از جنس مخالف تصوری ایده آل و الهه گونه داشته باشد و یا برعکس او را تا حد یک حیوان تنزل دهد.هیچ کدام ازین تصورات درست نیست.به فرزندتان بیاموزید که جنس مخالف او نیز یک انسان است با نیازها و افکار و احساسات متفاوت و مخصوص خود.(این به معنای طرح مسائل جنسی به صورت آزاد و با جزئیات نیست بلکه باید باتوجه به سن و رشد جسمی و فکری او باشد)

د- القای خودنمایی از طرف والدین: گاهی والدین بجای هدایت جوانشان درراه شکوفایی استعدادها و توانایی هایش، او را تشویق به عریانی و تلاش در جهت جلب توجه جنس مخالف میکنند مثلاً با این توجیه که : تلاش کن شوهری پیدا کنی!!!!

ه- سختگیری و خشونت نسبت به نوجوان: سنین نوجوانی آغاز استقلال فکری و شخصیتی نوجوان است.اگر به او اجازه پرورش این استقلال داده نشود، یا تبدیل به فردی میشود که در روابط اجتماعی خود به دیگران متکی است و استقلال ندارد(شخصیت اتکایی)و یا فردی میشود که کلاً نمیتواند با دیگران ارتباط عمیقی داشته باشد و حتی بعد از ازدواج نیز نمیتواند با همسرش رابطه صمیمی برقرار کند(شخصیت منزوی).

و- سختگیری درمورد ازدواج:ز- آیا مطمئنید که نوجوانتان تمام دغدغه ها و تعارضاتش را با شما مطرح میکند؟وقتی در خانه گوشی نباشد او در بیرون به دنبالش خواهد گشت!

ح- عدم آموزش حدود شرعی درمورد محرم و نامحرم

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

شیوه برخورد جامعه با نوجوان: نحوه برخورد عاقلانه افراد اجتماع در پیشگیری از بسیاری آسیبها مؤثر است.آنچه که در اسلام تحت عنوان أمربه معروف و نهی ازمنکر بیان شده اشاره به همین موضوع دارد.ازجمله عوامل زمینه ساز اجتماعی در ایجاد روابط نامطلوب دختروپسر به این قرارند:

الف: ازکجا مطمئنی نتیجه گیریت درست است؟ گاهی ناظمی دفترچه های بچه ها را فقط به این دلیل که عنوان«دفترچه خاطرات» دارند ازآنها میگیرد! یا رفتاری ساده را به صورت افراطی تفسیرمیکند.در حالیکه در اسلام هم سوءظن داشتن (..إن بعض الظن إثم:بسیاری از گمانها گناه است! )و هم تجسس در کارهای دیگران از گناهان کبیره است ) و لا تجسسوا...)

دوستی خیابانیب: چرا فکر میکنی کوچکتر ازتو محترم نیست؟ انسان جایز الخطاست!در دین اسلام هیچ کس حق ندارد جوانی را به صرف گناه یا اشتباهی به دید انحرافی نگریسته و آنرا به رخ او بکشد.امام علی(ع)خطاب به مالک اشتر میفرمایند:اگرشب هنگام کسی را در حال گناه دیدی صبحگاه اورا به همان چشم نبین!شایدسحرگاه توبه کرده باشد و تو نفهمیده باشی!!! برای نوجوان ارزش قائل شوید.ذهن پویا و روح جستجوگر او را هدایت کنید نه اینکه با تحقیر و توبیخ اورا مجبور به اطاعت کنید! چگونه؟ به او مسئولیت بدهید،درمقابل خطایش با بزرگواری اصلاح کنید،اورا وارد گروههایی مثل هیئتهای مذهبی و اجتماعی کنید تا فرآیند کسب استقلال،هویت اجتماعی،رشد روانشناختی و...در مسیری درست و مناسب پرورش یابد.

نتیجه گیری:

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

اما ما ادعا نمیکنیم که تمام روابط بین این 2جنس نادرست است! در قسمت بعد به ارائه و تشریح روابط درست بین دختر و پسر خواهیم پرداخت انشاءالله.

بخش خانواده ایرانی تبیان

منابع:

قرآن کریم

نهج البلاغه

تحلیلی تربیتی بر روابط دختر و پسر-علی اصغر احمدی

نشریه پیوند- تحت نظر آموزش و پرورش

+ نوشته شده توسط وحید قاسمی در پنجشنبه بیست و دوم دی ۱۳۹۰ و ساعت 11:47 |