Цитата эксперта:

Автоматизация и инфраструктура как код (IaC) становятся все более важными. Netplan является шагом в правильном направлении, позволяя определять конфигурацию сети декларативно.

Крис Ричардсон, DevOps-инженер

В следующем разделе мы рассмотрим, как настроить брандмауэр для дополнительных IP-адресов.

Настройка брандмауэра

Изображение, представляющее брандмауэр и безопасность
Описание: Изображение, представляющее брандмауэр и безопасность

После добавления дополнительных IP-адресов важно настроить брандмауэр, чтобы обеспечить безопасность вашего VPS. Брандмауэр действует как барьер между вашим сервером и внешним миром, блокируя нежелательный трафик и разрешая только необходимый.

VPS Hosting

Virtual servers with guaranteed resources

Choose VPS

Наиболее распространенные брандмауэры в Linux — это iptables и firewalld. iptables — это более старый, но все еще широко используемый брандмауэр. firewalld — это более современный брандмауэр, предлагающий более удобный интерфейс управления.

Firewalld (рекомендуется для CentOS и Ubuntu)

firewalld использует концепцию зон, которые представляют различные уровни доверия к сети. Например, зона public предназначена для общедоступных сетей и имеет более строгие правила, чем зона home, предназначенная для домашних сетей.

Чтобы проверить, какой брандмауэр используется и его статус, используйте команду:

# systemctl status firewalld

Если firewalld не запущен, запустите его:

# systemctl start firewalld
# systemctl enable firewalld

Первая команда запускает брандмауэр, а вторая включает его автоматический запуск при загрузке системы.

Чтобы добавить правило брандмауэра для дополнительного IP-адреса, необходимо сначала определить, к какой зоне он должен быть назначен. Если вы хотите, чтобы IP-адрес был доступен из любой сети, используйте зону public. Если вы хотите ограничить доступ только из определенных сетей, создайте новую зону или используйте существующую, например trusted.

Предположим, вы хотите разрешить доступ к веб-серверу (порт 80 и 443) на дополнительном IP-адресе 192.168.1.101. Выполните следующие команды:

# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.101" port port="80" protocol="tcp" accept'
# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.101" port port="443" protocol="tcp" accept'
# firewall-cmd --reload

Первые две команды добавляют правила, разрешающие входящий трафик на порты 80 и 443 с IP-адреса 192.168.1.101 в зоне public. Опция --permanent указывает, что правила должны быть добавлены в постоянную конфигурацию, которая сохраняется после перезагрузки системы. Третья команда перезагружает брандмауэр, чтобы изменения вступили в силу.

Чтобы проверить, что правила были успешно добавлены, используйте команду:

# firewall-cmd --list-all --zone=public

Вы должны увидеть добавленные правила в выводе. Также можно использовать команду firewall-cmd --list-rich-rules --zone=public для просмотра только rich rules.

Если вы хотите разрешить доступ ко всем портам с определенного IP-адреса, используйте следующее правило:

# firewall-cmd --permanent --zone=trusted --add-source=192.168.1.101
# firewall-cmd --reload

Это правило добавляет IP-адрес 192.168.1.101 в зону trusted, которая разрешает весь трафик с этого IP-адреса.

Iptables (альтернативный вариант)

Если вы используете iptables, вам нужно будет вручную добавлять правила для каждого порта и IP-адреса. Перед внесением изменений рекомендуется сохранить текущую конфигурацию iptables:

# iptables-save > /etc/iptables.rules

Чтобы разрешить доступ к веб-серверу (порт 80 и 443) на дополнительном IP-адресе 192.168.1.101, выполните следующие команды:

# iptables -A INPUT -p tcp -s 192.168.1.101 --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -s 192.168.1.101 --dport 443 -j ACCEPT

Эти команды добавляют правила в таблицу INPUT, разрешающие входящий трафик на порты 80 и 443 с IP-адреса 192.168.1.101. Опция -A добавляет правило в конец таблицы.

Разберем параметры:

  • DEVICE: Указывает имя устройства. eth0:1 говорит о том, что это дополнительный IP-адрес на интерфейсе eth0.
  • IPADDR: Указывает дополнительный IP-адрес.
  • NETMASK: Указывает маску подсети.
  • ONBOOT: Указывает, должен ли интерфейс быть активирован при загрузке системы.

Чтобы создать файл, используйте текстовый редактор, например vi или nano:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0:1

Вставьте содержимое, указанное выше, в файл и сохраните его. После этого необходимо перезапустить сетевую службу, чтобы изменения вступили в силу:

# systemctl restart network

Чтобы проверить, что IP-адрес был успешно добавлен, используйте команду ip addr show eth0:

# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 192.168.1.101/24 scope global secondary eth0:1
       valid_lft forever preferred_lft forever

Вы должны увидеть оба IP-адреса (192.168.1.100 и 192.168.1.101) в выводе. Обратите внимание на строку inet 192.168.1.101/24 scope global secondary eth0:1, которая подтверждает, что дополнительный IP-адрес был добавлен как вторичный адрес на интерфейсе eth0.

Альтернативный метод (nmcli):

