نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی

مثال: اجازه دادن به ssh روی یک پورت غیر استاندارد.

FirewallD یک ابزار مدیریت فایروال است که به طور پیش‌فرض در سرورهای CentOS 7 موجود است. این ابزار اساساً یک بسته‌بندی در اطراف IPTables است و دارای یک ابزار پیکربندی گرافیکی فایروال-config و یک ابزار خط فرمان فایروال-cmd است. با سرویس IPtables، هر تغییر مستلزم حذف قوانین قدیمی و ایجاد قوانین جدید در فایل ` /etc/sysconfig/iptables`، در حالی که با فایروال فقط تفاوت ها اعمال می شود.

مناطق فایروال

FirewallD از سرویس ها و مناطق به جای قوانین و زنجیره ها در Iptables استفاده می کند. مناطق زیر به طور پیش فرض در دسترس هستند:

  • رها کردن- تمام بسته های شبکه ورودی را بدون پاسخ رها کنید، فقط اتصالات شبکه خروجی در دسترس هستند.
  • مسدود کردن- همه بسته های شبکه ورودی را با پیام icmp-host-hibited رد کنید، فقط اتصالات شبکه خروجی در دسترس هستند.
  • عمومی- فقط اتصالات ورودی انتخاب شده برای استفاده در مناطق عمومی پذیرفته می شود
  • خارجی– برای شبکه های خارجی با ماسکرینگ، فقط اتصالات ورودی انتخابی پذیرفته می شود.
  • dmz– DMZ، در دسترس عموم با دسترسی محدود به شبکه داخلی، فقط اتصالات ورودی انتخابی پذیرفته می شود.
  • کار کردن
  • خانه- برای رایانه های موجود در منطقه اصلی، فقط اتصالات ورودی انتخاب شده پذیرفته می شود.
  • درونی؛ داخلی– برای رایانه های موجود در شبکه داخلی شما، فقط اتصالات ورودی انتخاب شده پذیرفته می شود.
  • قابل اعتماد- تمامی اتصالات شبکه پذیرفته می شود.

برای دریافت لیستی از تمام مناطق موجود:

# فایروال-cmd --get-zones کار می کنند بلوک عمومی dmz خانه مورد اعتماد خارجی داخلی را حذف می کنند

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

# فایروال-cmd --get-default-zone public

برای تغییر منطقه پیش فرض:

خدمات فایروال

سرویس‌های FirewallD فایل‌های پیکربندی XML هستند که اطلاعاتی در مورد ورودی سرویس برای فایروال دارند. برای دریافت لیست تمام خدمات موجود:

# فایروال-cmd --get-services amanda-client amanda-k5-client bacula bacula-client ceph ceph-mon dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync freeipa-ldap freeipa-ldaps freeipa-replication. http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mosh mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetd radius rpcsyncdmaster samba samba- Client sane smtp smtps snmp snmptrap squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-server

فایل های پیکربندی XML در دایرکتوری ها ذخیره می شوند /usr/lib/firewalld/services/و /etc/firewalld/services/.

راه اندازی فایروال با FirewallD

به عنوان مثال، در اینجا نحوه راه اندازی فایروال با FirewallD در صورتی که از وب سرور، SSH در پورت 7022 و سرور ایمیل استفاده می کنید، توضیح داده شده است.

ابتدا منطقه پیش فرض را برای DMZ تنظیم می کنیم.

# firewall-cmd --set-default-zone=dmz # firewall-cmd --get-default-zone dmz

برای افزودن قوانین سرویس پایدار برای HTTP و HTTPS در DMZ، دستور زیر را اجرا کنید:

# firewall-cmd --zone=dmz --add-service=http --permanent # firewall-cmd --zone=dmz --add-service=https --permanent

پورت 25 (SMTP) و پورت 465 (SMTPS) را باز کنید:

فایروال-cmd --zone=dmz --add-service=smtp --فایروال دائمی-cmd --zone=dmz --add-service=smtps --دائمی

درگاه های باز، IMAP، IMAPS، POP3 و POP3S:

فایروال-cmd --zone=dmz --add-service=imap --فایروال دائمی-cmd --zone=dmz --add-service=imaps --فایروال دائمی-cmd --zone=dmz --add-service= pop3 -- فایروال دائمی-cmd --zone=dmz --add-service=pop3s -- دائمی

از آنجایی که پورت SSH به 7022 تغییر کرده است، سرویس SSH (پورت 22) را حذف کرده و پورت 7022 را باز می کنیم.

فایروال-cmd --remove-service=ssh -- فایروال دائمی-cmd --add-port=7022/tcp -- دائمی

برای اعمال تغییرات، باید فایروال را مجددا راه اندازی کنیم:

فایروال-cmd --بارگیری مجدد

و در نهایت، می توانید قوانین را فهرست کنید.

با شروع CentoOS 7، ابزار جدیدی برای پیکربندی قوانین فیلتر ترافیک ظاهر شده است فایروال. توصیه می شود از آن برای مدیریت قوانین iptables استفاده کنید. CentOS 8 اکنون به جای بسته فیلتر استاندارد iptables از چارچوب nftables استفاده می کند و زمانی که قوانین فایروال را از طریق فایروال پیکربندی می کنید، در واقع در حال پیکربندی nftables هستید. در این مقاله، نصب، مفاهیم اولیه و پیکربندی فایروالد را در سروری که دارای CentOS 8 است (در CentOS 7 نیز به همین صورت است) بررسی خواهیم کرد.


فایروالD- یک فایروال برای محافظت از سرور در برابر ترافیک ناخواسته با پشتیبانی از مدیریت قوانین پویا (بدون راه اندازی مجدد) و اجرای قوانین فایروال دائمی. به عنوان فرانت اند برای و nftable کار می کند. FirewallD تقریباً در تمام توزیع های لینوکس قابل استفاده است.

مفاهیم پایه فایروال، مناطق و قوانین

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

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

فایروالد دارای مناطقی است که مجوزهای سرویس های مختلف از قبل پیکربندی شده اند. می توانید از این تنظیمات استفاده کنید یا مناطق خود را ایجاد کنید. فهرست مناطق پیش‌فرض که هنگام نصب فایروال ایجاد می‌شوند (ذخیره‌شده در پوشه /usr/lib/firewalld/zones/):

رها کردن حداقل سطح اعتماد تمام اتصالات ورودی بدون پاسخ مسدود می شوند، فقط اتصالات خروجی مجاز هستند.
مسدود کردن منطقه مشابه قبلی است، اما زمانی که درخواست های دریافتی رد می شوند، یک پیام icmp-host-prohibited برای Ipv4 یا icmp6-adm-prohibited برای Ipv6 ارسال می شود.
عمومی نشان دهنده شبکه های عمومی و غیرقابل اعتماد است. شما می توانید اتصالات ورودی انتخاب شده را به صورت جداگانه مجاز کنید.
خارجی شبکه های خارجی هنگام استفاده از فایروال به عنوان دروازه. این به گونه ای پیکربندی شده است که NAT را مخفی کند تا شبکه داخلی شما خصوصی بماند اما در دسترس باشد.
درونی؛ داخلی متضاد منطقه خارجی میزبان از اعتماد کافی برخوردار است، تعدادی خدمات اضافی در دسترس است.
dmz برای رایانه های واقع در DMZ (رایانه های ایزوله بدون دسترسی به بقیه شبکه) استفاده می شود. فقط برخی از اتصالات ورودی مجاز هستند.
کار کردن منطقه برای ماشین های کار (اکثر کامپیوترهای موجود در شبکه قابل اعتماد هستند)؛
خانه منطقه شبکه خانگی اکثر رایانه های شخصی قابل اعتماد هستند، اما فقط برخی از اتصالات ورودی پشتیبانی می شوند.
قابل اعتماد به تمام ماشین های موجود در شبکه اعتماد کنید. بازترین گزینه از همه گزینه های موجود، نیاز به استفاده آگاهانه دارد.

AT فایروالدو مجموعه از قوانین استفاده می شود - دائمی و موقت. قوانین موقت تا زمان راه اندازی مجدد سرور کار می کنند. به طور پیش فرض، هنگام اضافه کردن قوانین به فایروال، قوانین موقتی در نظر گرفته می شوند ( زمان اجرا). برای افزودن یک قانون به صورت دائمی، باید از پرچم استفاده کنید - دائمی. چنین قوانینی پس از راه اندازی مجدد سرور اعمال خواهند شد.

نصب و فعال کردن فایروال در CentOS

در CentOS 7/8، فایروال به طور پیش فرض با سیستم عامل نصب می شود. اگر آن را حذف کرده اید و می خواهید فایروالد را نصب کنید، می توانید از مدیر استاندارد /dnf استفاده کنید:

# yum فایروال -y - را برای Centos 7 نصب کنید
# dnf نصب فایروال -y - برای Centos 8

به دیو فایروالبا شروع سرور به طور خودکار شروع شد، باید آن را به موارد زیر اضافه کنید:

# systemctl فایروال را فعال می کند

و اجرا:

# systemctl فایروال را راه اندازی می کند

