Веб-сервер "под ключ" на базе Ubuntu 14 - Часть 2

Это продолжение статьи о веб-сервере "под ключ" на базе Ubuntu. Читать первую часть.

9. Установка Mailman

Начиная с версии 3.0.4, ISPConfig также позволяет управлять (создавать/редактировать/удалять) список адресатов Mailman. Если вы хотите пользоваться данной возможностью, потребуется установить Mailman следующим образом:

apt-get install mailman

Выберем по крайне мере один язык:

Languages to support: 
Missing site list

Перед запуском Mailman необходимо создать первый список адресатов под названием mailman:

newlist mailman
root@test:~# newlist mailman
Enter the email of the person running the list: <-
- admin email address, e.g. Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
Initial mailman password: To finish creating your mailing list, you must edit your /etc/aliases (or
equivalent) file by adding the following lines, and possibly running the
`newaliases' program:
## mailman mailing list
mailman: "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"
Hit enter to notify mailman owner... root@test:~#

Откроем файл /etc/aliases

nano /etc/aliases

... и добавим следующие строки:

[...]
## mailman mailing list
mailman: "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe
mailman"

Далее запустим:

newaliases

и затем перезапустим Postfix:

service postfix restart

В конце активируем конфигурацию Mailman Apache:

ln -s /etc/mailman/apache.conf /etc/apache2/conf-available/mailman.conf

Определим alias /cgi-bin/mailman/ для всех виртуальных хостов Apache, это означает, что мы может получить доступ к интерфейсу администратора Mailman по адресу http:///cgi-bin/mailman/admin/, а адрес для пользователей из спика адресатов будет выглядеть следующим образом: http:///cgi-bin/mailman/listinfo/.

В http:///pipermail находится архив списка адресатов.

Перезапустим Apache:

service apache2 restart

и затем запустим Mailman:

service mailman start

10. Установка PureFTPd и Quota

PureFTPd и quota устанавливаются следующим образом:

apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool

Затем отредактируем файл /etc/default/pure-ftpd-common...

nano /etc/default/pure-ftpd-common

... и убедимся, что режимом запуска установлена автономная установка и значение VIRTUALCHROOT=true:

[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]

Теперь настроим PureFTPd, для того, чтобы разрешить сессии FTP и TLS. FTP является очень ненадёжным протоколом, потому что все пароли и данные передаются в виде текста. При использовании TLS, вся коммуникации зашифрована, что делает FTP гораздо более защищённым.

Для разрешения сессий FTP иTLS введём следующее:

echo 1 > /etc/pure-ftpd/conf/TLS

Для использования TLS необходимо создать сертификат SSL. Создадим директорию /etc/ssl/private/, в которой будет находится данный сертификат:

mkdir -p /etc/ssl/private/

Далее сгенерируем сертификат SSL следующим образом:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Country Name (2 letter code) [AU]: 
State or Province Name (full name) [Some-State]: 
Locality Name (eg, city) []: <--Ввести название города.
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []: Email Address []:

Изменим права доступа сертификата SSL:

chmod 600 /etc/ssl/private/pure-ftpd.pem

Затем перезапустим PureFTPd:

service pure-ftpd-mysql restart
root@test:~# service pure-ftpd-mysql restart
Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -8 UTF-8 -u 1000 -E -O clf:/var/log/pure-ftpd/transfer.log -Y 1 -B root@test:~#

Отредактируем /etc/fstab.Добавим строку usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0

nano /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
# #
/dev/mapper/test--vg-root / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# /boot was on /dev/sda1 during installation
UUID=9b8299f1-b2a2-4231-9ba1-4540fad76b0f /boot ext2 defaults
0 2 /dev/mapper/test--vg-swap_1 none swap sw 0 0

Для включения quota выполним следующее:

mount -o remount /
quotacheck -avugm
quotaon -avug

11. Установка сервера BIND DNS

BIND устанавливается следующим образом:

apt-get install bind9 dnsutils

12. Установка Vlogger, Webalizer и AWstats

Vlogger, webalizer и AWstats устанавливаются следующим образом:

apt-get install vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl

Затем откроем /etc/cron.d/awstats...

nano /etc/cron.d/awstats

... и удалим всё, что содержится в этом файле:

#MAILTO=root
#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh
# Generate static reports:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

13. Установка Jailkit

Важно: Jailkit может быть установлен только перед установкой ISPConfig – после его уже не получится установить!

Jailkit потребуется, если вы хотите сделать chroot для пользователей SSH. Установка производится следующим образом:

apt-get install build-essential autoconf automake1.9 libtool flex bison debhelper binutils-gold
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz
tar xvfz jailkit-2.17.tar.gz
cd jailkit-2.17
./debian/rules binary

Устанавливаем пакет deb следующим образом:

cd ..
dpkg -i jailkit_2.17-1_*.deb
rm -rf jailkit-2.17*

14. Установка fail2ban

Установка fail2ban необязательна, но рекомендована, так как монитор ISPConfig попытается показать запись событий:

apt-get install fail2ban

Для создания монитора fail2ban PureFTPd иDovecot, создадим файл /etc/fail2ban/jail.local:

nano /etc/fail2ban/jail.local
[pureftpd] 
enabled = true
port = ftp
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

Затем создадим 2 файла фильтра:

nano /etc/fail2ban/filter.d/pureftpd.conf
[Definition] 
failregex = .*pure-ftpd: \(.*@\) \[WARNING\] Authentication failed for user.
ignoreregex =
nano /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 =

Добавим пропущенную строку ignoreregex в файл postfix-sasl:

echo "ignoreregex =" >> /etc/fail2ban/filter.d/postfix-sasl.conf

Далее перезапустим fail2ban:

service fail2ban restart

15 Установка SquirrelMail

Для установки почтового клиента SquirrelMail выполним следующее:

apt-get install squirrelmail

Затем настроим SquirrelMail:

squirrelmail-configure

В SquirrelMail важно указать, что мы используем Dovecot-IMAP/-POP3:

SquirrelMail Configuration : Read: config.php (1.4.0) 
--------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages
D. Set pre-defined settings for specific IMAP servers
C Turn color on
S Save data
Q Quit
Command >> SquirrelMail Configuration : Read: config.php
Please select your IMAP server:
bincimap = Binc IMAP server
courier = Courier IMAP server
cyrus = Cyrus IMAP server
dovecot = Dovecot Secure IMAP server
exchange = Microsoft Exchange IMAP server
hmailserver = hMailServer
macosx = Mac OS X Mailserver
mercury32 = Mercury/32
uw = University of Washington's IMAP server
gmail = IMAP access to Google mail (Gmail) accounts
quit = Do not change anything
Command >> Please select your IMAP server:
bincimap = Binc IMAP server
courier = Courier IMAP server
cyrus = Cyrus IMAP serve
r dovecot = Dovecot Secure IMAP server
exchange = Microsoft Exchange IMAP server
hmailserver = hMailServer
macosx = Mac OS X Mailserver
mercury32 = Mercury/32
uw = University of Washington's IMAP server
gmail = IMAP access to Google mail (Gmail) accounts
quit = Do not change anything
Command >> dovecot
imap_server_type = dovecot
default_folder_prefix =
trash_folder = Trash
sent_folder = Sent
draft_folder = Drafts
show_prefix_option = false
default_sub_of_inbox = false
show_contain_subfolders_option = false
optional_delimiter = detect
delete_folder = false
Press any key to continue... SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages
D. Set pre-defined settings for specific IMAP servers
C Turn color on
S Save data
Q Quit
Command >> SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages
D. Set pre-defined settings for specific IMAP servers
C Turn color on
S Save data
Q Quit Command >>

Теперь настроим SquirrelMail для того, чтобы использовать его внутри нашего сайта (созданного с помощью ISPConfig), для этого используем /squirrelmail или /webmail. Например, если адрес сайта www.drach.pro, то для доступа к SquirrelMail необходимо будет перейти по адресу www.drach.pro/squirrelmail или www.drach.pro/webmail.

Apache конфигурация SquirrelMail находится в /etc/squirrelmail/apache.conf, но этот файл не загружен Apache, потому что он не находится в директории /etc/apache2/conf.d/. Создадим символьную ссылку под названием squirrelmail.conf в директории /etc/apache2/conf.d/, которая указывает на /etc/squirrelmail/apache.conf и перезагрузим Apache:

cd /etc/apache2/conf-available/
ln -s ../../squirrelmail/apache.conf squirrelmail.conf
service apache2 reload

Далее откроем /etc/apache2/conf.d/squirrelmail.conf...

nano /etc/apache2/conf-available/squirrelmail.conf

... и добавим следующие строки в содержимое, для того, чтобы mod_php использовался для доступа к SquirrelMail, вне зависимости от того, какой режим функционирования PHP выбран на нашем сайте в ISPConfig:

[...]

Options FollowSymLinks

AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_admin_flag allow_url_fopen Off
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/squirrelmail/tmp
php_admin_value open_basedir
/usr/share/squirrelmail:/etc/squirrelmail:/var/lib/squirrelmail:/etc/hostname:/etc/mailname
php_flag register_globals off


DirectoryIndex index.php

# access to configtest is limited by default to prevent information leak

order deny,allow
deny from all
allow from 127.0.0.1


[...

Создадим директорию/var/lib/squirrelmail/tmp...

mkdir /var/lib/squirrelmail/tmp

... и сделаем владельцем пользователя www-data:

chown www-data /var/lib/squirrelmail/tmp

Необходимо, чтобы squirrelmail работал с apache2:

a2enconf squirrelmail

Снова перезапускаем Apache:

service apache2 reload

Теперь /etc/apache2/conf.d/squirrelmail.conf определяется alias /squirrelmail, который определит, что установка SquirrelMail будет произведена в /usr/share/squirrelmail.

Получить доступ к SquirrelMail через веб-сайт можно следующим образом:

http://10.4.0.10/squirrelmail
http://www.drach.pro/squirrelmail

Также получить доступ можно из панели управления виртуального хоста ISPConfig (после установки ISPConfig, установку рассмотрим в следующей главе) следующим образом (никакая настройка ISPConfig не требуется):

http://test.drach.pro:8080/squirrelmail

Если вы хотите использовать alias /webmail вместо/squirrelmail, необходимо будет открыть файлs /etc/apache2/conf.d/squirrelmail.conf...

nano /etc/apache2/conf-available/squirrelmail.conf

... и добавить в строку Alias /webmail /usr/share/squirrelmail:

Alias /squirrelmail /usr/share/squirrelmail
Alias /webmail /usr/share/squirrelmail [...

Затем перезагрузим Apache:

service apache2 reload

Теперь мы можем получить доступ к Squirrelmail, делается это следующим образом:

http:// 10.4.0.10/webmail
http://www.drach.pro/webmail
http://test.drach.pro:8080/webmail (после установки ISPConfig, установку рассмотрим в следующей главе)

Squirrel Mail

Если вы хотите определить виртуальный хост как webmail.drach.pro, где пользователи могут получить доступ к SquirrelMail, необходимо будет добавить конфигурацию виртуального хоста в/etc/apache2/conf.d/squirrelmail.conf:

nano /etc/apache2/conf.d/squirrelmail.conf
[...]

DocumentRoot /usr/share/squirrelmail
ServerName webmail.drach.pro

Также должна существовать запись DNS для webmail.drach.pro, которая направляет на IP адрес, который использовался при настройке виртуального хоста. Также убедимся, что виртуальный хост webmail.drach.pro не существует в ISPConfig (в ином случае оба виртуальных хоста пересекутся друг с другом!).

Теперь перезапустим Apache...

service apache2 reload
SquirrelMail теперь находится по адресу http://webmail.drach.pro

16. Установка ISPConfig 3

Для установки последней версии ISPConfig 3 введём следующее:

cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/

Затем запустим

php -q install.php

Появится установщик ISPConfig 3. Установщик настроит все службы, типа Postfix, Dovecot и т.д. ручная настройка, как в ISPConfig 2, в последней версии не требуется.

root@test:/tmp/ispconfig3_install/install# php -q install.php
>> Initial configuration
Operating System: 14.10 UNKNOWN
Following will be a few questions for primary configuration so be careful.
Default values are in [brackets] and can be accepted with .
Tap in "quit" (without the quotes) to stop the installer.
Select language (en,de) [en]: Installation mode (standard,expert) [standard]: Full qualified hostname (FQDN) of the server, eg test.domain.tld [test.drach.pro]: MySQL server hostname [localhost]: MySQL root username [root]: MySQL root password []: MySQL database to create [dbispconfig]: MySQL charset [utf8]: Generating a 4096 bit RSA private key
............................................................................++
.....................++
writing new private key to 'smtpd.key'
----- You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []: Email Address []: Configuring Jailkit
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Pureftpd
Configuring BIND
Configuring Apache
Configuring Vlogger
Configuring Apps vhost
Configuring Bastille Firewall
Configuring Fail2ban
Installing ISPConfig
ISPConfig Port [8080]: Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: Generating RSA private key, 4096 bit long modulus
..........++
......++
e is 65537 (0x10001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []: Email Address []: Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: An optional company name []: writing RSA key
Configuring DBServer
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Restarting services ...
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql restart
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop mysql ; start mysql. The restart(8) utility is also available.
mysql stop/waiting
mysql start/running, process 2817
* Stopping Postfix Mail Transport Agent postfix
/usr/sbin/postconf: warning: /etc/postfix/main.cf: undefined parameter: virtual_mailbox_limit_maps
...done.
* Starting Postfix Mail Transport Agent postfix
...done.
Stopping amavisd: amavisd-new.
Starting amavisd: amavisd-new.
* Stopping ClamAV service clamd
...done.
* Starting ClamAV service clamd
...done.
Rather than invoking init scripts through /etc/init.d, use the service(8) utility, e.g. service dovecot restart
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop dovecot ; start dovecot. The restart(8) utility is also available.
dovecot stop/waiting
dovecot start/running, process 3962
* Restarting web server apache2
[Mon Aug 06] [warn] NameVirtualHost *:443 has no VirtualHosts
[Mon Aug 06] [warn] NameVirtualHost *:80 has no VirtualHosts
[Mon Aug 06] [warn] NameVirtualHost *:443 has no VirtualHosts
[Mon Aug 06] [warn] NameVirtualHost *:80 has no VirtualHosts
... waiting ...done.
Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -A -b -u 1000 -D -H -Y 1 -E -8 UTF-8 -O clf:/var/log/pure-ftpd/transfer.log -B
Installation completed.
root@test:/tmp/ispconfig3_install/install#

Установщик автоматически настроит все службы.

Теперь можно предоставить установщик возможность самостоятельно создать SSl виртуальный хост для панели управления ISPConfig, который теперь будет доступен по адресу https:// вместо http://. Для этого необходимо нажать “Yes”, когда вы увидите следующий вопрос: Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]:

Теперь ISPConfig 3 доступен по адресу http(s)://test.drach.pro:8080/ или http(s)://10.4.0.10:8080/ (зависит от того, что вы выбрали при установке).

Log in

Зайти можно введя имя пользователя admin и пароль admin (после первого входа в систему, пароль надо сменить).

ISP

Теперь система готова к использованию.

Для работы с ISPConfig 3 рекомендуется прочесть официальное руководство.

17. Дополнительные замечания

Если сервер Ubuntu, который вы только что установили, является OpenVZ (виртуальной машиной), в хосте системы необходимо сделать следующее (Предполагается, что ID OpenVZ является 101 – замените на корректный VPSID для вашей системы):

VPSID=101
for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID
NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN
SYS_CHROOT SYS_NICE
do
vzctl set $VPSID --capability ${CAP}:on --save
done

5 комментарии

  • Vitali

    написал Vitali

    Понедельник, 18 Январь 2016 03:57

    Я сегодня только накатил систему Ubuntu Server 14.04, хотел гуглить хорошую связочку веб сервера и сразу нашел эту статью. Все быстро и ровно встало, производительность Fast-CGI тешит. Качественный материал, видно что старался! Спасибо!

    Пожаловаться
  • Владимир Драч

    написал Владимир Драч

    Понедельник, 18 Январь 2016 11:20

    Vitali, спасибо за отзыв. Очень приятно получать такие комментарии. Успехов!

    Пожаловаться
  • VernonsLoff

    написал VernonsLoff

    Пятница, 05 Февраль 2016 01:48

    Великолепное руководство, огромное спасибо!

    Пожаловаться
  • Александр

    написал Александр

    Понедельник, 13 Февраль 2017 12:05

    Спасибо за статью!
    Полгода назад, в первый раз по этой инструкции установил веб сервер для своих сайтов и был очень доволен, так как за минимальное время все (почти) запустилось. Сайты работают и вроде все хорошо. когда дошло дело до отправки форм, оказалось что ничего не отправляется. Так как я не силен в линуксах и пхп, то не хотел трогать хостинг, пользовался сторонними формами и почтовиками. Сейчас подвернулся свободный комп для эксперимента и опять та же история. Перепроверял себя, ошибки в установке не нашел.
    При отправке формы браузер выдает: "Form PHP script is missing from web server, or PHP is not configured correctly on your web hosting provider Check if the form PHP script has been uploaded correctly, then contact your hosting provider about PHP configuration." За работу PHP-скрипта ручаюсь, на других хостах работает, в ISP почта также не настраивается и не работает, клиентов прописать не могу. Помогите! Ubuntu 14.04 со всеми обновлениями.

    Пожаловаться
  • Владимир Драч

    написал Владимир Драч

    Среда, 15 Февраль 2017 13:27

    Александр, возможно не хватает каких-то кусков РНР, а возможно кто-то обрезает работу PHP. Если эта проблема возникает на коммерческом хостинге, обратитесь в техподдержку, бывает, что затыкают отправку почты. Если Вы работаете на локальном компьютере, доставьте пакеты РНР и проверьте, не закрыты ли у Вас порты?

    Пожаловаться
Авторизуйтесь, чтобы получить возможность оставлять комментарии
Go to top