استفاده از FirewallD برای مدیریت فایروال خود در CentOS 7

FirewallD یک فایروال با مدیریت پویا است که پشتیبانی از قوانین فایروال IPv4 و IPv6 و مناطق فایروال را دارد که در سرورهای مبتنی بر RHEL 7 موجود است. این یک جایگزین مستقیم است iptablesو با netfilterکد هسته کار می کند .

در این مقاله نگاهی کوتاه به مدیریت فایروال در CentOS 7 با استفاده از firewall-cmdدستور خواهیم داشت.

بررسی اینکه FirewallD در حال اجرا است یا خیر

اولین قدم بررسی اینکه FirewallD نصب و راه اندازی شده است یا خیر. این کار را می توان از طریق systemdاجرای موارد زیر انجام داد:

$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2016-03-10 15:07:00 UTC; 1min 30s ago
   ...

روش دیگر ، می توانید با استفاده از firewall-cmdابزار بررسی کنید:

$ firewall-cmd --state
running

مناطق مدیریت

FirewallD با استفاده از مفهوم zonesجایی که یک منطقه سطح اعتماد به کار رفته برای اتصال را تعیین می کند ، عمل می کند. به منظور اعمال قوانین ویژه فایروال در هر رابط می توانید واسط های مختلف شبکه را در مناطق مختلف تقسیم کنید و یا می توانید برای همه رابط ها از یک منطقه استفاده کنید.

خارج از جعبه ، همه چیز در publicمنطقه پیش فرض انجام می شود ، اما چندین منطقه از پیش تنظیم شده دیگر نیز وجود دارد که می توانند بیش از حد مورد استفاده قرار گیرند.

لیست تمام مناطق موجود

شاید لازم باشد لیستی از تمام مناطق موجود را تهیه کنید که تعداد زیادی از آنها در جعبه موجود است. باز هم ، این کار با استفاده از firewall-cmd:

$ firewall-cmd --get-zones
block dmz drop external home internal public trusted work

در حال بررسی منطقه پیش فرض

می توانید منطقه پیش فرض که در حال حاضر با استفاده از پیکربندی شده کشف کنید firewall-cmd:

$ firewall-cmd --get-default-zone
public

اگر می خواهید منطقه پیش فرض (به عنوان مثال به home) را تغییر دهید ، این کار را با اجرا می توانید انجام دهید:

$ firewall-cmd --set-default-zone=home
success

این اطلاعات در پرونده پیکربندی اصلی منعکس می شود /etc/firewalld/firewalld.conf. با این حال ، توصیه می شود که این پرونده را به صورت دستی تغییر ندهید و در عوض از آن استفاده کنید firewall-cmd.

در حال بررسی مناطق تعیین شده در حال حاضر

می توانید با اجرای لیست لیستی از مناطقی که رابط های خود را به آنها داده اید:

$ firewall-cmd --get-active-zones
public
  interfaces: eth0

همچنین می توانید با اجرای ، منطقه یک رابط منفرد ( eth0در این حالت) را بررسی کنید:

$  firewall-cmd --get-zone-of-interface=eth0
public

ایجاد مناطق

اگر مناطق پیش فرض شده پیش فرض متناسب با نیاز شما نیستند ، ساده ترین راه برای ایجاد یک منطقه جدید ( zone1) دوباره از طریق firewall-cmd:

$ firewall-cmd --permanent --new-zone=zone1
success

پس از ایجاد ، باید بارگیری مجدد کنید:

$ firewall-cmd --reload
success

اعمال یک منطقه به یک رابط

به منظور اختصاص دائم یک رابط شبکه به یک منطقه ، می توانید از پرچم firewall-cmdیادآوری کنید تا --permanentتغییرات را ادامه دهید. در صورت استفاده NetworkManager، حتماً nmcliبرای تنظیم منطقه اتصال نیز از آن استفاده می کنید.

