Using and Administering Linux: Volume 3, Zero to SysAdmin: Network Services, 2nd Edition David Both - Download the ebook in PDF with all chapters to read anytime
Using and Administering Linux: Volume 3, Zero to SysAdmin: Network Services, 2nd Edition David Both - Download the ebook in PDF with all chapters to read anytime
com
https://ebookmeta.com/product/using-and-administering-linux-
volume-3-zero-to-sysadmin-network-services-2nd-edition-
david-both/
OR CLICK HERE
DOWLOAD EBOOK
https://ebookmeta.com/product/using-and-administering-linux-
volume-1-zero-to-sysadmin-getting-started-2nd-edition-david-both/
ebookmeta.com
https://ebookmeta.com/product/using-and-administering-linux-
volume-1-zero-to-sysadmin-getting-started-2nd-edition-david-both-2/
ebookmeta.com
https://ebookmeta.com/product/using-and-administering-linux-
volume-2-zero-to-sysadmin-advanced-topics-2nd-ed-2nd-edition-david-
both/
ebookmeta.com
https://ebookmeta.com/product/racism-in-psychology-challenging-theory-
practice-and-institutions-1st-edition-craig-newnes-editor/
ebookmeta.com
The Heiress of All Things Beautiful 1st Edition Anita
Stansfield
https://ebookmeta.com/product/the-heiress-of-all-things-beautiful-1st-
edition-anita-stansfield/
ebookmeta.com
https://ebookmeta.com/product/a-background-to-the-study-of-english-
literature-2nd-edition-b-prasad-brijadish-prasad/
ebookmeta.com
https://ebookmeta.com/product/mesozoic-stratigraphy-of-india-a-multi-
proxy-approach-1st-edition-santanu-banerjee/
ebookmeta.com
https://ebookmeta.com/product/the-best-recipes-to-elevate-your-
chicken-wing-game-1st-edition-sophia-freeman/
ebookmeta.com
https://ebookmeta.com/product/english-swahili-swahili-english-
immersive-dictionary-1st-edition-fidele-mpiranya/
ebookmeta.com
Psycho Oncology 2021 William Breitbart Editor Phyllis
Butow Editor Paul Jacobsen Editor Wendy Lam Editor Mark
Lazenby Editor Matthew Loscalzo Editor
https://ebookmeta.com/product/psycho-oncology-2021-william-breitbart-
editor-phyllis-butow-editor-paul-jacobsen-editor-wendy-lam-editor-
mark-lazenby-editor-matthew-loscalzo-editor/
ebookmeta.com
Using and Administering
Linux: Volume 3
Zero to SysAdmin: Network Services
Second Edition
David Both
Using and Administering Linux: Volume 3: Zero to SysAdmin: Network Services
David Both
Raleigh, NC, USA
Introduction����������������������������������������������������������������������������������������������������������xxiii
v
Table of Contents
vi
Table of Contents
vii
Table of Contents
viii
Table of Contents
SELinux������������������������������������������������������������������������������������������������������������������������������������� 182
Additional SELinux Considerations�������������������������������������������������������������������������������������� 188
Social Engineering�������������������������������������������������������������������������������������������������������������������� 188
Chapter Summary��������������������������������������������������������������������������������������������������������������������� 189
Exercises����������������������������������������������������������������������������������������������������������������������������������� 190
ix
Table of Contents
x
Table of Contents
xi
Table of Contents
xii
Table of Contents
xiii
Table of Contents
%clean��������������������������������������������������������������������������������������������������������������������������������� 434
%changelog������������������������������������������������������������������������������������������������������������������������� 434
Building the RPM���������������������������������������������������������������������������������������������������������������������� 434
Testing the RPM������������������������������������������������������������������������������������������������������������������������ 437
Rebuilding a Corrupted RPM Database������������������������������������������������������������������������������������� 438
Chapter Summary��������������������������������������������������������������������������������������������������������������������� 439
Exercises����������������������������������������������������������������������������������������������������������������������������������� 439
xiv
Table of Contents
Bibliography��������������������������������������������������������������������������������������������������������� 491
Index��������������������������������������������������������������������������������������������������������������������� 501
xv
About the Author
David Both is an open source software and GNU/Linux
advocate, trainer, writer, and speaker. He has been working
with Linux and open source software for more than 25 years
and has been working with computers for over 50 years.
He is a strong proponent of and evangelist for the "Linux
Philosophy for System Administrators."
He worked for IBM for 21 years and, while working as
a course development representative in Boca Raton, FL, in
1981, wrote the training course for the first IBM PC. He has
taught RHCE classes for Red Hat and has taught classes on
Linux ranging from Lunch'n'Learns to full five-day courses.
David’s books and articles are a continuation of his desire to pass on his knowledge
and to provide mentoring to anyone interested in learning about Linux.
David prefers to purchase the components and build his own computers from
scratch to ensure that each new computer meets his exacting specifications. Building
his own computers also means not having to pay the Microsoft tax. His latest build is an
ASUS TUF X299 motherboard and an Intel i9 CPU with 16 cores (32 CPUs) and 64GB of
RAM in a Cooler Master MasterFrame 700.
David is the author of The Linux Philosophy for SysAdmins (Apress, 2018) and
co-author of Linux for Small Business Owners (Apress, 2022) and can be found on
Mastodon @linuxgeek46@LinoxRocks.online.
xvii
About the Technical Reviewers
Branton Brodie started his Linux journey last year while
attending All Things Open 2022. Getting into the IT world
was something he wanted to do for a while but didn’t
know where to start until he went there and saw all the
opportunities shown. Linux stood out to him the most, and
he is now studying to become a SysAdmin. He enjoys reading
about tech and how the future of tech will shape the world
around us. He lives in the calming town of Wake Forest, NC.
xix
Acknowledgments
Writing a book – and especially a three-volume second edition – is not a solitary activity,
and this massive Linux training course required a team effort much more so than most.
The most important person in this effort has been my awesome wife, Alice, who
has been my head cheerleader and best friend throughout. I could not have done this
without your support and love. Again!
I owe many thanks to my editors at Apress, James Robinson-Prior and Gryffin
Winkler, for seeing the need for a second edition and especially for being supportive as
I worked my way through some major restructuring and a significant amount of new
material. I especially thank you for your immediate support when I suggested having a
student as second technical editor.
Seth Kenlon, my amazing technical reviewer, and I have worked together before on
previous books as well as many of the articles I wrote for the now defunct Opensource.
com website. I am grateful for his contributions to the technical accuracy of all three
volumes of this course. Seth also made some important suggestions that improved
the flow and accuracy of this course. I once said that Seth was on the “ragged edge of
being brutally honest” in his editorial tasks; he responded that he had been aiming for
“completely brutal,” but had apparently failed. You still have my ongoing gratitude for the
work you do.
I also owe many thanks to Branton Brodie, my second technical editor for all three
volumes. Branton and I met as part of his desire to learn about Linux at a time when I
was just starting on this second edition. I thought that having a student who wanted to
take the course anyway act as a technical editor could provide me with some insight into
how students view the course. His contributions have been valuable to my work as I was
able to revise descriptions and explanations that made sense to me but not necessarily to
anyone who has never been exposed to Linux or system administration.
Of course any remaining errors, omissions, and poor explanations are my
responsibility alone.
xxi
Introduction
This Linux training course, “Using and Administering Linux – Zero to SysAdmin,” is
significantly different from other courses. It consists of three volumes. Each of these
three volumes is closely connected, and they build upon each other.
This Linux training course differs from others because it is a complete self-study
course. You should start at the beginning of Volume 1 and read the text, perform all of
the experiments, and do all of the chapter exercises through to the end of Volume 3. If
you do this, even if you are starting from zero knowledge about Linux, you can learn the
tasks necessary to becoming a Linux system administrator, a SysAdmin.
Another difference this course has over others is that all of the experiments are
performed on one or more virtual machines (VMs) in a virtual network. Using the free
software VirtualBox, you will create this virtual environment on any reasonably sized
host, whether Linux or Windows. In this virtual environment, you are free to experiment
on your own, make mistakes that could damage the Linux installation of a hardware
host, and still be able to recover completely by restoring the Linux VM host from any one
of multiple snapshots. This flexibility to take risks and yet recover easily makes it possible
to learn more than would otherwise be possible.
These course materials can also be used as reference materials. I have used my
previous course materials for reference for many years, and they have been very useful in
that role. I have kept this as one of my goals in this set of materials.
Not all of the review exercises in this course can be answered by simply reviewing
the chapter content. For some questions you will need to design your own experiment
in order to find a solution. In many cases there will very probably be multiple solutions,
and all that produce the correct results will be the “correct” ones.
The Process
The process that goes with this format is just as important as the format of the course –
really even more so. The first thing that a course developer must do is generate a list of
requirements that define both the structure and the content of the course. Only then can
xxiii
Introduction
the process of writing the course proceed. In fact, many times I find it helpful to write the
review questions and exercises before I create the rest of the content. In many chapters
of this course, I have worked in this manner.
These courses present a complete, end-to-end Linux training course for students
like you who know before you start that you want to learn to be a Linux system
administrator – a SysAdmin. This Linux course will allow you to learn Linux right from
the beginning with the objective of becoming a SysAdmin.
Many Linux training courses begin with the assumption that the first course a
student should take is one designed to start them as a user. Those courses may discuss
the role of root in system administration, but ignore topics that are important to future
SysAdmins. Other courses ignore system administration altogether. A typical second
course will introduce the student to system administration, while a third may tackle
advanced administration topics.
Frankly, this baby step approach did not work well for many of us who are now
Linux SysAdmins. We became SysAdmins, in part at least, due to our intense desire to
learn as much as possible as quickly as possible. It is also, I think in large part, due to our
highly inquisitive natures. We learn a basic command and then start asking questions,
experimenting with it to see what its limits are, what breaks it, what using it can break.
We explore the man(ual) pages and other documentation to learn the extreme usages to
which it might be put. If things don’t break by themselves, we break them intentionally
to see how they work and to learn how to fix them. We relish our own failures because
we learn more from fixing them than we do when things always work as they are
supposed to.
In this course we will dive deep into Linux system administration almost from the
very beginning. You will learn many of the Linux tools required to use and administer
Linux workstations and servers – usually multiple tools that can be applied to each of
these tasks. This course contains many experiments to provide you with the kind of
hands-on experiences that SysAdmins appreciate. All of these experiments guide you
one step at a time into the elegant and beautiful depths of the Linux experience. You
will learn that Linux is simple and that simplicity is what makes it both elegant and
knowable.
Based on my own years working with Unix and Linux, the course materials contained
in these three volumes are designed to introduce you to the practical, daily tasks you
will perform as a Linux user and, at the same time, as a Linux system administrator –
SysAdmin.
xxiv
Introduction
But I don’t know everything – that’s just not possible. No SysAdmin does. Further,
no two SysAdmins know exactly the same things because that, too, is impossible.
We have each started with different knowledge and skills; we have different goals;
we have different experiences because the systems on which we work have failed in
different ways, had different hardware, were embedded in different networks, had
different distributions installed, and many other differences. We use different tools and
approaches to problem solving because the many different mentors and teachers we
had used different sets of tools from each other; we use different Linux distributions; we
think differently; and we know different things about the hardware on which Linux runs.
Our past is much of what makes us what we are and what defines us as SysAdmins.
So I will show you things in this course – things that I think are important for you
to know, things that, in my opinion, will provide you with the skills to use your own
curiosity and creativity to find solutions that I would never think of to problems I have
never encountered.
I have always found that I learn more from my mistakes than I ever have when things
work as they are supposed to. For this reason I suggest that, rather than immediately
reverting to an earlier snapshot when you run into trouble, you try to figure out how the
problem was created and how best to recover from it. If, after a reasonable period of
time, you have not resolved the problem, that would be the point at which reverting to a
snapshot would make sense.
xxv
Introduction
Content Overview
This quick overview of the contents of each volume should serve as a quick orientation
guide if you need to locate specific information. If you are trying to decide whether to
purchase this book and its companion volumes, it will give you a good overview of the
entire course.
1. Introduction
4. Preparation
5. Installing Linux
8. Core Utilities
9. Data Streams
19. Filesystems
xxvii
Introduction
In Chapter 23 you will learn to use several tools that enable the SysAdmin to manage
and monitor running processes. Chapter 24 enables you to experience the power of the
special filesystems, such as /proc, which enable us as SysAdmins to monitor and tune
the kernel while it is running – without a reboot.
Chapter 25 will introduce you to regular expressions and the power that using
them for pattern matching can bring to the command line, while Chapter 26 discusses
managing printers and printing from the command line. In Chapter 27 you will use
several tools to unlock the secrets of the hardware on which your Linux operating system
is running.
Chapters 28 and 29 show you how to do some simple – and not so simple –
command-line programming and how to automate various administrative tasks. In
Chapter 30 you will learn to use Ansible, a powerful tool that makes automating tasks for
thousands of computers just as easy as for one. Chapter 31 discusses the tools you will
use to perform repetitive and automated tasks at specific times.
You will begin to learn the details of networking in Chapter 32, and Chapter 33 covers
use of the powerful NetworkManager tool.
Chapter 34 introduces the B-Tree Filesystem (BTRFS) and covers its very interesting
features. This chapter also informs you why BTRFS is not an appropriate choice for a
filesystem in most use cases.
Chapters 35 through 37 allow you to explore systemd, the modern tool for starting
Linux at boot time and which is also used to manage system services and tools.
Chapter 38 discusses D-Bus and udev and how Linux uses them to treat all devices as
plug and play (PnP).
In Chapter 39 you will learn to use and manage traditional log files. You will also
learn to configure and use the logwatch facility to assist you with sorting through the
many log messages to get to the important ones.
Chapter 40 covers the tasks required to manage users, while Chapter 41 introduces
you to some basic tasks needed to manage the firewall. You will use the firewalld
command-line tool to create and manage zones to which the network interfaces will be
assigned based on various security needs such as internal and external networks.
xxviii
Introduction
is connected to the existing virtual router so as to allow connections to the outside world
and so that the other NIC connects to the new “inside” network that will contain the
existing VM.
Chapter 43 discusses Domain Name Services (DNS) in detail both from client and
server standpoints. You’ll learn to use the /etc/hosts file for simple name resolution and
then create a simple caching name server. You will then convert the caching name server
into a primary name server for your internal network.
In Chapter 44 you will convert the new server into a router using kernel parameters
and a simple firewall configuration change.
Chapter 45 shows how to use SSHD to provide secure remote access between Linux
hosts. It also provides some interesting insights into using commands remotely and
creating a simple command-line program to back up specific directories of a remote host
to the local host.
Although we have incorporated security in all aspects of what has already been
covered, Chapter 46 covers some additional security topics. This includes physical
hardening as well as further hardening of the host to provide enhanced protection from
network intrusions.
In Chapter 47 you will learn techniques and strategies for creating backups that use
easily available open source tools, which are easy to use for both creating backups and
restoring complete filesystems or individual files.
You will learn to install and configure an enterprise-class email server that can detect
and block most spam and malware in Chapters 48 through 50. Chapter 51 takes you
through setting up a web server, and in Chapter 52 you will set up WordPress, a flexible
and powerful content management system.
In Chapter 53 you return to email by setting up a mailing list using Mailman.
Sometimes accessing a desktop remotely is the only way to do some things, so in
Chapter 54 you will do just that.
Chapter 55 discusses package management from the other direction by guiding you
through the process of creating an RPM package for the distribution of your own scripts
and configuration files. Then Chapter 56 guides you through sharing files to both Linux
and Windows hosts.
Finally, Chapter 57 will get you started in the right direction because I know you are
going to ask, “Where do I go from here?”
xxx
Introduction
44. Routing
46. Security
52. WordPress
xxxi
Introduction
experiments has properties that make it especially valuable in learning the in-
depth details of how Linux and those services work. Once you have learned those details,
moving to any other software that performs the same tasks will be relatively easy. In any
event, none of that “older” software is anywhere near as difficult or obscure as some
people seem to think that it is.
xxxii
Introduction
xxxiii
Introduction
I have only replaced older graphics with newer ones where necessary to ensure the
accuracy and clarity of the illustrated points. Some of the illustrations in this course are
from Fedora 29. If you are using later releases of Fedora, such as Fedora 37, 38, or later,
the background and other cosmetic elements may be different from Fedora 29.
xxxiv
CHAPTER 42
Server Preparation
Objectives
In this chapter you will
• Use DHCP to assign and manage static IP addresses for specific hosts
based on the MAC address.
1
© David Both 2023
D. Both, Using and Administering Linux: Volume 3, https://doi.org/10.1007/978-1-4842-9786-5_42
Chapter 42 Server Preparation
Overview
There are some preparatory tasks that need to be accomplished in order perform the
experiments in this third volume of Using and Administering Linux – Zero to SysAdmin.
Most lab environments use physical machines for training purposes, but in this
volume we use at least two Linux hosts in a local network in order to enable a realistic
environment for learning about being a SysAdmin.
As we have seen in the previous two volumes of this course, the use of multiple VMs
to create a virtual network on a single physical host provides a safe virtual computing
and network environment in which to learn by making mistakes.
In Volume 1, you created a VM and a custom virtual network and installed Fedora on
it to use in the many experiments encountered in the rest of the course. We now need to
create a new VM that we can use as a server for this volume of the course.
In this volume, Volume 3, of the course, I assume that you have completed the
previous two volumes. You will not be able to successfully perform the experiments in
this volume if you have not completed the first two volumes. This is for two reasons. First,
you will probably not have sufficient knowledge to do so, and second, the virtual network
and virtual machine created in Volume 1 and changed and modified throughout Volume
2 will not be available or configured correctly to work in this part of the course.
Creating the VM
We first need to create a new VM we will use as our server for the rest of this course and
then make some configuration changes. Create the new VM using the specifications
listed in Figure 42-1.
2
Chapter 42 Server Preparation
Use the VirtualBox Manager to create a new VM using the preceding specifications. If
necessary you can review Chapter 5 in Volume 1 for details.
3
Chapter 42 Server Preparation
At this point the basic virtual machine has been created, but we need to make a few
changes to some of the configuration. Use the VirtualBox Manager Settings dialog for
StudentVM2 to make these changes:
1. Deselect the Floppy disk and then move it down the Boot Order
to below the Hard Disk.
3. Select the Network settings page and, on the Adapter 1 tab, select
NAT Network in the Attached to: field. Because we have created
only one NAT network, the StudentNetwork, that network will be
selected for us. Click the little blue triangle next to Advanced to
view the rest of the configuration for this device. Do not change
anything else on this page.
The virtual machine is now configured and ready for us to install Linux.
Installing Linux
Now install the most recent Fedora Linux Xfce version on StudentVM2. The initial
configuration for both VMs is exactly the same with only one exception. The hostname
for the server VM, StudentVM2, should be studentvm2 in all lowercase.
Using the VirtualBox Manager, insert the ISO image file, Fedora-Xfce-Live-x86_64-38-1.iso –
or whatever the current version of the Xfce live image happens to be – into the StudentVM2
virtual machine’s storage controller as the IDE secondary master. Then boot the VM and
proceed with the installation from the live image using the filesystem configuration shown in
Figure 42-2.
4
Chapter 42 Server Preparation
Tip When I clicked the “Install to Hard Drive” icon on the desktop, I got a
notification that it was an “untrusted application launcher.” It is safe to ignore this
warning and click the Launch Anyway button.
Be sure to use manual filesystem configuration during the installation. If you need a bit of
assistance, Volume 1, Chapter 5, of this course contains the details of how to do the complete
installation, including creating the filesystems. Just remember to use the correct hostname for
this second virtual machine, studentvm2.
Note that we do not initially allocate all of the space in the volume group. However, be sure to
create the /boot and biosboot partitions first and then – this is very important – after creating /
root, the first filesystem that is part of the LVM system, be sure to alter the configuration of the
volume group to use the option “As large as possible,” in order to include all of the remaining
space on the virtual hard drive in the logical volume. I also suggest changing the volume group
name to vg01 to remove the reference to “live.”
5
Chapter 42 Server Preparation
It is no longer necessary to allocate swap space on the storage drive since Fedora now uses
8GB of Zram for swap space.
Important Be sure to modify the volume group so that it takes up all of the
remaining space on the virtual hard drive after creation of the /boot partition.
Be sure to set the root password and create a non-root user with the name of
“student” and set a password for that user before you click the Start Installation
button. Also, add a check mark to the box labeled “Allow root SSH login with
password.”
After the Fedora installation has completed, remove the live USB image from the IDE controller
and reboot StudentVM2 to verify that it comes up, runs properly, and can ping example.com
and StudentVM1.
As the root user on StudentVM2, configure the kernel so that it displays all kernel and startup
messages. If you need some guidance with this, we did it for StudentVM1 in Volume 1,
Chapter 16.
Next, install all current updates. We covered that in Chapter 12, so you may want to go back
and refresh your memory.
Perform any additional personalization that you want to both the student and root accounts.
This can include setting Bash configuration, installing tools that aren’t by default, and more.
6
Chapter 42 Server Preparation
7
Chapter 42 Server Preparation
Use the VirtualBox Manager to create a new network that will be our local network. This is
actually quite simple because most of the data is entered by default.
Power down StudentVM2. At the top of the list of VMs, open the Tools ➤ Network dialog.
Click Host-only Networks and then the Create button to create a new host network.
The default is to configure the adapter manually, and the required data for IPV4 is already
generated and placed in the appropriate locations. Figure 42-3 shows the default
configuration for this adapter. There is no need to change anything on this tab.
Be sure that the Enable Server box is not checked on the DHCP Server tab of the dialog. We
don’t want two DHCP servers in the network, and this one must be disabled. We will be using
vboxnet0 for this course because it is created automatically.
Figure 42-4 shows the completed dialog box, but the IPV6 data fields may be empty. If this is
the case, the Apply button will be grayed out.
1
Red Hat, Red Hat Enterprise Linux Networking Guide, https://access.redhat.com/
documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/
sec-configuring_ip_networking_with_nmcli
8
Chapter 42 Server Preparation
Figure 42-4. The host network configuration when creating the Virtual Machine
Click Apply – if it is highlighted – to finish creating the new network. Now we can add the new
NIC to StudentVM2 and connect it to this network.
Using the VirtualBox Manager, select StudentVM2, which should be powered off. If it is not,
do so now. Open the Settings dialog for StudentVM2 and select the Network tab. Click the
Adapter 2 tab and place a check mark in the Enable Network Adapter checkbox.
In the Attached to drop-down selection box, click Host-only Adapter. Because we have only
one network of this type, the vboxnet0 network is chosen by default. Click the little triangle-
shaped twistie next to Advanced and check out the rest of the configuration for this new NIC,
including the MAC address. Verify that there is a check mark in the Cable Connected box.
Click the OK button to complete the addition of this new virtual NIC.
9
Chapter 42 Server Preparation
Before we continue, we want to have a set of requirements that define the network
address map for our new, internal network. We should always create requirements before
starting a project of any kind. Figure 42-5 shows the range of network addresses we – well,
I, actually, but you get the idea – have arbitrarily decided upon for our very simple internal
network. It is typical for the router to have the “1” or another lowest IP address in the available
IP address range; however, the virtual network we just created assigns that IP address to its
own virtual router. So we will start with 192.168.56.11 for the local network router address.
Figure 42-5. The general address map for the virtual network as we want it to be
when we are finished
We have defined address ranges for workstations, servers, and even guest computers
such as what might be used in a flexible work environment. We will explore more about
assigning workstation and guest IP addresses in the “Overview of DHCP” section of this
chapter.
But before we can continue, we need to obtain some information about the NICs in
our VMs.
Perform this experiment as root. This experiment obtains the information we need to create
our address map. Remember that the MAC addresses will be different for your VMs than they
are for mine.
Power on StudentVM2. Log into StudentVM2, open a terminal session, and su - to root.
As the root user on StudentVM2, list the NICs installed in StudentVM2 and the associated MAC
and IP addresses. Remember that your MAC addresses will be different from mine and the IP
addresses – if any – will also be different:
10
Exploring the Variety of Random
Documents with Different Content
II.
III.
IV.
V.
VI.
VII.
VIII.
IX.
X.
XI.
XII.
XIII.
XIV.
I.
All skirts extended of thy mantle hold,
When angel hands from heav’n are scattering gold.
II.
III.
IV.
V.
VI.
VII.
VIII.
IX.
X.
XI.
XII.
XIII.
XIV.
Rejoice not when thine enemy doth die,
Thou hast not won immortal life thereby.
XV.
XVI.
XVII.
XVIII.
XIX.
XX.
XXI.
XXII.
XXIII.
XXIV.
XXV.
I.
Love is it, Love divine, that hath an impulse lent
To man, and beast, and worm, and every element.
II.
III.
IV.
V.
VI.
Night asked I why she hung the world with darkness round:
To consecrate the world for Love a bridal tent.
VII.
IX.
X.
Oh! see Love’s mighty dance, oh! hear its choral hymn;
Stand up—in dance and hymn to take thy part consent.
THE FALCON.
I.
High didst thou once in honour stand,
The falcon on a Prince’s hand:
II.
III.
IV.
V.
VI.
VII.
I.
A pagan King tormented fiercely all
Who would not on his senseless idols call,
Nor worship them:—and him were brought before,
A mother and her child, with many more.
The child, fast bound, was flung into the flame,
Her faith the mother did in fear disclaim:
But when she cried—“O sweetest! live as I,”
He answered—“Mother dear, I do not die;
Come, mother, bliss of heaven is here my gain,
Although I seem to you in fiery pain.
This fire serves only for your eyes to cheat,
Like Jesus’ breath of balm ’tis cool and sweet.
Come—learn what riches with our God are stored,
And how he feeds me at the angelic board.
Come, prove this fire—like water-floods it cools,
While your world’s water burns like sulphur pools.
Come—Abraham’s secret, when he found alone
Sweet roses in the furnace, here is known.
Into a world of death thou barest me,
O mother, death, not life, I owed to thee.
Fair world I deemed it once of glorious pride,
Till in this furnace I was deified;
But now I know it for a dungeon-tomb,
Since God has brought me into larger room.
Oh! now at length I live—from my pure heaven
Each cloud, that stained it once, away is driven:
Come, mother, come, and with thee many bring;
Cry, ‘Here is spread the banquet of the King;’
Come, all ye faithful—come, and dare to prove
The bitter-sweet, the pain and bliss of love.”
III.