В современных версиях CentOS можно использовать утилиту nmcli (NetworkManager Command Line Interface) для управления сетевыми подключениями. Это более современный и рекомендуемый способ добавления IP-адресов.

# nmcli con add type ethernet con-name eth0-1 ifname eth0 ip4 192.168.1.101/24
# nmcli con up eth0-1

Первая команда добавляет новое подключение типа ethernet с именем eth0-1, которое использует интерфейс eth0 и IP-адрес 192.168.1.101/24. Вторая команда активирует это подключение. Вы также можете настроить шлюз по умолчанию, используя nmcli, если это необходимо.

Важно! Убедитесь, что ваш хостинг-провайдер разрешил использование дополнительных IP-адресов и что они правильно настроены на их стороне. В противном случае, трафик к этим IP-адресам может не маршрутизироваться к вашему VPS.

Для отладки проблем с сетью в CentOS можно использовать следующие команды:

# ping 192.168.1.101
# traceroute 192.168.1.101
# systemctl status network
# journalctl -u network

ping проверяет связь с IP-адресом. traceroute показывает путь трафика к IP-адресу. systemctl status network показывает состояние сетевой службы. journalctl -u network показывает логи сетевой службы.

Таблица сравнения методов добавления IP в CentOS:

МетодПростотаСовременностьРекомендуемость
ifcfg-ethX:YСредняяУстаревшийНе рекомендуется
nmcliВысокаяСовременныйРекомендуется

В следующем разделе мы рассмотрим, как добавить дополнительные IP-адреса в Ubuntu/Debian.

Добавление IP-адресов в Ubuntu/Debian

Логотип Ubuntu, представляющий добавление IP
Описание: Логотип Ubuntu, представляющий добавление IP

В Ubuntu и Debian добавление дополнительных IP-адресов несколько отличается от CentOS. Традиционно, это делалось через файл /etc/network/interfaces, но в современных версиях Ubuntu часто используется Netplan.

Метод 1: /etc/network/interfaces (традиционный)

Этот метод предполагает редактирование файла /etc/network/interfaces. Внимание: неправильное редактирование этого файла может привести к проблемам с сетью. Перед внесением изменений сделайте резервную копию файла:

# cp /etc/network/interfaces /etc/network/interfaces.bak

Затем откройте файл /etc/network/interfaces в текстовом редакторе:

# nano /etc/network/interfaces

Предположим, ваш основной интерфейс — eth0, а его конфигурация выглядит примерно так:

auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4

Чтобы добавить дополнительный IP-адрес 192.168.1.101, добавьте следующие строки в конец файла:

auto eth0:1
iface eth0:1 inet static
    address 192.168.1.101
    netmask 255.255.255.0

Обратите внимание, что мы используем eth0:1 для обозначения дополнительного IP-адреса. После внесения изменений сохраните файл и перезапустите сетевую службу:

# systemctl restart networking

Чтобы проверить, что IP-адрес был успешно добавлен, используйте команду ip addr show eth0:

# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 192.168.1.101/24 scope global secondary eth0:1
       valid_lft forever preferred_lft forever

Вы должны увидеть оба IP-адреса в выводе, как и в CentOS.

Метод 2: Netplan (современный)

Netplan — это система конфигурации сети, используемая в современных версиях Ubuntu. Конфигурационные файлы Netplan находятся в каталоге /etc/netplan/ и имеют расширение .yaml. Имя файла может быть разным, например 01-network-config.yaml.

Чтобы добавить дополнительный IP-адрес с помощью Netplan, вам нужно отредактировать существующий файл конфигурации или создать новый. Сначала определите имя вашего сетевого интерфейса, используя команду ip link:

# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff

В этом примере имя интерфейса — eth0. Затем откройте файл конфигурации Netplan в текстовом редакторе:

# nano /etc/netplan/01-network-config.yaml

Предположим, исходный файл выглядит примерно так:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
          addresses: [8.8.8.8, 8.8.4.4]

Чтобы добавить дополнительный IP-адрес 192.168.1.101, измените файл следующим образом:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.1.100/24, 192.168.1.101/24]
      gateway4: 192.168.1.1
      nameservers:
          addresses: [8.8.8.8, 8.8.4.4]

Обратите внимание, что мы добавили 192.168.1.101/24 в список addresses. После внесения изменений сохраните файл и примените конфигурацию Netplan:

# netplan apply

Если возникнут ошибки, вы можете использовать команду netplan --debug apply для получения более подробной информации.

Предостережение: Файлы YAML чувствительны к отступам. Убедитесь, что отступы в вашем файле Netplan правильные. Неправильные отступы могут привести к ошибкам конфигурации.

Как и в CentOS, для отладки проблем с сетью в Ubuntu/Debian можно использовать команды ping, traceroute, systemctl status networking и journalctl -u networking.

Цитата эксперта:

Автоматизация и инфраструктура как код (IaC) становятся все более важными. Netplan является шагом в правильном направлении, позволяя определять конфигурацию сети декларативно.

Крис Ричардсон, DevOps-инженер

В следующем разделе мы рассмотрим, как настроить брандмауэр для дополнительных IP-адресов.

Настройка брандмауэра

Изображение, представляющее брандмауэр и безопасность
Описание: Изображение, представляющее брандмауэр и безопасность