بررسی وضعیت خدمات:

فایروال وضعیت # systemctl

● firewalld.service - فایروال - شبح فایروال پویا بارگیری شد: بارگیری شد (/usr/lib/systemd/system/firewalld.service؛ فعال؛ از پیش تعیین شده فروشنده: فعال) فعال: فعال (در حال اجرا) از دوشنبه 14-10-2019 14:54 :40 +06; 22 ثانیه پیش اسناد: man:firewalld(1) PID اصلی: 13646 (firewalld) CGroup: /system.slice/firewalld.service └─13646 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nop Oct 14 14:54:40 server.vpn.ru systemd: راه اندازی فایروال - شبح فایروال پویا... 14 اکتبر 14:54:40 server.vpn.ru systemd: فایروال شروع شده - شبح فایروال پویا.

یا دستور دهید:

# فایروال-cmd --state

فرمان فایروال-cmd قسمت جلویی فایروالد برای nftables/iptables است.

# فایروال-cmd --state

کار با قوانین فایروال

قوانین پیش فرض:

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

# فایروال-cmd --get-default-zone

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

بیایید منطقه فعال را بررسی کنیم. همچنین یک - عمومی است:

# فایروال-cmd --get-active-zones

رابط های عمومی: eth0

همانطور که می بینید، رابط شبکه eth0 توسط منطقه کنترل می شود عمومی.

برای مشاهده قوانین منطقه فعال، تایپ کنید:

# فایروال-cmd --list-all

هدف عمومی (فعال): پیش‌فرض icmp-block-inversion: بدون رابط: منابع eth0: خدمات: dhcpv6-client پورت‌های ssh: پروتکل‌ها: بالماسکه: بدون پورت‌های فوروارد: پورت‌های منبع: بلوک‌های icmp: قوانین غنی:

از لیست، مشاهده می کنید که عملیات معمول مربوط به کلاینت DHCP و ssh به این منطقه اضافه شده است.

مناطق در دسترس

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

# فایروال-cmd --get-zones

من این لیست را دریافت کردم:

بلوک dmz قطره خارجی خانه داخلی داخلی کار مورد اعتماد عمومی

برای بررسی قوانین یک منطقه خاص، باید پرچم - منطقه را اضافه کنید.

# فایروال-cmd --zone=home --list-all

هدف اصلی: پیش‌فرض icmp-block-inversion: بدون رابط: منابع: خدمات: dhcpv6-client mdns samba-client پورت‌های ssh: پروتکل‌ها: بالماسکه: بدون درگاه‌های فوروارد: منبع-پورت: icmp-blocks: قوانین غنی:

قوانین همه مناطق را می توان با دستور زیر مشاهده کرد:

# فایروال-cmd --list-all-zones

این فهرست بسیار بزرگ خواهد بود، زیرا می تواند مناطق زیادی وجود داشته باشد.

منطقه پیش فرض را تغییر دهید.

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

# فایروال-cmd --zone=home -change-interface=eth0

بعد از پارامتر --zone=منطقه مورد نظر را مشخص کنید.

برای تغییر منطقه پیش فرض، باید از دستور زیر استفاده کنید:

# فایروال-cmd --set-default-zone=home

قوانین برنامه را اضافه کنید

برای باز کردن یک پورت برای یک برنامه، می توانید یک سرویس را به استثناها اضافه کنید. لیست خدمات موجود:

خروجی شامل تعداد زیادی سرویس خواهد بود. اطلاعات دقیق در مورد خدمات در آن موجود است xmlفایل. این فایل ها در دایرکتوری قرار دارند /usr/lib/firewalld/services.

مثلا:

# cd /usr/lib/firewalld/services

نامه (SMTP) این گزینه امکان تحویل نامه SMTP ورودی را می دهد. اگر می‌خواهید به میزبان‌های راه دور اجازه دهید مستقیماً برای ارسال نامه به دستگاه شما متصل شوند، این گزینه را فعال کنید. اگر نامه‌های خود را از سرور ISP خود توسط POP3 یا IMAP جمع‌آوری می‌کنید، یا از ابزاری مانند fetchmail استفاده می‌کنید، نیازی به فعال کردن آن ندارید. توجه داشته باشید که یک سرور SMTP که به درستی پیکربندی نشده است می‌تواند به ماشین‌های راه دور اجازه دهد تا از سرور شما برای ارسال استفاده کنند. هرزنامه ها.

فایل XML حاوی توضیحات سرویس، پروتکل و شماره پورتی است که در فایروال باز می شود.

هنگام اضافه کردن قوانین، می توانید از پارامتر استفاده کنید --افزودن-سرویسبرای در دسترس قرار دادن یک سرویس خاص:

# فایروال-cmd --zone=public --add-service=http

# فایروال-cmd --zone=public --add-service=https

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

# firewall-cmd --zone=public --list-services

dhcpv6-client http https ssh

اگر می‌خواهید این قوانین را دائمی کنید، باید پارامتر را هنگام اضافه کردن اضافه کنید - دائمی.

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

# firewall-cmd --permanent --zone=public --remove-service=http

تست dhcpv6-client https ssh

اگر می خواهید سرویس خود را به استثناها اضافه کنید، می توانید یک فایل ایجاد کنید xmlخودت و پر کن می توانید داده ها را از هر سرویس کپی کنید، نام، توضیحات و شماره پورت را تغییر دهید.

بیایید فایل را کپی کنیم smtp.xmlبه دایرکتوری برای کار با خدمات کاربر:

# cp /usr/lib/firewalld/services/smtp.xml /etc/firewalld/services

توضیحات سرویس را در فایل تغییر دهید.

خود فایل xml نیز باید با توجه به نام سرویس شما تغییر نام دهد. پس از آن، باید فایروال را مجددا راه اندازی کنید و بررسی کنید که آیا سرویس ما در لیست است:

با سرویس تماس گرفتم تستو در لیست ظاهر شد:

syslog-tls telnet test tftp

اکنون می توانید سرویس ایجاد شده را به هر منطقه اضافه کنید:

# firewall-cmd --zone=public --add-service=test --permanent

# firewall-cmd --zone=public --permanent --list-services

تست dhcpv6-client http https ssh

اگر سرویس مورد نیاز خود را در لیست پیدا نکردید، می توانید پورت مورد نظر را در فایروالد با دستور زیر باز کنید:

# firewall-cmd --zone=public -add-port=77/tcp - open port 77 tcp
# firewall-cmd --zone=public -add-port=77/udp - open port 77 udp
# firewall-cmd --zone=public -add-port=77-88/udp - محدوده پورت باز 77-88 udp
# firewall-cmd --zone=public -list-ports - چک لیست پورت های مجاز

مسدود کردن/اجازه دادن به پاسخ های ICMP:

# فایروال-cmd --zone=public --add-icmp-block=echo-reply
# فایروال-cmd --zone= عمومی --remove-icmp-block=echo-reply

حذف پورت اضافه شده:

# فایروال-cmd --zone=public -remove-port=77/udp - حذف قانون موقت 77 udp

# firewall-cmd --permanent --zone=public -remove-port=77/udp - حذف قانون دائمی

اضافه کردن مناطق سفارشی

شما می توانید منطقه خود را ایجاد کنید (من آن را صدا می کنم ما):

# firewall-cmd --permanent --new-zone=our

پس از ایجاد یک منطقه جدید و همچنین پس از ایجاد یک سرویس، راه اندازی مجدد مورد نیاز است فایروال:

# فایروال-cmd --بارگیری مجدد

# فایروال-cmd --get-zones

بلوک dmz رها کردن خانه خارجی داخلی کار مورد اعتماد عمومی ما

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

فایروال: مسدود کردن آدرس های IP، ایجاد استثناها

می توانید آدرس های IP قابل اعتماد را به استثناهای فایروال اضافه کنید یا موارد ناخواسته را مسدود کنید.

برای افزودن یک آدرس IP خاص (به عنوان مثال 8.8.8.8) به سرور خود از طریق فایروال، از دستور استفاده کنید:

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="8.8.8.8" accept"

منطقه را بررسی کنید و مطمئن شوید IPبه استثنائات در قوانین غنی اضافه شده است:

هدف عمومی (فعال): پیش‌فرض icmp-block-inversion: بدون رابط: منابع eth0: خدمات: dhcpv6-client http https ssh درگاه‌های آزمایشی: پروتکل‌ها: بالماسکه: بدون پورت‌های فوروارد: پورت‌های منبع: بلوک‌های icmp: قوانین غنی: rule family="ipv4" source address="8.8.8.8" قبول

برای مسدود کردن IP، نیاز به تعویض دارد تایید کنیدبر روی رد کردن:

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="8.8.4.4" reject"

# فایروال-cmd --zone=public --list-all

هدف عمومی (فعال): پیش‌فرض icmp-block-inversion: بدون رابط: منابع eth0: خدمات: dhcpv6-client http https ssh درگاه‌های آزمایشی: پروتکل‌ها: بالماسکه: بدون پورت‌های فوروارد: پورت‌های منبع: بلوک‌های icmp: قوانین غنی: rule family="ipv4" source address="8.8.8.8" accept rule family="ipv4" source address="8.8.4.4" reject

