Shell脚本一键部署DNS-FTP-DHCP-Firewall服务

本文介绍了如何通过Shell脚本来一键部署防火墙、DHCP服务器、DNS服务器和FTP服务器。场景设定为防火墙使用Firewalld,允许内网192.168.0.0/24访问,并配置DHCP中继服务。此外,内网客户端能通过DNS解析域名,并以匿名身份通过被动模式访问FTP服务器。文章详细阐述了每一步的配置和脚本编写过程,包括环境准备、SSH免密登录、各服务配置脚本以及最终执行脚本的调试与验证方法。
摘要由CSDN通过智能技术生成

阶段一项目实战


场景

初创公司是一家新成立的创业公司,公司根据业务需求准备部署一个小型网络,包含四台服务器和若干客户机。工程师规划的网络拓扑如图 1 所示。考虑到后期需要在全国多个城市开分公司,公司希望通过 Shell 的方式,可以在不同的分支机构进行快速复制现有网络。

在管理员PC上编写shell脚本,实现一键部署,实现以下项目需求:

  • 分别部署防火墙、DHCP 服务器、DNS 服务器和 FTP 服务器。
  • 防火墙使用 Firewalld 服务,并允许来自内网客户端(192.168.0.0/24)
    同时防火墙作为公司的边界设备,要允许内网客户端(192.168.0.0/24)对互联网的访问。
    管理员也可以通过互联网 SSH 连接到内网管理员 PC(192.168.0.10)
  • Firewalld 上配置 DHCP 中继服务,使内网客户端(192.168.0.0/24)可以动态获取由 DHCP
    服务器分配的 IP 地址。
  • 内外客户端(192.168.0.0/24)可以通过DNS Server解析bdqn.com中的域名。
  • 内网客户端(192.168.0.0/24)可以通过被动模式以匿名身份访问FTP Server,并具备上传,下载,修改目录以及删除权限

准备环境

  • 管理员PC配置IP地址
  • 防火墙配置三张网卡,分别配置IP
  • 三台服务器分别配置IP
  • 外网配置IP
  • 因为防火墙使用Linux代替,需要提前开启路由转发

配置SSH免交互式访问

  • 在管理员PC上生成密钥对
  • 将密钥发送到服务器和防火墙上实现免密登录

编写脚本

1)编写yum源配置脚本yum.sh,并完成调试(此环境使用的是本地yum源)

#!/bin/sh
ServerIP="$FW_IP $DHCP_Server_IP $DNS_Server_IP $FTP_Server_IP"
for i in $FW_IP $DHCP_Server_IP $DNS_Server_IP $FTP_Server_IP
do
cmd="ssh $i"
$cmd 'df | grep /dev/sr0' > /dev/null
if [ $? == 0 ]
then
        $cmd 'umount /dev/sr0' &> /dev/null
        $cmd 'umount /mnt' &> /dev/null
fi
$cmd 'mount /dev/cdrom /mnt' &> /dev/null
$cmd 'rm -rf /etc/yum.repos.d/*'
$cmd 'echo "[yum]" > /etc/yum.repos.d/yum.repo'
$cmd 'echo "name=yum" >> /etc/yum.repos.d/yum.repo'
$cmd 'echo "baseurl=file:///mnt" >> /etc/yum.repos.d/yum.repo'
$cmd 'echo "gpgcheck=0" >> /etc/yum.repos.d/yum.repo'
$cmd 'echo "enabled=1" >> /etc/yum.repos.d/yum.repo'
$cmd 'yum clean all' &> /dev/null
$cmd 'yum makecache' &> /dev/null
if [ $? == 0 ]
then
        echo "yum is ok($i)"
else
        echo "yum is aa($i)"
fi

done

2) 编写Firewalld配置脚本firewall.sh,并完成调试

#!/bin/sh

FW_cmd="ssh $FW_IP"

route="$FW_cmd cat /proc/sys/net/ipv4/ip_forward"
if [ "$route" == 1 ]
then
    $FW_cmd "firewall-cmd --permanent --add-masquerade &> /dev/null"
    echo "firewall rou
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值