После добавления дополнительных IP-адресов важно настроить брандмауэр, чтобы обеспечить безопасность вашего VPS. Брандмауэр действует как барьер между вашим сервером и внешним миром, блокируя нежелательный трафик и разрешая только необходимый.

Наиболее распространенные брандмауэры в Linux — это iptables и firewalld. iptables — это более старый, но все еще широко используемый брандмауэр. firewalld — это более современный брандмауэр, предлагающий более удобный интерфейс управления.

Firewalld (рекомендуется для CentOS и Ubuntu)

firewalld использует концепцию зон, которые представляют различные уровни доверия к сети. Например, зона public предназначена для общедоступных сетей и имеет более строгие правила, чем зона home, предназначенная для домашних сетей.

Чтобы проверить, какой брандмауэр используется и его статус, используйте команду:

# systemctl status firewalld

Если firewalld не запущен, запустите его:

# systemctl start firewalld
# systemctl enable firewalld

Первая команда запускает брандмауэр, а вторая включает его автоматический запуск при загрузке системы.

Чтобы добавить правило брандмауэра для дополнительного IP-адреса, необходимо сначала определить, к какой зоне он должен быть назначен. Если вы хотите, чтобы IP-адрес был доступен из любой сети, используйте зону public. Если вы хотите ограничить доступ только из определенных сетей, создайте новую зону или используйте существующую, например trusted.

Предположим, вы хотите разрешить доступ к веб-серверу (порт 80 и 443) на дополнительном IP-адресе 192.168.1.101. Выполните следующие команды:

# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.101" port port="80" protocol="tcp" accept'
# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.101" port port="443" protocol="tcp" accept'
# firewall-cmd --reload

Первые две команды добавляют правила, разрешающие входящий трафик на порты 80 и 443 с IP-адреса 192.168.1.101 в зоне public. Опция --permanent указывает, что правила должны быть добавлены в постоянную конфигурацию, которая сохраняется после перезагрузки системы. Третья команда перезагружает брандмауэр, чтобы изменения вступили в силу.

Чтобы проверить, что правила были успешно добавлены, используйте команду:

# firewall-cmd --list-all --zone=public

Вы должны увидеть добавленные правила в выводе. Также можно использовать команду firewall-cmd --list-rich-rules --zone=public для просмотра только rich rules.

Если вы хотите разрешить доступ ко всем портам с определенного IP-адреса, используйте следующее правило:

# firewall-cmd --permanent --zone=trusted --add-source=192.168.1.101
# firewall-cmd --reload

Это правило добавляет IP-адрес 192.168.1.101 в зону trusted, которая разрешает весь трафик с этого IP-адреса.

Iptables (альтернативный вариант)

Если вы используете iptables, вам нужно будет вручную добавлять правила для каждого порта и IP-адреса. Перед внесением изменений рекомендуется сохранить текущую конфигурацию iptables:

# iptables-save > /etc/iptables.rules

Чтобы разрешить доступ к веб-серверу (порт 80 и 443) на дополнительном IP-адресе 192.168.1.101, выполните следующие команды:

# iptables -A INPUT -p tcp -s 192.168.1.101 --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -s 192.168.1.101 --dport 443 -j ACCEPT

Эти команды добавляют правила в таблицу INPUT, разрешающие входящий трафик на порты 80 и 443 с IP-адреса 192.168.1.101. Опция -A добавляет правило в конец таблицы.

Цитата эксперта:

IP-адреса — это основа современной сети. Понимание их работы необходимо для эффективного управления сетевой инфраструктурой.

Винт Серф, один из «отцов интернета»

В следующем разделе мы рассмотрим, как добавить дополнительные IP-адреса в CentOS.

Добавление IP-адресов в CentOS

Изображение с логотипом CentOS, показывающее добавление IP
Описание: Изображение с логотипом CentOS, показывающее добавление IP

В CentOS (и других дистрибутивах Red Hat) добавление дополнительных IP-адресов обычно включает создание дополнительных файлов конфигурации для сетевых интерфейсов. Традиционно это делалось через файлы /etc/sysconfig/network-scripts/ifcfg-ethX:Y, где ethX — это имя вашего основного сетевого интерфейса (например, eth0), а Y — номер, позволяющий различать дополнительные IP-адреса.

Предположим, у вас есть основной IP-адрес 192.168.1.100, маска подсети 255.255.255.0 и вы хотите добавить дополнительный IP-адрес 192.168.1.101 с той же маской подсети. Вам нужно создать файл /etc/sysconfig/network-scripts/ifcfg-eth0:1 со следующим содержимым:

DEVICE=eth0:1
IPADDR=192.168.1.101
NETMASK=255.255.255.0
ONBOOT=yes

Разберем параметры:

  • DEVICE: Указывает имя устройства. eth0:1 говорит о том, что это дополнительный IP-адрес на интерфейсе eth0.
  • IPADDR: Указывает дополнительный IP-адрес.
  • NETMASK: Указывает маску подсети.
  • ONBOOT: Указывает, должен ли интерфейс быть активирован при загрузке системы.

Чтобы создать файл, используйте текстовый редактор, например vi или nano:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0:1

