.\" .\" ipguard.8 .\" .\" Copyright (c) 2010 SeaD .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\"## $Id: ipguard.8,v 1.15 2010/07/12 03:46:52 sead Exp $ .\" .TH ipguard 8 .SH "نام (NAME)" ipguard \- ابزاری برای محافظت از فضای نشانی‌های IP در شبکه محلی اترنت با جعل ARP .SH "خلاصه دستور (SYNOPSIS)" .B ipguard [\-h] [\-ajgrxziovd] [\-f \fIethers\fP] [\-l \fIlog\fP] [\-p \fIpid\fP] [\-m \fImac\fP] [\-c \fIfilter\fP] [\-u \fIseconds\fP] [\-k \fIseconds\fP] [\-n \fIfakes\fP] [\-t \fImseconds\fP] [\-b \fIbuf\fP] [\-s \fIuser\fP] .SH "توضیحات (DESCRIPTION)" .PP ابزار .B ipguard شبکه را برای یافتن بسته‌های ARP شنود می‌کند. تمام جفت‌های مجاز MAC-IP در پرونده‌ی .B ethers فهرست شده‌اند. اگر بسته‌ای با جفت MAC-IP دریافت کند که در پرونده‌ی .B ethers وجود ندارد، یک پاسخ ARP جعلی با نشانی ساختگیِ پیکربندی‌شده ارسال خواهد کرد. این کار مانع از کارکرد صحیح میزبان غیرمجاز در سگمنت اترنت محلی می‌شود. .SH "گزینه‌ها (OPTIONS)" .TP .B \-f | -e " \fIethers\fP" پرونده‌ی ethers. ساختار پرونده‌ی .B ethers در .B ethers.sample و .BR ethers (5) توضیح داده شده است. مقدار پیش‌فرض: .BR /etc/ethers . .TP .B \-l " \fIlog\fP" پرونده‌ی لاگ (ثبت وقایع). مقدار پیش‌فرض: .IR /var/log/ipguard_.log . .TP .B \-p " \fIpid\fP" پرونده‌ی PID (شناسه فرایند). مقدار پیش‌فرض: .IR /var/run/ipguard_.pid . .TP .B \-m " \fImac\fP" نشانی MAC جعلی. در پاسخ ARP به عنوان نشانی MAC رایانه‌ی خارج از فهرست فرستاده خواهد شد. مقدار پیش‌فرض: .BR de:ad:xx:xx:xx:xx است که در آن .B x یک رقم هگزادسیمال تصادفی می‌باشد. .TP .B \-c " \fIfilter\fP" عبارت فیلتر PCAP. در حالت پیش‌فرض بدون فیلتر است. .TP .B \-u " \fIseconds\fP" بازه زمانی به‌روزرسانی پرونده‌ی ethers. مدت زمان بین بررسی‌های پرونده‌ی .B ethers جهت اعمال تغییرات و پویش مجدد آن. مقدار پیش‌فرض: .B 0 (بدون به‌روزرسانی خودکار). .TP .B \-k " \fIseconds\fP" تولید مجدد دوره‌ای نشانی MAC جعلی. پیش‌فرض: .B 0 (بدون تولید مجدد). .TP .B \-n " \fIfakes\fP" تعداد پاسخ‌های جعلی. مقدار پیش‌فرض: ۲ پاسخ. .TP .B \-t " \fImseconds\fP" فاصله زمانی بین پاسخ‌های جعلی بر حسب میلی‌ثانیه. مقدار پیش‌فرض: ۵۰ میلی‌ثانیه. .TP .B \-b " \fIbuf\fP" اندازه بافر MAC. تعداد آخرین جفت‌های نامعتبر MAC-IP که در بافر ذخیره می‌شوند. پیش‌فرض: .B 0 (بدون بافر). .TP .B \-s " \fIuser\fP" کاهش دسترسی ریشه (root) به کاربر مشخص‌شده. مقدار پیش‌فرض: عدم کاهش دسترسی. .TP .B \-a عدم جایگزینی نشانی (مانند 0.0.0.0 یا 00:00:00:00:00:00). .TP .B \-j غیرفعال کردن تشخیص خودکار اولین جفت MAC-IP از رابط شبکه. .TP .B \-g اعطای مجوز به طور پیش‌فرض (Default to grant). در صورتی که هر دو نشانی MAC و IP در فهرست نباشند، مسدود نمی‌شوند. .TP .B \-r حالت فقط‌خواندنی. هیچ داده‌ای به شبکه ارسال نمی‌شود؛ تنها به شنود می‌پردازد. .TP .B \-x حالت دوطرفه (Duplex). بسته‌های جعلی نه تنها برای متجاوز (pirate)، بلکه در پاسخ به درخواست‌ها برای نشانی متجاوز نیز ارسال می‌شوند. .TP .B \-z ارسال برودکست who-has برای ترمیم جدول‌های ARP تمام کلاینت‌هایی که توسط متجاوز آسیب دیده‌اند. .TP .B \-i حالت پنهان. بسته‌های ARP بلاعوض (Gratuitous ARP) را مسدود نمی‌کند. .TP .B \-o حالت بی‌قیدوبند (Promiscuous mode). فعال‌سازی حالت پرومیسکوئوس در رابط شبکه (معمولاً کاربردی ندارد). .TP .B \-v حالت پرگو (Verbose). نمایش پیام‌های توضیحی بیشتر. .TP .B \-d عدم انشعاب (عدم رفتن به پس‌زمینه). در پس‌زمینه اجرا نمی‌شود و تمام رویدادها را در STDERR می‌نویسد. .TP .B \-dd اشکال‌زدایی (دیباگ). .TP .B \-ddd اشکال‌زدایی بیشتر با جزئیات بالاتر. .TP .B \-h راهنما. نمایش توضیحات مختصر درباره پارامترهای خط فرمان. .SH "مثال‌ها (EXAMPLES)" .TP حالت عادی و توصیه‌شده، دوطرفه، ترمیم برودکست و به‌روزرسانی خودکار etc/ethers/ هر ۵ دقیقه یک‌بار: .B ipguard -xz -u 300 fxp0 .TP مشابه حالت قبل، اما همراه با فیلتر PCAP تنها برای شبکه 192.168.1.0/24: .B ipguard -xz -u 300 -c 'net 192.168.0.0/24' fxp0 .TP حالت فقط‌خواندنی و به‌خاطرسپاری ۱۰۰ مک‌آدرس آخری که در پرونده‌ی ethers وجود ندارند. مناسب برای جمع‌آوری اولیه جفت‌های MAC-IP: .B ipguard -r -b 100 -f /dev/null rl0 .TP اجرای ipguard برای مدتی کوتاه و سپس اجرای دستور killall \-USR2 ipguard برای دریافت خروجی ۱۰۰ جفت اخیر MAC-IP. .TP عدم رفتن به پس‌زمینه و خروجی پرگوتر به همراه یک پرونده‌ی آزمایشی ethers: .B ipguard -vd -f /tmp/ethers my1 .br .SH "نکات (TIPS)" .PP اولین جفت MAC-IP در پرونده‌ی .B ethers همیشه باید نشانی‌های MAC/IP خود دستگاه باشد. به طور معمول این مقادیر به صورت خودکار از رابط شنودکننده گرفته می‌شوند؛ اما اگر گزینه‌ی .B \-j مشخص شده باشد، باید مطمئن شوید که اولین جفت، همان MAC/IP مبدأ است. .PP اگر می‌خواهید برای افزونگی (Redundancy) بیش از یک ipguard را در یک سگمنت راه‌اندازی کنید، باید برای تمام آن‌ها یک نشانی MAC جعلی یکسان مشخص کرده و روشی برای همگام‌سازی پرونده‌های .B ethers بیابید. .SH "سیگنال‌ها (SIGNALS)" .TP .B SIGHUP پویش مجدد پرونده‌ی .B ethers و بازگشایی مجدد پرونده‌ی لاگ. .TP .B SIGUSR1 تخلیه (Dump) برخی جدول‌ها و آمارهای سیستم. .TP .B SIGUSR2 تخلیه جدول جدید MAC-IP در قالب .BR ethers (5). .SH "فایل‌ها (FILES)" .TP .B /etc/ethers فهرست جفت‌های MAC-IP. .TP .B /var/log/ipguard_.log پرونده‌ی ثبت وقایع (log). .TP .B /var/run/ipguard_.pid پرونده‌ی شناسه فرایند (pid). .SH "همچنین ببینید (SEE ALSO)" .PP RFC 826, ethers(5), tcpdump(1), pcap(3), libnet .SH "اشکالات (BUGS)" .PP از نشانی عام 0.0.0.0 در پرونده‌ی .B ethers همراه با گزینه‌ی .B \-x استفاده نکنید؛ در غیر این صورت کلاینت‌های مجاز مسدود خواهند شد (کشف‌شده توسط irix). .PP یک باگ عجیب در تابع ()libnet_get_hwaddr وجود دارد که در OpenBSD 4.0 کار نمی‌کند (کشف‌شده توسط irix). از گزینه‌ی .B \-j استفاده کنید. .PP ابزار .B ipguard نمی‌تواند از تغییر همزمان نشانی MAC به همراه IP توسط متجاوز جلوگیری کند. .PP سیگنال‌های HUP، USR1 یا USR2 تنها زمانی عمل می‌کنند که یک بسته ARP جدید دریافت شود. این یک باگ نیست، بلکه یک ویژگی طراحی است. .PP هنگام استفاده از گزینه‌ی .BI \-s " " ابزار ipguard امتیازات ریشه را پس از ایجاد پرونده‌های log و pid لغو می‌کند. بنابراین نمی‌تواند این پرونده‌ها را حذف کند یا مجدداً بازگشایی نماید. .PP احتمالاً گزینه‌های خط فرمان بیش از حد زیاد هستند! اگر یکی دو گزینه‌ی دیگر اضافه شود، همه‌ی آن‌ها را به صورت کامنت در etc/ethers/ قرار خواهم داد. .PP ابزار ipguard به عنوان یک ابزار کوچک و ساده نوشته شده است و هیچ برنامه‌ای برای پشتیبانی از پایگاه‌های داده خارجی مانند SQL/LDAP و غیره وجود ندارد. از اسکریپت‌ها استفاده کنید. .SH "نویسندگان (AUTHORS)" .PP SeaD