| pam_ihosts(8) | System Manager's Manual | pam_ihosts(8) |
نام (NAME)
pam_ihosts - ماژول PAM احراز هویت دسترسی میزبانها
خلاصه دستور (SYNOPSIS)
pam_ihosts.so [user=<username>] [syslog] [allow-device=<device>] [allow-mac=<mac address>] [allow-ip=<ip address>] [allow-region=<region>] [region-files=<paths>] [script=<path>]
توضیحات (DESCRIPTION)
ماژول pam_ihosts نشانی IP دوردست کاربر را بررسی میکند تا از ورود کاربرانی که پیشتر اطلاعات اعتبارسنجی صحیح را ارائه دادهاند جلوگیری کرده یا به آنها اجازه ورود دهد.
فایل pam_ihosts.so میتواند از فایلهای «stats» ارائهشده توسط ثبتکنندههای منطقهای اینترنت (RIR) استفاده کند تا ثبتکننده و کشوری را که نشانی IP در آن ثبت شده است جستجو کند، و به این ترتیب شکلی تقریبی از موقعیتیابی جغرافیایی را فراهم آورد.
فایل pam_ihosts.so متغیرهای محیطی زیر را هنگام ورود تنظیم میکند. نشانی IP مبدأ اتصال در "IHOSTS_ADDRESS"، نشانی MAC مبدأ در "IHOSTS_MAC" و اطلاعات منطقه در متغیر محیطی "IHOSTS_REGION" برای استفاده توسط برنامهها پس از ورود به سیستم ذخیره میشود.
هشدار. ماژول pam_ihosts.so بهطور پیشفرض ورود را برای هر کاربری که برای مدیریت آن تعیین شده است رد میکند. باید گزینههایی برای مشخص کردن نشانی MAC، نشانی IP، کد کشور یا منطقه میزبانهایی که مجاز به ورود هستند ارائه شود.
گزینهها (OPTIONS)
گزینههای PAM که میتوانند در فایلهای پیکربندی در /etc/pam.d اعمال شوند به شرح زیر هستند:
- user=[user patterns]
- فهرستی جداشده با کاما از الگوهای fnmatch (به سبک شل) که کاربرانی را مشخص میکند که این قانون برای آنها اعمال میشود. برای تطبیق با همه کاربران، این گزینه را حذف کنید، آن را خالی بگذارید یا صریحاً مقدار آن را روی "user=*" قرار دهید. نویسه «!» در ابتدای الگو امکان معکوسسازی را فراهم میکند؛ بنابراین برای تطبیق با تمام کاربران به جز root از "user=!root" استفاده کنید.
- conf-file=[path]
- مسیری به یک فایل پیکربندی را مشخص میکند که میتواند شامل هر یک از گزینههای pam_ihosts باشد. فایل پیکربندی تنها برای خط جاری در پیکربندی PAM اعمال میشود؛ بنابراین میتوانید چندین ورودی در پیکربندی PAM داشته باشید که تطابقهای مختلف user= و فایلهای پیکربندی متفاوتی دارند.
- syslog
- ثبت رویدادها از طریق پیامهای syslog.
- script=[path]
- اجرای اسکریپت هنگامی که یک اتصال مجاز یا رد میشود. آرگومانهای ارسالی به اسکریپت عبارتند از "ALLOW/DENY" و "User" و "IP" و "Mac Address" و "Device" و "Region". مقدار "Region" در قالب "<registrar>:<countrycode>" خواهد بود، برای مثال "ripencc:GB".
- allow-ip=[ip]
- فهرستی جداشده با کاما از الگوهای fnmatch که نشانیهای IP مجاز برای ورود را تطبیق میدهد.
- allow-hosts=[host]
- فهرستی جداشده با کاما از الگوهایی که نامهای میزبان مجاز برای ورود (جستجوشده از روی نشانی IP) را تطبیق میدهد.
- allow-dyndns=[host]
- فهرستی جداشده با کاما از نامهای میزبان (نه الگوها) که مجاز به ورود هستند (بخش «DYNDNS» را در ادامه ببینید).
- allow-mac=[mac]
- فهرستی جداشده با کاما از الگوهای fnmatch که نشانیهای MAC مجاز برای ورود را تطبیق میدهد.
- allow-dev=[dev]
- فهرستی جداشده با کاما از الگوهای fnmatch که نام دستگاههای شبکهای را که اتصال به آنها وارد میشود تطبیق میدهد. این همان آداپتور شبکه روی دستگاه شما است که اتصال را از میزبان دوردست دریافت میکند.
- allow-region=[region]
- فهرستی جداشده با کاما از الگوهای fnmatch که رشتههای منطقه جستجوشده در فایلهای ثبتکننده IP را تطبیق میدهد. رشتههای منطقه در قالب "<registrar>:<countrycode>" هستند. این گزینه مستلزم آن است که مسیرهای فایلهای منطقه را با گزینه "region-files" مشخص کنید. برای جزئیات بیشتر بخش «فایلهای منطقه (REGION FILES)» را در ادامه ببینید.
- region-files=[paths]
- فهرستی جداشده با کاما از مسیرهای فایلهای حاوی تخصیصهای ثبتکننده IP. هر مسیر میتواند با پیشوند "mmap:" آغاز شود که در این صورت برنامه از یک نگاشت حافظه مشترک (mmap) از فایل استفاده خواهد کرد (بخش «فایلهای نگاشتشده در حافظه (MMAPPED FILES)» را در ادامه ببینید). برای جزئیات بیشتر بخش «فایلهای منطقه (REGION FILES)» را در ادامه ببینید.
- blacklist=[paths]
- فهرستی جداشده با کاما از مسیرهای فایلهای حاوی نشانیهای IP، نشانیهای MAC یا نامهای میزبانی که در لیست سیاه قرار دارند (ورود آنها رد میشود). فایلها باید در هر خط شامل یک مورد (نشانی IP) باشند. هر مسیر میتواند با پیشوند "mmap:" آغاز شود که در این صورت برنامه از نگاشت حافظه مشترک (mmap) از فایل استفاده خواهد کرد (بخش «فایلهای نگاشتشده در حافظه (MMAPPED FILES)» را در ادامه ببینید).
- whitelist=[paths]
- فهرستی جداشده با کاما از مسیرهای فایلهای حاوی نشانیهای IP، نشانیهای MAC یا نامهای میزبانی که در لیست سفید قرار دارند (ورود آنها مجاز است). فایلها باید در هر خط شامل یک مورد (نشانی IP) باشند. هر مسیر میتواند با پیشوند "mmap:" آغاز شود که در این صورت برنامه از نگاشت حافظه مشترک (mmap) از فایل استفاده خواهد کرد (بخش «فایلهای نگاشتشده در حافظه (MMAPPED FILES)» را در ادامه ببینید).
- dnsblacklist=[domains]
- فهرستی جداشده با کاما از دامنهها برای استفاده در جستجوهای لیست سیاه DNS. برای مثال "dnsblacklist=zen.spamhaus.org,bots.abuse.net" بررسی میکند که آیا میزبان در لیستهای سیاه DNS در zen.spamhaus.org یا bots.abuse.net حضور دارد یا خیر. مواردی که یک ورودی منطبق برای آنها بازگردانده شود ورودشان رد (DENIED) میشود. جستجوهای DNS به صورت موازی اجرا نمیشوند بلکه یکی پس از دیگری انجام میگیرند، بنابراین در صورت پرسوجوی لیستهای متعدد، متأسفانه ممکن است فرآیند ورود کند شود.
- dnswhitelist=[domains]
- فهرستی جداشده با کاما از دامنهها برای استفاده در جستجوهای لیست سفید DNS. برای مثال "dnswhitelist=whitelist.spamhaus.org,mylist.local" بررسی میکند که آیا میزبان در لیست سفید DNS در whitelist.spamhaus.org یا mylist.local حضور دارد یا خیر. مواردی که یک ورودی منطبق برای آنها بازگردانده شود ورودشان مجاز (ALLOWED) میشود. جستجوهای DNS به صورت موازی اجرا نمیشوند بلکه یکی پس از دیگری انجام میگیرند، بنابراین در صورت پرسوجوی لیستهای متعدد، متأسفانه ممکن است فرآیند ورود کند شود.
دیاناس پویا (DYNDNS)
نامهای میزبان استفادهشده در نوع قانون "allow-host" بر اساس نشانی IP مبدأ تلاش برای ورود جستجو میشوند. با این حال، در نوع قانون "allow-dyndns" جستجوها در جهت عکس انجام میگیرند. هر نام میزبان فهرستشده در قانون جستجو میشود و بررسی میگردد که آیا همان نشانی IP مربوط به نشانی در حال ورود را دارد یا خیر. این قابلیت برای امکانپذیر ساختن استفاده از سرویسهای DNS پویا (Dynamic DNS) است که به میزبانهایی با نشانی IP متغیر (به دلیل متحرک بودن میزبان یا تخصیص مکرر IP از سوی ISP) اجازه میدهد در برابر یک نام میزبان ارزیابی شوند. معمولاً این میزبانها یک نام میزبان «واقعی» دارند که توسط ISP کنترل میشود و نام DNS پویا یک نام ثانویه است؛ بنابراین جستجوی نام میزبان برای IP، نام میزبان اصلی «واقعی» را بازمیگرداند؛ از این رو این بررسی باید با جستجوی IP برای نام میزبان پویا و تطبیق آن با IP مبدأ ورود انجام شود.
فایلهای منطقه (REGION FILES)
اطلاعات منطقه در فایلهای ارائهشده توسط ثبتکنندههای منطقهای اینترنت (RIR) جستجو میشود. این فایلها از نشانیهای زیر قابل دریافت هستند:
- http://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-latest # Latin America
- http://ftp.ripe.net/ripe/stats/delegated-ripencc-latest # Europe, Russia, Middle East
- http://ftp.arin.net/pub/stats/arin/delegated-arin-extended-latest # North America
- http://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-latest # Africa
- http://ftp.apnic.net/stats/apnic/delegated-apnic-latest # Asia Pacific
لیستهای سیاه و سفید (BLACKLISTS/WHITELISTS)
فایلهای لیست سیاه/لیست سفید حاوی نشانیهای IP، نامهای میزبان یا نشانیهای MAC هستند که ورود آنها رد یا مجاز شده است. در هر خط یک مورد قرار میگیرد. هر سه نوع مورد میتوانند در یک فایل وجود داشته باشند. فایلهای لیست سیاه ابتدا بررسی میشوند و سپس میتوانند با فایلهای لیست سفید لغو شوند. از آنجا که pam_ihosts بهطور پیشفرض ورود را رد میکند، یک فایل لیست سفید میتواند به تنهایی استفاده شود. برای استفاده از فقط یک فایل لیست سیاه، باید "allow-ip=*" و سپس یک فایل لیست سیاه مشخص شود، که در نتیجه همهچیز به جز موارد موجود در فایل لیست سیاه مجاز خواهد بود.
فایلهای نگاشتشده در حافظه (MMAPPED FILES)
مسیرهای فایلهای لیست سیاه، لیست سفید و منطقه میتوانند با پیشوند "mmap:" مشخص شوند. در این حالت pam_ihosts از نگاشت حافظه مشترک فایل استفاده میکند. به شرطی که برنامه دیگری در حال حاضر فایل را در حافظه نگاشت کرده باشد، pam_ihosts مجبور به بارگذاری فایل از دیسک نخواهد بود، زیرا قبلاً به صورت حافظه مشترک در دسترس قرار گرفته است. این امر میتواند عملکرد را برای فایلهای حجیم بهطور چشمگیری بهبود بخشد، هرچند مقداری حافظه مصرف میکند. اگر هیچ برنامه دیگری فایل را نگاشت نکرده باشد، pam_ihosts آن را در حافظه مشترک بارگذاری میکند، اما هزینه بارگذاری از روی دیسک را متحمل خواهد شد. بنابراین، برای بهرهمندی از مزایای این سیستم، باید برنامهای با طول عمر بالا فایلها را در حافظه نگاشتشده نگه دارد.
مثالها (EXAMPLES)
اجازه ورود به کاربر root تنها از محدوده 192.168.0.*:
account required pam_ihosts.so user=root syslog allow-ip=192.168.0.*
برای همه کاربران، اجازه ورود تنها از دو نشانی MAC داده شود:
account required pam_ihosts.so user=* allow-mac=ff:c0:a8:e4:99:31,ff:c0:a8:f9:cc:01
برای همه کاربران به جز root، اجازه ورود تنها از نشانیهای IP واقع در بریتانیای کبیر داده شود:
account required pam_ihosts.so user=!root region-files=/etc/ip-lists/delegated-afrinic-latest,/etc/ip-lists/delegated-lacnic-latest,/etc/ip-lists/delegated-apnic-latest,/etc/ip-lists/delegated-ripencc-latest allow-region=ripencc:GB
برای همه کاربران، اجازه ورود تنها از نشانیهای IP منطقه آسیا و اقیانوسیه داده شود:
account required pam_ihosts.so user=* region-files=/etc/ip-lists/delegated-afrinic-latest,/etc/ip-lists/delegated-lacnic-latest,/etc/ip-lists/delegated-apnic-latest,/etc/ip-lists/delegated-ripencc-latest allow-region=apnic:*
همانند مورد بالا، اما با کارایی بالاتر، جستجوی مناطق تنها در فایل apnic انجام شود:
account required pam_ihosts.so user=* region-files=/etc/ip-lists/delegated-apnic-latest allow-region=apnic:*
برای همه کاربران، اجازه ورود تنها از نشانیهای IP آسیا و اقیانوسیه داده شود و از حافظه اشتراکی mmap برای فایلهای afrinic و lacnic استفاده گردد:
account required pam_ihosts.so user=* region-files=mmap:/etc/ip-lists/delegated-afrinic-latest,mmap:/etc/ip-lists/delegated-lacnic-latest,/etc/ip-lists/delegated-apnic-latest,/etc/ip-lists/delegated-ripencc-latest allow-region=apnic:*
همچنین ببینید (SEE ALSO)
pam.conf(5), pam.d(5), pam(8)
| 2015/05/20 |