bender

Установка простого шлюза на CentOS 7

Давайте создадим для него машинку. Заходим в VIRTUALBOX, жмём - создать и выбираем параметры системы. Т.к. операционная система у нас будет CENTOS 7, выбираем тип RED HAT и архитектуру x64, просто потому, что 32-х битной CENTOS7 не существует.

На этапе установки CentOS 7  достаточно требовательна к ресурсам. Дадим ей 2 ГБ ОЗУ, после установки - срежем.

Теперь давайте создадим жёсткий диск:

 

Virtual Box позволяет создавать динамические жесткие диски, которые расширяются по мере необходимости, я их использовать не буду, т.к. в силу своей структуры они уступают по производительности дискам с фиксированным размером. Так, что, создаём новый жесткий диск с фиксированным размером:

Восьми гигабайт нам более чем достаточно: 

Давайте настроим машинку. Первым делом - сконфигурируем сетевые интерфейсы. Первый будет у нас смотреть в реальную сеть:

Второй будет смотреть во внутреннюю сеть:

Выбираем источник установки (мой скачан отсюда: http://mirror.neolabs.kz/centos/7/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso):

 

Стартуем машинку, пропускаем проверку источника и сразу запускаем установку ОС - "Install CentOS 7":

Выбираем нужный язык:

Выбираем путь установки (я даю системе использовать весь диск):

Выбираем часовой пояс и жмём "Install":

 

 По-ходу установки нужно ввести пароль root'а:

После того, как все пакеты будут скопированы - перезагружаемся:

 Логинимся. Первым делом, давайте сконфигурируем сеть. Начиная с CentOS 7 "ifconfig" уходит в прошлое, вместо него приходит "nmtui":

[root@gateway ~]# nmtui

По MAC адресам определяем, кто есть кто:

Как видно - мой внешний интерфейс - "enp0s3", настраиваем его соответствующим образом. Обязательно ставим галочку "Automaticaly connect". Со вторым интерфейсом проделываем тоже самое:

Вернуться в главное меню "nmtui" не позволяет, по этому придётся выйти и запустить утилиту ещё раз. Заходим в "Activate a connection", если Вы не забыли установить галочку "Automaticaly connect" интерфейсы у вас будут уже активны (активные интерфейсы помечены звездочкой):


Ещё раз перезапустим "nmtui" и отредактируем имя нашего хоста (gateway.traning.kz):

Проверим, есть ли интернет:

[root@gateway ~]# ping ya.ru
PING ya.ru (213.180.204.3) 56(84) bytes of data.
64 bytes from www.yandex.ru (213.180.204.3): icmp_seq=1 ttl=54 time=77.5 ms
64 bytes from www.yandex.ru (213.180.204.3): icmp_seq=2 ttl=54 time=79.0 ms
64 bytes from www.yandex.ru (213.180.204.3): icmp_seq=3 ttl=54 time=76.4 ms
64 bytes from www.yandex.ru (213.180.204.3): icmp_seq=4 ttl=54 time=77.7 ms
^C
--- ya.ru ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 76.418/77.698/79.052/0.954 ms

Обновляем ОС:

[root@gateway ~]# yum update -y

 Отключаем SELINUX:

[root@gateway ~]# vi /etc/selinux/config

 В файле меняем строчку "SELINUX=enabled" на "SELINUX=disabled":

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Сконфигурируем файрвол. Стоить отметить, что iptables тоже старательно выпихивают со сцены, на смену ему приходит, пока непонятный firewalld Для начала - получим список зон относящихся к интерфейсу "enp0s3"

[root@gateway ~]# firewall-cmd --get-zone-of-interface=enp0s3
public

 Эта команда покажет нам список зон в режиме реального времени, однако у файрвола есть ещё режим permanent для его конфигурирования необходимо указывать параметр --permanent

[root@gateway ~]# firewall-cmd --get-zone-of-interface=enp0s3 --permanent
public

 Заменим зону в обоих режимах:

[root@gateway ~]# firewall-cmd --zone=public --remove-interface=enp0s3
[root@gateway ~]# firewall-cmd --zone=external --add-interface=enp0s3
[root@gateway ~]# firewall-cmd --zone=external --add-interface=enp0s3 --permanent

 Добавим маскарад, чтобы могли ходить пакеты:

[root@gateway ~]# firewall-cmd --zone=external --add-masquerade --permanent

И, забегая немного вперёд, сделаем проброс портов, чтобы работать через терминал с будущим контроллером домена (с порта 10002 на порт 22 локального адреса 192.168.10.2)

[root@gateway ~]# firewall-cmd --zone=external --add-forward-port=port=10002:proto=tcp:toport=22:toaddr=192.168.10.2 --permanent

 Заглянем в конфиги интерфейсов:

[root@gateway ~]# vim /etc/sysconfig/network-scripts/ifcfg-enp0s3

 Если нет атрибута "ZONE" - добавим его. Интерфейс, который смотрит наружу должен быть в зоне "EXTERNAL":

TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s3
UUID=02ff93ed-b0ce-4413-9609-82d57eefead2
ONBOOT=yes
IPADDR0=192.168.1.196
PREFIX0=24
GATEWAY0=192.168.1.22
DNS1=8.8.8.8
ZONE=external
HWADDR=08:00:27:F0:C9:D6

В нашем случае, конфиг второго интерфейса можно, в принципе, не смотреть. Дело в том, что если не указать в конфиге интерфейса зону, то ему будет назначена зона по умолчанию а это - "PUBLIC", что нам и нужно.

Перезагрузим машину:

[root@gateway ~]# reboot