Цитата эксперта:
Автоматизация и инфраструктура как код (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
добавляет правило в конец таблицы.
Разберем параметры:
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 и 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 (и других дистрибутивах 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 и 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-адресов
- Добавление IP-адресов в CentOS
- Добавление IP-адресов в Ubuntu/Debian
- Настройка брандмауэра
- Проверка и устранение неполадок
Введение
Виртуальный частный сервер (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-адрес (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 (и других дистрибутивах 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 и 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
добавляет правило в конец таблицы.