نمایش نتایج: از شماره 1 تا 7 از مجموع 7
سپاس ها 4سپاس
  • 2 توسط cy6er
  • 2 توسط mohsenhvac

موضوع: share نشدن ایمنترنت در centos

  
  1. #1
    نام حقيقي: aby

    تازه وارد
    تاریخ عضویت
    Jul 2013
    محل سکونت
    tehran
    نوشته
    5
    سپاسگزاری شده
    0
    سپاسگزاری کرده
    3

    share نشدن ایمنترنت در centos

    سلام .
    من dns server م تو لوکال به خوبی و درست کار می کنه . اما زمانی که تنظیمات لازم برای nat و masqu رو انجام می دم . اینترنت share نمیشه . احساس می کنم یه جای کار تو dns server می لنگه .
    وقتی از تو کلاینت دومین یا هاست رو پینگ می کنم اول شماره ip سرور نوشته میشه بعد یه مکث کوتاه و بعد دریافت بسته ها صورت می گیره . اما وقتی از کلاینت دامنه خارجی از سرور رو پینگ می گیرم . اول یه خط ip اون سرور نوشته میشه . بعد دیگه هیچ کاری نمی کنه . تامن کنترل و سی رو بگیرم و بگه all packet loss .
    به نظر شما مشکل از چی می تونه باشه ؟
    چطوری dns سرور رو برای dns های خارجی چک کنم ؟
    تنطیمات رو هم ضمیمه می کنم .
    config.zip - 4 KB



    موضوعات مشابه:
    ویرایش توسط aby66 : 2013-07-29 در ساعت 03:11 PM

  2. #2
    نام حقيقي: cy6er

    خواننده شناسه تصویری cy6er
    تاریخ عضویت
    Feb 2012
    محل سکونت
    نامشخص
    نوشته
    172
    سپاسگزاری شده
    188
    سپاسگزاری کرده
    9
    alisc و aby66 سپاسگزاری کرده‌اند.

  3. #3
    نام حقيقي: aby

    تازه وارد
    تاریخ عضویت
    Jul 2013
    محل سکونت
    tehran
    نوشته
    5
    سپاسگزاری شده
    0
    سپاسگزاری کرده
    3
    مرسی از توجهت . اما با لینک های زیر که یه جورایی کامل تر هم هست هم کار نکرد .
    How to share Internet connectivity by enabling IP Forwarding in CentOS | Nesociety
    Internet Connection Sharing using iptables



  4. #4
    نام حقيقي: aby

    تازه وارد
    تاریخ عضویت
    Jul 2013
    محل سکونت
    tehran
    نوشته
    5
    سپاسگزاری شده
    0
    سپاسگزاری کرده
    3
    یه سوال دیگه :
    کلا اگه کسی یه مشکلی تو لینوکس داشته باشه تو ایران باید چه کار کنه ؟



  5. #5
    نام حقيقي: محسن نیک قلب رودسری

    عضو عادی شناسه تصویری mohsenhvac
    تاریخ عضویت
    Sep 2008
    محل سکونت
    گیلان- رودسر
    نوشته
    2,203
    سپاسگزاری شده
    1944
    سپاسگزاری کرده
    1310
    اینقدر باید تلاش کنی تا خودت به نتیجه برسی در دو کلمه : مطالعه+اجرا
    این رو بخون کارت رو راه میندازه :
    هنمای جامع راه اندازی NAT در لینوکس

    رضا بهروزی لینوکس - لینوکس

    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 فعال کرد :
    PersianAdmins:~#iptables -t nat - A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 1.2.3.1
    با اجرای دستور بالا همه سیستم ها در شبکه محلی به اینترنت دسترسی خواهند داشت.

    اگر IP آدرس Eth1 بصورت پویا اختصاص داده می شود و یا اگر از مودم Dial-UP بجای کارت شبکه استفاده می کنید از ویژگی MASQUERADE به شکل زیر می توان بهره برد :
    PersianAdmins:~#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
    استفاده از MASQUERADE اثری مشابه SNAT دارد و سیستم ها به اینترنت دسترسی خواهند داشت ، پس کاربرد MASQUERADE بیشتر برای زمانهایی است که آدرس ثابت از سوی تامین کننده اینترنت اختصاص داده نمی شود.

    تصور کنید تامین کننده اینترنت کلیه پورت های بالاتر از 1024 را فیلتر کرده است ، در این صورت برای جلوگیری از بروز مشکل نیاز است علاوه بر تغییر IP های منبع پورت های آنان را نیز تغییر دهیم که به شکل زیر قایل اجرا می باشد :
    PersianAdmins:~#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 بدین ترتیب عمل می کنیم :
    PersianAdmins:~#modprobe ip_conntrack_irc
    PersianAdmins:~#modprobe ip_conntrack_ftp
    برای مشاهده ماژول های بارگزاری شده مربوط بهNAT از دستور زیر استفاده می کنیم :
    PersianAdmins:~#lsmod | grep nat
    بعد از چند هفته کاربران دیگر هم شروع به استفاده از IRC می کنند و نتیجه آن شکایت کاربران از عدم اتصال به شبکه IRC خواهد بود و دلیل آن اینست که IRC فقط به تعداد محدودی ارتباط از یک IP اجازه اتصال می دهد. پس برای حل این مشکل باید IP های مورد استفاده در شبکه اینترنت برای اتصال به IRC را افزایش دهیم.طبق محاسبات استفاده از 32 آدرس IP برای حل این مشکل کفایت می کند ، پس با تامین کننده اینترنت تماس گرفته و درخواست تعداد بیشتری IP را به آنها می دهیم و در نهایت محدوده 27/1.2.4.0 را به ما اختصاص می دهند.حال باید قوانین قبلی را بدین صورت تغییر دهیم :
    PersianAdmins:~#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 بهره جست.)
    بدین ترتیب شکایت کاربران قطع می شود ولی ملاحظه می کنیم که آدرس معتبر ابتدایی ما در این محدوده وجود ندارد، پس می توانیم برای افزایش تعداد آدرس ها ، آن را هم به این محدوده اضافه کنیم :
    PersianAdmins:~#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 خارج کنیم :
    PersianAdmins:~#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زمانیکه مقصد سیستم دیگری در محدوده خودش می باشد صورت نگیرد :
    PersianAdmins:~#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 صورت پذیرد :
    PersianAdmins:~#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 متصل شویم :
    PersianAdmins:~#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 را دارند:
    PersianAdmins:~#iptables -t nat -I POSTROUTING -s 192.168.1.31 -p tcp -dport 6666:6669 -j DROP
    یا از مدیر لیست کارهایی که می خواهد تاج ملک ملوک قادر به انجام آنها در اینترنت باشد را تهیه می کنیم که برای مثال فقط دسترسی به سایت های اینترنتی مد نظر اوست :


    PersianAdmins:~#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 گفته می شود :
    PersianAdmins:~#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 ) که فرد مورد نظر از طریق آن خواهان اتصال به برنامه هست را گرفته و بدین شیوه عمل می کنیم :
    PersianAdmins:~#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 به آن اختصاص می دهیم :
    PersianAdmins:~#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 هاست کرده اید. وب سایت مورد نظر گروه فناوری اطلاعات پرشین ادمینز می باشد و این دامنه درسرور DNS با آدرس 1.2.4.5 تنظیم شده است. برای در دسترس بودن آن از خارج از شبکه محلی به طریق زیر عمل می کنیم :
    PersianAdmins:~#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 بدین شکل عمل می کنیم :
    PersianAdmins:~#echo 1 > /proc/sys/net/ipv4/ip_forward
    برای اطمینان از اجرای درست دستور فوق مقدار ip forwarding را مورد بررسی قرار می دهیم که می بایست برابر با 1 باشد :
    PersianAdmins:~#cat /proc/sys/net/ipv4/ip_forward
    برای آنکه نخواهید پس از هر بار روشن شدن سیستم دستورات را اجرا کنید ، آنها را در فایل etc/rc.local/ قرار دهید.

    نوسنده : Lucian Gheorghe
    ترجمه و تالیف : رضا بهروزی


    - - - Updated - - -

    ****حواستون باشه تا ipforwarding انجام نشه ثمری نداره***


    f14f21 و aby66 سپاسگزاری کرده‌اند.

  6. #6
    نام حقيقي: aby

    تازه وارد
    تاریخ عضویت
    Jul 2013
    محل سکونت
    tehran
    نوشته
    5
    سپاسگزاری شده
    0
    سپاسگزاری کرده
    3
    خیلی ممنون . حتما انجام میدم .
    اما در مورد سوال دومی که پرسیدم . یه موقع هست که مطالعه می کنی . پیاده سازی عملی رو هم انجام میدی . به نظر خودت همه چی درسته همه مراحلی که تو کتاب های انگلیسی یا فارسی هست رو هم درست میری و انتظار داری که با توجه به اینکه مو به مو می ری سیستم کار کنه . اما کار نمی کنه . خطا هم نمی ده که بدونی از کجاست . فقط کار نمیکنه . در اینجاست که هیچ کاری از دستت ساخته نیست به جز اینکه فقط به سیستم نگاه کنی و به این ور اون ور چنگ بندازی . چرا که معلوم نیست مشکل از کجاست . کمبود افراد با تجربه هم به توی مشکل موندن کمک می کنه . الان اگه من مشکلم حل نشه با توجه به اینکه 6 یا 7 روش رو رفتم و پاسخ های عین هم گرفتم باید بشینم و نگاش کنم . چون کار دیگه ای ازم ساخته نیست . می دونم یه جا کار می لنگه ولی یه نفر خبره نیست که تنظیمات منو ببینه بگه کجاش داره می لنگه



  7. #7
    نام حقيقي: aby

    تازه وارد
    تاریخ عضویت
    Jul 2013
    محل سکونت
    tehran
    نوشته
    5
    سپاسگزاری شده
    0
    سپاسگزاری کرده
    3
    دوستان من 2 هفته است که دارم کتاب و مقاله و سایت بالا و پایین می کنم . اما :
    همین یک خط منو نجات داد از این گیری که توش مونده بودم :
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
    فقط همین یه خط مشکله منو حل کرد . الان وجه تمایزش رو که می بینم با اونهای دیگه این بود که نگفته از eth 0 بریز رو eth1 و سپس به کلاینت ها . گفته از هر جایی که بود post routnig کن . به همین راحتی یه نفر منو و مغطز منو که درگیر شده بود رو نجات داد .
    یعنی تشکر زبانی از کسی که این مطلب رونوشته و به خصوص کسی که این مطلب رو نشونم داد کافی نیست . حداقل در زمینه لینوکس کافی نیست .
    ای که دستت می رسد کاری بکن . من که خیلی دعات کردن mohsen nikghalb

    - - - Updated - - -

    از ذوق و شوق غلط غلوط فقط نوشتم

    - - - Updated - - -

    دوستان حالا سوال اینجاست که چرا تو حالت های زیر کار نکرد :
    حالت اول کد زیر :
    iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
    فرقش با کدی که کار کرد اینه که به جای نام کارت شبکه آدرس های ip جایگزین شد .
    حالت دوم :
    iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPTiptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE
    که چند تا کار انجام می ده
    حالت آخر که کار کرد :
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
    من متوجه نمیشم که چرا این باید کار کنه و کد اول کار نکنه ؟؟؟؟؟؟



کلمات کلیدی در جستجوها:

تنظیم ip اینترانت centos

مشکل اتصال به ssh بعد از تنظیمات شبکه centos

برچسب برای این موضوع

مجوز های ارسال و ویرایش

  • شما نمی توانید موضوع جدید ارسال کنید
  • شما نمی توانید به پست ها پاسخ دهید
  • شما نمی توانید فایل پیوست ضمیمه کنید
  • شما نمی توانید پست های خود را ویرایش کنید
  •