Мультизагрузочная флешка

Внимание!
Поддерживаются только оригинальные образы дисков. Различные частные сборки и смешанные образы x86 и x64 на 1-м диске не подходят. Это касается только Windows.

Загружаем последнюю версию WinSetupFromUSB

Downloads

распаковываем и запускаем WinSetupFromUSB_1-8_x64.exe
переходим в «RMPrepUSB»
отмечаем:

XP/BartPE
NTFS
Boot as HDD

внизу «Подготовить диск» -> «Выход»

Переходим в «Bootice» -> «Process MBR»
выбираем «GRUB4DOS»
внизу «Install / Config» -> «Save to Disk» -> «OK» -> «Close» -> «Exit»

Отмечаем пункт «Windows 2000/XP/2003 Setup»
выбираем папку с Windows XP
внизу «GO»

Можно добавлять и изменять любые образы
чтобы обновить образы, нужно скопировать новый образ с таким же именем на флешку
образы Windows лежат в папке «WINSETUP»
образы дистрибутивов Linux лежат в папке «ISO»

Несколько TeamSpeak серверов на Debian Buster

Создаём группу и пользователя для TeamSpeak

groupadd ts3
useradd -g ts3 -d /srv/srv3 -s /bin/bash -m ts3
passwd ts3

Установку делаем под пользователем TeamSpeak

