Информация по ОС Linux

Под Web-сервером подразумевается LAMP - Linux, Apache, MySQL, PHP и его производные.

Установка

Все необходимые зависимости для правильного функционирования сервисов будут установлены автоматически

  • LAMP (Apache, MySQL, PHP) в Debian 8:
apt-get install libapache2-mod-php5 php5-common php5-mysql php5-cli php5-curl php5-gd php5-gmp php5-imap php5-intl php5-json php5-mcrypt php5-readline php5-sqlite php5-xmlrpc php5-xsl mysql-server
  • LLMP (Lighttpd, MySQL, PHP) в Debian 8:
apt-get install lighttpd php5-common php5-fpm php5-mysql php5-cli php5-curl php5-gd php5-gmp php5-imap php5-intl php5-json php5-mcrypt php5-readline php5-sqlite php5-xmlrpc php5-xsl mysql-server
  • LAMP в Ubuntu 16.04:
apt-get install apache2 libapache2-mod-php7.0 php7.0 php7.0-cli php7.0-mysql php7.0-curl php7.0-gd php7.0-gmp php7.0-imap php7.0-intl php7.0-json php7.0-mcrypt php7.0-readline php7.0-sqlite3 php7.0-xml php7.0-xsl php7.0-mbstring php7.0-zip mysql-server
a2dismod mpm_event
a2enmod mpm_prefork php7.0 ssl rewrite
  • LNMP в Ubuntu 16.04:
apt-get install php7.0 php7.0-cli php7.0-mysql php7.0-curl php7.0-gd php7.0-gmp php7.0-imap php7.0-intl php7.0-json php7.0-mcrypt php7.0-readline php7.0-sqlite3 php7.0-xml php7.0-xsl php7.0-mbstring php7.0-zip mysql-server php7.0-fpm nginx
  • LLMP в Ubuntu 16.04:
apt-get install php7.0 php7.0-cli php7.0-fpm php7.0-mysql php7.0-curl php7.0-gd php7.0-gmp php7.0-imap php7.0-intl php7.0-json php7.0-mcrypt php7.0-readline php7.0-sqlite3 php7.0-xml php7.0-xsl php7.0-mbstring lighttpd mysql-server
  • LLMP в Ubuntu 18.04
apt-get install php7.2 php7.2-cli php7.2-fpm php7.2-mysql php7.2-curl php7.2-gd php7.2-gmp php7.2-imap php7.2-intl php7.2-json php7.2-readline php7.2-sqlite3 php7.2-xml php7.2-xsl php7.2-mbstring lighttpd mysql-server
  • LAMP в Ubuntu 18.04
apt-get install apache2 libapache2-mod-php7.2 php7.2 php7.2-cli php7.2-mysql php7.2-curl php7.2-gd php7.2-gmp php7.2-imap php7.2-intl php7.2-json php7.2-readline php7.2-sqlite3 php7.2-xml php7.2-xsl php7.2-mbstring mysql-server

Дополнительная информация

Конфигурационные файлы писались для дистрибутива Debian и некоторые пути в других дистрибутивах могут отличаться.
/etc/sysctl.conf
/etc/modules
/etc/iptables.rules

Стандартные репозитории содержат большой список программного обеспечения. Однако не все они включены в /etc/apt/sources.list после установки. Вот полный набор, спользуя московское зеркало Яндекс.

/etc/apt/sources.list
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free
 
deb http://mirror.yandex.ru/debian/ jessie main contrib non-free
deb-src http://mirror.yandex.ru/debian/ jessie main contrib non-free
 
deb http://mirror.yandex.ru/debian/ jessie-updates main contrib non-free
deb-src http://mirror.yandex.ru/debian/ jessie-updates main contrib non-free
 
# Backports
#deb http://mirror.yandex.ru/debian/ jessie-backports main
#deb-src http://mirror.yandex.ru/debian/ jessie-backports main
/etc/apt/sources.list
deb http://mirror.yandex.ru/debian/ stretch main contrib non-free
deb-src http://mirror.yandex.ru/debian/ stretch main contrib non-free
 
deb http://security.debian.org/debian-security stretch/updates main contrib non-free
deb-src http://security.debian.org/debian-security stretch/updates main contrib non-free
 
# stretch-updates, previously known as 'volatile'
deb http://mirror.yandex.ru/debian/ stretch-updates main contrib non-free
deb-src http://mirror.yandex.ru/debian/ stretch-updates main contrib non-free
#!/bin/bash
 
openssl genrsa -out server.key 4095
openssl req -new -sha256 -key server.key -out server.csr
openssl x509 -req -days 1825 -in server.csr -signkey server.key -out server.crt
openssl rsa -in server.key -out server.pem
cat server.crt >> server.pem

Для распаковки приватного ключа использовать команду

openssl pkcs12 -in certname.pfx -nocerts -out key.pem -nodes

Для распаковки сертификата использовать команду

openssl pkcs12 -in certname.pfx -nokeys -out cert.pem

Для удаления парольной защиты сертификата использовать команду

openssl rsa -in key.pem -out server.key

Скрипт для автоматизации процесса:

pfx_extract.bash
#!/bin/bash
 
echo "PFX certificate extractor"
 
if [ -z "$1" ]; then
 echo "Usage: $0 <certificate.pfx>";
 exit 1;
fi
 
if [ -f "$1" ]; then
 
filename=$(basename "$1")
extension="${filename##*.}"
filename="${filename%.*}"
 
openssl=$(which openssl)
 
$openssl pkcs12 -in $1 -nocerts -out $filename.pem -nodes
$openssl pkcs12 -in $1 -nokeys -out $filename.crt
$openssl rsa -in $filename.pem -out $filename.key
rm -f $filename.pem
 
fi
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128
MACs hmac-sha1,umac-64@openssh.com,hmac-ripemd160

Обновление и установка пакетов (подразумевается, что система установлена с графической оболочкой)

apt-get update -y && apt-get upgrade  -y
apt-get dist-upgrade -y
apt-get install xrdp tigervnc-standalone-server -y

Редактируем конфигурационный файл xrdp в следующих позициях:

# nano /etc/xrdp/xrdp.ini
autorun=sesman-any
max_bpp=16

[sesman-any]
ip=127.0.0.1

Настраиваем разрешенных пользователей для X11

# nano /etc/X11/Xwrapper.config
allowed_users=anybody

Запускаем сервисы и добавляем в автозагрузку

service xrdp start
service xrdp-sesman start
update-rc.d xrdp enable
systemctl enable xrdp-sesman.service

Источник: https://gist.github.com/Erreinion/f2eda80adfa06cf330d9874dc667e998