User Tools

Site Tools


products:ict:linux:skills:server_administration

Administering Linux servers skills

### Basic System Administration

1. Installation and Configuration

  1. Installing Linux server distributions (e.g., Ubuntu Server, CentOS, Debian).
  2. Initial system configuration: setting hostname, network settings, and updating the system.

2. User and Group Management

  1. Commands: `useradd`, `usermod`, `userdel`, `groupadd`, `passwd`
  2. Managing user permissions and groups.
  3. Using `sudo` to delegate administrative rights.

3. File System Management

  1. Mounting and unmounting file systems.
  2. Commands: `mount`, `umount`, `df`, `du`
  3. Managing file systems with tools like `mkfs`, `fsck`, `resize2fs`, `xfs_growfs`.

4. Package Management

  1. Using package managers to install, update, and remove software.
  2. Debian/Ubuntu: `apt`, `dpkg`
  3. RedHat/CentOS: `yum`, `dnf`, `rpm`

### Networking

1. Network Configuration

  1. Configuring network interfaces: `ifconfig`, `ip`, `nmcli`
  2. Managing network services: DHCP, DNS, NTP

2. Firewall Configuration

  1. Using `iptables`, `firewalld`, or `ufw` to configure firewall rules.
  2. Ensuring security by restricting access to services.

3. SSH and Remote Access

  1. Configuring and securing SSH: `/etc/ssh/sshd_config`
  2. Setting up SSH keys for password-less login.

### Service and Process Management

1. Systemd and Init Systems

  1. Managing services with `systemctl` (start, stop, enable, disable).
  2. Creating and managing custom service units.

2. Process Monitoring

  1. Commands: `ps`, `top`, `htop`, `kill`, `nice`, `renice`
  2. Understanding and managing system load.

### Security

1. User and Group Security

  1. Implementing best practices for user account security.
  2. Configuring `sudo` for administrative tasks.

2. Security Policies

  1. Implementing SELinux or AppArmor for mandatory access control.
  2. Regularly updating the system and installed packages to patch vulnerabilities.

3. Auditing and Logging

  1. Configuring and managing system logs: `rsyslog`, `journalctl`
  2. Using tools like `auditd` for auditing system activities.

### Backup and Recovery

1. Backup Solutions

  1. Implementing backup strategies using tools like `rsync`, `tar`, `dd`, `Bacula`, `Amanda`.

2. Disaster Recovery

  1. Creating and restoring from backups.
  2. Understanding and implementing RAID configurations for data redundancy.

### Performance Monitoring and Tuning

1. Monitoring Tools

  1. Using tools like `top`, `htop`, `iostat`, `vmstat`, `netstat`, `dstat`, `sar` to monitor system performance.
  2. Implementing monitoring solutions like Nagios, Zabbix, Prometheus.

2. Performance Tuning

  1. Tuning system parameters for optimal performance: `sysctl`, kernel tuning.
  2. Managing resource limits with `ulimit`.

### Automation and Scripting

1. Shell Scripting

  1. Writing and debugging shell scripts to automate routine tasks.
  2. Understanding `bash`, `sh`, and other shell environments.

2. Configuration Management

  1. Using tools like Ansible, Puppet, Chef, or SaltStack for automating system configuration and management.

### Database Management

1. Database Servers

  1. Installing and configuring database servers: MySQL, PostgreSQL, MongoDB.
  2. Performing routine database administration tasks: backups, restores, user management.

### Web Server Administration

1. Web Servers

  1. Installing, configuring, and managing web servers: Apache, Nginx.
  2. Securing web servers and managing SSL/TLS certificates.

### Cloud and Virtualization

1. Virtualization

  1. Setting up and managing virtual machines with KVM, VirtualBox, VMware.
  2. Using containerization technologies like Docker.

2. Cloud Platforms

  1. Understanding and managing instances on cloud platforms like AWS, Google Cloud, Azure.
  2. Using infrastructure-as-code tools like Terraform.
products/ict/linux/skills/server_administration.txt · Last modified: 2024/06/17 18:00 by wikiadmin