$ firewall-cmd --permanent --zone=internal --change-interface=eth1`
success

دریافت پیکربندی دائمی یک منطقه

برای بررسی پیکربندی دائمی یک منطقه ( publicدر این حالت) از جمله رابط های اختصاص داده شده ، خدمات مجاز ، تنظیمات درگاه و موارد دیگر ، اجرای:

$ firewall-cmd --permanent --zone=public --list-all
public (default)
  interfaces:
  sources:
  services: dhcpv6-client ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

مدیریت خدمات

هنگامی که مناطق مورد نیاز خود را اختصاص داده و پیکربندی کرده اید ، می توانید خدمات خود را به مناطق اضافه کنید. خدمات پروتکل ها و پورت هایی را که می توانند برای یک منطقه دسترسی داشته باشند توصیف می کنند.

لیست خدمات موجود

تعدادی سرویس مشترک در فایروال از قبل پیکربندی شده اند. این موارد قابل ذکر است:

$ firewall-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imaps ipp ipp-client ipsec iscsi-target kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind rsyncd samba samba-client smtp ssh telnet tftp tftp-client transmission-client vdsm vnc-server wbem-https

همچنین می توانید لیستی از خدمات فعال شده برای منطقه پیش فرض را دریافت کنید:

$ firewall-cmd --list-services
dhcpv6-client ssh

افزودن سرویس به یک منطقه

می توانید publicبا استفاده دائم از --add-serviceپرچم ، یک سرویس داده شده را فعال کنید :

$ firewall-cmd --permanent --zone=public --add-service=http
success

و سپس جلسه فایروال فعلی را بارگیری مجدد کنید:

$ firewall-cmd --reload
success

سپس ، برای تأیید آن ، اضافه شد:

$ firewall-cmd --zone=public --list-services
dhcpv6-client http ssh

حذف یک سرویس از یک منطقه

می توانید publicبا استفاده دائم از --remove-serviceپرچم ، یک سرویس داده شده را برای یک منطقه حذف کنید :

$ firewall-cmd --permanent --zone=public --remove-service=http
success

و سپس جلسه فایروال فعلی را بارگیری مجدد کنید:

$ firewall-cmd --reload
success

سپس ، برای تأیید آن ، اضافه شد:

$ firewall-cmd --zone=public --list-services
dhcpv6-client ssh

اضافه کردن / حذف چندین سرویس از یک منطقه

شما می توانید اضافه و یا حذف چند سرویس (به عنوان مثال، httpو httpsاز یک منطقه یا در یک زمان در یک بار با بسته بندی نام خدمات مورد نظر در آکولاد ()، و یا همه {، }):

$ firewall-cmd --permanent --zone=public --add-service=
success

$ firewall-cmd --permanent --zone=public --list-services
dhcpv6-client http https ssh

ایجاد خدمات جدید

بعضی اوقات ممکن است نیاز به اضافه کردن سرویس های سفارشی جدید داشته باشید - برای مثال اگر درگاه Semon را تغییر داده اید. خدمات با استفاده از فایلهای XML بی اهمیت تعریف می شوند و پرونده های پیش فرض در آنها یافت می شود /usr/lib/firewalld/services:

$  tree /usr/lib/firewalld/services
/usr/lib/firewalld/services
├── amanda-client.xml
├── bacula-client.xml
├── bacula.xml
├── dhcpv6-client.xml
├── dhcpv6.xml
├── dhcp.xml
├── dns.xml
├── freeipa-ldaps.xml
���── freeipa-ldap.xml
├── freeipa-replication.xml
├── ftp.xml
├── high-availability.xml
├── https.xml
├── http.xml
...

ساده ترین راه برای ایجاد یک سرویس جدید ، کپی کردن یکی از این پرونده های سرویس موجود و اصلاح آن است. خدمات سفارشی باید در آنجا ساکن شوند /etc/firewalld/services. به عنوان مثال ، برای شخصی سازی سرویس SSH:

$ cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-custom.xml

محتوای این پرونده کپی شده باید به شرح زیر باشد:

$ cat /etc/firewalld/services/ssh-custom.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
  <port protocol="tcp" port="22"/>
</service>

برای تغییر درگاه ، باید نام کوتاه سرویس و پورت را تغییر دهید. شما همچنین می توانید توضیحات را در صورت تمایل تغییر دهید ، اما این فقط فوق داده فوق العاده ای است که می تواند توسط یک رابط کاربر یا برنامه دیگر مورد استفاده قرار گیرد. در این مثال ، من درگاه را به 1234 تغییر می دهم:

$ nano /etc/firewalld/services/ssh-custom.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH-Custom</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
  <port protocol="tcp" port="1234"/>
</service>

پس از ذخیره ، شما باید دیوار آتش را بارگیری مجدد کنید و سپس می توانید قانون خود را در منطقه خود اعمال کنید:

$ firewall-cmd --reload
success

$ firewall-cmd --permanent --zone=public --add-service=ssh-custom
success

مدیریت بندر

علاوه بر استفاده از خدمات ، می توانید به صورت دستی به پورت ها اجازه دهید. برای اجازه دادن به درگاه TCP 7777برای publicمنطقه:

$ firewall-cmd --permanent --zone=public --add-port=7777/tcp
success

همچنین می توانید محدوده پورت را اضافه کنید:

$ firewall-cmd --permanent --zone=public --add-port=7000-8000/tcp
success

برای حذف (و در نتیجه انکار) پورت TCP 7777برای publicمنطقه:

$ firewall-cmd --permanent --zone=public --remove-port=7777/tcp
success

همچنین می توانید publicپس از بارگیری مجدد جلسه فایروال فعلی ، درگاه های مجاز در حال حاضر را برای یک منطقه خاص ( ) ذکر کنید:

$ firewall-cmd --zone=public --list-ports
7000-8000/tcp

فعال کردن FirewallD

پس از تنظیم فایروال به دلخواه ، حتماً آن را از طریق systemd فعال کنید تا اطمینان حاصل شود که از زمان راه اندازی:

$ systemctl enable firewalld

نتیجه

تنظیمات و گزینه های بسیار بیشتری در FirewallD وجود دارد ، مانند حمل و نقل پورت ، ماسک زدن و برقراری ارتباط با فایروال از طریق D-Bus. امیدوارم این راهنما به شما در درک اصول اولیه کمک کرده است و ابزارهایی را برای شروع کار با فایروال کردن سرور خود فراهم کرده است. برخی از خواندن های اضافی در زیر به شما کمک می کند تا از دیوار آتش خود نهایت استفاده را ببرید.



Leave a Comment

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

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

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

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد