Create custom FirewallD zone on RHEL/CentOS 7x with Higher Security - Drop All

امنیت در لینوکس

 

 

 روش ایجاد زون در فایروال دی - Create custom FirewallD zone on RHEL/CentOS 7x with Higher Security - Drop All

در این پست ITStorage به روش ایجاد Zone دلخواه با Target=Drop می پردازیم. در Firewalld می توان کل ترافیک ورودی را مسدود کرد و فقط پورتهای مورد نیاز را باز گذاشت. به این منظور میتوانید از zone Drop استفاده نمایید. یا یک zone دلخواه را ایجاد نمایید.

ابتدا یک یادآوری از zone ها و انواع Target را انجام میدهم.

Zone های Firewalld

zone ها به عنوان یک ساختار از پیش تنظیم شده می‌باشند و شما می توانید آنها را نسبت به شرایط امنیتی و قرار گیری سرور در اینترنت یا شبکه داخلی انتخاب نمایید.
هر یک از Zone ها برای یک شبکه خاص تنظیم شده‌اند و ترافیک را نسبت به آن تنظیمات کنترل می‌کنند.
Zone پیش فرض در ابتدای فعال سازی فایروال Public می باشد. لیست Zone ها بهمراه توضیحات آن به شرح زیر می باشد.

drop: The lowest level of trust. All incoming connections are dropped without reply and only outgoing connections are possible.
block: Similar to the above, but instead of simply dropping connections, incoming requests are rejected with an icmp-host-prohibited or icmp6-adm-prohibited message.
public: Represents public, untrusted networks. You don't trust other computers but may allow selected incoming connections on a case-by-case basis.
external: External networks in the event that you are using the firewall as your gateway. It is configured for NAT masquerading so that your internal network remains private but reachable.
internal: The other side of the external zone, used for the internal portion of a gateway. The computers are fairly trustworthy and some additional services are available.
dmz: Used for computers located in a DMZ (isolated computers that will not have access to the rest of your network). Only certain incoming connections are allowed.
work: Used for work machines. Trust most of the computers in the network. A few more services might be allowed.
home: A home environment. It generally implies that you trust most of the other computers and that a few more services will be accepted.
trusted: Trust all of the machines in the network. The most open of the available options and should be used sparingly.

Targets


When a zone processes a packet due to its source or interface, but there is no rule that explicitly handles
the packet, the target of the zone determines the behavior:
ACCEPT: Accept the packet.
• %%REJECT%%: Reject the packet, returning a reject reply.
DROP: Drop the packet, returning no reply.
default: Don't do anything. The zone washes its hands of the problem, and kicks it "upstairs."

برای دیدن همه zone ها از دستور زیر استفاده نمایید.

rhel7x@itstorage:~ $ sudo firewall-cmd --list-all-zones

برای دیدن Zone فعال در FirewallD دستور زیر را وارد کنید.

rhel7x@itstorage:~ $ sudo firewall-cmd --get-default-zone

برای تغییر Zone پیشفرض می‌توانید از دستور زیر استفاده نمایید.

rhel7x@itstorage:~ $ sudo firewall-cmd --set-default-zone=internal

برای دیدن کارت شبکه و Zone فعال بر روی آن از دستور زیر استفاده می‌شود.

rhel7x@itstorage:~ $ sudo firewall-cmd --get-active-zones

همچنین برای دیدن تمام تنظیمات Zone مورد نظر از دستور زیر می‌توان بهره برد.

rhel7x@itstorage:~ $ sudo firewall-cmd --zone=public --list-all

Zone ها همچنین می‌توانند بر روی کارت شبکه‌های مختلف تنظیم شوند و هر کارت شبکه و ترافیک آن توسط قوانین یک Zone کنترل شود.

rhel7x@itstorage:~ $ sudo firewall-cmd --zone=itstgzone --change-interface=eth0
success
rhel7x@itstorage:~ $ sudo firewall-cmd --get-zone-of-interface=eth0
itstgzone

How view Firewalld Rules

rhel7x@itstorage:~ $ sudo firewall-cmd --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh dhcpv6-client smtp smtps ftp pop3 pop3s imap imaps http https
  ports: 587/tcp 53/tcp 20/tcp 2222/tcp 10000-10100/tcp 20000/tcp 1025-65535/tcp 53/udp 2212/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Create Zone