شما می توانید یک سرویس خاص را فقط برای درخواست های یک آدرس IP خاص مجاز کنید:

#firewall-cmd --permanent --add-rich-rule "rule family="ipv4" source address="10.10.1.0/24" service name="https" accept"

اگر نیاز فوری به مسدود کردن تمام درخواست‌ها به سرور دارید، از دستور panic استفاده کنید:

# فایروال-cmd --panic-on

با دستور زیر می توانید حالت پانیک را خاموش کنید:

# فایروال-cmd --panic-off

یا با راه اندازی مجدد سرور.

می‌توانید پیکربندی فایروال را قفل کنید تا از تغییر قوانین فایروال ایجاد شده توسط سرویس‌های ریشه محلی جلوگیری کنید:

# فایروال-cmd --lockdown-on

غیرفعال کردن حالت قفل:

# فایروال-cmd --lockdown-off

ارسال پورت در فایروالد

شما می توانید یک قانون حمل و نقل پورت در فایروالد ایجاد کنید. برای فوروارد پورت 443 به 9090:

# فایروال-cmd --zone=public --add-forward-port=port=443:proto=tcp:toport=9090 -- دائمی

برای حذف یک قانون ارسال پورت:

# firewall-cmd --zone=public --remove-forward-port=port=443:proto=tcp:toport=9090

FirewallD یک ابزار مدیریت فایروال است که به طور پیش‌فرض در سرورهای CentOS 7 موجود است. این ابزار اساساً یک بسته‌بندی در اطراف IPTables است و دارای یک ابزار پیکربندی گرافیکی فایروال-config و یک ابزار خط فرمان فایروال-cmd است. با سرویس IPtables، هر تغییر مستلزم حذف قوانین قدیمی و ایجاد قوانین جدید در فایل ` /etc/sysconfig/iptables`، در حالی که با فایروال فقط تفاوت ها اعمال می شود.

مناطق فایروال

FirewallD از سرویس ها و مناطق به جای قوانین و زنجیره ها در Iptables استفاده می کند. مناطق زیر به طور پیش فرض در دسترس هستند:

  • رها کردن- تمام بسته های شبکه ورودی را بدون پاسخ رها کنید، فقط اتصالات شبکه خروجی در دسترس هستند.
  • مسدود کردن- همه بسته های شبکه ورودی را با پیام icmp-host-hibited رد کنید، فقط اتصالات شبکه خروجی در دسترس هستند.
  • عمومی- فقط اتصالات ورودی انتخاب شده برای استفاده در مناطق عمومی پذیرفته می شود
  • خارجی– برای شبکه های خارجی با ماسکرینگ، فقط اتصالات ورودی انتخابی پذیرفته می شود.
  • dmz– DMZ، در دسترس عموم با دسترسی محدود به شبکه داخلی، فقط اتصالات ورودی انتخابی پذیرفته می شود.
  • کار کردن
  • خانه- برای رایانه های موجود در منطقه اصلی، فقط اتصالات ورودی انتخاب شده پذیرفته می شود.
  • درونی؛ داخلی– برای رایانه های موجود در شبکه داخلی شما، فقط اتصالات ورودی انتخاب شده پذیرفته می شود.
  • قابل اعتماد- تمامی اتصالات شبکه پذیرفته می شود.

برای دریافت لیستی از تمام مناطق موجود:

# فایروال-cmd --get-zones کار می کنند بلوک عمومی dmz خانه مورد اعتماد خارجی داخلی را حذف می کنند

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

# فایروال-cmd --get-default-zone public

برای تغییر منطقه پیش فرض:

خدمات فایروال

سرویس‌های FirewallD فایل‌های پیکربندی XML هستند که اطلاعاتی در مورد ورودی سرویس برای فایروال دارند. برای دریافت لیست تمام خدمات موجود:

# فایروال-cmd --get-services amanda-client amanda-k5-client bacula bacula-client ceph ceph-mon dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync freeipa-ldap freeipa-ldaps freeipa-replication. http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mosh mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetd radius rpcsyncdmaster samba samba- Client sane smtp smtps snmp snmptrap squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-server

فایل های پیکربندی XML در دایرکتوری ها ذخیره می شوند /usr/lib/firewalld/services/و /etc/firewalld/services/.

راه اندازی فایروال با FirewallD

به عنوان مثال، در اینجا نحوه راه اندازی فایروال با FirewallD در صورتی که از وب سرور، SSH در پورت 7022 و سرور ایمیل استفاده می کنید، توضیح داده شده است.

ابتدا منطقه پیش فرض را برای DMZ تنظیم می کنیم.

# firewall-cmd --set-default-zone=dmz # firewall-cmd --get-default-zone dmz

برای افزودن قوانین سرویس پایدار برای HTTP و HTTPS در DMZ، دستور زیر را اجرا کنید:

# firewall-cmd --zone=dmz --add-service=http --permanent # firewall-cmd --zone=dmz --add-service=https --permanent

پورت 25 (SMTP) و پورت 465 (SMTPS) را باز کنید:

فایروال-cmd --zone=dmz --add-service=smtp --فایروال دائمی-cmd --zone=dmz --add-service=smtps --دائمی

درگاه های باز، IMAP، IMAPS، POP3 و POP3S:

فایروال-cmd --zone=dmz --add-service=imap --فایروال دائمی-cmd --zone=dmz --add-service=imaps --فایروال دائمی-cmd --zone=dmz --add-service= pop3 -- فایروال دائمی-cmd --zone=dmz --add-service=pop3s -- دائمی

از آنجایی که پورت SSH به 7022 تغییر کرده است، سرویس SSH (پورت 22) را حذف کرده و پورت 7022 را باز می کنیم.

فایروال-cmd --remove-service=ssh -- فایروال دائمی-cmd --add-port=7022/tcp -- دائمی

برای اعمال تغییرات، باید فایروال را مجددا راه اندازی کنیم:

فایروال-cmd --بارگیری مجدد

و در نهایت، می توانید قوانین را فهرست کنید.

مناطق

دیمون فایروالد گروه‌هایی از قوانین را با استفاده از مناطق به اصطلاح مدیریت می‌کند.

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

رایانه هایی که اغلب به شبکه های مختلف (مانند لپ تاپ) متصل می شوند، می توانند از مناطق برای تغییر مجموعه قوانین بر اساس محیط خود استفاده کنند. به عنوان مثال، هنگام اتصال به یک شبکه WiFi عمومی، فایروال می تواند قوانین سخت گیرانه تری را اعمال کند، در حالی که محدودیت ها را در شبکه خانگی کاهش می دهد.

مناطق زیر در فایروال وجود دارد:

  • drop: پایین ترین سطح اعتماد شبکه. تمام ترافیک ورودی بدون پاسخ حذف می شود، فقط اتصالات خروجی پشتیبانی می شوند.
  • بلوک: این منطقه مشابه منطقه قبلی است، اما درخواست های دریافتی با پیام icmp-host-prohibited یا icmp6-adm-prohibited حذف می شوند.
  • public: این ناحیه نشان دهنده یک شبکه عمومی است که نمی توان به آن اعتماد کرد، اما اتصالات ورودی را به صورت موردی می پذیرد.
  • خارجی: منطقه شبکه های خارجی. از پوشش NAT پشتیبانی می کند که شبکه داخلی را بسته نگه می دارد اما همچنان قابل دسترسی است.
  • داخلی: سمت معکوس منطقه خارجی، شبکه های داخلی. کامپیوترهای موجود در این منطقه قابل اعتماد هستند. خدمات اضافی در دسترس است.
  • dmz: برای رایانه های واقع در DMZ (رایانه های ایزوله ای که به بقیه شبکه دسترسی ندارند) استفاده می شود. فقط برخی از اتصالات ورودی را پشتیبانی می کند.
  • کار: منطقه شبکه کار. بیشتر ماشین های موجود در شبکه قابل اعتماد هستند. خدمات اضافی در دسترس است.
  • خانه: منطقه شبکه خانگی. محیط قابل اعتماد است، اما فقط اتصالات ورودی تعریف شده توسط کاربر پشتیبانی می شود.
  • اعتماد: همه ماشین‌های موجود در شبکه قابل اعتماد هستند.

قوانین ذخیره سازی

قوانین فایروال یا دائمی یا موقت هستند. اگر قانون ظاهر شود یا در مجموعه تغییر کند، رفتار فایروال فعلی بلافاصله تغییر می کند. با این حال، پس از راه اندازی مجدد، تمام تغییرات در صورت ذخیره نشدن از بین خواهند رفت.

اکثر دستورات فایروال-cmd می توانند از پرچم --permanent استفاده کنند که قانون را ذخیره می کند و پس از آن برای همیشه استفاده می شود.

فعال کردن فایروال فایروال

ابتدا باید دیمون را فعال کنید. فایل واحد systemd firewalld.service نامیده می شود. برای شروع دیمون، تایپ کنید.

sudo systemctl راه اندازی firewalld.service