Вставьте содержимое, указанное выше, в файл и сохраните его. После этого необходимо перезапустить сетевую службу, чтобы изменения вступили в силу:

# systemctl restart network

Чтобы проверить, что IP-адрес был успешно добавлен, используйте команду ip addr show eth0:

# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 192.168.1.101/24 scope global secondary eth0:1
       valid_lft forever preferred_lft forever

Вы должны увидеть оба IP-адреса (192.168.1.100 и 192.168.1.101) в выводе. Обратите внимание на строку inet 192.168.1.101/24 scope global secondary eth0:1, которая подтверждает, что дополнительный IP-адрес был добавлен как вторичный адрес на интерфейсе eth0.

Альтернативный метод (nmcli):

В современных версиях CentOS можно использовать утилиту nmcli (NetworkManager Command Line Interface) для управления сетевыми подключениями. Это более современный и рекомендуемый способ добавления IP-адресов.

# nmcli con add type ethernet con-name eth0-1 ifname eth0 ip4 192.168.1.101/24
# nmcli con up eth0-1

Первая команда добавляет новое подключение типа ethernet с именем eth0-1, которое использует интерфейс eth0 и IP-адрес 192.168.1.101/24. Вторая команда активирует это подключение. Вы также можете настроить шлюз по умолчанию, используя nmcli, если это необходимо.

Важно! Убедитесь, что ваш хостинг-провайдер разрешил использование дополнительных IP-адресов и что они правильно настроены на их стороне. В противном случае, трафик к этим IP-адресам может не маршрутизироваться к вашему VPS.

Для отладки проблем с сетью в CentOS можно использовать следующие команды:

# ping 192.168.1.101
# traceroute 192.168.1.101
# systemctl status network
# journalctl -u network

ping проверяет связь с IP-адресом. traceroute показывает путь трафика к IP-адресу. systemctl status network показывает состояние сетевой службы. journalctl -u network показывает логи сетевой службы.

Таблица сравнения методов добавления IP в CentOS:

МетодПростотаСовременностьРекомендуемость
ifcfg-ethX:YСредняяУстаревшийНе рекомендуется
nmcliВысокаяСовременныйРекомендуется

В следующем разделе мы рассмотрим, как добавить дополнительные IP-адреса в Ubuntu/Debian.

Добавление IP-адресов в Ubuntu/Debian

Логотип Ubuntu, представляющий добавление IP
Описание: Логотип Ubuntu, представляющий добавление IP

В Ubuntu и Debian добавление дополнительных IP-адресов несколько отличается от CentOS. Традиционно, это делалось через файл /etc/network/interfaces, но в современных версиях Ubuntu часто используется Netplan.

Метод 1: /etc/network/interfaces (традиционный)

Этот метод предполагает редактирование файла /etc/network/interfaces. Внимание: неправильное редактирование этого файла может привести к проблемам с сетью. Перед внесением изменений сделайте резервную копию файла:

# cp /etc/network/interfaces /etc/network/interfaces.bak

Затем откройте файл /etc/network/interfaces в текстовом редакторе:

# nano /etc/network/interfaces

Предположим, ваш основной интерфейс — eth0, а его конфигурация выглядит примерно так:

auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4

Чтобы добавить дополнительный IP-адрес 192.168.1.101, добавьте следующие строки в конец файла:

auto eth0:1
iface eth0:1 inet static
    address 192.168.1.101
    netmask 255.255.255.0

Обратите внимание, что мы используем eth0:1 для обозначения дополнительного IP-адреса. После внесения изменений сохраните файл и перезапустите сетевую службу:

# systemctl restart networking

Чтобы проверить, что IP-адрес был успешно добавлен, используйте команду ip addr show eth0:

# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 192.168.1.101/24 scope global secondary eth0:1
       valid_lft forever preferred_lft forever

Вы должны увидеть оба IP-адреса в выводе, как и в CentOS.

Метод 2: Netplan (современный)

Netplan — это система конфигурации сети, используемая в современных версиях Ubuntu. Конфигурационные файлы Netplan находятся в каталоге /etc/netplan/ и имеют расширение .yaml. Имя файла может быть разным, например 01-network-config.yaml.

Чтобы добавить дополнительный IP-адрес с помощью Netplan, вам нужно отредактировать существующий файл конфигурации или создать новый. Сначала определите имя вашего сетевого интерфейса, используя команду ip link:

# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff

В этом примере имя интерфейса — eth0. Затем откройте файл конфигурации Netplan в текстовом редакторе:

# nano /etc/netplan/01-network-config.yaml

Предположим, исходный файл выглядит примерно так:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
          addresses: [8.8.8.8, 8.8.4.4]

Чтобы добавить дополнительный IP-адрес 192.168.1.101, измените файл следующим образом:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.1.100/24, 192.168.1.101/24]
      gateway4: 192.168.1.1
      nameservers:
          addresses: [8.8.8.8, 8.8.4.4]

Обратите внимание, что мы добавили 192.168.1.101/24 в список addresses. После внесения изменений сохраните файл и примените конфигурацию Netplan:

# netplan apply

Если возникнут ошибки, вы можете использовать команду netplan --debug apply для получения более подробной информации.

