25 | 07 | 2021
Главное меню
Форма входа
Регистрация на сайте
Супер низкие цены
Скорая помощь
Скорая компьютерная помощь для Октябрьского - Железнодорожного района г. Красноярск. Все виды работ. +7 913 538 86 14
помощь1
Оплата почасовая 300р. в час но не дороже 900р +7 913 538 86 14
Рейтинг@Mail.ru
Яндекс.Метрика
http://expert-deco.ru декоративная штукатурка купить декоративные.

Настраиваем     Ubuntu 20.04 server, для работы в качестве интернет шлюза и WebServer, не является инструкцией, а напоминалка для себя.

 


IPv4
192.168.1.0/24    # IP адреса локальной сети
192.168.1.121    # IP адрес данной машины
192.168.1.121    # IP адрес шлюза
192.168.1.121, 8.8.4.4    # IP адреса DNS серверов
84.84.84.84    # Внешний белый IP адрес

enp2s0 - Внутренний сетевой интерфейс

enp3s0 - Внешний сетевой интерфейс



После установки.
sudo –s -H
sudo apt update
sudo apt upgrade


Устанавливаем mc, net-tools
sudo apt install mc
sudo apt install net-tools


Узнаем IP
ifconfig


Включаем ssh
sudo ufw allow ssh


Отключить IPv6 в Ubuntu
Открываем конфигурационный файл загрузчика:
nano /etc/default/grub


Допишем строчку:
GRUB_CMDLINE_LINUX="ipv6.disable=1 crashkernel=auto rhgb quiet"


Переконфигурируем grub:
grub-mkconfig -o /boot/grub/grub.cfg


Для проверки, перезагрузим систему:
reboot


Логинимся из командной строки или PowerShell
ssh Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.


Первый раз отвечаем yes и вводим пароль.


Если выскакивает ошибка
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

То в PowerShell вводим
cd ~
rm .ssh/known_hosts
 
Установим Apache с помощью диспетчера пакетов apt в Ubuntu:
sudo apt update

Ставим Apache

sudo apt install apache2

Чтобы разрешить только трафик на порту 80, используйте профиль Apache:
sudo ufw allow in "Apache"

Проверяем Apache
http://192.168.1.121/

Установка MySQL
sudo apt install mysql-server

После завершения установки рекомендуется запустить скрипт безопасности, предустановленный в MySQL. Этот скрипт будет удалять некоторые небезопасные настройки по умолчанию и блокировать доступ к системе управления базы данных. Для запуска интерактивного скрипта введите следующую команду:
sudo mysql_secure_installation
There are three levels of password validation policy:    0
Disallow root login remotely? (Press y|Y for Yes, any other key for No) :     n

Завершив настройку, проверьте возможность входа в консоль MySQL, набрав следующую команду:
sudo mysql
sudo service mysql start

phpMyAdmin. Установка
sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl

При установки игнорим ошибку и продолжаем
После установки задаем пароль пользователю phpmyadmin
mysql -u root -p 

Задаем пароль root
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'пароль';

Правим файл /etc/phpmyadmin/config.inc.php
/* Optional: User for advanced features */
    /*$cfg['Servers'][$i]['controluser'] = $dbuser;   */
    $cfg['Servers'][$i]['controluser'] = 'phpmyadmin';

Создаем пользователя admin
CREATE USER 'admin'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'admin'@'%';

Монтируем флешку под root
Устанавливаем udisks2
apt install udisks2
fdisk –l

Монтируем USB
udisksctl mount -b /dev/sda1  

Перед извлечением USB размонтируем
udisksctl unmount -b /dev/sda1

Меняем порт SSH
/etc/ssh/sshd_config
Port 7723

Подключаемся

ssh –p7723 Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

Настройка шлюза.

Прокси-сервер squid
apt-get install squid

Теперь редактируем конфигурационный файл. Открываем /etc/squid/squid.conf, ищем нужные строки и корректируем следующим образом:
Указываем порт:
 http_port 3128 # transparent

Настраиваем кэш:
 cache_dir ufs /var/spool/squid 4096 32 256

Указываем внутренние сети, лишние комменитруем:
#acl localnet src 10.0.0.0/24 # RFC1918 possible internal network
#acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.1.0/16 # RFC1918 possible internal network

Разрешаем доступ из внутренних сетей (найти и раскомменитровать):
http_access allow localnet

Устанавливаем лимит использования памяти:
memory_pools on
memory_pools_limit 50 MB

Сохраняем файл конфигурации. Теперь строим кэш и запускаем:
sudo /usr/sbin/squid -z
sudo /etc/init.d/squid start

Необходимо настроить правила NAT
От старой Ubuntu у меня остался файл nat
Создаем файл nat в каталоге /etc/
sudo touch /etc/nat

Вставляем в него текст
----------------------------------------------------------------------------------------------------
#!/bin/sh

# Включаем форвардинг пакетов

echo 1 > /proc/sys/net/ipv4/ip_forward

# Правила для VPN доступа из внешней сети
modprobe ip_gre
modprobe ip_nat_pptp