مطمئن شوید که سرویس در حال اجرا است:

فایروال-cmd --state
در حال اجرا

فایروال اکنون مطابق تنظیمات پیش فرض راه اندازی و اجرا می شود.

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

قوانین فایروال پیش فرض

مشاهده قوانین پیش فرض

برای اینکه بفهمید کدام منطقه پیش فرض است، تایپ کنید:

فایروال-cmd --get-default-zone
عمومی

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

برای دریافت لیستی از مناطق فعال، وارد کنید:


عمومی
رابط ها: eth0 eth1

دو رابط شبکه وجود دارد که به منطقه عمومی متصل هستند: eth0 و eth1. رابط های محدود شده به یک منطقه بر اساس قوانین آن منطقه عمل می کنند.

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

فایروال-cmd --list-all
عمومی (پیش فرض، فعال)
رابط ها: eth0 eth1
منابع:
خدمات: dhcpv6-client ssh
پورت ها:
بالماسکه: نه
فوروارد پورت ها:
بلوک های icmp:
قوانین غنی:

بنابراین اکنون می دانید که:

  • public منطقه پیش فرض و تنها منطقه فعال است.
  • رابط های eth0 و eth1 به آن متصل هستند.
  • از ترافیک DHCP (تخصیص آدرس IP) و SSH (مدیریت از راه دور) پشتیبانی می کند.

سایر مناطق فایروال

اکنون باید با مناطق دیگر آشنا شوید.

برای دریافت لیستی از تمام مناطق موجود، تایپ کنید:

فایروال-cmd --get-zones

برای دریافت تنظیمات یک منطقه خاص، پرچم --zone= را به دستور اضافه کنید.

فایروال-cmd --zone=home --list-all
خانه
رابط ها:
منابع:
خدمات: dhcpv6-client ipp-client mdns samba-client ssh
پورت ها:
بالماسکه: نه
فوروارد پورت ها:
بلوک های icmp:
قوانین غنی:

برای فهرست کردن تعاریف همه مناطق موجود، گزینه --list-all-zones را اضافه کنید. برای مشاهده راحت تر، خروجی را می توان به پیجر ارسال کرد:

فایروال-cmd --list-all-zones | کمتر

پیکربندی مناطق رابط

در ابتدا، تمام رابط های شبکه به منطقه پیش فرض محدود می شوند.

تغییر ناحیه رابط برای یک جلسه

برای تغییر یک رابط به منطقه دیگر برای یک جلسه، از گزینه های --zone= و --change-interface= استفاده کنید.

به عنوان مثال، برای انتقال eth0 به منطقه اصلی، باید تایپ کنید:

sudo firewall-cmd --zone=home --change-interface=eth0
موفقیت

توجه داشته باشید: هنگام انتقال یک رابط به منطقه دیگر، توجه داشته باشید که ممکن است بر عملکرد برخی از سرویس ها تأثیر بگذارد. به عنوان مثال، منطقه اصلی از SSH پشتیبانی می کند، بنابراین اتصالات به این سرویس قطع نمی شود. اما برخی از مناطق همه اتصالات، از جمله SSH را حذف می‌کنند، و سپس می‌توانید به طور تصادفی دسترسی خود را به سرور خود مسدود کنید.

برای تأیید اینکه رابط به منطقه جدید متصل است، تایپ کنید:

فایروال-cmd --get-active-zones
خانه
رابط ها: eth0
عمومی
رابط ها: eth1

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

sudo systemctl راه اندازی مجدد firewalld.service
فایروال-cmd --get-active-zones
عمومی
رابط ها: eth0 eth1

تغییر منطقه رابط به طور دائم

اگر منطقه دیگری در تنظیمات رابط مشخص نشده باشد، پس از راه اندازی مجدد فایروال، اینترفیس مجدداً به منطقه پیش فرض متصل می شود. در CentOS، چنین تنظیماتی در فهرست /etc/sysconfig/network-scripts، در فایل‌هایی با فرمت ifcfg-interface ذخیره می‌شوند.

برای تعریف یک منطقه برای یک رابط، فایل پیکربندی رابط را باز کنید، به عنوان مثال:

متغیر ZONE= را به انتهای فایل اضافه کنید و ناحیه دیگری را به عنوان مقدار مشخص کنید، برای مثال home:

. . .
DNS1=2001:4860:4860::8844
DNS2=2001:4860:4860::8888
DNS3=8.8.8.8
ZONE=خانه

ذخیره کنید و فایل را ببندید.

برای به روز رسانی تنظیمات، سرویس شبکه و فایروال را مجددا راه اندازی کنید:

sudo systemctl سرویس شبکه را راه اندازی مجدد کنید
sudo systemctl راه اندازی مجدد firewalld.service

پس از راه اندازی مجدد، رابط eth0 به منطقه اصلی متصل می شود.

فایروال-cmd --get-active-zones
خانه
رابط ها: eth0
عمومی
رابط ها: eth1

تنظیم منطقه پیش فرض

همچنین می توانید یک منطقه پیش فرض متفاوت را انتخاب کنید.

این کار با استفاده از پارامتر --set-default-zone= انجام می شود. پس از آن، تمام اینترفیس ها به منطقه دیگری محدود می شوند:

sudo firewall-cmd --set-default-zone=home
خانه
رابط ها: eth0 eth1

قوانین برنامه را ایجاد کنید

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

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

فایروال-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp در دسترس بودن بالا http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-mount ppmsl postgresql proxy-dhcp شعاع rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transmission-client vnc-server wbem-https

توجه داشته باشید: اطلاعات بیشتر در مورد هر سرویس خاص را می توانید در فایل های xml در پوشه /usr/lib/firewalld/services بیابید. به عنوان مثال، اطلاعات مربوط به سرویس SSH در /usr/lib/firewalld/services/ssh.xml ذخیره می شود و به شکل زیر است:



SSH

برای فعال کردن پشتیبانی از یک سرویس در یک منطقه خاص، از گزینه --add-service= استفاده کنید. می توانید منطقه هدف را با گزینه --zone= مشخص کنید. به طور پیش فرض، این تغییرات برای یک جلسه کار می کنند. برای ذخیره تغییرات و استفاده دائمی از آنها، پرچم --permanent را اضافه کنید.

به عنوان مثال، برای راه اندازی یک وب سرور برای سرویس دهی به ترافیک HTTP، ابتدا باید پشتیبانی از این ترافیک را در منطقه عمومی برای یک جلسه فعال کنید:

sudo firewall-cmd --zone=public --add-service=http

اگر سرویس باید به منطقه پیش فرض اضافه شود، می توان پرچم --zone= را حذف کرد.

بررسی موفقیت آمیز بودن عملیات:

firewall-cmd --zone=public --list-services
مشتری dhcpv6 http ssh

عملکرد سرویس و فایروال را تست کنید. اگر همه چیز به درستی کار می کند، می توانید مجموعه قوانین دائمی را تغییر دهید و یک قانون برای پشتیبانی از این سرویس به آن اضافه کنید.

sudo firewall-cmd --zone=public --permanent --add-service=http

برای مشاهده لیستی از قوانین دائمی، تایپ کنید:

sudo firewall-cmd --zone=public --permanent --list-services
مشتری dhcpv6 http ssh

اکنون منطقه عمومی از HTTP و پورت 80 به طور دائم پشتیبانی می کند. اگر وب سرور می تواند ترافیک SSL/TLS را ارائه کند، می توانید سرویس https را نیز اضافه کنید (برای یک جلسه یا در مجموعه ای از قوانین دائمی):

sudo firewall-cmd --zone=public --add-service=https
sudo firewall-cmd --zone=public --permanent --add-service=https

اگر سرویس مورد نظر در دسترس نباشد چه باید کرد؟

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

روش 1: تنظیم پورت

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

به عنوان مثال، برنامه ای که از پورت 5000 و TCP استفاده می کند باید به منطقه عمومی اضافه شود. برای فعال کردن پشتیبانی برنامه در هر جلسه، از پارامتر --add-port= استفاده کنید و پروتکل tcp یا udp را مشخص کنید.

sudo firewall-cmd --zone=public --add-port=5000/tcp

بررسی موفقیت آمیز بودن عملیات:

فایروال-cmd --list-ports
5000/tcp

همچنین می توانید با جدا کردن اولین و آخرین پورت محدوده با یک خط تیره، محدوده سریالی از پورت ها را مشخص کنید. به عنوان مثال، اگر برنامه از پورت های UDP 4990-4999 استفاده می کند، برای افزودن آنها به منطقه عمومی، باید تایپ کنید:

sudo firewall-cmd --zone=public --add-port=4990-4999/udp

پس از تست، می توانید این قوانین را به تنظیمات فایروال دائمی اضافه کنید.

sudo firewall-cmd --zone=public --permanent --add-port=5000/tcp
sudo firewall-cmd --zone=public --permanent --add-port=4990-4999/udp
sudo firewall-cmd --zone=public --permanent --list-ports
موفقیت
موفقیت
4990-4999/udp 5000/tcp

روش 2: تعریف خدمات

افزودن پورت‌ها به مناطق آسان است، اما اگر تعداد زیادی از این برنامه‌ها را دارید، پیگیری این که هر پورت برای چه چیزی است، دشوار است. برای جلوگیری از این وضعیت، می توانید به جای پورت، سرویس ها را تعریف کنید.

سرویس ها به سادگی مجموعه ای از پورت ها با نام و توضیحات خاص هستند. مدیریت تنظیمات آسان‌تر از خدمات است، اما از خود پورت‌ها پیچیده‌تر هستند.

اولین مرحله کپی کردن اسکریپت موجود از پوشه /usr/lib/firewalld/services در پوشه /etc/firewalld/services است (این جایی است که فایروال به دنبال تنظیمات سفارشی می‌گردد).

به عنوان مثال، می توانید تعریف سرویس SSH را کپی کنید و از آن برای تعریف مثال سرویس شرطی استفاده کنید. نام اسکریپت باید با نام سرویس مطابقت داشته باشد و پسوند xml. داشته باشد.

sudo cp /usr/lib/firewalld/services/service.xml /etc/firewalld/services/example.xml

فایل کپی شده را ویرایش کنید

sudo nano /etc/firewalld/services/example.xml

فایل حاوی تعریف SSH است:



SSH
Secure Shell (SSH) پروتکلی برای ورود به سیستم و اجرای دستورات در ماشین های راه دور است. ارتباطات رمزگذاری شده ایمن را فراهم می کند. اگر قصد دارید از راه دور از طریق SSH از طریق یک رابط فایروال به دستگاه خود دسترسی داشته باشید، این گزینه را فعال کنید. برای مفید بودن این گزینه به بسته openssh-server نصب شده نیاز دارید.

بخش بزرگی از تعریف سرویس، ابرداده است. می توانید نام کوتاه سرویس را در برچسب ها تغییر دهید . این نام سرویس قابل خواندن توسط انسان است. همچنین باید توضیحاتی در مورد خدمات اضافه کنید. تنها تغییری که بر عملکرد سرویس تأثیر می گذارد، تغییر شماره پورت و پروتکل است.

بیایید به سرویس مثال برگردیم. فرض کنید برای باز کردن پورت TCP 7777 و UDP 8888 نیاز است.



خدمات نمونه
این فقط یک نمونه سرویس است. احتمالاً نباید در یک سیستم واقعی استفاده شود.

ذخیره کنید و فایل را ببندید.

فایروال را مجدد راه اندازی کنید:

sudo firewall-cmd --reload

این سرویس اکنون در لیست خدمات موجود ظاهر می شود:

فایروال-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns مثال ftp در دسترس بودن بالا http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libdvirt-pmspndt my pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transmission-client vnc-server wbem-https

ایجاد مناطق

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

به عنوان مثال، می توانید یک منطقه وب عمومی برای یک وب سرور و یک منطقه خصوصی DNS برای یک سرویس DNS ایجاد کنید.

هنگام ایجاد یک منطقه، باید آن را به تنظیمات فایروال دائمی اضافه کنید.

ایجاد مناطق وب عمومی و خصوصی DNS را امتحان کنید:

sudo firewall-cmd --permanent --new-zone=publicweb
sudo firewall-cmd --permanent --new-zone=privateDNS

بررسی کنید که مناطق وجود دارند:

sudo firewall-cmd --permanent --get-zones

در جلسه فعلی، مناطق جدید در دسترس نخواهند بود:

فایروال-cmd --get-zones
بلوک dmz قطره خارجی خانه داخلی داخلی کار مورد اعتماد عمومی

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

sudo firewall-cmd --reload
فایروال-cmd --get-zones
بلوک dmz رها کردن خانه خارجی داخلی privateDNS عمومی وب عمومی کار مورد اعتماد

اکنون می توانید خدمات و پورت های مورد نیاز را به مناطق جدید اختصاص دهید. به عنوان مثال، می توانید SSH، HTTP و HTTPS را به منطقه وب عمومی اضافه کنید.

sudo firewall-cmd --zone=publicweb --add-service=ssh
sudo firewall-cmd --zone=publicweb --add-service=http
sudo firewall-cmd --zone=publicweb --add-service=https
فایروال-cmd --zone=publicweb --list-all
وب عمومی
رابط ها:
منابع:
خدمات: http https ssh
پورت ها:
بالماسکه: نه
فوروارد پورت ها:
بلوک های icmp:
قوانین غنی:

می توانید DNS را به منطقه privateDNS اضافه کنید:

sudo firewall-cmd --zone=privateDNS --add-service=dns
فایروال-cmd --zone=privateDNS --list-all
خصوصی DNS
رابط ها:
منابع:
خدمات: dns
پورت ها:
بالماسکه: نه
فوروارد پورت ها:
بلوک های icmp:
قوانین غنی:

سپس می توانید رابط های شبکه را به مناطق جدید متصل کنید:

sudo firewall-cmd --zone=publicweb --change-interface=eth0
sudo firewall-cmd --zone=privateDNS --change-interface=eth1

اکنون می توانید تنظیمات را آزمایش کنید. اگر همه چیز درست کار کند، می توانید این قوانین را به تنظیمات دائمی اضافه کنید.

sudo firewall-cmd --zone=publicweb --permanent --add-service=ssh
sudo firewall-cmd --zone=publicweb --permanent --add-service=http
sudo firewall-cmd --zone=publicweb --permanent --add-service=https
sudo firewall-cmd --zone=privateDNS --permanent --add-service=dns

سپس می توانید رابط های شبکه را برای اتصال خودکار به منطقه صحیح پیکربندی کنید.

به عنوان مثال، eth0 به وب عمومی محدود می شود:

sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
. . .
IPV6_AUTOCONF=نه
DNS1=2001:4860:4860::8844
DNS2=2001:4860:4860::8888
DNS3=8.8.8.8
ZONE=وب عمومی

و رابط eth1 به privateDNS محدود می شود:

sudo nano /etc/sysconfig/network-scripts/ifcfg-eth1
. . .
NETMASK=255.255.0.0
DEFROUTE = نه
NM_CONTROLLED="بله"
ZONE=DNS خصوصی

راه اندازی مجدد خدمات شبکه و فایروال:

شبکه sudo systemctl راه اندازی مجدد
فایروال sudo systemctl راه اندازی مجدد

بررسی مناطق:

فایروال-cmd --get-active-zones
خصوصی DNS
رابط ها: eth1
وب عمومی
رابط ها: eth0

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

firewall-cmd --zone=publicweb --list-services
http http ssh
فایروال-cmd --zone=privateDNS --list-services
dns

مناطق کاربری کاملاً عملیاتی هستند. شما می توانید هر یک از آنها را منطقه پیش فرض قرار دهید. مثلا:

sudo firewall-cmd --set-default-zone=publicweb

راه اندازی خودکار فایروال

اکنون که تمام تنظیمات را بررسی کرده اید و مطمئن شده اید که همه قوانین مطابق انتظار کار می کنند، می توانید فایروال را روی autostart تنظیم کنید.

برای این کار وارد کنید:

sudo systemctl فایروال را فعال می کند

اکنون فایروال با سرور شروع می شود.

نتیجه

فایروال فایروال ابزاری بسیار انعطاف پذیر است. Zone به شما این امکان را می دهد که به سرعت خط مشی فایروال را تغییر دهید.

اکنون می دانید فایروال چگونه کار می کند، با مفاهیم اولیه فایروال آشنا هستید، می توانید مناطق سفارشی ایجاد کنید و خدمات اضافه کنید.

برچسب ها: ,

امروز شما را با دیدگاه خود از پیکربندی اولیه یک سرور جهانی در یک سیستم عامل محبوب آشنا می کنم. من در مورد نحوه انجام تنظیمات اولیه سرور centos بلافاصله پس از نصب صحبت خواهم کرد تا از آن در هر ظرفیتی که انتخاب می کنید استفاده کنید. این نکات کاربردی امنیت و راحتی کار با سرور را افزایش می دهد. مقاله مربوط به دو نسخه آخر Centos - 7 و 8 خواهد بود.

  1. تنظیمات اولیه centos را که من روی سرور تازه نصب شده انجام می دهم لیست کنید.
  2. نمونه‌هایی از پیکربندی‌هایی را که در یک راه‌اندازی معمولی استفاده می‌کنم نشان دهید.
  3. در مورد راه اندازی centos بر اساس تجربه خود در سیستم مشاوره دهید.
  4. فهرستی از برنامه ها و ابزارهای معمولی که به مدیریت سرور کمک می کنند ارائه دهید.

این مقاله بخشی از یک سری مقالات در مورد سرور است.

معرفی

پس از انتشار نسخه جدید Centos 8، توصیف تنظیمات اولیه هر دو سرور در یک مقاله دشوار شد، اما من نمی‌خواستم مقاله را جدا کنم، زیرا لینک‌های دریافتی زیادی از مکان‌های مختلف برای آن وجود دارد. حفظ مواد مشترک برای هر دو نسخه راحت تر است، که من انجام خواهم داد. در عین حال تفاوت های بین دو نسخه به وضوح قابل مشاهده خواهد بود که تا یکی دو سال پس از انتشار centos 8 هر دو مرتبط خواهند بود و بسته به شرایط باید از هر دو نسخه استفاده کنید.

Centos 7 از یک مدیریت بسته استفاده می کند خوشگلو در Centos 8 - dnf. در همان زمان، آنها یک پیوند نمادین از yum به dnf گذاشتند، بنابراین شما می توانید هم نام اول و هم نام دوم را بنویسید. برای ثبات، من از yum در همه جا استفاده خواهم کرد، اما به شما هشدار می دهم، فقط برای اینکه بفهمید چرا این کار را به این صورت انجام می دهم. در واقع، CentOS 8 از dnf استفاده می کند که یک مدیر بسته متفاوت و مدرن است که به شما امکان می دهد با نسخه های مختلف یک نرم افزار کار کنید. برای این کار از مخازن جداگانه ای استفاده می شود که برای centos 8 ظاهر شد.

راه اندازی اولیه CentOS

من شخصاً پس از نصب با به روز رسانی کامل سیستم، هرگونه راه اندازی سیستم را، چه centos یا دیگری، شروع می کنم. اگر تصویر نصب تازه بود یا نصب از طریق شبکه انجام شد، به احتمال زیاد هیچ به روز رسانی وجود نخواهد داشت. اغلب آنها هستند، زیرا تصاویر نصب همیشه به طور منظم به روز نمی شوند.

ما سیستم را به روز می کنیم

# به روز رسانی yum

برای سهولت مدیریت، من همیشه Midnight Commander یا فقط mc را نصب می کنم:

# yum نصب mc

و بلافاصله برای آن، برجسته کردن نحو همه فایل هایی را که به صراحت در فایل نشان داده نشده اند روشن می کنم. /usr/share/mc/syntax/Syntaxنحو برای اسکریپت های sh و bash. این نحو عمومی برای فایل های پیکربندی که بیشتر در سرور استفاده می شوند مناسب است. رونویسی فایل ناشناخته. نحو. این الگویی است که برای فایل‌های .conf و .cf اعمال می‌شود، زیرا هیچ نحوی به‌صراحت به آنها پیوست نشده است.

# cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntax

بعد، ما به ابزارهای شبکه نیاز خواهیم داشت. بسته به مجموعه بسته های اولیه ای که هنگام نصب سیستم انتخاب می کنید، مجموعه ای از ابزارهای شبکه را خواهید داشت. در اینجا لیستی از مواردی است که من شخصاً به آنها عادت کردم - ifconfig، netstat، nslookup و برخی دیگر. اگر به آنها نیاز دارید، درست مانند من، پس پیشنهاد می کنم آنها را جداگانه نصب کنید، اگر قبلاً نصب نشده اند. اگر واقعاً به آنها نیاز ندارید و از آنها استفاده نمی کنید، می توانید از نصب آنها صرف نظر کنید. بیایید بررسی کنیم که در حال حاضر چه چیزی در سیستم داریم

#ifconfig

اگر جواب را دیدید:

Bash: ifconfig: دستور پیدا نشد

به این معنی است که برنامه کاربردی نصب نشده است. به جای ifconfig در CentOS اکنون یک ابزار کاربردی است ip. این نه تنها در مورد سنتو صدق می کند. این تصویر تقریباً در تمام توزیع‌های محبوب لینوکس مدرن است. من مدت زیادی است که به ifconfig عادت کرده ام، هرچند اخیراً زیاد از آن استفاده نمی کنم. من همیشه دوست داشتم که در توزیع های مختلف لینوکس همه چیز تقریباً یکسان باشد. با استفاده از ifconfig، می توانید شبکه را نه تنها در لینوکس، بلکه در freebsd نیز پیکربندی کنید. راحت است. و هنگامی که هر کیت توزیع ابزار خاص خود را دارد، این راحت نیست. اگرچه اکنون این دیگر چندان مرتبط نیست، زیرا من دیگر با Freebsd کار نمی کنم و ابزار IP در همه توزیع های لینوکس وجود دارد. با این حال، اگر به ifconfig نیاز دارید، می توانید بسته را نصب کنید ابزارهای شبکهکه شامل:

# yum نصب net-tools

برای اینکه دستورات nslookup برای ما یا مثلا میزبان کار کند، باید بسته را نصب کنید. bind-utils. اگر این کار انجام نشد، دستور:

# nslookup

یک خروجی وجود خواهد داشت:

Bash: nslookup: دستور پیدا نشد

بنابراین bind-utils را نصب کنید:

# yum install bind-utils

SELinux را غیرفعال کنید

SELinux را غیرفعال کنید. استفاده و راه اندازی آن یک گفتگوی جداگانه است. حالا من این کار را نمی کنم. پس بیایید آن را خاموش کنیم:

# mcedit /etc/sysconfig/selinux

مقدار را تغییر دهید

SELINUX=غیرفعال است

برای اعمال تغییرات می توانید راه اندازی مجدد کنید:

# راه اندازی مجدد

و اگر می خواهید غیرفعال کردن SELinux را بدون راه اندازی مجدد اعمال کنید، دستور را اجرا کنید:

# setenforce 0

در مورد غیرفعال کردن SELinux همیشه انتقادات زیادی دریافت می کنم. من می دانم چگونه کار می کند، می دانم چگونه آن را تنظیم کنم. تسلط بر آن واقعاً چندان دشوار و دشوار نیست. این انتخاب آگاهانه من است، اگرچه گاهی اوقات آن را تغییر می دهم. فرمت کار من با سیستم به گونه‌ای است که اغلب به SELinux نیازی ندارم، بنابراین زمان را برای آن تلف نمی‌کنم و آن را در تنظیمات اولیه centos غیرفعال می‌کنم. امنیت سیستم کار پیچیده ای است، به ویژه در دنیای مدرن توسعه وب، که در آن میکروسرویس ها و کانتینرها بر توپ حکومت می کنند. SELinux یک ابزار طاقچه است که همیشه و همه جا مورد نیاز نیست. بنابراین در این مقاله جایی ندارد. هر کسی که به آن نیاز دارد، SELinux را به طور جداگانه فعال کرده و پیکربندی می کند.

پارامترهای شبکه را مشخص کنید

راه اندازی اولیه centos را پس از نصب ادامه می دهیم. حالا اگر به دلایلی در حین نصب این کار را انجام ندادیم، یا اگر نیاز به تغییر آنها دارید، اجازه دهید این کار را انجام دهیم. به طور کلی، شبکه در Centos با استفاده از پیکربندی می شود مدیر شبکهو ابزار کنسول آن nmtui. با تنظیمات اولیه سیستم همراه است. یک رابط گرافیکی ساده و بصری وجود دارد، بنابراین چیزی برای گفتن وجود ندارد. من بیشتر به پیکربندی شبکه از طریق فایل های پیکربندی اسکریپت های شبکه عادت دارم. در نسخه centos 7، آنها خارج از جعبه هستند، در نسخه 8 حذف شدند. برای استفاده از آنها برای پیکربندی شبکه، باید بسته را جداگانه نصب کنید اسکریپت های شبکه.

# yum نصب اسکریپت های شبکه

اکنون می توانید راه اندازی شبکه را کامل کنید. برای این کار فایل را باز کنید /etc/sysconfig/network-scripts/ifcfg-eth0

# mcedit /etc/sysconfig/network-scripts/ifcfg-eth0

اگر تنظیمات شبکه را از طریق dhcp دریافت کنید، حداقل مجموعه تنظیمات در فایل پیکربندی به صورت زیر خواهد بود.

TYPE="Ethernet" BOOTPROTO="dhcp" DEFROUTE="بله" IPV4_FAILURE_FATAL="نه" NAME="eth0" DEVICE="eth0" ONBOOT="بله"

برای تنظیم یک آدرس آی پی استاتیک، تنظیمات به صورت زیر خواهد بود.

TYPE="Ethernet" BOOTPROTO="هیچ" DEFROUTE="بله" IPV4_FAILURE_FATAL="خیر" NAME="eth0" DEVICE="eth0" ONBOOT="بله" IPADDR=192.168.167.117 DNS1=196.7FW123 GDNS1=196.162.161.16. 192.168.167.113

در قسمت IPADDR آدرس خود را وارد کنید، در ماسک شبکه PREFIX، در دروازه GATEWAY آدرس DNS سرور dns را وارد کنید. فایل را ذخیره کنید و شبکه را مجددا راه اندازی کنید تا تنظیمات اعمال شود:

# systemctl راه اندازی مجدد شبکه

راه اندازی فایروال

افزودن مخازن

هنگام راه اندازی centos، اغلب به نرم افزاری نیاز دارید که در شلغم استاندارد نباشد. برای نصب بسته های اضافی، شما نیاز دارید. محبوب ترین آنها EPEL است. قبلا rpmforge بود ولی الان چند سالی هست که بسته شده. همه او را فراموش کردند. ما مخزن EPEL را به هم وصل می کنیم. همه چیز با او ساده است، او از شلغم استاندارد اضافه شده است:

# yum نصب epel-release

همچنین برای CentOS 7، مخزن REMI بسیار مفید است، که به شما امکان می‌دهد نسخه‌های جدیدتر php را برخلاف نسخه‌های موجود در مخزن استاندارد نصب کنید. یادآوری کنم که این نسخه php 5.4 است که دیگر خوب نیست و از پشتیبانی حذف شده است.

# دور در دقیقه -Uhv http://rpms.remirepo.net/enterprise/remi-release-7.rpm

برای Centos 8 remi هنوز مرتبط نیست، اما فکر می کنم موقتی است. اصولاً این دو مخزن در سنتو معمولاً در حالت کلی برای من کافی است. سایرین قبلاً برای نیازهای خاص برای نصب نرم افزارهای مختلف متصل شده اند.

پیکربندی ذخیره سازی تاریخچه در bash_history

در حال حرکت به سمت راه اندازی سیستم centos در سرور. ایجاد برخی تغییرات در مکانیزم استاندارد برای ذخیره تاریخچه فرمان مفید خواهد بود. او اغلب در مواقعی که نیاز دارید یکی از دستورات وارد شده قبلی را به خاطر بسپارید به شما کمک می کند. تنظیمات پیش فرض محدودیت هایی دارند که ناخوشایند هستند. در اینجا لیست آنها است:

  1. به طور پیش فرض، فقط 1000 دستور آخر ذخیره می شود. اگر تعداد آنها بیشتر باشد، موارد قدیمی حذف شده و موارد جدید جایگزین می شوند.
  2. هیچ تاریخی برای اجرای دستورات ذکر نشده است، فقط فهرستی از آنها به ترتیبی که اجرا شده اند.
  3. فایل با لیست دستورات پس از پایان جلسه به روز می شود. در طول جلسات موازی، برخی از دستورات ممکن است از بین بروند.
  4. کاملاً همه دستورات ذخیره می شوند، اگرچه ذخیره برخی از آنها فایده ای ندارد.

لیست آخرین دستورات اجرا شده در فهرست اصلی کاربر در یک فایل ذخیره می شود .bash_history(نقطه در ابتدا). می توان آن را با هر ویرایشگر باز کرد و مشاهده کرد. برای نمایش راحت تر لیست، می توانید دستور را در کنسول وارد کنید:

# تاریخ

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

# تاریخچه | گرپ یام

بنابراین ما تمام گزینه های اجرای دستور yum را که در تاریخچه ذخیره می شوند، خواهیم دید. بیایید کاستی های فهرست شده تنظیمات استاندارد برای ذخیره تاریخچه فرمان در CentOS را برطرف کنیم. برای این کار باید فایل را ویرایش کنید .bashrc، که در همان دایرکتوری فایل تاریخچه قرار دارد. خطوط زیر را به آن اضافه کنید:

صادرات HISTSIZE=10000 صادرات HISTTIMEFORMAT="%h %d %H:%M:%S " PROMPT_COMMAND="history -a" صادرات HISTIGNORE="ls:ll:history:w:htop"

گزینه اول حجم فایل را به 10000 خط افزایش می دهد. می توانید بیشتر درست کنید، اگرچه این اندازه معمولاً کافی است. پارامتر دوم مشخص می کند که تاریخ و زمان اجرای دستور باید ذخیره شود. خط سوم بلافاصله پس از اجرای دستور، آن را در تاریخچه ذخیره می کند. در خط آخر، لیستی از استثناها را برای دستوراتی که نیازی به ثبت در تاریخچه ندارند ایجاد می کنیم. من نمونه ای از ساده ترین لیست را آوردم. شما می توانید به صلاحدید خود به آن اضافه کنید.

برای اعمال تغییرات، باید از سیستم خارج شوید و دوباره وصل شوید یا دستور را اجرا کنید:

# منبع ~/.bashrc

در راه اندازی ذخیره سازی تاریخچه فرمان، تمام است. در فایل bashrc می توانید خیلی چیزهای جالب را پیکربندی کنید. زمانی به آن علاقه داشتم و تجربه می‌کردم، اما بعد همه چیز را رها کردم، زیرا معنایی ندارد. هنگام کار با سرورهای مشتری، اغلب bash پیش فرض را می بینم، بنابراین بهتر است به آن عادت کرده و در آن کار کنید. و تنظیمات و تزیینات جداگانه تعداد زیادی از رایانه ها و سرورهای شخصی است. نه کارگران بنابراین لازم نیست در این زمینه چیز دیگری را طبق استاندارد موجود در سرور centos پیکربندی کنم.

به روز رسانی خودکار سیستم

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

یام کرون

برای بررسی خودکار به‌روزرسانی‌ها در Centos 7، این ابزار به ما کمک می‌کند یام کرون. به طور سنتی از طریق yum از مخزن استاندارد نصب می شود.

# yum نصب yum cron

پس از نصب yum-cron، یک وظیفه خودکار برای اجرای ابزار در آن ایجاد می شود /etc/cron.dailyو /etc/cron.hourly. به طور پیش فرض، ابزار به روز رسانی هایی را که پیدا می کند دانلود می کند، اما آنها را اعمال نمی کند. در عوض، یک اعلان به روز رسانی در صندوق پستی ریشه محلی به مدیر ارسال می شود. سپس به صورت دستی وارد می شوید و تصمیم می گیرید که آیا به روز رسانی ها را در زمان مناسبی برای خود نصب کنید یا خیر. این حالت عملکرد به نظر من راحت ترین است، بنابراین من این تنظیمات را تغییر نمی دهم.

می‌توانید yum-cron را از طریق فایل‌های پیکربندی واقع در آن پیکربندی کنید /etc/yum/yum-cron.confو yum-cron-hourly.conf. آنها به خوبی اظهار نظر می کنند، بنابراین نیازی به توضیح دقیق ندارند. من به بخش توجه می کنم ، جایی که می توانید گزینه هایی را برای ارسال پیام مشخص کنید. پیش فرض ارسال نامه از طریق لوکال هاست است. می توانید تنظیمات را در اینجا تغییر دهید و از طریق یک سرور پست الکترونیکی شخص ثالث پیام ارسال کنید. اما در عوض، من شخصاً ترجیح می‌دهم به صورت سراسری برای کل سرور، ارسال ایمیل ریشه محلی به صندوق پستی خارجی را از طریق مجوز در سرور smtp دیگری پیکربندی کنم.

Dnf اتوماتیک

همانطور که قبلاً گفتم، Centos 8 از یک مدیر بسته متفاوت استفاده می کند - dnf. پیکربندی به روز رسانی بسته در آنجا از طریق ابزار انجام می شود dnf اتوماتیک. بیایید آن را نصب و راه اندازی کنیم.

# yum نصب dnf-automatic

مدیریت راه اندازی برنامه ریزی شده دیگر توسط cron انجام نمی شود، بلکه توسط systemd با زمانبندی داخلی آن انجام می شود. می توانید تایمرهای شروع خودکار را با دستور زیر مشاهده کنید:

# systemctl لیست تایمر *dnf-*

اگر هیچ وظیفه ای وجود ندارد، می توانید تایمر را به صورت دستی اضافه کنید:

# systemctl --now dnf-automatic.timer را فعال کنید

تایمر پیش‌فرض تنظیم شده است تا یک ساعت پس از بوت شدن سرور، dnf-automatic شروع شود و هر روز تکرار شود. پیکربندی تایمر در اینجا زندگی می کند - /etc/systemd/system/multi-user.target.wants/dnf-automatic.timer.

پیکربندی برای dnf-automatic موجود است /etc/dnf/automatic.conf. به طور پیش فرض، فقط به روز رسانی ها را دانلود می کند، اما آنها را اعمال نمی کند. پیکربندی به خوبی توضیح داده شده است، بنابراین می توانید آن را به روشی که می خواهید سفارشی کنید. توضیح جداگانه لازم نیست. به‌روزرسانی‌های بسته سیستم را مطابق میل خود سفارشی کنید. همونطور که گفتم من فقط به صورت خودکار دانلودشون میکنم. من همیشه نصب را با کنترل دستی تحت کنترل دارم.

سیل پیام در /var/log/messages را غیرفعال کنید

با ادامه پیکربندی centos، یک ناراحتی کوچک را برطرف خواهیم کرد. در نصب پیش فرض سیستم نسخه 7، تمام سیستم شما ثبت می شود /var/log/messagesبعد از مدتی سرور با ورودی های زیر مسدود می شود.

اکتبر 16 14:01:01 xs-files systemd: برش ایجاد شده user-0.slice. 16 اکتبر 14:01:01 xs-files systemd: شروع کاربر-0.slice. 16 اکتبر 14:01:01 xs-files systemd: شروع جلسه 14440 کاربر root. 16 اکتبر 14:01:01 xs-files systemd: شروع جلسه 14440 کاربر root. 16 اکتبر 14:01:01 xs-files systemd: برش حذف شده user-0.slice. 16 اکتبر 14:01:01 xs-files systemd: توقف user-0.slice. 16 اکتبر 15:01:01 xs-files systemd: برش ایجاد شده user-0.slice. 16 اکتبر 15:01:01 xs-files systemd: شروع کاربر-0.slice. 16 اکتبر 15:01:01 xs-files systemd: شروع جلسه 14441 کاربر root. 16 اکتبر 15:01:01 xs-files systemd: شروع جلسه 14441 کاربر root. 16 اکتبر 15:01:01 xs-files systemd: شروع جلسه 14442 کاربر root. 16 اکتبر 15:01:01 xs-files systemd: شروع جلسه 14442 کاربر root. 16 اکتبر 15:01:01 xs-files systemd: برش حذف شده user-0.slice. 16 اکتبر 15:01:01 xs-files systemd: توقف user-0.slice. 16 اکتبر 16:01:01 xs-files systemd: برش ایجاد شده user-0.slice. 16 اکتبر 16:01:01 xs-files systemd: شروع کاربر-0.slice. 16 اکتبر 16:01:01 xs-files systemd: شروع جلسه 14443 کاربر root. 16 اکتبر 16:01:01 xs-files systemd: شروع جلسه 14443 کاربر root. اکتبر 16 16:01:01 xs-files systemd: برش حذف شده user-0.slice.

در Centos 8، من متوجه آنها نشدم، بنابراین هیچ کاری برای انجام دادن وجود ندارد. پیام ها هیچ کاربرد عملی ندارند، بنابراین ما آنها را غیرفعال خواهیم کرد. برای انجام این کار، یک قانون جداگانه برای rsyslog ایجاد می‌کنیم، که در آن همه قالب‌های پیام را که حذف می‌کنیم فهرست می‌کنیم. بیایید این قانون را در یک فایل جداگانه قرار دهیم /etc/rsyslog.d/ignore-systemd-session-slice.conf.

# cd /etc/rsyslog.d && mcedit ignore-systemd-session-slice.conf if $programname == "systemd" و ($msg حاوی "Starting Session" یا $msg حاوی "Started Session" یا $msg حاوی "Created" است slice" یا $msg حاوی "Starting user-" یا $msg حاوی "Starting User Slice of" یا $msg حاوی "Removed Slice of" یا $msg حاوی "Removed Slice User Slice of" یا $msg حاوی "Stopping User Slice of" است. ) سپس متوقف شود

فایل را ذخیره کنید و rsyslog را مجددا راه اندازی کنید تا تنظیمات اعمال شود.

# systemctl rsyslog را راه اندازی مجدد کنید

باید درک کرد که در این مورد ما flood را به فایل log فقط در سرور محلی غیرفعال می کنیم. اگر گزارش‌ها را در ذخیره می‌کنید، این قانون باید روی آن پیکربندی شود.

نصب iftop، atop، htop، lsof در CentOS

و در پایان، در پایان راه‌اندازی، چند ابزار مفید را اضافه می‌کنیم که ممکن است در حین کار سرور مفید باشند.

iftop بارگیری رابط شبکه را در زمان واقعی نشان می دهد، می توان با کلیدهای مختلف شروع کرد، من در مورد این جزئیات صحبت نمی کنم، اطلاعاتی در مورد این موضوع در اینترنت وجود دارد. ما گذاشتیم:

# yum نصب iftop

و دو تسک منیجر جالب، من بیشتر اوقات از htop استفاده می کنم، اما گاهی اوقات atop مفید است. ما هر دو را قرار دادیم، خودتان ببینید، بفهمید که چه چیزی را بیشتر دوست دارید، مناسب است:

# yum install htop # yum install atop

برای نمایش اطلاعات در مورد اینکه کدام فایل ها توسط فرآیندهای خاص استفاده می شوند، به شما توصیه می کنم که ابزار را نصب کنید lsof. به احتمال زیاد دیر یا زود هنگام تشخیص عملکرد سرور مفید خواهد بود.

# یام wget bzip2 traceroute gdisk را نصب کنید

این همه برای من است. راه اندازی اولیه CentOS به پایان رسیده است، می توانید نصب و پیکربندی عملکرد اصلی را شروع کنید.

راه اندازی ایمیل سیستم

برای تکمیل پیکربندی سرور CentOS، بیایید مطمئن شویم که نامه‌های آدرس‌دهی شده به ریشه محلی از طریق یک سرور پست الکترونیکی خارجی به صندوق پستی انتخاب شده ارسال می‌شود. اگر این کار انجام نشد، به صورت محلی به یک فایل اضافه می شود /var/spool/mail/root. و ممکن است اطلاعات مهم و مفیدی وجود داشته باشد. بیایید آن را طوری پیکربندی کنیم که به صندوق پستی مدیر سیستم ارسال شود.

من در یک مقاله جداگانه در مورد این موضوع صحبت کردم -. در اینجا فقط دستورات و راه اندازی سریع مختصر هستند. بسته های مورد نیاز را نصب کنید:

# yum install mailx cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain postfix

چیزی شبیه به این پیکربندی را برای postfix ترسیم می کنیم.

Cat /etc/postfix/main.cf ## تنظیمات پیش فرض شروع ##################### queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory=/usr/libexec/postfix data_directory=/var/lib/postfix mail_owner=postfix inet_interfaces=localhost inet_protocols=همهknown_local_recipient_reject_code=550 de alias_maps= alias_maps=2buthapes. =/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/ newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.10.1/samples readme_directory =/us doc/postfix-2.10.1/README_FILES ## CONFIG DEFAULT END ###################### # خروجی نام سرور بر اساس نام میزبان myhostname = centos-test. xs. محلی # اینجا n در مورد منطق، فقط دامنه باید باقی بماند، اما در این حالت بهتر است نام کامل سرور را بگذارید تا نام کامل سرور در قسمت # فرستنده ظاهر شود، تجزیه و تحلیل پیام های سرویس mydomain راحت تر است. = centos-test.xs.local mydestination = $myhostname myorigin = $mydomain # آدرس سروری که از طریق آن نامه را ارسال خواهیم کرد relayhost = mailsrv.mymail.ru:25 smtp_use_tls = بله smtp_sasl_auth_enable = yes_word:hassmax/sm /sasl_passwd smtp_sasl_security_options = ناشناس smtp_tls_security_level = ممکن است

ما یک فایل با اطلاعات نام کاربری و رمز عبور برای مجوز ایجاد می کنیم.

# mcedit /etc/postfix/sasl_passwd mailsrv.mymail.ru:25 [ایمیل محافظت شده]:کلمه عبور

ما یک فایل db ایجاد می کنیم.

# postmap /etc/postfix/sasl_passwd

اکنون می توانید postfix را مجددا راه اندازی کنید و بررسی کنید که آیا کار می کند یا خیر.

# systemctl راه اندازی مجدد postfix

به نام مستعار استاندارد برای root in /etc/نام مستعار، آدرس خارجی را اضافه کنید که در آن ایمیل آدرس داده شده به root تکرار می شود. برای انجام این کار، فایل مشخص شده را با تغییر خط آخر ویرایش کنید.

#ریشه: مارک

ریشه: ریشه، [ایمیل محافظت شده]

پایگاه داده گواهی را به روز کنید:

#newaliases

بیایید یک نامه از طریق کنسول به ریشه محلی ارسال کنیم:

# df -h | mail -s "استفاده از دیسک" ریشه

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

Relay=smtp.yandex.ru:25، delay=0.25، delays=0/0/0.24/0.01، dsn=5.7.1، status=bounced (میزبان smtp.yandex.ru گفت: 553 5.7.1 آدرس فرستنده رد شد: متعلق به کاربر auth نیست. (در پاسخ به دستور MAIL FROM))

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

این تنظیمات ایمیل محلی را تکمیل می کند. اکنون تمام نامه‌های خطاب به ریشه محلی، به عنوان مثال، گزارش‌های cron، در یک صندوق پستی خارجی کپی می‌شوند و از طریق یک سرور پست الکترونیکی کامل ارسال می‌شوند. بنابراین نامه ها به طور معمول بدون وارد شدن به هرزنامه تحویل داده می شوند (اگرچه نه لزوما، فیلترهای اکتشافی نیز وجود دارد).

نتیجه

ما برخی از مراحل اولیه را برای راه اندازی یک سرور CentOS طی کرده ایم، که معمولاً هنگام تهیه سرور بلافاصله پس از نصب انجام می دهم. من تظاهر نمی‌کنم که یک حقیقت مطلق هستم، شاید چیزی را از دست می‌دهم یا کاری را انجام می‌دهم که کاملاً درست نیست. خوشحال می شوم نظرات و تذکرات منطقی و معنادار همراه با پیشنهادات را داشته باشم.

..
  • آشنایی با استقرار، پیکربندی و نگهداری شبکه های مبتنی بر لینوکس.
  • توانایی حل سریع مشکلات در حال ظهور و اطمینان از عملکرد پایدار و بدون وقفه سیستم.
  • خود را در آزمون ورودی امتحان کنید و برای جزئیات بیشتر برنامه را ببینید.

    برترین مقالات مرتبط