Предостережение: Файлы YAML чувствительны к отступам. Убедитесь, что отступы в вашем файле Netplan правильные. Неправильные отступы могут привести к ошибкам конфигурации.

Как и в CentOS, для отладки проблем с сетью в Ubuntu/Debian можно использовать команды ping, traceroute, systemctl status networking и journalctl -u networking.

Цитата эксперта:

Автоматизация и инфраструктура как код (IaC) становятся все более важными. Netplan является шагом в правильном направлении, позволяя определять конфигурацию сети декларативно.

Крис Ричардсон, DevOps-инженер

В следующем разделе мы рассмотрим, как настроить брандмауэр для дополнительных IP-адресов.

Настройка брандмауэра

Изображение, представляющее брандмауэр и безопасность
Описание: Изображение, представляющее брандмауэр и безопасность

После добавления дополнительных IP-адресов важно настроить брандмауэр, чтобы обеспечить безопасность вашего VPS. Брандмауэр действует как барьер между вашим сервером и внешним миром, блокируя нежелательный трафик и разрешая только необходимый.

Наиболее распространенные брандмауэры в Linux — это iptables и firewalld. iptables — это более старый, но все еще широко используемый брандмауэр. firewalld — это более современный брандмауэр, предлагающий более удобный интерфейс управления.

Firewalld (рекомендуется для CentOS и Ubuntu)

firewalld использует концепцию зон, которые представляют различные уровни доверия к сети. Например, зона public предназначена для общедоступных сетей и имеет более строгие правила, чем зона home, предназначенная для домашних сетей.

Чтобы проверить, какой брандмауэр используется и его статус, используйте команду:

# systemctl status firewalld

Если firewalld не запущен, запустите его:

# systemctl start firewalld
# systemctl enable firewalld

Первая команда запускает брандмауэр, а вторая включает его автоматический запуск при загрузке системы.

Чтобы добавить правило брандмауэра для дополнительного IP-адреса, необходимо сначала определить, к какой зоне он должен быть назначен. Если вы хотите, чтобы IP-адрес был доступен из любой сети, используйте зону public. Если вы хотите ограничить доступ только из определенных сетей, создайте новую зону или используйте существующую, например trusted.

Предположим, вы хотите разрешить доступ к веб-серверу (порт 80 и 443) на дополнительном IP-адресе 192.168.1.101. Выполните следующие команды:

# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.101" port port="80" protocol="tcp" accept'
# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.101" port port="443" protocol="tcp" accept'
# firewall-cmd --reload

Первые две команды добавляют правила, разрешающие входящий трафик на порты 80 и 443 с IP-адреса 192.168.1.101 в зоне public. Опция --permanent указывает, что правила должны быть добавлены в постоянную конфигурацию, которая сохраняется после перезагрузки системы. Третья команда перезагружает брандмауэр, чтобы изменения вступили в силу.

Чтобы проверить, что правила были успешно добавлены, используйте команду:

# firewall-cmd --list-all --zone=public

Вы должны увидеть добавленные правила в выводе. Также можно использовать команду firewall-cmd --list-rich-rules --zone=public для просмотра только rich rules.

Если вы хотите разрешить доступ ко всем портам с определенного IP-адреса, используйте следующее правило:

# firewall-cmd --permanent --zone=trusted --add-source=192.168.1.101
# firewall-cmd --reload

Это правило добавляет IP-адрес 192.168.1.101 в зону trusted, которая разрешает весь трафик с этого IP-адреса.

Iptables (альтернативный вариант)

Если вы используете iptables, вам нужно будет вручную добавлять правила для каждого порта и IP-адреса. Перед внесением изменений рекомендуется сохранить текущую конфигурацию iptables:

# iptables-save > /etc/iptables.rules

Чтобы разрешить доступ к веб-серверу (порт 80 и 443) на дополнительном IP-адресе 192.168.1.101, выполните следующие команды:

# iptables -A INPUT -p tcp -s 192.168.1.101 --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -s 192.168.1.101 --dport 443 -j ACCEPT