su ts3
cd /srv/ts3/
wget http://dl.4players.de/ts/releases/3.0.13.8/teamspeak3-server_linux_amd64-3.0.13.8.tar.bz2
tar xjf teamspeak3-server_linux_amd64-3.0.13.8.tar.bz2
cp -r teamspeak3-server_linux_amd64/* .

Создаём файл настройки

./ts3server createinifile=1

В папке появится файл ts3server.ini

Меняем стандартные порты

vim ts3server.ini:

default_voice_port=9988
filetransfer_port=30034
query_port=10012

Переименовываем сервер чтобы не пересекался с основным

mv ts3server ts3server2


vim ts3server_startscript.sh:

COMMANDLINE_PARAMETERS="inifile=ts3server.ini"
BINARYNAME="ts3server2"


vim ts3server_minimal_runscript.sh:

./ts3server2 $@


./ts3server_minimal_runscript.sh inifile=ts3server.ini

Записываем куда-нибудь логин, пароль и токен
Нажимаем ctrl + c

Настраиваем системный скрипт для запуска сервера
vim /etc/init.d/ts3server:

#! /bin/sh
### BEGIN INIT INFO
# Provides:          teamspeak
# Required-Start:    networking
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      S 0 1 6
# Short-Description: TeamSpeak Server Daemon
# Description:       Starts/Stops/Restarts the TeamSpeak Server Daemon
### END INIT INFO

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Team Speak Server"
NAME=ts3server
USER=ts3
DIR=/srv/ts3/
DAEMON=$DIR/ts3server_startscript.sh
SCRIPTNAME=/etc/init.d/$NAME

test -x $DAEMON || exit 0

cd $DIR
sudo -u ts3 ./ts3server_startscript.sh $1


chmod u+x /etc/init.d/ts3server

Добавляем в автозагрузку

systemctl enable ts3server


/etc/init.d/ts3server start

Устанавливаем службу для фаерволла

aptitude update
aptitude install iptables-persistent

Открываем порты

iptables -I INPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I INPUT 2 -d 100.1.1.1 -i eth0 -p udp --dport 9988 -j ACCEPT
iptables -I INPUT 3 -d 100.1.1.1 -i eth0 -p tcp -m state --state NEW -m multiport --dports 10012,30034 -j ACCEPT

Сохраняем правила

/etc/init.d/netfilter-persistent save

Подключаемся к серверу TeamSpeak с логином и паролем, выданными ранее при запуске ts3server_minimal_runscript.sh
Вводим ключ привилегий (токен)
В клиенте TeamSpeak заходим Инструменты -> Идентификаторы
Правой кнопкой «По умолчанию» -> Экспортировать
Резервируем файл привилегий администратора сервера в надёжное место

KVM на Debian Stretch

Добавляем репозиторий
vim /etc/apt/sources.list:

deb http://ftp.ua.debian.org/debian/ stretch main

aptitude update
aptitude install bridge-utils kvm libvirt-bin virtinst isc-dhcp-server iptables-persistent vim

Создаём сетевой мост для виртуальных машин
vim /etc/network/interfaces:

auto br0
allow-hotplug br0
iface br0 inet static
        address 192.168.40.1
        gateway 192.168.40.1
        bridge_ports eth0
        bridge_stp off
        bridge_maxwait 0

/etc/init.d/networking stop && /etc/init.d/networking start

Настраиваем DHCP сервер
vim /etc/dhcp/dhcpd.conf:

option domain-name "example.com";
option domain-name-servers 192.168.40.1;
default-lease-time 3600;
max-lease-time 43200;
authoritative;
ddns-update-style none;
log-facility local7;
subnet 192.168.40.0 netmask 255.255.255.0 {
default-lease-time 3600;
option domain-name "example.com";
option subnet-mask 255.255.255.0;
option routers 192.168.40.1;
range 192.168.40.2 192.168.40.30;
}
vim /etc/default/isc-dhcp-server
INTERFACES="br0"
/etc/init.d/isc-dhcp-server restart Включаем пересылку пакетов vim /etc/sysctl.conf:
net.ipv4.ip_forward=1

sysctl -p

Настраиваем kvm на протокол удалённого доступа spice
Создаём самоподписные сертификаты TLS
mkdir /etc/ssl/spicetls
cd /etc/ssl/spicetls
openssl genrsa -des3 -out ca-key.pem 1024
openssl req -new -x509 -days 7300 -key ca-key.pem -out ca-cert.pem
openssl genrsa -out server-key.pem 1024
openssl req -new -key server-key.pem -out server-key.csr
openssl x509 -req -days 7300 -in server-key.csr -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
openssl rsa -in server-key.pem -out server-key.pem.insecure
mv server-key.pem server-key.pem.secure
mv server-key.pem.insecure server-key.pem

vim /etc/libvirt/qemu.conf:

spice_listen = "0.0.0.0"
spice_tls = 1
spice_tls_x509_cert_dir = "/etc/ssl/spicetls/"

/etc/init.d/libvirtd restart

Создаём виртуальную машину
Настраиваем пул для хранения виртуальных жёсткий дисков
pool-define-as ssd dir --target /root/kvm/
pool-start ssd
pool-autostart ssd

Запускаем установку
virt-install --name deb --ram 1024 --vcpus=6 --boot cdrom,hd,network,menu=on --cdrom=debian-testing-amd64-DVD-1.iso --disk pool=ssd,bus=ide,size=20,format=qcow2,io=native --network bridge=br0,model=e1000 --graphics spice,port=52000,listen=0.0.0.0,keymap=en-us,password=mypasswd --noautoconsole --hvm --soundhw=ac97 --video qxl --channel spicevmc

Для управления виртуальной машиной нужно установить клиент spice
Linux: spice-client-gtk (в консоли запускаем spicy), virt-manager или virt-viewer
Windows: virt-viewer (https://virt-manager.org/download/sources/virt-viewer/virt-viewer-x64-3.1.msi)

В гостевой ОС нужно установить дополнения
aptitude install spice-vdagent
На Windows http://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-0.100.exe

Открываем порты и включаем NAT
iptables -I INPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I INPUT 2 -s 192.168.40.0/24 -d 192.168.40.1 -i br0 -p tcp -m state --state NEW --dport 52000 -j ACCEPT
iptables -I INPUT 3 -s 192.168.40.0/24 -d 192.168.40.1 -i br0 -p udp --dport 67 -j ACCEPT
iptables -t nat -I POSTROUTING 1 -s 192.168.40.0/24 -o eth0 -j SNAT --to-source 192.168.40.1
/etc/init.d/netfilter-persistent save

ISPConfig на Debian Stretch

Подготавливаем программы для ispconfig
Добавляем репозитории
vim /etc/apt/sources.list:

deb http://ftp.ua.debian.org/debian/ stretch main
deb http://http.debian.net/debian/ stretch main contrib non-free

aptitude update
aptitude install mysql-server bind9 apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libruby php5-curl php5-intl php5-memcache php5-memcached php5-pspell php5-recode php5-sqlite php5-tidy php5-xmlrpc php5-xsl memcached libapache2-mod-passenger libapache2-mod-fastcgi php5-fpm phpmyadmin quota quotatool roundcube roundcube-mysql vlogger webalizer fcgiwrap amavisd-new spamassassin nomarch cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl zip unzip bzip2 sudo geoip-database libclass-dbi-mysql-perl build-essential autoconf automake libtool flex bison debhelper binutils fail2ban vim-nox iptables-persistent

Устанавливаем почтовый сервер
Устанавливаем FTP сервер pure-ftpd
Устанавливаем DNS сервер
Устанавливаем awstats

Делаем базу данных для phpmyadmin и roundcube
mysql -u root -p
create database phpmyadmin;
grant all on phpmyadmin.* to phpmyadmin@localhost identified by 'phpmyadmindbpasswd';
create database roundcube;
grant all on roundcube.* to roundcube@localhost identified by 'roundcubedbpasswd';
quit

Влючаем журналируемую квоту
vim /etc/fstab:

/dev/sda1 /    ext4  usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,user_xattr,acl,errors=remount-ro 0       1

shutdown -r now
quotacheck -avugm
quotaon -avug

vim /etc/php5/apache2/php.ini:

memory_limit = 256M
post_max_size = 16M
upload_max_filesize = 64M
date.timezone = Europe/Moscow

Устаналиваем ssh в chroot
cd /usr/src/
wget http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz
cd jailkit-2.17
./debian/rules binary
dpkg -i /usr/src/jailkit_2.17-1_amd64.deb

Настраиваем защиту от взлома по IP для некоторых серверов fail2ban
vim /etc/fail2ban/jail.local

[pureftpd]
enabled  = true
port     = ftp,ftps
filter   = pureftpd
logpath  = /var/log/syslog
maxretry = 3

[dovecot-pop3imap]
enabled = true
filter = dovecot-pop3imap
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp]
logpath = /var/log/mail.log
maxretry = 5

[postfix-sasl]
enabled  = true
port     = smtp
filter   = postfix-sasl
logpath  = /var/log/mail.log
maxretry = 3

vim /etc/fail2ban/filter.d/pureftpd.conf:

[Definition]
failregex = .*pure-ftpd: \(.*@\) \[WARNING\] Authentication failed for user.*
ignoreregex =

vim /etc/fail2ban/filter.d/dovecot-pop3imap.conf:

[Definition]
failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?P\S*),.*
ignoreregex =

vim /etc/fail2ban/filter.d/postfix-sasl.conf:

ignoreregex =

/etc/init.d/fail2ban restart

Устанавливаем ispconfig
wget http://sourceforge.net/projects/ispconfig/files/ISPConfig%203/ISPConfig-3.0.5.4p8/ISPConfig-3.0.5.4p8.tar.gz
tar xzf ISPConfig-3.0.5.4p8.tar.gz
php -q ispconfig3_install/install/install.php
Installation mode (standard,expert) [standard]: expert

Устанавливаем патч
wget http://www.ispconfig.org/downloads/ispconfig_patch -P /usr/local/ispconfig/server/scripts
chmod 700 /usr/local/ispconfig/server/scripts/ispconfig_patch
ispconfig_patch

Вводим ID патча с http://www.ispconfig.org/page/en/ispconfig/patches.html, который хотите установить

Настраиваем apache
vim /etc/apache2/sites-available/ispconfig.conf:

#<Directory /usr/share/phpMyAdmin/>
#                                Require all granted
#                </Directory>

#<Directory /usr/share/squirrelmail>
#                               Require all granted
#               </Directory>

#<Directory /usr/lib/mailman/cgi-bin>
#                               Require all granted
#               </Directory>

#<Directory /usr/lib/mailman/icons>
#                               Require all granted
#               </Directory>

#<Directory /var/lib/mailman/archives/>
#        Options +FollowSymLinks
#                               Require all granted
#               </Directory>

#NameVirtualHost *:80
#NameVirtualHost *:443

vim /etc/apache2/conf-enabled/phpmyadmin.conf:

Alias /pma /usr/share/phpmyadmin

chown -R www-data:www-data /usr/share/phpmyadmin

Настраиваем roundcube
Заходим в ispconfig (https://example.com:8080 логин и пароль по умолчанию admin)->Система->Удаленные пользователи->Добавить нового пользователя
Логин: roundcube
Пароль: roundcubepasswd
Ставим галочки:

Server functions
Функции клиентов
Функции почтовых пользователей
Функции почтовых алиасов
Функции почтового спам-фильтра
Функции правил почтового спам-фильтра
Функции fetchmail
Mail spamfilter whitelist functions
Mail spamfilter blacklist functions
Функции пользовательских фильтров почты

Внизу «Сохранить»

Устанавливаем плагины для связки с ispconfig
wget https://github.com/w2c/ispconfig3_roundcube/archive/master.zip
unzip master.zip
cp -r ispconfig3_roundcube-master/{ispconfig3_account,ispconfig3_autoreply,ispconfig3_fetchmail,ispconfig3_filter,ispconfig3_forward,ispconfig3_pass,ispconfig3_spam,ispconfig3_wblist} /var/lib/roundcube/plugins/
cp /var/lib/roundcube/plugins/ispconfig3_account/config/config.inc.php.dist /var/lib/roundcube/plugins/ispconfig3_account/config/config.inc.php

vim /var/lib/roundcube/plugins/ispconfig3_account/config/config.inc.php:

$rcmail_config['remote_soap_user'] = 'логин удалённого пользователя';
$rcmail_config['remote_soap_pass'] = 'пароль удалённого пользователя';
$rcmail_config['soap_url'] = 'https://example.com:8080/remote/';

vim /etc/roundcube/debian-db.php:

$dbuser='roundcube';
$dbpass='roundcubedbpasswd';
$dbname='roundcube';

vim /etc/roundcube/main.inc.php:

$rcmail_config['default_host'] = 'mail.example.com';
$rcmail_config['smtp_server'] = 'mail.example.com';
$rcmail_config['smtp_user'] = '%u';
$rcmail_config['smtp_pass'] = '%p';
$rcmail_config['smtp_helo_host'] = 'mail.example.com';
$rcmail_config['force_https'] = true;
$rcmail_config['username_domain'] = 'example.com';
$rcmail_config['mail_domain'] = 'mail.example.com';
$rcmail_config['language'] = 'ru_RU';
$rcmail_config['plugins'] = array('jqueryui', 'ispconfig3_account', 'ispconfig3_autoreply', 'ispconfig3_pass', 'ispconfig3_spam', 'ispconfig3_fetchmail', 'ispconfig3_filter', 'ispconfig3_forward', 'ispconfig3_wblist');

vim /etc/roundcube/apache.conf:

Alias /mail /var/lib/roundcube

chown -R www-data:www-data /var/lib/roundcube/
chown -R www-data:www-data /usr/share/roundcube/
chown -R www-data:www-data /usr/share/tinymce/www/

a2enmod suexec rewrite ssl actions include dav_fs dav auth_digest cgi fastcgi alias
/etc/init.d/apache2 restart

Открываем порты
iptables -I INPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I INPUT 2 -s 192.168.30.0/24 -d 192.168.30.1 -i br0 -p tcp -m state --state NEW -m multiport --dports 80,443,8080,8081 -j ACCEPT
/etc/init.d/netfilter-persistent save