# Разрешаем трафик на loopback-интерфейсе
iptables -A INPUT -i lo -j ACCEPT

# Разрешаем доступ из внутренней сети наружу
iptables -A FORWARD -i enp2s0 -o enp3s0 -j ACCEPT

# Включаем NAT
iptables -t nat -A POSTROUTING -o enp3s0 -s 192.168.1.0/24 -j MASQUERADE

# Разрешаем входящий PPTP, для VPN
iptables -A FORWARD -p gre -j ACCEPT
iptables -A FORWARD -i enp2s0 -p tcp --dport 1723 -j ACCEPT

# Форвардинг PPTP, для соединения VPN с сервером по IP адресу 192.168.1.1
iptables -t nat -A PREROUTING -p tcp -d 84.84.84.84 --dport 1723 -j DNAT --to-destination 192.168.1.1:1723
iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.1 --dport 1723 -j SNAT --to-source 84.84.84.84

# Разрешаем ответы из внешней сети
iptables -A FORWARD -i epn3s0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Запрещаем доступ снаружи во внутреннюю сеть
iptables -A FORWARD -i epn2s0 -o epn3s0 -j REJECT

# Заворачиваем http на прокси
iptables -t nat -A PREROUTING -i epn2s0 ! -d 192.168.1.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.1.121:3128

iptables -N SYN_FLOOD
iptables -A INPUT -m recent --update --seconds 3600 --name bad_hosts --rsource -j DROP
iptables -A INPUT -i $wan -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j SYN_FLOOD
iptables -A SYN_FLOOD -m limit --limit 5/sec --limit-burst 50 -j RETURN
iptables -A SYN_FLOOD -j LOG --log-prefix "SYN flood: "
iptables -A SYN_FLOOD -m recent --set --name bad_hosts --rsource -j DROP
-----------------------------------------------------------------------
Делаем его исполняемым
sudo chmod +x /etc/nat

Запускаем файл nat и выполняем команду

    iptables-save > /etc/firewall.v4.config
    
В этот файл сохранится текущая конфигурация iptables, которую нужно будет восстанавливать при старте системы (перезагрузка, новое включение).

Создаём скрипт для восстановления из дампа (файл firewall.v4.config) правил iptables

    nano /etc/network/if-pre-up.d/iptables-rules
    
В этот файл помещаем следующий код

#!/bin/sh
/sbin/iptables-restore < /etc/firewall.v4.config
#/sbin/ip6tables-restore < /etc/firewall.v6.config
    
Сохраняем и закрываем: Ctrl+O, Enter, Ctrl+X

Делаем скрипт исполняемым и загружаем правила iptables:

chmod +x /etc/network/if-pre-up.d/iptables-rules
/etc/network/if-pre-up.d/iptables-rules
    
Для автозагрузки правил при старте Ubuntu в файл /etc/crontab добавляем строки
# Закрузка правил NAT
@reboot         root    /etc/network/if-pre-up.d/iptables-rules

# Загрузка модулей для VPN tunel
@reboot         root    modprobe ip_gre
@reboot         root    modprobe ip_nat_pptp
@reboot         root    modprobe ip_conntrack_pptp
    
В файле /etc/sysctl.conf раскоментируем строку
net.ipv4.ip_forward=1

Включаем проброску DNS
nano /etc/resolv.conf
nameserver 8.8.4.4

Рестарт сети
sudo netplan apply

Установка часового пояса
timedatectl list-timezones
Asia/Krasnoyarsk
sudo timedatectl set-timezone Asia/Krasnoyarsk
timedatectl


Для размещения Web сайта на сервере.

Создайте следующий каталог для krokodil555:
sudo mkdir /var/www/krokodil555

Затем необходимо назначить права владения для директории с помощью переменной среды $USER, которая будет использоваться для текущего системного пользователя:
sudo chown -R $USER:$USER /var/www/krokodil555
sudo chmod -R 755 /var/www/krokodil555
sudo a2dissite 000-default.conf
sudo apache2ctl configtest

После этого откройте новый файл конфигурации в директории Apache sites-available с помощью любого редактора командной строки. Мы будем использовать nano:
sudo nano /etc/apache2/sites-available/krokodil555.conf

В результате будет создан новый пустой файл. Вставьте следующую пустую конфигурацию:
/etc/apache2/sites-available/your_domain.conf
<VirtualHost *:80>
    ServerName krokodil555
    ServerAlias www.krokodil555.ru
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/krokodil555
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Теперь вы можете использовать a2ensite для активации нового виртуального хоста:
sudo a2ensite krokodil555

В заключение перезагрузите Apache, чтобы эти изменения вступили в силу:
sudo systemctl reload apache2

Для сайта необходимо получить SSL сертификаты

Установка Certbot

sudo apt install certbot python3-certbot-apache
sudo systemctl reload apache2
sudo certbot --apache

You have no rights to post comments

Последние новости
Самое популярное
Кто на сайте

Сейчас один гость и ни одного зарегистрированного пользователя на сайте