centos7搭建dhcp服务器 centos7配置ip地址的方法
CA证书与DHCP服务
1、创建私有CA并进行证书申请。
1:创建 CA私钥
$ openssl genrsa-des3-out ca.key 4096
2:生成 CA的自签名证书,其实 CA证书就是一个自签名证书
$ openssl req-new-x509-days 365-key ca.key-outca.crt
3:生成需要颁发证书的私钥
$ openssl genrsa-des3-out server.key 4096
4:生成要颁发证书的证书签名请求
Ps:证书签名请求当中的 Common Name必须区别于 CA的证书里面的 Common
Name
$ openssl req-new-key server.key-out server.csr
5:创建一个ext文件,内容如下
keyUsage= nonRepudiation, digitalSignature,keyEncipherment
extendedKeyUsage= serverAuth, clientAuth
subjectAltName=@SubjectAlternativeName
[ SubjectAlternativeName ]
DNS.1=abc.com
DNS.2=*.abc.com
6:用 2创建的 CA证书给 4生成的签名请求进行签名
$ openssl x509-req-days 365-extfile http.ext-inserver.csr-CA ca.crt-CAkey ca.key-set_serial 01-out server.crt
7:最终会得到一下几个文件
ca.crt:这个是ca证书,客户端信任该证书意味着会信任该证书颁发出去的所有证书
ca.key: ca证书的密钥
server.key:服务器密钥,需要配置的
server.csr:证书签名请求,通常是交给CA机构,这里我们就自己解决了
server.crt:服务器证书,需要配置的
2、总结ssh常用参数、用法
ssh命令是ssh客户端,允许实现对远程系统经验证地加密安全访问。ssh客户端配置文件是:/etc/ssh/ssh_config
ssh
命令配合的常见选项:
-p port
:远程服务器监听的端口
ssh 192.168.1.8-p 2222
-b
指定连接的源IP
ssh 192.168.1.8-p 2222-b 192.168.1.88
-v
调试模式
ssh 192.168.1.8-p 2222-v
-C
压缩方式
-X
支持x11转发支持将远程linux主机上的图形工具在当前设备使用
-t
强制伪tty分配,如:ssh-t remoteserver1 ssh-t remoteserver2 ssh
remoteserver3
-o option
如:-oStrictHostKeyChecking=no
-i
指定私钥文件路径,实现基于key验证,默认使用文件:~/.ssh/id_dsa,
~/.ssh/id_ecdsa,/.ssh/id_ed25519
,/.ssh/id_rsa等
3、总结sshd服务常用参数。服务器端的配置文件:/etc/ssh/sshd_config
常用参数:
Port#
端口号
ListenAddress ipLoginGraceTime 2m#
宽限期
PermitRootLogin yes#
默认ubuntu不允许root远程ssh登录
StrictModes yes#
检查.ssh/文件的所有者,权限等
MaxAuthTries 6
MaxSessions 10#
同一个连接最大会话
PubkeyAuthentication yes#
基于key验证
PermitEmptyPasswords no#
空密码连接
PasswordAuthentication yes#
基于用户名和密码连接
GatewayPorts no
ClientAliveInterval 10#
单位:秒
ClientAliveCountMax 3#
默认3
UseDNS yes#
提高速度可改为no
GSSAPIAuthentication yes#
提高速度可改为no
MaxStartups#
未认证连接最大值,默认值10
Banner/path/file
以下可以限制可登录用户的办法:
AllowUsers user1 user2 user3
DenyUsers
AllowGroups
ssh
服务的最佳实践建议使用非默认端口禁止使用protocol version 1
限制可登录用户设定空闲会话超时时长利用防火墙设置ssh访问策略仅监听特定的IP地址基于口令认证时,使用强密码策略,比如:tr-dc A-Za-z0-9_</dev/urandom| head-c 12|
xargs
使用基于密钥的认证禁止使用空密码禁止root用户直接登录限制ssh的访问频度和并发在线数经常分析日志
4、搭建dhcp服务,实现ip地址申请分发
一、配置DHCP服务器
1、安装DHCP服务器软件
[root@centos01~]# mount/dev/cdrom/mnt/<!--挂载操作系统光盘-->
mount:/dev/sr0写保护,将以只读方式挂载
[root@centos01~]# rm-rf/etc/yum.repos.d/CentOS-*<!--删除系统自动yum源-->
[root@centos01~]# yum-y install dhcp<!--安装DHCP服务-->
2、建立主配置文件dhcpd.conf
[root@centos01~]# vim/etc/dhcp/dhcpd.conf<!--编辑主配置文件-->
:r/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example<!--读取默认配置文件-->
ddns-update-style none;<!--禁用DNS动态更新-->
option domain-name"benet.com";<!--指定默认搜索域-->
option domain-name-servers 202.106.0.10, 202.106.0.20;
<!--指定DNS服务器地址-->
default-lease-time 600;<!--默认租约时间-->
max-lease-time 7200;<!--最大租约时间-->
1)/etc/dhcp/dhcpd.conf文件的配置构成
在主配置文件dhcpd.conf中,可以使用声明、参数、选项这三种类型的配置,各自的作用和表现形式如下所述:
声明:用来描述dhcpd服务器中对网络布局的划分,是网络设置的逻辑范围。常见的声明是subnet、host,其中subnet声明用来约束一个网段。host声明用来约束一台特定主机。
参数:由配置关键字和对应的值组成,总是以“;”(分号)结束,一般位于指定的声明范围之内,用来设置所在范围的运行特性(如默认租约时间、最大租约时间等)。
选项:由“option”引导,后面跟具体的配置关键字和对应的值,也是以“;”结束,用于指定分配给客户机的各种地址参数(如默认网关地址、子网掩码、DNS服务器地址等)。
2)确定dhcpd服务的全局配置
为了使配置文件的结构更加清晰、全局配置通常会放在配置文件dhcod.conf的开头部分,可以是配置参数,也可以是配置选项。常用的全局配置参数和选项如下所述:
ddns-update-style:动态DNS更新模式。用来设置与DHCP服务相关联的DNS数据动态更新模式。在实际的DHCP应用中很少用到该参数。将值设为“none”即可。
default-lease-time:默认租约时间。单位为秒,表示客户端可以从DHCP服务器租用某个IP地址的默认时间。
max-lease-time:最大租约时间。单位为秒,表示允许DHCP客户端请求的最大租约时间,当客户端未请求明确的租约时间时,服务器将采用默认租约时间。
option domain-name:默认搜索区域。未客户机指定解析主机名时的默认搜索域,该配置选项将体现在客户机的/etc/resolv.conf配置文件中,如“search benet.com”。
option domain-name-servers:DNS服务器地址。为客户端指定解析域名时使用的DNS服务器地址,该配置选项同样将体现在客户机的/etc/resolv.conf配置文件中,如“nameserver 202.106.0.20”。需要设置多个DNS服务器地址时,以逗号进行分隔。
3)确定subnet网段声明
一台DHCP服务器可以为多个网段提供服务,因此subnet网段声明必须有而且可以有多个。例如,若要DHCP服务器为192.168.100.0/24网段提供服务,用于自动分配的IP地址范围为192.168.100。100~192.168.100.200,为客户机指定默认网关地址为192.168.100.254,则ke可以修改dhcpd.conf配置文件,参考以下内容调整subnet网段声明:
[root@centos01~]# vim/etc/dhcp/dhcpd.conf<!--编辑主配置文件-->
subnet 192.168.100.0 netmask 255.255.255.0{<!--声明网段地址-->
range 192.168.100.100 192.168.100.200;<!--设置地址池,可以有多个-->
option routers 192.168.100.254;<!--指定默认网关地址-->
}
4)确定host主机声明
host声明用于设置单个主机的网络属性,通常用于为网络打印机或个别服务器分配固定的IP地址(保留地址),这些主机的共同特点是要求每次获取的IP地址相同,以确保服务的稳定性。
host声明通过host关键字指定需要使用保留地址的客户机名称,并使用“hardware ethernet”参数指定该主机的MAC地址,使用“fixed-address”参数指定保留给该主机的IP地址。例如,若要为打印机prtsvr(MAC地址为00:0C:29:0D:BA:6B)分配固定的IP地址192.168.100.101,可以修改dhcpd.conf配置文件,参考以下内容在网段声明内添加host主机声明。
C:\Users\Administrator>getmac
物理地址 传输名称
==========================================================================
00-0C-29-0D-BA-6B \Device\Tcpip_{92E3F48B-40F0-4A0D-9604-6386AAAE3233}<!--客户端获取MAC地址-->
[root@centos01~]# vim/etc/dhcp/dhcpd.conf
host win7{
hardware ethernet 00:0C:29:0D:BA:6B;<!--客户机的MAC地址-->
fixed-address 192.168.100.101;<!--分配给客户机的IP地址-->
}
3、启动dhcpd服务
在启动dhcpd服务之前,应确认提供DHCP服务器的网络接口具有静态指定的固定IP地址,并且至少有一个网络接口的IP地址与DHCP服务器中的一个subnet网段相对应,否则将无法正常启动dhcpd服务。例如,DHCP服务器的IP地址为192.168.100.10,用于为网段192。168.100.0/24内的其他客户机提供自动分配地址服务。
安装dhcp软件包以后,对应的系统服务脚本位于/usr/lib/systemd/system/dhcpd.service,可以使用systemd服务进行控制。例如,执行以下操作可以启动dhcpd服务,并检查UDP的67端口是否在监听,以确认DHCP服务器是否正常。
[root@centos01~]# systemctl start dhcpd<!--启动dhcp服务-->
[root@centos01~]# systemctl enable dhcpd<!--设置服务开机自动启动-->
[root@centos01~]# netstat-anptu| grep 67<!--监听DHCP服务端口号-->
udp 0 0 0.0.0.0:67 0.0.0.0:* 2102/dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 1064/dnsmasq
注意:需要关闭、重启dhcpd服务时,只要将上述操作命令中的“start”改为“stop”或“restart”即可。
二、使用DHCP客户端
1、windows客户端
ipconfig/renew<!--可以为主机重新获取新的IP地址-->
ipconfig/release<!--释放IP地址-->
tracert IP地址<!--可以测试从当前主机到目的主机经过的网络节点-->
route print<!--查看路由表-->
2、Linux客户端
在Linux客户机中可以设置使用DHCP的方式获取地址。只需要编辑对应网卡的配置文件,修改或添加“BOOTPROTO=dhcp”配置行,并重新加载配置文件或者重新启动network服务即可。例如,执行以下操作可修改网卡配置文件,并重新加载配置以通过DHCP方式自动获取地址:
[root@centos02~]# vim/etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
NAME=ens32
DEVICE=ens32
ONBOOT=yes
[root@centos02~]# ifdown ens32; ifup ens32
[root@centos02~]# systemctl restart network
在Linux客户机中,还可以使用dhclient工具来测试DHCP服务器。若直接执行“dhclient”命令,则dhclient将尝试为除回环接口lo以外的所有网络接口通过DHCP方式申请新的地址,然后自动转入后台继续运行。当然,测试时可以指定一个具体的网络接口,并结合“-d”选项使其在前台运行,测试完毕后按Ctrl+C组合键终止。例如,执行“dhclient-d ens32”命令后,可以为网卡ens32自动获取新的IP地址,并显示获取过程。
[root@centos02~]# dhclient-d ens32
Internet Systems Consortium DHCP Client 4.2.5
Copyright 2004-2013 Internet Systems Consortium.
All rights reserved.
For info, please visit
Listening on LPF/ens32/00:0c:29:97:5c:9f
Sending on LPF/ens32/00:0c:29:97:5c:9f
Sending on Socket/fallback
DHCPDISCOVER on ens32 to 255.255.255.255 port 67 interval 4(xid=0x5364e17f)
DHCPDISCOVER on ens32 to 255.255.255.255 port 67 interval 6(xid=0x5364e17f)
DHCPDISCOVER on ens32 to 255.255.255.255 port 67 interval 14(xid=0x5364e17f)<!--DHCP发现-->
DHCPREQUEST on ens32 to 255.255.255.255 port 67(xid=0x5364e17f)<!--DHCP请求-->
DHCPOFFER from 192.168.100.10<!--DHCP提供-->
DHCPACK from 192.168.100.10(xid=0x5364e17f)<!--DHCP确认-->
bound to 192.168.100.102-- renewal in 229 seconds.
............<!--按Ctrl+C组合键终止-->
客户端需要通过dhclient命令释放获取的IP租约时,可以结合“-r”选项。例如,执行以下的“dhclient-r ens32”将会释放之前为网卡ens32获取的IP租约。此时再通过执行“ifconfig ens32”命令就看不到分配的IP地址了。
[root@centos02~]# dhclient-r ens32
CentOS7实现DNSDHCP动态更新详解
windows域里有一个功能,dhcp把新分发的ip数据发给DNS服务器,这样只要知道一个人的电脑名字就可以很方便的远程。
linux当然也能很好的实现类似的功能。man 5 dhcpd.conf有详细描述。
昨天运维帮组织线下的沙龙,又拍云的运维总监邵海杨先生分享了一句“千金难买早知道”。是啊,就在实现动态更新的功能上,在网上找了不少博客,照着做又遇到各种问题,最后不不知道到底什么原理实现的。早知道认真看一下man,问题早解决了,对实现的原理也理解得深些。所以,在这个信息爆炸的时代,很多时候真的互联网没有让人更聪明,反而大量的信息经常把人淹没了。技术,还是需要静下心来去钻研的。
dhcp和dns的基本配置资料比较完善,此处不再赘述。有心的朋友认真看一下man 5 dhcpd.conf,瞧一眼下面配置中标红的部分,相信就能搞定了。
另外分享一个dns chroot的流程,先安装 bind,调通named,然后再安装bind-chroot
执行/usr/libexec/setup-named-chroot.sh/var/named/chroot on
停用named,启用named-chroot即可
systemctl disabled named; systemctl stop named
systemctl enable named-chroot;systemctl start named-chroot
[root@pxe~]# cat/etc/dhcp/dhcpd.conf
ddns-update-style interim;
ddns-updates on;
do-forward-updates on;
allow client-updates;
allow bootp;
allow booting;
#allow client-updates;
option space Cisco_LWAPP_AP;
option Cisco_LWAPP_AP.server-address code 241= array of ip-address;
option space pxelinux;
option pxelinux.magic code 208= string;
option pxelinux.configfile code 209= text;
option pxelinux.pathprefix code 210= text;
option pxelinux.reboottime code 211= unsigned integer 32;
option architecture-type code 93= unsigned integer 16;
subnet 192.168.1.0 netmask 255.255.255.0{
authoritative;
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option domain-name"it.lab";
option domain-name-servers 192.168.1.200;
range dynamic-bootp 192.168.1.100 192.168.1.199;
key SEC_DDNS{
algorithm hmac-md5;
secret 7ObhTIhKeDFMR2SbbS5s8A==;
};
ddns-domainname"it.lab";
zone it.lab.{
primary 192.168.1.200;
key SEC_DDNS;
}
zone 1.168.192.in-addr.arpa.{
primary 192.168.1.200;
key SEC_DDNS;
}
default-lease-time 600;
max-lease-time 7200;
class"pxeclients"{
match if substring(option vendor-class-identifier, 0, 9)="PXEClient";
next-server 192.168.1.200;
if option architecture-type= 00:07{
filename"uefi/syslinux.efi";}
else{
filename"bios/pxelinux.0";}
#filename"pxelinux.0";}
}
}
[root@pxe~]# cat/etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver(as a localhost DNS resolver only).
//
// See/usr/share/doc/bind*/sample/ for example named configuration files.
//
options{
listen-on port 53{ 127.0.0.1;192.168.1.200;};
listen-on-v6 port 53{::1;};
directory"/var/named";
dump-file"/var/named/data/cache_dump.db";
statistics-file"/var/named/data/named_stats.txt";
memstatistics-file"/var/named/data/named_mem_stats.txt";
allow-query{ any;};
/*
- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
- If you are building a RECURSIVE(caching) DNS server, you need to enable
recursion.
- If your recursive DNS server has a public IP address, you MUST enable access
control to limit queries to your legitimate users. Failing to do so will
cause your server to become part of large scale DNS amplification
attacks. Implementing BCP38 within your network would greatly
reduce such attack surface
*/
recursion no;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key*/
bindkeys-file"/etc/named.iscdlv.key";
managed-keys-directory"/var/named/dynamic";
pid-file"/run/named/named.pid";
session-keyfile"/run/named/session.key";
};
logging{
channel default_debug{
file"data/named.run";
severity dynamic;
};
};
zone"." IN{
type hint;
file"named.ca";
};
include"/etc/named.rfc1912.zones";
include"/etc/named.root.key";
key SEC_DDNS{
algorithm hmac-md5;
secret 7ObhTIhKeDFMR2SbbS5s8A==;
};
zone"it.lab" IN{
type master;
file"it.lab.forward";
allow-update{ key SEC_DDNS;};
};
zone"1.168.192.in-addr.arpa" IN{
type master;
file"1.168.192.reverse";
allow-update{ key SEC_DDNS;};
};
centos怎么配置dhcp服务 linux下怎么用dhcp
dhcp服务器是用来动态分配内网IP的,咗嚛搭建一个dhcp服务器可以用于自动分配局域网IP。当然很多路由器都有这个功能了,这里以centos系统为例
查找确认dhcp服务,通过rpm-qa查询
如果没有安装的话,通过 yum install dhcp即可安装
编辑dhcp服务器主配置文件,默认是空的。我们可以去拷贝一个模板,路径在/usr/share/doc/dhcp*/dhcp.config.sample
然后我们编辑/etc/dhcp/dhcp.conf文件,具体参考如下范例。range分配的地址池, optiondms dns服务器地址,option routers网关地址,然后是租约的时间等
配置好之后,重启dhcp服务。/etc/init.d/dhcpd restart如果是centos7系统,通过systemctl来重启服务
查看dhcp服务器地址,通过ifconfig确认
linux客户端怎么用dhcp服务器找到同一个网段的电脑,修改网卡配置文件,吧bootroto改成dhcp类型
然后重启网卡服务,就会自动去获取dhcp服务器的地址了
等待片刻之后,再次查看IP已经分配为dhcp地址池的地址了
dhcp客户端查看,可以通过dhclient命令查看
如果是win系统,通过ifconfig/renew获取地址。当然要改成自动获取模式哈