ابتدا سرور مورد نظر را ping میکنیم. همانطور که می بینید. reply می شود.

debian@itstorage:~ $ ping 192.168.1.100
PING 192.168.1.100 (191.168.1.100) 56(84) bytes of data.
64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=0.053 ms
64 bytes from 192.168.1.100: icmp_seq=2 ttl=64 time=0.057 ms

حال zone مورد نظر را ایجاد میکنیم.

rhel7x@itstorage:~ $ sudo firewall-cmd --permanent --new-zone=itstgzone
success
rhel7x@itstorage:~ $ sudo firewall-cmd --permanent --get-zones
block dmz drop external home internal itstgzone public trusted work
rhel7x@itstorage:~ $ sudo ls /etc/firewalld/zones/
itstgzone.xml   public.xml      public.xml.old 
rhel7x@itstorage:~ $ sudo cat /etc/firewalld/zones/itstgzone.xml 
<?xml version="1.0" encoding="utf-8"?>
<zone>
</zone>

فایل itstgzone را به شکل زیر تغییر میدهیم. پارمتر target="DROP" ست می کنیم. و سرویسها و پورتهای مورد نظر را با فرمت زیر اضافه میکنیم.

rhel7x@itstorage:~ $ sudo cat /etc/firewalld/zones/itstgzone.xml 
<?xml version="1.0" encoding="utf-8"?>
<zone target="DROP">
  <short>Custom Zone Configuration</short>
  <description>All incomming connections are blocked by default. Only specific services are allowed.</description>
  <service name="ssh"/>
  <service name="smtp"/>
  <service name="smtps"/>
  <service name="ftp"/>
  <service name="pop3"/>
  <service name="pop3s"/>
  <service name="imap"/>
  <service name="imaps"/>
  <service name="http"/>
  <service name="https"/>
  <port protocol="tcp" port="587"/>
  <port protocol="tcp" port="53"/>
  <port protocol="tcp" port="20"/>
  <port protocol="tcp" port="2222"/>
  <port protocol="tcp" port="10000-10100"/>
  <port protocol="tcp" port="20000"/>
  <port protocol="udp" port="53"/>
  <port protocol="tcp" port="2212"/>
</zone>

به زون جدید  itstgzone کارت شبکه سرور را اضافه میکنیم.

rhel7x@itstorage:~ $ sudo ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 8a:32:4c:f0:ce:64 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/20 brd 46.101.127.255 scope global eth0
       valid_lft forever preferred_lft forever
rhel7x@itstorage:~ $ sudo firewall-cmd --zone=itstgzone --change-interface=eth0
success
rhel7x@itstorage:~ $ sudo firewall-cmd --get-zone-of-interface=eth0
itstgzone

مجدد تست را انجام می دهیم. و هیچ خروجی دریافت نمیشود.

debian@itstorage:~ $ ping 192.168.1.100
PING 192.168.1.100 (191.168.1.100) 56(84) bytes of data.
 

اگر مجدد Rule ها را چک کنیم میبینیم که برای ICMP هیچ Rule ای نوشته نشده است و به صورت پیش فرض ترافیک ورودی بسته و فقط برای پورتها و سرویسهای مورد نیاز باز است. یه موارد قرمز رنگ دقت کنید.

rhel7x@itstorage:~ $ sudo firewall-cmd --list-all
itstgzone (active)
  target: DROP
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: ssh smtp smtps ftp pop3 pop3s imap imaps http https dns
  ports: 587/tcp 53/tcp 20/tcp 2222/tcp 10000-10100/tcp 20000/tcp 53/udp 2212/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
 
مطالب و دوره های آموزشی مرتبط
مطالب و دوره های آموزشی مرتبط
مطالب و دوره های آموزشی مرتبط

برچسب ها: مرجع تخصصی آموزشهای لینوکس , linux, نصب و راه اندازی و پیکربندی اولیه لینوکس, Linux Basic Definition , Linux Fedora, RHEL dvd Repository , epel, redhat, centos, Security, nmcli, firewalld, iptables, rules, Block ICMP, Firewalld Rules

نوشتن دیدگاه


تصویر امنیتی
تصویر امنیتی جدید

  • همه
  • FreeBSD
  • GUI
  • Linux
  • LPIC1
  • LVM
  • RHEL
  • Sysadmin
موارد دیگر کلید SHIFT را برای نمایش همه نگه دارید نمایش همه