Linux Server FAQ

Share This Post:

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Linux Server FAQ

Have you ever wondered how a Linux server works?  Dive into Secur’s Linux Server FAQ and find some quick answers to your questions about Linux servers.   If you have more time and really want to understand what goes on inside a Linux server, give Secur’s article How Does A Linux Server Work a read.

What are the ways to start server programs in Linux?

Linux servers run services in one of two ways:

    • Spawned by parent process in response to a request.
    • As a daemon, a background process that runs as soon as a server boots up.   The more requests and services a server manages, the more memory it requires.

Read How To Launch Services on a Linux Server to learn more about it.

How do clients know how to contact the correct server program?

This is a combination of two processes:

  • Server applications listen for client connections on well-known ports. Defined by the IETF, different services use different ports for communication , allowing clients to use a common IP address to reach a server and then specific ports to reach individual services.  This standard set of ports to common services are called “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.
    • Each service uses a separate standardized network protocol (such as a web server using HTTP or an email server using SMTP) to communicate with its clients.

What are the components in the LAMP stack?

The LAMP stack is made up of:

  • Linux operating system.
  • Apache web server.   Competing servers include nginX and lighthttp.  Read Linux Based Web Servers to learn more.
  • MySQL database server.
  • PHP programming language

What is the difference between a relational database and a NoSQL database?

Compared to relational databases, NoSQL databases differ in that they:

  • Store data as individual documents instead of tables
  • Can contain different data elements; each data element can be independent from other data elements in the database.

How does a Linux mail server work?

As depicted in the chart below, there are 4 components to a Linux mail server:

  • Email Database
  • Mail Transfer Agent
    • Responsible for handling both incoming and outgoing email messages on the server.
    • Determines the destination host of the recipient address for each outgoing message.
    • Establish a communication link with another MTA program on the remote host to transfer the message.
  • Mail Delivery Agent
    • Receives messages destined for local users from the MTA program and then determines how those messages are to be delivered
    • Linux implementations often rely on stand-alone mail delivery agent (MDA) programs to deliver messages to local users (vs remote users).
  • Mail User Agent
    • Typically running on the client side and interacts with end users (allows viewing/manipulation of messages)
Linux-email-environment
Diagrammatic representation of the modular Linux email environment.

Which local network services can be provided with Linux?

Linux servers can be used in local network environments to provide the following services.

  • File Servers: File sharing allow multiple user to create/edit/manage files in a common folder. There are two basic methods for sharing files in a local network environment, peer-to-peer and client Server: 
  • Print Servers:  The Linux print sharing software package is called the Common Unix Printing System (CUPS) and allows a Linux system to connect to local or networked (using the Internet Printing Protocol (IPP)) printer resources.
  • Network Resource Servers:  Administrating a local network requires number of different technologies; Linux provides a few different service packages that network administrators can use for:
    • IP Address Administration via DHCP
    • Linux System Logging usually done by either the rsyslogd or journald logging packages.
    • Name Servers: maps IP addresses to a host naming scheme on networks, thereby acting as a directory.
    • Network Management: Uses SNMP to query remote network servers/devices to obtain information about their configuration, status, and even performance. The most popular SNMP software package in Linux is net-snmp package with SNMPv3 compatibility, allowing secure remote monitor of a Linux server. As seen in the diagram below, SNMP operates in a simple client/server paradigm
    • Time: via the Network Time Protocol (NTP), is required for many network applications to function correctly
    • Implementing Security
      • Authentication Server
        • NIS: allows both clients and servers to share a common naming directory which is often used as a common repository for user accounts, hostnames, and email information on local networks
        • Kerberos
        • LDAP
      • Certificate Authority
      • Access Server (SSH)
    • Virtual Private Networks
    • Proxy Server

How does a Linux server share files in a local network?

Linux provides for two basic methods for sharing files in a local network environment:

  • Peer-to-peer: One workstation enables another workstation to access files stored locally on its hard drive.  Sharing data between more than two people is not easily done.
  • Client/server: Multiple clients can access and modify files as needed and requires an administrator to control files/folders access.
    Two common Linux server software packages for sharing files are NFS and Samba.

What Linux server packages support local network features?

  • The DHCPd package: Provides DHCP server services to assign IP addresses to clients.
  • The BIND package: uses the named program to provide DNS server services to both clients and servers on a local network for hostname resolution. A BIND server communicates with other DNS servers to look up an address on remote networks, allowing clients to point to a single DNS name server while being able to resolve any IP address on the Internet.
  • The net-snmp package: Implements remote device management using SNMP,
  • The ntpd package: Creates an NTP time server for the local network.
  • NIS/KERBEROS/LDAP: Authentication services

How do you 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.

How do you improve the performance of a network application?

You can improve the performance of a network application by combing the application of:

  • Clustering: improves performance, provides system redundancy and fault tolerance by dividing application functions across multiple servers.
  • Load Balancing: A special application of clustering that redirects entire client requests to one of a cluster of servers.
  • Containerizing: Creating a development environment that parallels the production environment, minimizing downtime.

Share This Post:

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn

Leave a Reply

Your email address will not be published. Required fields are marked *

Table of Contents

You May Like

Related Posts