دیوار آتش
دیوار آتش (برابر فرهنگستان زبان و ادب فارسی: بارو) تاربارو یا فایروال نام عمومی برنامه‌هایی است که از دستیابی غیرمجاز به یک سیستم رایانه جلوگیری می‌کنند. در برخی از این نرم‌افزارها، برنامه‌ها بدون اخذ مجوز قادر نخواهند بود از یک رایانه برای سایر رایانه‌ها، داده ارسال کنند. به این گونه نرم‌افزارها، تارباروی دو طرفه گویند، زیرا علاوه بر درگاه ورودی (Incoming)، درگاه‌های خروجی (Outing) هم کنترل می‌شوند. بسته‌های اطلاعاتی که حاوی اطلاعات بدون مجوز هستند، به وسیله تاربارو متوقف می‌شوند. نوع دیگری از فایروال نیز وجود دارد که به آن فایروال معکوس می‌گویند. فایروال معکوس ترافیک خروجی شبکه را فیلتر می‌کند، برخلاف فایروال معمولی که ترافیک ورودی را فیلتر می‌کند. در عمل، فیلتر کردن برای هر دوی این مسیرهای ورودی و خروجی، احتمالاً توسط دستگاه یا نرم‌افزار یکسانی انجام می‌شود. فایروال‌ها صرفاً پورت‌های ضروری برای کاربران یا سایر برنامه‌های موجود در خارج از شبکه را در دسترس و قابل استفاده می‌کنند. برای افزایش ایمنی، سایر پورت‌ها غیرفعال می‌گردد تا امکان استفاده از آنان توسط هکرها وجود نداشته باشد. در برخی موارد و با توجه به نیاز یک برنامه می‌توان موقتاً تعدادی از پورت‌ها را فعال و پس از اتمام کار مجدداً آنان را غیرفعال نمود. اگر برای اتصال به اینترنت از وسیله‌ای مانند روتر بیسیم، دستگاهی که به شما امکان می‌دهد تا از اینترنت بیسیم استفاده کنید، داشته باشید احتمالاً هم‌اکنون نیز دیوار آتش دارید و نیازی به نصب جداگانهٔ آن بر روی سیستم در بسیاری از مواقع وجود ندارد.
پکت‌فیلترها (PF (firewall) اولین نوع از دیواره آتش هستند که در سال ۱۹۸۵ به وجود آمده‌اند که به عنوان packet filter یا «دیواره آتش پالایشگر بسته» نامیده می‌شود. ایده آن‌ها استفاده از امکانات نرم‌افزاری می‌باشد. پکت‌فیلتر ازجمله امکان غربال کردن است که با proxyها تفاوت بسیاری دارند که البته هریک دارای مزایا و معایبی هستند زیرا ما همواره مجبور به انتخاب بین کارایی و امنیت هستیم. از جمله مزیت پکت‌فیلتر استفاده از ابتدایی‌ترین روش یعنی اجازه عبور توسط TCP/IP و نوع فیلتر آن است. اطلاعات این فیلترها شامل آدرس. PORT است.دو سیاست پیش فرض می‌تواند وجود داشته باشد یکی از کاربردهای معمول فایروال واگذاری اختیار ویژه به گروهی خاص از کاربران جهت استفاده از یک منبع بوده، و همچنین بازداشتن کسانی که از خارج از گروه خواهان دسترسی به منبع هستند می‌باشد. استفاده دیگر فایروال جلوگیری از ارتباط مستقیم یک سری از رایانه‌ها با دنیای خارج می‌باشد. هر چند فایروال بخش مهمی از سیستم امنیتی را تشکیل می‌دهد ولی طراحان به این نکته نیز توجه می‌ورزند که اکثر حملات از درون شبکه می‌آیند و نه از بیرون آن. نحوه عملکرد بسیاری از سیستم‌های فایروال اینگونه‌است تمامی ارتباطات از طریق یک سرویس دهنده پروکسی به سمت فایروال هدایت شده و همین سرویس دهنده دربارهٔ امن بودن یا نبودن عبور یک پیام یا یک فایل از طریق شبکه تصمیم‌گیری می‌کند.
این سیستم امنیتی معمولاً ترکیبی از سخت‌افزار و نرم‌افزار است. با توجه به ضرورت‌های استاندارد (ISMS & ISO27001) فایروالها جزء لاینفک شبکه‌های کامپیوتری قرارگرفته‌اند و یکی از دغدغه‌های اصلی مسئولین شبکه شده‌اند، در این میان با توجه به حساسیت هر سازمان لایه بندی و قدرت فایروال‌ها در نظر گرفته می‌شود؛ مثلاً در بانک‌ها به لحاظ اهمیت و ارزش اطلاعات فایروال‌ها جایگاه حساسی دارند و مسئولین شبکه بانک‌ها همواره دقت بسیاری را در این ارتباط به خرج می‌دهند. برخی از شرکت‌های بزرگی که در این ارتباط با مهم‌ترین بانک‌های بین‌المللی همکاری دارند عبارت‌اند از Cisco, Juniper, Securepoint و…
سیستم‌های فایروال معمولاً به سه دسته عمومی تقسیم‌بندی می‌شوند. البته یک سیستم ممکن است ترکیبی از گونه‌های مختلف فایروال را هم‌زمان استفاده کند.
در این‌گونه سیستم‌ها بسته‌ها بر اساس قانون خاصی متوقف می‌شوند. این قانون می‌تواند بستگی به جهت حرکت بسته، پروتکل خاص استفاده شده، آدرس فرستنده، شماره پرت پرتکل (مثلاً در TCP/IP)، واسطه فیزیکی و غیره طراحی شده باشد. این‌گونه فایروال معمولاً در روتر(Router) انجام می‌شود. به عنوان مثالی معروف از Configurable access control lists یا ACLs در روترهای Cisco می‌توان نام برد. اینگونه سیستم‌ها مانند تصفیه‌کننده بسته‌های اطلاعاتی بوده با این تفاوت که به دلیل آگاهی از تمامی لایه‌ها و سطوح مختلف در stack پروتکل هوشمندتر عمل می‌کنند. این‌گونه سیستم‌ها معمولاً حافظه دار بوده اجازه آن را می‌دهد که به یک بسته اطلاعاتی نه به صورت مجزا بلکه به عنوان بخشی از جریان داده‌ها نگاه کند.
یک یا چند سیستم که به نظر می‌آید که خدماتی را به خارج می‌دهند، ولی عملاً به عنوان پروکسی برای سیستم اصلی عمل می‌کنند؛ بنابراین سیستم خارجی مستقیماً به سیستم درونی وصل نشده و پروکسی بین آن‌ها قرار می‌گیرد. پیاده‌سازی آن‌ها می‌توانند در سطح مدار(سخت‌افزار) یا در سطح برنامه رایانه‌ای (نرم‌افزار) باشد.