Эти команды добавляют правила в таблицу INPUT, разрешающие входящий трафик на порты 80 и 443 с IP-адреса 192.168.1.101. Опция -A добавляет правило в конец таблицы.«`

Как добавить дополнительные IP адреса к VPS?

В этом подробном руководстве мы рассмотрим, как добавить дополнительные IP-адреса к вашему виртуальному частному серверу (VPS). Мы охватим теоретические основы, практические шаги для наиболее популярных операционных систем Linux (CentOS, Ubuntu, Debian), а также рассмотрим распространенные проблемы и способы их решения. Независимо от того, новичок вы или опытный системный администратор, это руководство поможет вам правильно настроить дополнительные IP-адреса для вашего VPS, чтобы максимально использовать его возможности. Мы также затронем вопросы безопасности и оптимизации производительности.

Содержание:

Введение

Изображение, представляющее добавление IP адресов к VPS
Описание: Изображение, представляющее добавление IP адресов к VPS

Виртуальный частный сервер (VPS) предоставляет ресурсы, необходимые для запуска веб-сайтов, приложений и других сервисов. Иногда одного IP-адреса недостаточно. Добавление дополнительных IP-адресов может быть полезным для различных целей, таких как размещение нескольких веб-сайтов с разными SSL-сертификатами, разделение трафика или улучшение безопасности. В этом разделе мы рассмотрим основы добавления дополнительных IP-адресов к VPS.

Например, представьте, что вы владеете веб-хостинг компанией. Вам нужно размещать сайты для нескольких клиентов, и каждый сайт требует уникального SSL-сертификата. Для этого необходимо, чтобы каждый сайт имел собственный IP-адрес. Добавление дополнительных IP-адресов к вашему VPS позволяет это сделать.

Другой пример — когда вы хотите разделить трафик между различными сервисами. Например, вы можете выделить один IP-адрес для веб-сервера, другой для почтового сервера и третий для сервера баз данных. Это помогает изолировать различные сервисы друг от друга и улучшить безопасность.

Прежде чем начать, убедитесь, что у вас есть права root или привилегии sudo на вашем VPS. Также необходимо знать сетевые настройки вашего VPS, включая текущий IP-адрес, маску подсети и шлюз по умолчанию. Эту информацию можно получить у вашего хостинг-провайдера или с помощью следующих команд:

# ip addr show
# route -n
# cat /etc/resolv.conf

Команда ip addr show отображает все сетевые интерфейсы и их IP-адреса. route -n показывает таблицу маршрутизации, которая указывает шлюз по умолчанию. cat /etc/resolv.conf отображает список DNS-серверов, используемых вашей системой.

Важно отметить, что процесс добавления дополнительных IP-адресов может немного отличаться в зависимости от операционной системы вашего VPS. В следующих разделах мы рассмотрим, как это сделать для CentOS и Ubuntu/Debian.

Сравнение операционных систем для VPS:

Операционная системаПростота использованияБезопасностьПоддержка сообщества
CentOSСредняяВысокаяБольшая
UbuntuВысокаяСредняяОчень большая
DebianСредняяВысокаяБольшая

Выбор операционной системы зависит от ваших потребностей и опыта. CentOS и Debian известны своей стабильностью и безопасностью, в то время как Ubuntu предлагает более дружественный интерфейс и большую поддержку сообщества.

Понимание IP-адресов

Изображение, объясняющее концепцию IP адресов
Описание: Изображение, объясняющее концепцию IP адресов

Прежде чем добавлять дополнительные IP-адреса, важно понимать, что такое IP-адрес и как он работает. IP-адрес (Internet Protocol address) — это уникальный числовой идентификатор, присвоенный каждому устройству, подключенному к компьютерной сети, использующей протокол IP для связи. Он действует как почтовый адрес для данных в интернете.

Существует два основных типа IP-адресов: IPv4 и IPv6. IPv4 использует 32-битное адресное пространство, что позволяет иметь около 4,3 миллиарда уникальных адресов. IPv6 использует 128-битное адресное пространство, предлагая практически неограниченное количество адресов. В настоящее время IPv4 все еще широко используется, но IPv6 постепенно внедряется из-за исчерпания адресного пространства IPv4.

IP-адреса также можно разделить на статические и динамические. Статический IP-адрес назначается устройству вручную и остается неизменным. Динамический IP-адрес назначается устройству автоматически сервером DHCP (Dynamic Host Configuration Protocol) и может меняться со временем. Для VPS обычно используются статические IP-адреса, поскольку они обеспечивают стабильный и предсказуемый доступ к серверу.

Каждый IP-адрес связан с маской подсети, которая определяет, какая часть IP-адреса идентифицирует сеть, а какая — хост в этой сети. Например, маска подсети 255.255.255.0 означает, что первые 24 бита IP-адреса идентифицируют сеть, а последние 8 битов — хост. Шлюз по умолчанию — это IP-адрес маршрутизатора, через который трафик покидает вашу локальную сеть.

При добавлении дополнительных IP-адресов к VPS вам необходимо знать следующие параметры для каждого IP-адреса: IP-адрес, маску подсети и шлюз по умолчанию. Обычно эта информация предоставляется вашим хостинг-провайдером.

Для проверки текущей сетевой конфигурации можно использовать команду ip route. Например:

# ip route
default via 192.168.1.1 dev eth0 
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100

Этот вывод показывает, что шлюз по умолчанию — 192.168.1.1, а сетевой интерфейс — eth0. Также можно использовать команду ifconfig (хотя она может быть устаревшей в некоторых системах) для получения информации об IP-адресах и масках подсети.

Цитата эксперта:

IP-адреса — это основа современной сети. Понимание их работы необходимо для эффективного управления сетевой инфраструктурой.

Винт Серф, один из «отцов интернета»

В следующем разделе мы рассмотрим, как добавить дополнительные IP-адреса в CentOS.

Добавление IP-адресов в CentOS

Изображение с логотипом CentOS, показывающее добавление IP
Описание: Изображение с логотипом CentOS, показывающее добавление IP

В CentOS (и других дистрибутивах Red Hat) добавление дополнительных IP-адресов обычно включает создание дополнительных файлов конфигурации для сетевых интерфейсов. Традиционно это делалось через файлы /etc/sysconfig/network-scripts/ifcfg-ethX:Y, где ethX — это имя вашего основного сетевого интерфейса (например, eth0), а Y — номер, позволяющий различать дополнительные IP-адреса.

Предположим, у вас есть основной IP-адрес 192.168.1.100, маска подсети 255.255.255.0 и вы хотите добавить дополнительный IP-адрес 192.168.1.101 с той же маской подсети. Вам нужно создать файл /etc/sysconfig/network-scripts/ifcfg-eth0:1 со следующим содержимым:

DEVICE=eth0:1
IPADDR=192.168.1.101
NETMASK=255.255.255.0
ONBOOT=yes

Разберем параметры:

  • DEVICE: Указывает имя устройства. eth0:1 говорит о том, что это дополнительный IP-адрес на интерфейсе eth0.
  • IPADDR: Указывает дополнительный IP-адрес.
  • NETMASK: Указывает маску подсети.
  • ONBOOT: Указывает, должен ли интерфейс быть активирован при загрузке системы.

Чтобы создать файл, используйте текстовый редактор, например vi или nano:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0:1

Вставьте содержимое, указанное выше, в файл и сохраните его. После этого необходимо перезапустить сетевую службу, чтобы изменения вступили в силу:

# systemctl restart network

Чтобы проверить, что IP-адрес был успешно добавлен, используйте команду ip addr show eth0:

# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 192.168.1.101/24 scope global secondary eth0:1
       valid_lft forever preferred_lft forever

Вы должны увидеть оба IP-адреса (192.168.1.100 и 192.168.1.101) в выводе. Обратите внимание на строку inet 192.168.1.101/24 scope global secondary eth0:1, которая подтверждает, что дополнительный IP-адрес был добавлен как вторичный адрес на интерфейсе eth0.

Альтернативный метод (nmcli):

В современных версиях CentOS можно использовать утилиту nmcli (NetworkManager Command Line Interface) для управления сетевыми подключениями. Это более современный и рекомендуемый способ добавления IP-адресов.

# nmcli con add type ethernet con-name eth0-1 ifname eth0 ip4 192.168.1.101/24
# nmcli con up eth0-1

Первая команда добавляет новое подключение типа ethernet с именем eth0-1, которое использует интерфейс eth0 и IP-адрес 192.168.1.101/24. Вторая команда активирует это подключение. Вы также можете настроить шлюз по умолчанию, используя nmcli, если это необходимо.

Важно! Убедитесь, что ваш хостинг-провайдер разрешил использование дополнительных IP-адресов и что они правильно настроены на их стороне. В противном случае, трафик к этим IP-адресам может не маршрутизироваться к вашему VPS.

Для отладки проблем с сетью в CentOS можно использовать следующие команды:

# ping 192.168.1.101
# traceroute 192.168.1.101
# systemctl status network
# journalctl -u network

ping проверяет связь с IP-адресом. traceroute показывает путь трафика к IP-адресу. systemctl status network показывает состояние сетевой службы. journalctl -u network показывает логи сетевой службы.

Таблица сравнения методов добавления IP в CentOS:

МетодПростотаСовременностьРекомендуемость
ifcfg-ethX:YСредняяУстаревшийНе рекомендуется
nmcliВысокаяСовременныйРекомендуется

В следующем разделе мы рассмотрим, как добавить дополнительные IP-адреса в Ubuntu/Debian.

Добавление IP-адресов в Ubuntu/Debian

Логотип Ubuntu, представляющий добавление IP
Описание: Логотип Ubuntu, представляющий добавление IP

В Ubuntu и Debian добавление дополнительных IP-адресов несколько отличается от CentOS. Традиционно, это делалось через файл /etc/network/interfaces, но в современных версиях Ubuntu часто используется Netplan.

Метод 1: /etc/network/interfaces (традиционный)

Этот метод предполагает редактирование файла /etc/network/interfaces. Внимание: неправильное редактирование этого файла может привести к проблемам с сетью. Перед внесением изменений сделайте резервную копию файла:

# cp /etc/network/interfaces /etc/network/interfaces.bak

Затем откройте файл /etc/network/interfaces в текстовом редакторе:

# nano /etc/network/interfaces

Предположим, ваш основной интерфейс — eth0, а его конфигурация выглядит примерно так:

auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4

Чтобы добавить дополнительный IP-адрес 192.168.1.101, добавьте следующие строки в конец файла:

auto eth0:1
iface eth0:1 inet static
    address 192.168.1.101
    netmask 255.255.255.0

Обратите внимание, что мы используем eth0:1 для обозначения дополнительного IP-адреса. После внесения изменений сохраните файл и перезапустите сетевую службу:

# systemctl restart networking

Чтобы проверить, что IP-адрес был успешно добавлен, используйте команду ip addr show eth0:

# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 192.168.1.101/24 scope global secondary eth0:1
       valid_lft forever preferred_lft forever

Вы должны увидеть оба IP-адреса в выводе, как и в CentOS.

Метод 2: Netplan (современный)

Netplan — это система конфигурации сети, используемая в современных версиях Ubuntu. Конфигурационные файлы Netplan находятся в каталоге /etc/netplan/ и имеют расширение .yaml. Имя файла может быть разным, например 01-network-config.yaml.

Чтобы добавить дополнительный IP-адрес с помощью Netplan, вам нужно отредактировать существующий файл конфигурации или создать новый. Сначала определите имя вашего сетевого интерфейса, используя команду ip link:

# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff

В этом примере имя интерфейса — eth0. Затем откройте файл конфигурации Netplan в текстовом редакторе:

# nano /etc/netplan/01-network-config.yaml

Предположим, исходный файл выглядит примерно так:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
          addresses: [8.8.8.8, 8.8.4.4]

Чтобы добавить дополнительный IP-адрес 192.168.1.101, измените файл следующим образом:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.1.100/24, 192.168.1.101/24]
      gateway4: 192.168.1.1
      nameservers:
          addresses: [8.8.8.8, 8.8.4.4]

Обратите внимание, что мы добавили 192.168.1.101/24 в список addresses. После внесения изменений сохраните файл и примените конфигурацию Netplan:

# netplan apply

Если возникнут ошибки, вы можете использовать команду netplan --debug apply для получения более подробной информации.

Предостережение: Файлы YAML чувствительны к отступам. Убедитесь, что отступы в вашем файле Netplan правильные. Неправильные отступы могут привести к ошибкам конфигурации.

Как и в CentOS, для отладки проблем с сетью в Ubuntu/Debian можно использовать команды ping, traceroute, systemctl status networking и journalctl -u networking.

Цитата эксперта:

Автоматизация и инфраструктура как код (IaC) становятся все более важными. Netplan является шагом в правильном направлении, позволяя определять конфигурацию сети декларативно.

Крис Ричардсон, DevOps-инженер

В следующем разделе мы рассмотрим, как настроить брандмауэр для дополнительных IP-адресов.

Настройка брандмауэра

Изображение, представляющее брандмауэр и безопасность
Описание: Изображение, представляющее брандмауэр и безопасность

После добавления дополнительных IP-адресов важно настроить брандмауэр, чтобы обеспечить безопасность вашего VPS. Брандмауэр действует как барьер между вашим сервером и внешним миром, блокируя нежелательный трафик и разрешая только необходимый.

Наиболее распространенные брандмауэры в Linux — это iptables и firewalld. iptables — это более старый, но все еще широко используемый брандмауэр. firewalld — это более современный брандмауэр, предлагающий более удобный интерфейс управления.

Firewalld (рекомендуется для CentOS и Ubuntu)

firewalld использует концепцию зон, которые представляют различные уровни доверия к сети. Например, зона public предназначена для общедоступных сетей и имеет более строгие правила, чем зона home, предназначенная для домашних сетей.

Чтобы проверить, какой брандмауэр используется и его статус, используйте команду:

# systemctl status firewalld

Если firewalld не запущен, запустите его:

# systemctl start firewalld
# systemctl enable firewalld

Первая команда запускает брандмауэр, а вторая включает его автоматический запуск при загрузке системы.

Чтобы добавить правило брандмауэра для дополнительного IP-адреса, необходимо сначала определить, к какой зоне он должен быть назначен. Если вы хотите, чтобы IP-адрес был доступен из любой сети, используйте зону public. Если вы хотите ограничить доступ только из определенных сетей, создайте новую зону или используйте существующую, например trusted.

Предположим, вы хотите разрешить доступ к веб-серверу (порт 80 и 443) на дополнительном IP-адресе 192.168.1.101. Выполните следующие команды:

# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.101" port port="80" protocol="tcp" accept'
# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.101" port port="443" protocol="tcp" accept'
# firewall-cmd --reload

Первые две команды добавляют правила, разрешающие входящий трафик на порты 80 и 443 с IP-адреса 192.168.1.101 в зоне public. Опция --permanent указывает, что правила должны быть добавлены в постоянную конфигурацию, которая сохраняется после перезагрузки системы. Третья команда перезагружает брандмауэр, чтобы изменения вступили в силу.

Чтобы проверить, что правила были успешно добавлены, используйте команду:

# firewall-cmd --list-all --zone=public

Вы должны увидеть добавленные правила в выводе. Также можно использовать команду firewall-cmd --list-rich-rules --zone=public для просмотра только rich rules.

Если вы хотите разрешить доступ ко всем портам с определенного IP-адреса, используйте следующее правило:

# firewall-cmd --permanent --zone=trusted --add-source=192.168.1.101
# firewall-cmd --reload

Это правило добавляет IP-адрес 192.168.1.101 в зону trusted, которая разрешает весь трафик с этого IP-адреса.

Iptables (альтернативный вариант)

Если вы используете iptables, вам нужно будет вручную добавлять правила для каждого порта и IP-адреса. Перед внесением изменений рекомендуется сохранить текущую конфигурацию iptables:

# iptables-save > /etc/iptables.rules

Чтобы разрешить доступ к веб-серверу (порт 80 и 443) на дополнительном IP-адресе 192.168.1.101, выполните следующие команды:

# iptables -A INPUT -p tcp -s 192.168.1.101 --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -s 192.168.1.101 --dport 443 -j ACCEPT

Эти команды добавляют правила в таблицу INPUT, разрешающие входящий трафик на порты 80 и 443 с IP-адреса 192.168.1.101. Опция -A добавляет правило в конец таблицы.