منبع اصلی نوشتار زیر در این لینک قرار دارد

کنترل دسترسی به سرویس ها در لینوکس

برای کنترل دسترسی به یک سرویس می توان از فایروال (iptables) استفاده کرد. با iptables کنترل بساری بر روی یک سرویس داریم،اما در لینوکس دو فایل etc/hosts.allow/ و etc/hosts.deny/ بر دسترسی سرویس های درون یک ماشین از دیگر ماشین ها کنترل دارد. در این دو فایل قوانین کنترل بر روی یک سرویس یا تمامی سرویس های درون یک ماشین نوشته می شود. هر خط آن به صورت زیر است.

daemon_service : client_address other_options

دو مورد اصلی در تعریف هر قانون در این دو فایل:

  • daemon_service یک یا چند سرویسی است که درون ماشین قرار دارند. اگر چندین سرویس را بخواهیم در یک خط و برای یک قانون بنویسیم، آنها را با کاما (,) ازهم جدا می کنیم. کلمه کلیدی ALL به معنی تمامی سرویس هاست.
  • client_address : نام یا آدرس IP ماشینی است که قصد اتصال به این ماشین و استفاده از سرویس مورد نظر را دارد. می توانید از نام FQDN یا آدرس IP استفاده کنید. همچنن امکان تعریف یک محدوده آدرس بطور مثال آدرس های 192.168.1.1 تا 192.168.1.100 وجود دارد. کلمه کلیدی ALL به معنی تمامی کلاینت هاست.

فایل etc/hosts.allow/ یعنی هر ماشینی که در قوانین این فایل را دارند، اجازه استفاده از سرویس را دارند و بقیه اجازه ندارند، و فایل etc/hosts.deny/ یعنی هر ماشینی که در قوانین این فایل است اجازه استفاده از سرویس را ندارد ولی بقیه اجازه استفاده از سرویس را دارند. سرویس های رایجی مانند sshd,vsftpd,httpd و …

مثال ها

فرض کنید که می خواهیم دسترسی به سرویس SSH را بر روی ماشین 192.168.1.1 کنترل کنیم.

  • تنها ماشین 192.168.1.3 اجازه اتصال ssh را داشته باشد.فایل hosts.allow را باز کنید و خط زیر را اضافه کنید. با خط زیر تنها ماشین 192.168.1.3 اجازه دسترسی دارد.

sshd : 192.168.1.3

  • تنها ماشین 192.168.1.2 اجازه اتصال را نداشته باشد. فایل hosts.deny را باز کنید و خط زیر را اضافه کنید. با خط زیر تمامی کلاینت های درون شبکه 192.168.1.0اجازه دسترسی دارند به جز 192.168.1.2

sshd : 192.168.1.2

  • تمامی ماشین های تحت دامنه falearn.ir اجازه دسترسی داشته باشند.فایل hosts.allow را باز کنید و خط زیر را اضافه کنید.

sshd : *.falearn.ir

  • تنها دو ماشین 192.168.1.3 و 192.168.1.100 اجازه دسترسی داشته باشند.فایل hosts.allow را باز کنید و خط زیر را اضافه کنید.

sshd : 192.168.1.3 192.168.1.100

  • به سرویس های vsftpd و sshd ماشین 192.168.1.2 و همچنین ماشین 192.168.1.45 دسترسی نداشته باشند.فایل hosts.denyرا باز کنید و خط زیر را اضافه کنید.

vsftpd,sshd : 192.168.1.2 192.168.1.45

  • به سرویس های sshd و vsftpd تمامی ماشین های تحت دامنه falearn.ir به جز ماشن pc10.falearn.ir دسترسی داشته باشند.فایل hosts.allow را باز کنید و خط زیر را اضافه کنید.

vsftpd,sshd : .falearn.ir EXCEPT pc10.falearn.ir

EXCEPT عملگری است که هم در بخش سرویس ها و هم در بخش کلاینت ها می تواند به کار برو. در مثال بالا یعنی تمامی falearn.ir به جز pc10.falearn.ir

  • کلاینت های شبکه 192.168.1.0 به تمامی سرویس ها به جز سرویس vsftpd دسترسی داشته باشند.

ALL EXCEPT vsftpd : 192.168.1.0/24

OR

ALL EXCEPT vsftpd : 192.168.1.0/255.255.255.0

اطلاعات بیشتر را از اینجا بخوانید.



برچسب ها : , , , , , , , ,