استفاده از 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. امیدوارم این راهنما به شما در درک اصول اولیه کمک کرده است و ابزارهایی را برای شروع کار با فایروال کردن سرور خود فراهم کرده است. برخی از خواندن های اضافی در زیر به شما کمک می کند تا از دیوار آتش خود نهایت استفاده را ببرید.



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

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

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

تنظیم RethinkDB Cluster On CentOS 7

تنظیم RethinkDB Cluster On CentOS 7

مقدمه RethinkDB یک پایگاه داده NoSQL است که داده ها را به عنوان اسناد JSON ذخیره می کند. این یک زبان پرس و جو بسیار بصری است و از ویژگی های آن معمولا در دسترس است

نحوه نصب نسخه باز Vtiger CRM در CentOS 7

نحوه نصب نسخه باز Vtiger CRM در CentOS 7

Vtiger CRM یک نرم افزار محبوب مدیریت ارتباط با مشتری است که می تواند به بنگاهها در رشد فروش ، ارائه خدمات به مشتری و افزایش سود کمک کند. من

نحوه نصب کاناپه CMS 2.0 بر روی یک VPS CentOS 7 LAMP

نحوه نصب کاناپه CMS 2.0 بر روی یک VPS CentOS 7 LAMP

با استفاده از یک سیستم متفاوت؟ Couch CMS یک سیستم مدیریت محتوای منبع ساده و انعطاف پذیر ، آزاد و منبع باز (CMS) است که به طراحان وب اجازه می دهد تا طراحی کنند.

نحوه نصب SonarQube در CentOS 7

نحوه نصب SonarQube در CentOS 7

با استفاده از یک سیستم متفاوت؟ SonarQube یک ابزار منبع باز برای توسعه سیستم با کیفیت است. در جاوا نوشته شده است و چندین پایگاه داده را پشتیبانی می کند. فراهم می کند

نصب Netdata در CentOS 7

نصب Netdata در CentOS 7

با استفاده از یک سیستم متفاوت؟ Netdata یک ستاره در حال افزایش در زمینه نظارت بر معیارهای سیستم در زمان واقعی است. در مقایسه با سایر ابزارهای مشابه ، Netdata:

نحوه فعال سازی پشتیبانی HTTP / 2 در DirectAdmin (CentOS)

نحوه فعال سازی پشتیبانی HTTP / 2 در DirectAdmin (CentOS)

HTTP / 2 جدیدترین نسخه پروتکل HTTP است که از SPDY مستقر است. توسعه آن توسط Google آغاز شده است و HTTP / 2 تا حد زیادی بر اساس پایگاه کد است

نحوه نصب سرور Starbound در CentOS 7

نحوه نصب سرور Starbound در CentOS 7

با استفاده از یک سیستم متفاوت؟ در این آموزش ، Ill در مورد نحوه راه اندازی یک سرور Starbound در CentOS 7 توضیح می دهد. پیش نیازها: شما باید این بازی را روی خود داشته باشید

یک سرور چند نفره SA-MP San Andreas را در CentOS 6 تنظیم کنید

یک سرور چند نفره SA-MP San Andreas را در CentOS 6 تنظیم کنید

به یکی دیگر از آموزش های Vultr خوش آمدید. در اینجا ، نحوه نصب و اجرای سرور SAMP را یاد خواهید گرفت. این راهنما برای CentOS 6 نوشته شده است. پیش نیازهای مورد نیاز شما

Elgg را روی CentOS 7 نصب کنید

Elgg را روی CentOS 7 نصب کنید

با استفاده از یک سیستم متفاوت؟ Elgg یک موتور شبکه ای منبع باز است که امکان ایجاد محیط های اجتماعی از جمله شبکه های اجتماعی دانشگاه را فراهم می کند

نحوه نصب سرور RStudio در CentOS 7

نحوه نصب سرور RStudio در CentOS 7

RStudio Server نسخه وب RStudio است که مجموعه ای از ابزارهایی است که برای تسهیل کار برنامه نویسی با استفاده از زبان برنامه نویسی R طراحی شده است. در سه

نصب Bolt CMS در CentOS 7

نصب Bolt CMS در CentOS 7

Bolt یک CMS منبع باز است که به زبان PHP نوشته شده است. کد منبع Bolts در GitHub میزبانی شده است. این راهنما نحوه نصب Bolt CMS را در CentOS 7 Vult تازه نشان می دهد

نحوه نصب Elasticsearch در سرور Vultr CentOS 7

نحوه نصب Elasticsearch در سرور Vultr CentOS 7

Elasticsearch یک موتور جستجوی کامل و متن تحلیلی متن کامل است. به لطف تطبیق پذیری ، مقیاس پذیری و سهولت استفاده ، Elasticsearch گسترده تر است

Kubernetes With Kubeadm را در CentOS 7 مستقر کنید

Kubernetes With Kubeadm را در CentOS 7 مستقر کنید

بررسی اجمالی این مقاله به شما کمک می کند تا در هر زمان خوشه ای از Kubernetes را جمع کنید و با kubeadm در حال اجرا باشید. در این راهنما از دو سرور استفاده می شود

راه اندازی Sails.js برای توسعه در CentOS 7

راه اندازی Sails.js برای توسعه در CentOS 7

با استفاده از یک سیستم متفاوت؟ مقدمه Sails.js یک چارچوب MVC ��رای Node.js است ، شبیه به Ruby on Rails. این امر برای ایجاد برنامه های مدرن ver

پیکربندی BGP با استفاده از Quagga در Vultr (CentOS 7)

پیکربندی BGP با استفاده از Quagga در Vultr (CentOS 7)

Vultrs عملکرد IP فضای شما را امکان پذیر می سازد تا آزادی بی سابقه ای در اختصاص منابع IP شخصی شما به سرورهای cloud Vultr داشته باشید. ما کلی

نحوه نصب PufferPanel (کنترل پنل کنکوری رایگان) در CentOS 7

نحوه نصب PufferPanel (کنترل پنل کنکوری رایگان) در CentOS 7

مقدمه در این آموزش ، PufferPanel را در Vultr VPS ما نصب کنید. PufferPanel یک پانل کنترل با منبع آزاد و بصورت رایگان برای مدیریت شما است

ابزارهای نظارت بهتر برای اوبونتو و CentOS

ابزارهای نظارت بهتر برای اوبونتو و CentOS

معرفی سیستم های لینوکس به طور پیش فرض مانند top ، df و du با ابزارهای نظارتی ارسال می شوند که به نظارت بر فرایندها و فضای دیسک کمک می کنند. با این حال ، اغلب اوقات ، آنها به صورت طاقت فرسا هستند

دستگاه های خود را با استفاده از LibreNMS در CentOS 7 نظارت کنید

دستگاه های خود را با استفاده از LibreNMS در CentOS 7 نظارت کنید

با استفاده از یک سیستم متفاوت؟ LibreNMS یک سیستم نظارت بر شبکه منبع باز کاملاً برجسته است. از SNMP برای به دست آوردن داده ها از دستگاه های مختلف استفاده می کند. یک نوع

نحوه نصب Gitea در CentOS 7

نحوه نصب Gitea در CentOS 7

با استفاده از یک سیستم متفاوت؟ Gitea یک منبع کنترل جایگزین متن باز و خود میزبان است که توسط Git ساخته شده است. Gitea در Golang نوشته شده و هست

نحوه نصب بستر سبد خرید 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 است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد