در این آموزش درباره چگونگی پیکربندی و تغییر ip address شبکه از طریق خط فرمان روی سیستم عامل های RHEL/CentOS 7.0 بحث خواهیم کرد. همچنین اینکه چگونه می توان روی اینترفیس های شبکه با استفاده از اسکریپت های شبکه یک IP آدرس استاتیک (static) تنظیم نمود که در حقیقت موارد ضروری ای هستند که باید حتما در سرویس های شبکه که با اینترنت کار میکنند کانفیگ شوند. همچنین در این بخش به چگونگی پیکربندی یا تغییر hostname روی RHEL/CentOS 7.0 می پردازیم.
همچنین خواهیم دید که چگونه می توان سرویس های غیرضروری را مدیریت یا غیرفعال کرد. به عنوان مثال :
- Network Manager که در مواردی که شما از یک ip استاتیک دستی (کانفیگ شده روی اسکریپت های شبکه) استفاده میکنید دیگر به آن (Network Manager) نیاز ندارید.
- Avahi-Daemon نیز در سرور موردنیاز نمیباشد و شکاف امنیتی(باگ) جدی دارد، مگر اینکه سرور را روی لپ تاپ خود نصب کرده باشید و بخواهید به سرعت شبکه تان را برای دیگر سرویس جستجو کنید.
و در آخر نیز درباره NMTUI یا Network Manager Text User Interface (واسط کاربری متنی Network Manager) بحث خواهیم کرد که یکی از ابزارهای سیستمی است که می تواند کار ویرایش و تنظیم سیستم شبکه ی شما را با پیکربندی های اینترفیس پیشرفته مانند ایجاد Bond و Bridge و Team و اینترفیس های VLAN آسان کند.
همچنین توصیه میشود مطالعه کنید :
تعریف Static IP و DHCP IP در CentOS 7
دستور IP در لینوکس به همراه 10 مثال عملی (تنظیمات شبکه در لینوکس)
نحوه تعریف Static IP و DNS در اوبونتو 15.10
نحوه تعریف Static IP به همراه DNS و Hostname در اوبونتو 17.10
نحوه تعریف Static IP در اوبونتو 18.04
پیش نیازها :
1 : نصب تصویری Red Hat Enterprise Linux (RHEL) 7.0
2 : نحوه ریجیستر و فعال کردن ریپازیتوری ها و آپدیت ها برای سرور RHEL 7.0
3 : نصب تصویری CentOS 7.0
توجه داشته باشید که اکثر تنظیمات صورت گرفته از طریق ویرایش فایل های سیستمی نبایستی از طریق ریموت ssh (دسترسی remote ssh) انجام شوند، مگر اینکه شما یک ارتباط شبکه ای مستمر و قابل اطمینان را با استفاده از یک IP آدرس ثابت داشته باشید.
مرحله 1 : غیرفعال کردن سرویس های غیر ضروری
1 - قبل از انجام هرکاری نیاز است مطمئن شویم که روی سیستم ما بعضی از ابزارهای تنظیم شبکه مثل netstat و ifconfig و wget و curl نصب باشد. بعضی از این دستورات در این مرحله استفاده نمی شوند اما بهتر است که برای تنظیمات بعدی نصب باشند.
2 - پس از اینکه ابزارهای بالا نصب شدند، برای دریافت تنظیمات و وضعیت های اینترفیس های شبکه، ipconfig را اجرا کنید و سپس دستورات netstat یا Isof را برای بررسی اینکه چه سرویس هایی به طور پیش فرض روی سرور ما در حال اجرا هستند، اجرا نمایید.
3 - خروجی دستور netstat کاملا واضح است و لیستی از نام سوکت های مربوط به برنامه های در حال اجرای آن ها را نشان می دهد.
اگر برای مثال، بخواهید که سیستمتان به عنوان سرویس ایمیل به کار نرود، می توانید سرویس های اصلی Postfix که روی localhost اجرا می شوند را متوقف نمایید. همچنین سرویس های غیر ضروری که از دستورات زیر استفاده می کنند را نیز غیر فعال کنید.
– اگر نیازمند کنترل از راه دور سرور هستید، تنها سرویسی که توصیه می کنم آن را فعلا متوقف یا غیرفعال نکنید، SSH است.
4 - شما هم چنین می توانید از دستورات قدیمی init، برای توقف یا غیرفعال کردن سرویس ها استفاده کنید اما از آنجاییکه در حال حاضر Red Hat از systemd و service management استفاده می کند، بهتر است شما خود را به استفاده از دستور systemctl عادت بدهبد.
اگر از Arch Linux استفاده می کنید پس سوییچ کردن به systemd بسیار آسان است - اگر چه در حال حاضر تمام دستورات init به systemd لینک شده و از طریق آن اجرا می شوند.
5 - اگر می خواهید که لیستی از تمام سرویس های start شده را ببینید، دستور service را اجرا کنید و برای گرفتن یک گزارش کامل دستور systemctl را به کار برید.
6 - برای مدیریت سرویس ها دستور systemctl را با استفاده از از سوییچ های مهم آن (start, stop, restart, reload, disable, enable, show, list-dependencies, is-enabled) همراه با با نام سرویس، اجرا کنید.
هم چنین ویژگی مهم دیگری که دستور systemctl می تواند روی سرور راه دور (remote server) و از طریق SSH روی هاست معین اجرا کند استفاده از سوییچ –H است که همانند محیط local عمل می کند. برای مثال، دستور و تصویر زیر را ببینید.
مرحله 2 : تنظیم IP استاتیک و تعریف Hostname
7 - قبل از اینکه فایل های سیستمی مربوط به اینترفیس کارت شبکه (NIC) را ویرایش کنید، مطمئن شوید که از الان تا زمانی که IP استاتیک را تنظیم می کنید، دسترسی فیزیکی یا هر نوع دیگری از دسترسی را به سرورتان نداشته باشید چرا که این مرحله سبب از کار افتادن کارت شبکه و لغو ارتباطات (connections) شما می شود.
هر چند که بعد از reboot کردن می توان به راحتی و بدون مختل کردن ارتباط و فعال بودن اتصال این کار را انجام دهد. اگر فقط یک کارت شبکه داشته باشید، هیچ راهی نیست تا بتوانید قبل از ریبوت کردن این کار را انجام دهید. من به شما روش های کلی و مراحلی که در این مورد برای حفظ و تست ارتباطات باید از آن ها اجتناب کنید را نشان می دهم.
برای شروع، سرویس NetworkManager را متوقف یا غیرفعال کنید.
نکته : اگر هنوز می خواهید که دسترسی خود را حفظ کنید این دستورات را اجرا نکنید :
8 - حالا به مسیر /etc/sysconfig/network-scripts/ بروید. کارت شبکه ای که می خواهید به آن IP اختصاص دهید را انتخاب کنید و ویرایش کنید. برای بررسی نام همه ی کارت شبکه ها از دستور ifconfig -a یا ip -a استفاده کنید.
9 - برای تعریف static ip به کارت شبکه تان template زیر به انتهای کدهای اینترفیس شبکه تان اضافه کنید.
مطمئن شوید که عبارت ONBOOT روی YES تنظیم شده باشد. همچنین BOOTPROTO روی static یا none تنظیم شود و مقادیر پیش فرض HWADDR و UUID را تغییر ندهید.
10 - بعد از اتمام تنظیمات فایل، اگر می خواهید که DNS سرورتان کاملا فعال شوند، فایل را ببندید و سراغ فایل resolv.conf بروید.
در اینجا فقط ip آدرس سرورهای DNS تان را با استفاده از عبارت nameserver اضافه کنید.
11 - اکنون اینترفیس شبکه با یک IP استاتیک پیکربندی شده است. تنها چیزی که باید به خاطر داشته باشید این است که سرویس شبکه خود را ریست کنید یا سیستم خود را ریبوت نمایید و از دستورات ifconfig یا ip برای نمایش IP آدرس و همچنین برای تست تنظیمات از دستور ping استفاده کنید.
توجه : بعد از restart، برای دسترسی ریموت ssh به سرور از IP آدرس جدید استفاده کنید.
12 - برای تنظیم کردن hostname سیستم به طور کامل، فایل hostname و hosts را که در مسیر /etc قرار دارد باز کنید و هر دو قسمت زیر را تنظیم نمایید :
Hostname File
در اینجا فقط نام سیستم را می توانید اضافه کنید، اما بهتر است که دامین بهمراه dot را نیز اضافه نمایید.
فایل Hosts
در اینجا همان hostname که قبلا گفتیم را در خط 127.0.0.1 قبل از عبارت localhost.localdomain اضافه کنید :
برای تست اینکه hostname شما درست تنظیم شده است یا نه، از دستور hostname استفاده کنید.
مرحله 3 : استفاده از Network Manager Text User Interface
ابزار Nmtui یا اینترفیس کاربری متن Network Manager یکی از ابزارهای RHEL است که یک اینترفیس متنی/گرافیکی برای تنظیمات شبکه توسط کنترل Network Manager فراهم می کند، که به ویرایش پیشرفته ی تنظیمات شبکه از قبیل : اختصاص دادن IP استاتیک به اینترفیس شبکه، فعال یا غیر فعال کردن یک connection، تنطیم ارتباطات wifi، تعریف کردن hostname سیستم، یا ایجاد اینترفیس های پیشرفته ی شبکه مانند InfiniBand bond ،bridge ،team یا VLAN کمک می کند.
NetworkManager-tui به طور پیش فرض روی RHEL/CentOS 7.0 نصب شده است. اما اگر بنا به دلایلی نصب نبود، توسط دستور زیر آن را نصب کنید.
14 - برای استارت کردن Network Manager Text User Interface دستور nmtui را اجرا کنید و از کلیدهای TAB و جهت نما برای نمایش بقیه آپشن ها استفاده کنید و از کلید Enter برای انتخاب یک option بهره ببرید. اگر می خواهید که مستقیما به یک اینترفیس خاص متصل و یا آنرا ویرایش کنید، دستورات زیر را اجرا کنید :
اگر می خواهید که ip static تعریف کنید از Network Manager Text User Interface بعنوان یک ابزار آسان برای ویرایش فایل های اینترفیس شبکه بهمراه تعداد محدودی آپشن ارایه شده استفاده کنید اما قبل از آن مطمئن شوید که سرویس Network Manager روی سیستم تان فعال و start شده است.
موفق و موید باشید
محمد هابیلی
همچنین خواهیم دید که چگونه می توان سرویس های غیرضروری را مدیریت یا غیرفعال کرد. به عنوان مثال :
- Network Manager که در مواردی که شما از یک ip استاتیک دستی (کانفیگ شده روی اسکریپت های شبکه) استفاده میکنید دیگر به آن (Network Manager) نیاز ندارید.
- Avahi-Daemon نیز در سرور موردنیاز نمیباشد و شکاف امنیتی(باگ) جدی دارد، مگر اینکه سرور را روی لپ تاپ خود نصب کرده باشید و بخواهید به سرعت شبکه تان را برای دیگر سرویس جستجو کنید.
و در آخر نیز درباره NMTUI یا Network Manager Text User Interface (واسط کاربری متنی Network Manager) بحث خواهیم کرد که یکی از ابزارهای سیستمی است که می تواند کار ویرایش و تنظیم سیستم شبکه ی شما را با پیکربندی های اینترفیس پیشرفته مانند ایجاد Bond و Bridge و Team و اینترفیس های VLAN آسان کند.
همچنین توصیه میشود مطالعه کنید :
تعریف Static IP و DHCP IP در CentOS 7
دستور IP در لینوکس به همراه 10 مثال عملی (تنظیمات شبکه در لینوکس)
نحوه تعریف Static IP و DNS در اوبونتو 15.10
نحوه تعریف Static IP به همراه DNS و Hostname در اوبونتو 17.10
نحوه تعریف Static IP در اوبونتو 18.04
پیش نیازها :
1 : نصب تصویری Red Hat Enterprise Linux (RHEL) 7.0
2 : نحوه ریجیستر و فعال کردن ریپازیتوری ها و آپدیت ها برای سرور RHEL 7.0
3 : نصب تصویری CentOS 7.0
توجه داشته باشید که اکثر تنظیمات صورت گرفته از طریق ویرایش فایل های سیستمی نبایستی از طریق ریموت ssh (دسترسی remote ssh) انجام شوند، مگر اینکه شما یک ارتباط شبکه ای مستمر و قابل اطمینان را با استفاده از یک IP آدرس ثابت داشته باشید.
مرحله 1 : غیرفعال کردن سرویس های غیر ضروری
1 - قبل از انجام هرکاری نیاز است مطمئن شویم که روی سیستم ما بعضی از ابزارهای تنظیم شبکه مثل netstat و ifconfig و wget و curl نصب باشد. بعضی از این دستورات در این مرحله استفاده نمی شوند اما بهتر است که برای تنظیمات بعدی نصب باشند.
کد PHP:
# yum install nano wget curl net-tools lsof
2 - پس از اینکه ابزارهای بالا نصب شدند، برای دریافت تنظیمات و وضعیت های اینترفیس های شبکه، ipconfig را اجرا کنید و سپس دستورات netstat یا Isof را برای بررسی اینکه چه سرویس هایی به طور پیش فرض روی سرور ما در حال اجرا هستند، اجرا نمایید.
کد PHP:
# ifconfig
# netstat -tulpn
# lsof -i
3 - خروجی دستور netstat کاملا واضح است و لیستی از نام سوکت های مربوط به برنامه های در حال اجرای آن ها را نشان می دهد.
اگر برای مثال، بخواهید که سیستمتان به عنوان سرویس ایمیل به کار نرود، می توانید سرویس های اصلی Postfix که روی localhost اجرا می شوند را متوقف نمایید. همچنین سرویس های غیر ضروری که از دستورات زیر استفاده می کنند را نیز غیر فعال کنید.
– اگر نیازمند کنترل از راه دور سرور هستید، تنها سرویسی که توصیه می کنم آن را فعلا متوقف یا غیرفعال نکنید، SSH است.
کد PHP:
# systemctl stop postfix
# systemctl stop avahi-daemon
# systemctl disable postfix
# systemctl disable avahi-daemon
4 - شما هم چنین می توانید از دستورات قدیمی init، برای توقف یا غیرفعال کردن سرویس ها استفاده کنید اما از آنجاییکه در حال حاضر Red Hat از systemd و service management استفاده می کند، بهتر است شما خود را به استفاده از دستور systemctl عادت بدهبد.
اگر از Arch Linux استفاده می کنید پس سوییچ کردن به systemd بسیار آسان است - اگر چه در حال حاضر تمام دستورات init به systemd لینک شده و از طریق آن اجرا می شوند.
کد PHP:
# service postfix stop
# chkconfig postfix off
5 - اگر می خواهید که لیستی از تمام سرویس های start شده را ببینید، دستور service را اجرا کنید و برای گرفتن یک گزارش کامل دستور systemctl را به کار برید.
کد PHP:
# service --status-all
# systemctl list-unit-files
6 - برای مدیریت سرویس ها دستور systemctl را با استفاده از از سوییچ های مهم آن (start, stop, restart, reload, disable, enable, show, list-dependencies, is-enabled) همراه با با نام سرویس، اجرا کنید.
هم چنین ویژگی مهم دیگری که دستور systemctl می تواند روی سرور راه دور (remote server) و از طریق SSH روی هاست معین اجرا کند استفاده از سوییچ –H است که همانند محیط local عمل می کند. برای مثال، دستور و تصویر زیر را ببینید.
کد PHP:
# systemctl -H remote_host start remote_service
مرحله 2 : تنظیم IP استاتیک و تعریف Hostname
7 - قبل از اینکه فایل های سیستمی مربوط به اینترفیس کارت شبکه (NIC) را ویرایش کنید، مطمئن شوید که از الان تا زمانی که IP استاتیک را تنظیم می کنید، دسترسی فیزیکی یا هر نوع دیگری از دسترسی را به سرورتان نداشته باشید چرا که این مرحله سبب از کار افتادن کارت شبکه و لغو ارتباطات (connections) شما می شود.
هر چند که بعد از reboot کردن می توان به راحتی و بدون مختل کردن ارتباط و فعال بودن اتصال این کار را انجام دهد. اگر فقط یک کارت شبکه داشته باشید، هیچ راهی نیست تا بتوانید قبل از ریبوت کردن این کار را انجام دهید. من به شما روش های کلی و مراحلی که در این مورد برای حفظ و تست ارتباطات باید از آن ها اجتناب کنید را نشان می دهم.
برای شروع، سرویس NetworkManager را متوقف یا غیرفعال کنید.
نکته : اگر هنوز می خواهید که دسترسی خود را حفظ کنید این دستورات را اجرا نکنید :
کد PHP:
# systemctl stop NetworkManager.service
# systemctl disable NetworkManager.service
8 - حالا به مسیر /etc/sysconfig/network-scripts/ بروید. کارت شبکه ای که می خواهید به آن IP اختصاص دهید را انتخاب کنید و ویرایش کنید. برای بررسی نام همه ی کارت شبکه ها از دستور ifconfig -a یا ip -a استفاده کنید.
کد PHP:
# nano /etc/sysconfig/network-scripts/ifcfg-eno16777736
کد PHP:
IPADDR=192.168.1.70
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
DNS2=8.8.8.8
DOMAIN=rheltest.lan
کد PHP:
HWADDR=00:0C:29:5B:08:A2
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
USERCTL=no
NM_CONTROLLED=no
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=8c6eefa2-0d7b-4559-9870-2953290dc988
ONBOOT=yes
IPADDR=192.168.1.70
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
DNS2=8.8.8.8
DOMAIN=rheltest.lan
10 - بعد از اتمام تنظیمات فایل، اگر می خواهید که DNS سرورتان کاملا فعال شوند، فایل را ببندید و سراغ فایل resolv.conf بروید.
کد PHP:
# nano /etc/resolv.conf
کد PHP:
nameserver 192.168.1
nameserver 8.8.8.8
کد PHP:
# systemctl restart network
کد PHP:
# service network status
# ifconfig
# ip addr show
12 - برای تنظیم کردن hostname سیستم به طور کامل، فایل hostname و hosts را که در مسیر /etc قرار دارد باز کنید و هر دو قسمت زیر را تنظیم نمایید :
Hostname File
کد PHP:
# nano /etc/hostname
کد PHP:
server.rheltest.lan
کد PHP:
# nano /etc/hosts
کد PHP:
127.0.0.1 server.rheltest.lan localhost.localdomain …
برای تست اینکه hostname شما درست تنظیم شده است یا نه، از دستور hostname استفاده کنید.
کد PHP:
# hostname -s # For short name
# hostname -f # For FQDN mame
مرحله 3 : استفاده از Network Manager Text User Interface
ابزار Nmtui یا اینترفیس کاربری متن Network Manager یکی از ابزارهای RHEL است که یک اینترفیس متنی/گرافیکی برای تنظیمات شبکه توسط کنترل Network Manager فراهم می کند، که به ویرایش پیشرفته ی تنظیمات شبکه از قبیل : اختصاص دادن IP استاتیک به اینترفیس شبکه، فعال یا غیر فعال کردن یک connection، تنطیم ارتباطات wifi، تعریف کردن hostname سیستم، یا ایجاد اینترفیس های پیشرفته ی شبکه مانند InfiniBand bond ،bridge ،team یا VLAN کمک می کند.
NetworkManager-tui به طور پیش فرض روی RHEL/CentOS 7.0 نصب شده است. اما اگر بنا به دلایلی نصب نبود، توسط دستور زیر آن را نصب کنید.
کد PHP:
# yum install NetworkManager-tui
14 - برای استارت کردن Network Manager Text User Interface دستور nmtui را اجرا کنید و از کلیدهای TAB و جهت نما برای نمایش بقیه آپشن ها استفاده کنید و از کلید Enter برای انتخاب یک option بهره ببرید. اگر می خواهید که مستقیما به یک اینترفیس خاص متصل و یا آنرا ویرایش کنید، دستورات زیر را اجرا کنید :
کد PHP:
# nmtui edit eno16777736
# nmtui connect eno16777736
اگر می خواهید که ip static تعریف کنید از Network Manager Text User Interface بعنوان یک ابزار آسان برای ویرایش فایل های اینترفیس شبکه بهمراه تعداد محدودی آپشن ارایه شده استفاده کنید اما قبل از آن مطمئن شوید که سرویس Network Manager روی سیستم تان فعال و start شده است.
موفق و موید باشید
محمد هابیلی