امنیت در لایه Database

همانطور که قبلاً قول داده بودم،‌الوعده وفا..! اگر به خاطر داشته باشید قرار بر این شد که دو سری مقالات به مقالات سایت اضافه شود،‌ یکی مقالات پایه FreeBSD که دو مطلب انتشار یافت و همچنان ادامه دارد و دومین سری مقالات بنا بر مقالات Hardening بود.
این مطلب اولین شماره مقالات Hardening می‌باشد تا دوستان server های خود را امن کنند، نه اینکه به دیگران آسیب‌رسانی کنند.
sec
سناریو در این مطلب داشتن یک نام کاربری است که قرار است اعمالی خاص روی Database ما انجام دهد،‌ ولی چگونه این اعمال را محدود به یک یا چند سیاست کنیم که در لیست role های Database وجود ندارند؟ پس بهتر است پیش رویم تا قضیه روشن شود.
گذشته از هر گونه دستوری که شروع کنیم، فرض کنید، در یک دپارتمان باید به شخصی دسترسی خیلی خیلی محدود همانند یک select به یکی از فیلد‌های یکی از جداولتان بدهید. این دپارتمان را می‌توانید یک نرم‌افزار و یا هر چیز دیگر فرض کنید. وقتی شما مجبور باشید دسترسی بیشتری برای کار به شخص/نرم‌افزار بدهید، نه تنها ضریب امنیتی پایگاه داده خود را پایین آورده‌اید، بلکه به ایشان اجازه داده‌اید به تمام داده‌های شما که قرار نیست دسترسی کاری داشته باشد سرک بکشد. پس باید فکری دیگر کرد.
به الگوریتم زیر برای قطع دسترسی بیجا به کاربران دقت نمایید:
۱. ایجاد یک پروسیجر و نوشتن تمام اعمالی که کاربر نیاز دارد به عنوان یک پروسیجر.
۲. یک revoke به کل سیستم برای آن کاربر.
۳. یک grant به آن پروسیجر.
برای هر Database Server هم یک زبان وجود دارد:

  • PL/SQL : Oracle

  • PL/pgSQL : PostgreSQL

  • TSQL : MSSQL

  • PL/SQL : DB2

نکته: MySQL زبان خاصی ندارد و باید از Stored Procedure استفاده نمایید.
نکته: سؤال اینجاست که چرا مستقیم دسترسی داده نشد. ۴ فرمان اصلی در SQL عبارتند از :

  • SELECT

  • UPDATE

  • DELETE

  • INSERT

کافیست فقط برای همان فرمان SELECT باز بگذاریم. با فرمان SELECT می‌توان همه جای سرور را کندوکاو کرد، چه رسد به ۳ فرمان بعدی….!
پس بهتر است آنچه را کاربر می‌خواهد برایش بنویسیم و به صورت یک تابع برایش grant کنیم تا از دادن دسترسی مستقیم اجتناب ورزیم.

iproute2 در مقابل net-tools (این قسمت: ss) (قسمت چهارم)

چندی پیش می‌خواستم برای netstat مطلبی بنویسم که وقتی قرار شد iproute2 را قلم بزنم دیگر نیاز به این کار ندیدم. زیرا فرمان ss نسخه iproute2 همان netstat بسته net-tools می‌باشد. وقتی ss را نوشته‌اند، به این موضوع دقت بسیاری کرده‌اند که option های قدیمی تغییر نکنند و شخصی که از netstat مهاجرت می‌کند،‌ ظرف یک ربع یا کمتر همه مسایل آن را یاد بگیرد. linux_foundation
نکته: یکی از قابلیت‌های بزرگ این فرمان، استفاده از فیلتر می‌باشد که در جلوتر با مثال توضیح داده خواهد شد. ادامه خواندن iproute2 در مقابل net-tools (این قسمت: ss) (قسمت چهارم)

DocBook Publishing Model و یک نوستالوژی!

اگر در عکس زیر دقت کنید چند نکته رو متوجه می‌شید:
۱. یک کاغذ مچاله شده است.
۲. در زیر آن تاریخ ۲۰۰۵ خورده است.
۳. در زیر آن اسم Kia Teymourian نوشته شده است.
اولین موضوع که باعث شد این کاغذ مچاله رو براتون بگذارم محتوای اون بود که نشون دهنده DocBook Publishing Model هست که مطمئناً بدرد خوانندگان می‌خوره و امیدوارم که بتونن ازش استفاده کنن.
اما نکته‌ای که در عکس هست اینه که این عکس مربوط به ۱۰ سال پیش جلسات تهران لاگ در ویلای شمالی است که کیا تیموریان از آلمان اومده بود و در مورد Doc‌Book یه پرزنت پرمحتوا داد.
خوشحالم که چنین کاغذی رو در منزل داشتم تا بتونم به خوانندگانم و همینطور به کاربران تهران‌لاگ تحویل بدم.
یک دهه فعالیت دوستان، یک دهه خروجی و ورودی دوستان و غیره ….
kia

iproute2 در مقابل net-tools (این قسمت: static routing) (قسمت سوم)

کرنل لینوکس فرای ۲ Routing Table اصلی local و main تا ۲۵۲ جدول را پشتیبانی می‌نماید. علاوه بر route های سنتی، می‌توان از RPDB که مخفف Routing Policy Database است استفاده نمود که کار باید به جای استفاده از دستور ip route برای آن از ip rule استفاده نمود. سیستم RPDB کار را خیلی آسان می‌نماید. فعلاً با ip route آشنا می‌شویم که اساس کار است.linux_foundation
هر Routing Table شامل تعدادی entry می‌باشد که هر Entry شامل موارد زیر می‌باشد:

  • آدرس مقصد; یک آدرس Network یا Host

  • ToS

  • scope

  • خروجی interface : خروجی که route مذکور باید از آن خارج شود.

هر Table با یک عدد مشخص می‌شود به فایل زیر در etc/iproute2/rt_tables/ دقت نمایید:

ادامه خواندن iproute2 در مقابل net-tools (این قسمت: static routing) (قسمت سوم)

NAT ، حریم شخصی و سازمان‌های جاسوسی

زمانی وقتی که NAT وجود خارجی نداشت، تصمیم گرفته شد تا زمانی که IPv6 همه‌گیر شود، NAT را ایجاد کنند تا بتوان از IP های unregistered استفاده نمود تا IPv4 تمام نشود.
ولی کسی فکر این را نمی‌کرد تا سازمان‌های جاسوسی همه توان خود را برای گرفتن داده‌های شخصی افراد و غیره از طریق اینترنت استوار کنند.
روزی آشنایی گفت: روزی می‌رسد که هر شخصی بتواند با IPv6 برای حیوان خانگی خود هم IP داشته باشد. این مطمئناً به اینترنت اشیاء هم میرسد. که فلان منزل چه نوع غذایی مصرف می‌کنند.(با استفاده از IP های داخل آشپزخانه) که خوراک خوبی برای سرویس‌های جاسوسی می‌باشد. ادامه خواندن NAT ، حریم شخصی و سازمان‌های جاسوسی

iproute2 در مقابل net-tools (این قسمت: interface ها) (قسمت دوم)

در شماره اول iproute2 بیشتر به معرفی آن و فرمان‌های داخل آن پرداختیم. در صورتی که هر یک از Object های آن خود به یک مطلب نیاز دارند. در این مطلب سعی شده است تا کار اولیه با interface ها تشریح شود، شاید دلیلش این باشد که اولین مسأله در مورد Internetworking بعد از مفاهیم کار با ineterface ها باشد.linux_foundation
نکته: در تمام مثال‌ها دو ماشین را فرض کرده‌ایم که یکی بر روی VirtualBox و دیگری host ما می‌باشد. و از ۲ کارت شبکه آن استفاده می‌کنیم. به صورت پیش‌فرض یکی را برای ssh و دیگری را برای فرمان ip استفاده کرده‌ایم.
برای شماره‌های آتی هر قسمت از iproute2 را یک مطلب کرده‌ام. به عنوان مثال ip rourte یک مطلب جدا، tc یک مطلب جدا و غیره…. ادامه خواندن iproute2 در مقابل net-tools (این قسمت: interface ها) (قسمت دوم)