跳到主要內容

Linux-CentOS7-建置DHCP Server 來發放 IP

目的:

一般家庭或是小型辦公室都是使用Router內DHCP來發放IP,考慮到用戶數量或設備較多的環境,可以使用DHCP Server 來發放IP,也較好維護及管理。

事前準備:

CentOS-Server
CentOS-Client
Windows-Client
使用虛擬機做實驗環境,網路環境設置為虛擬機的內部網路。

1.將Server設定成固定IP

  • ip a (查看網卡名)
  • sudo vi /etc/sysconfig/network-scripts/ifcfg-xxxx(xxxx是網卡名稱)

修改/新增 參數

  • 修改 BOOTPROTO=static
  • 新增 IPADDR=
  • 新增 NETMASK=
  • :wq

重啟網卡使設定生效

  • sudo ifdown eth0
  • sudo ifup eth0

查看設定的固定IP是否生效

  • ip a

2.設定主設定檔

  • sudo vi /etc/dhcp/dhcp.conf
  • 檔案打開告知可以到: /usr/share/doc/dhcp*/dhcp.conf.examle ,查看設定範例
  • sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.backup | 備份原本的設定檔。
  • sudo cp /usr/share/doc/dhcp*/dhcp.conf.examle /etc/dhcp/dhcpd.conf | 複製範例檔設定DHCP
  • 將 option domain-name 、option domain-name-server 註解掉
  • 修改(預設租約時間) default-lease-time 28800; | 此數值是秒/單位
  • 修改(最大租約時間) max-lease-time 86400; | 此數值是秒/單位
  • 配置 subnet

  • 重啟服務讓DHCP設定值生效
  • sudo systemctl restart dhcpd

3.用戶端測試是否可以透過DHCP拿到IP

  • Linux
  • 設定DHCP取得IP > vi /etc/sysconfig/network-scripts/ifcfg-xxx >BOOTPROTO=dhcp
  • sudo ifdown eth0
  • sudo ifup eth0
  • ip a
  • 順利取得配發的IP 192.168.100.100
  • 也可以使用指令 dhclient -r xxx(主機的網卡名) > dhclient xxx,來重新取得IP
  • Windows
  • 設定 DHCP 取得IP
  • 關閉/啟用網路(圖)
  • 檢視網路配置
  • 順利取得配發的IP 192.168.100.102
  • 也可以使用 cmd > ipconfig /release > ipconfig /renew ,來重新取得IP

4.補充

▸讓特定的主機透過DHCP取得固定IP

  • 取得需求主機(Windows為例)的MAC,00-15-5D-00-0F-09

  • 設定 DHCP Server 主設定檔>vi /etc/dhcp/dhcpd.conf
  • 配置 host passacaglia
  • hardware ethernet > 添加需求主機的MAC位址
  • 新增 fixed-address > 添加配置給需求主機MAC的IP位址,此處IP必須是 subnet range 之外的IP位址。
  • DHCP Server 重啟服務,sudo systemctl restart dhcpd
  • Client 端重啟網卡獲取新IP位址 192.168.100.15

▸Windows 使用 Wireshark 查看 DHCP 派發的過程

  • 開啟 Wireshark 掃描
  • 使用 cmd 索取一個新IP ,ipconfig /release > ipconfig /renew
  • Wireshark 篩選出DHCP 的封包
  • 經過 DISCOVER > OFFER > REQUEST > ACK 獲取到DHCP租用IP

▸Linux 使用 Tcpdump 查看 DHCP 派發的過程

  • sudo yum install tcpdump
  • sudo tcpdump -i eth0 -nn > dhcp.txt

留言

這個網誌中的熱門文章

Linux-CentOS7 使用 Bind 架設 DNS Server & DNS正解

DNS (Domain Name System)服務 提供域名解析,相較於IP位址(IP Address),域名(Domain name)讓使用者容易記憶,使用域名對應IP位址。 1.安裝 BIND 套件 # sudo yum install bind

Windows-使用 PowerShell 更改 RDP Port Number & 調整防火牆規則

目的: 服務器在啟用遠端桌面預設值為"3389",因為對管理上有風險,所以需要更改遠端桌面的端口號、調整防火牆規則增加安全性。 PowerShell內容  GitHub:https://github.com/minyufu/powershell.git function Pause(){ [System.Console]::Write('按任意鍵繼續...') [void][System.Console]::ReadKey(1) } #用途:更改預設RDP端口號並添加防火牆規則 Write-Output "-----目前RDP使用端口號-----" $Now_RDP_PortNumber = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal*Server\WinStations\RDP-TCP\" -Name PortNumber | Select-Object PortNumber Write-Output "PortNumber: $Now_RDP_PortNumber" #使用者輸入需要修改的端口號: $New_Rdp_PortNumber = Read-Host -Prompt '輸入新的RDP端口號' #設定新的端口號 Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal*Server\WinStations\RDP-TCP\" -Name PortNumber -Value $New_Rdp_PortNumber #加入TCP防火牆規則 New-NetFirewallRule -DisplayName "遠程桌面(TCP-In) $New_Rdp_PortNumber" -Direction Inbound -Protocol TCP -Profile Any -LocalPort $New_Rdp_PortNumber -Action allow Write-Output "遠程桌面(TCP...

Linux & Windows 使用 SSH 公開金鑰(Public Key Authentication) 登入遠端主機(Linux Server)

目的: 讓SSH連線更加安全及便利 Step1 Linux Server 配置 1.在需要使用金鑰驗證的使用者(brookadmin)家目錄建立一個 .ssh 資料夾 ,權限 700 # mkdir .ssh 2.在 .ssh 資料夾內 建立一個 authorized_keys 的檔案,權限600,這裡會存放 client 端的Pubkey #touch authorized_keys Step2 Linux Client 使用 ssh-keygen 產生金鑰   1.進到使用者家目錄下 .ssh 目錄,使用指令 ssh-keygen 產生金鑰 2.將生成的公鑰存至要連線的服務器,使用指令 ssh-copy-id #sudo ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22168 brookadmin@192.168.240.148 Windows Client 使用 ssh-keygen 產生金鑰 1.使用的windows作業系統是win 10,打開 cmd 命令提示字元,使用指令 ssh-keygen 產生金鑰,金鑰位置:C:\Users\ your username \.ssh,使用者的 .ssh 資料夾下 2.將 id_rsa.pub文件內容金鑰,添加到遠程linux server管理帳號下家目錄的 .ssh/authorized_keys 檔案裡 Step3 Linux Server 配置 1.將 Linux Client 跟 Windows Client 的 id_rsa.pub(公開金鑰)內容依序加入檔案,如果沒有金鑰可以先使用 ssh-keygen 產生,公開金鑰檔名可以自訂,需記住使用哪一組,加入金鑰後的authorized_keys 檔案內容就像圖片所示 2.編輯 SSH 設定檔 > sudo vim /etc/ssh/sshd_config #找到 PubkeyAuthentication 將註解#拿掉 並修改參數 #找到 PasswordAuthentication 修改參數為 no 3.重新啟動 ssh 服務,讓設定生效 #sudo systemctl...