Chapter 2: Sifting Through Services Flashcards
What are the two primary ways Linux servers run service programs?
The two primary ways linux servers run service programs are as a background process, running at all times listening for requests and as a process spawned by a parent program that listens for the requests
What is a daemon?
A daemon is when a linux service program runs continuously as a background process
How do you identify a daemon program?
Linux daemon programs often end with the letter d to indicate they’re daemon processes
What are super-servers?
Super-servers are programs that listen for network connections for several different applications. When the super-server receives a request for a service from the client, it spawns the appropriate service program
What is the original super-server program created for Linux?
The original super-servers program created for Linux was the internet daemon (inetd) application
What is the extended internet daemon (xinetd)?
The extended internet daemon is an advanced version of the inetd. It also launches service programs as requested by clients, but also contains additional features, such as access control lists (ACL’s), more advanced logging features , and the ability to set schedules to turn services on and off at different times of the day or week
What are three internet services Linux servers provide?
1) Web services
2) Database Services
3) Email Services
What are some of the Linux web servers?
1) The Apache Web Server
2) The nginX Web Server
3) The lighthttppd Web Server
What are the three most popular one-source database servers you’ll encounter when working in the Linux environment?
1) PostgreSQL
2) The MySQL Server
3) The MongoDB Server (NoSQL)
Describe the Linux email server
The Linux email server is normally divided into 3 separate functions:
1) The mail transfer agent (MTA)
2) The mail delivery agent (MDA)
3) The mail user agent (MUA)
Which one of the three functions of a Linux email server does the end user interact with?
The Mail User Agent (MUA) is the program that interacts with end users allowing them to view and manipulate email messages. The MUA’s don’t usually run on the server side but rather on the client side
What is the mail transfer agent (MTA) responsible for?
The mail transfer agent is responsible for handling both incoming and outgoing messages on the server.
Name three MTA packages that Linux uses
1) sendmail
2) Postfix
3) Exim
Describe the Mail Delivery Agent (MDA)
Responsible for delivering messages to local users. MDA Programs concentrate only on delivering messages to local users. The MDA program receives messages destined for local users from the MTA program then determines how those messages are to be delivered
Describe the two common MDA programs used in Linux
Binmail is the most popular MDA program used for Linux. Its named is derived from the location on the system bin/mail. By default, it can read email messages stored in the standard /var/spool/mail directory or can be pointed at an alternative mailbox
Procmail is popular because of its versatility in creating user-configured scripts that allows a user to direct how the server processes received emails
What are the two basic methods for sharing files in a local network environment?
1) Peer to Peer
2) Client / Server
What are the two common server software packages used for sharing files?
Network File System (NFS) is a protocol used to share folders in a network environment. With NFS, a linux system can share a portion of its virtual directory on the network to allow access by clients as well as other servers
The packed used in linux is nfs-utils
Samba was created to allow Linux systems to interact with the windows client and servers
What are some popular DHCP clients for Linux?
1) dhclient
2) dhcpcd
3) pump
What does DHCP stand for?
Dynamic Host Configuration Protocol
What are the two main logging packages used in Linux?
rsyslogd: The SysVinit and Upstart systems utilize the rsyslogd service program to accept logging data from remote servers
journald: The Systemd system utilizes the journald service for both local and remote logging of system information.
Both rsyslogd and journald utilize configuration files that allow you to define just how data is logged and what clients the server accepts log messages from
Describe SNMP
Simple Network Management Protocol (DNMP) provides a way for an administrator to query remote network devices and servers to obtain information about their configuration, status and even performance
The most popular SNMP package in Linux is the net-snmp package
Describe the Network Time Protocol (NTP)
The NTP allows servers and clients to synchronize on the same time source across multiple networks.
Implementing Security
Each Linux server maintains its own list of valid user accounts that have access on that server
Describe the Network Information System(NIS)
The Network Information System (NIS) is a directory service that allows both client and servers to share a common naming directory. The NIS naming directory is often used as a common repository for user accounts, hostnames, and even email information on local networks.
The nis-utils package is used for implementing an NIS or NIS+ directory
What is Kerberos?
Kerberos uses a symmetric-key cryptography to securely authenticate users with a centralized server database. The entire authentication process is encrypted, making it a secure method of logging into a linux server
Describe LDAP
Lightweight Directory Access Protocol (LDAP)
Provides simple network configuration services to multiple applications and devices on a local network.
Most popular Linux LDAP package is OpenLDAP
OpenLDAP allows admins to design a hierarchal database to store objects in your network. Objects are connected in a tree like fashion to one another
Describe a Certificate Authority
A certificate authority is a better way for authenticating users. A certificate is an encrypted key that implements a two-factor authentication method. To login to a server, a user must have two things:
1) Something they posses, such as a certificate file
2) Something they know, such as a pin
OpenSSL package provides standard certificate functions for both servers and clients
Access Server (SSH)
Secure Shell (SSH) provides a layer of encryption around data sent across the network
Most popular software package that implements SSH in the Linux environment is the OpenSSH package
Proxy Server
A web proxy server allows you to intercept web requests from local network clients. By intercepting the web requests, you have control of how clients interact with web servers
Most popular web proxy package for Linux is Squid
What are three common methods methods for improving performance?
1) Clustering
2) Load balancing
3) Containers
Describe Clustering
A computer cluster improves application performance by dividing application functions among multiple servers. Each server node in the cluster is configured the same and can perform the same functions, but the cluster management software determines how to split the application functions among the servers
Describe Load Balancing
Load balancing is a special application of clustering. A load balancer redirects entire client requests to one of a cluster of servers. While a single server process the entire request, the client load is distributed among the multiple servers automatically
Describe Containers
Linux containers create a self-contained environments to encapsulate applications. A container packages all of the necessary application files, library files, and operating system libraries into a bundle that can easily move between environments.
Two popular container packages are Kubernetes and Docker
Describe the ways to start server programs in Linux
Server programs in Linux can either run continually in the background as a daemon process or be started from a super-server daemon when requested by a client.
Explain how clients know how to contact a server program
Server applications listen for client connections on well-known ports. Clients must send a connection request to the server on the well-known port for the application they want to interact with.
Explain the components commonly used in a LAMP stack
The LAMP stack uses the Linux operating system, the Apache web server, the MySQL database server, and the PHP programming language to provide a platform for web applications.
Describe the difference between a relational database and a NoSQL database
A relational database stores data records in individual data tables. Each data type consists of one or more data fields that contain individual data elements. A data record is an instance of data for each data field in a table. A NoSQL database stores data values in documents. Each document is independent of all of the other documents in the database. Each document can also contain different data elements
Understand the ways a Linux server can share files in a local network
Linux servers can use the nfs-utils package to communicate with other Linux servers to share folders using NFS. The local Linux server can mount folders from the remote Linux server as if they were local disks. Linux servers can also use the Samba package to share files on Windows local networks with Windows clients and servers as well as map folders located on Windows servers
Understand which server packages are commonly used to support network features on a local network
The DHCPd package provides DHCP server services to assign IP addresses to clients. The BIND package provides DNS server services to both clients and servers on a local network for hostname resolution. The net-snmp package allows you to implement remote device management using SNMP, and you can use the ntpd package to create an NTP time server for the local network
Describe how to create a network directory server using Linux
The OpenLDAP package allows you to create an LDAP directory of users and devices on the local network. Clients and other servers can use the LDAP directory to authenticate users and devices on the network
Explain how to improve the performance of a network application
For network applications in a high-volume environment, you can improve performance by implementing either a cluster or load balancing environment. In a cluster, you can split application functions between multiple servers by using a cluster package such as Apache Hadoop. With load balancing, you can distribute client connections between multiple servers using packages such as HAProxy and Linux Virtual Server (LVS).