Удалить старые модульные скрипты
This commit is contained in:
parent
985f3c19df
commit
35007d6c26
233
isp_module_1.sh
233
isp_module_1.sh
|
|
@ -1,233 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
|
|
||||||
# Скрипт настройки ISP хоста
|
|
||||||
# Проверяем, запущен ли скрипт от root
|
|
||||||
if [[ $EUID -ne 0 ]]; then
|
|
||||||
echo "Этот скрипт должен быть запущен с правами root"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "=== Настройка ISP хоста ==="
|
|
||||||
|
|
||||||
# 1. Установка имени хоста
|
|
||||||
read -p "Введите имя хоста (например: isp.au-team.irpo): " hostname
|
|
||||||
if [[ -n "$hostname" ]]; then
|
|
||||||
echo "Устанавливаем имя хоста: $hostname"
|
|
||||||
hostnamectl set-hostname "$hostname"[D
|
|
||||||
else
|
|
||||||
echo "Имя хоста не было введено, пропускаем этот шаг"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "=== Настройка сетевых интерфейсов ==="
|
|
||||||
|
|
||||||
# 2. Настройка enp0s8
|
|
||||||
echo "Настройка интерфейса enp0s8 (HQ-RTR)"
|
|
||||||
read -p "Введите IP адрес для enp0s8 (например: 172.16.4.1/28): " ip_enp0s8
|
|
||||||
|
|
||||||
if [[ -n "$ip_enp0s8" ]]; then
|
|
||||||
echo "Настраиваем enp0s8 с адресом: $ip_enp0s8"
|
|
||||||
|
|
||||||
# Создаем файл конфигурации для enp0s8
|
|
||||||
cat > /etc/NetworkManager/system-connections/enp0s8.nmconnection << EOF
|
|
||||||
[connection]
|
|
||||||
id=enp0s8
|
|
||||||
uuid=$(uuidgen)
|
|
||||||
type=ethernet
|
|
||||||
autoconnect-priority=-999
|
|
||||||
interface-name=enp0s8
|
|
||||||
timestamp=$(date +%s)
|
|
||||||
|
|
||||||
[ethernet]
|
|
||||||
|
|
||||||
[ipv4]
|
|
||||||
address1=$ip_enp0s8
|
|
||||||
method=manual
|
|
||||||
|
|
||||||
[ipv6]
|
|
||||||
addr-gen-mode=eui64
|
|
||||||
method=disabled
|
|
||||||
|
|
||||||
[proxy]
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod 600 /etc/NetworkManager/system-connections/enp0s8.nmconnection
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 3. Настройка enp0s9
|
|
||||||
echo ""
|
|
||||||
echo "Настройка интерфейса enp0s9 (BR-RTR)"
|
|
||||||
read -p "Введите IP адрес для enp0s9 (например: 172.16.5.1/28): " ip_enp0s9
|
|
||||||
|
|
||||||
if [[ -n "$ip_enp0s9" ]]; then
|
|
||||||
echo "Настраиваем enp0s9 с адресом: $ip_enp0s9"
|
|
||||||
|
|
||||||
# Создаем файл конфигурации для enp0s9
|
|
||||||
cat > /etc/NetworkManager/system-connections/enp0s9.nmconnection << EOF
|
|
||||||
[connection]
|
|
||||||
id=enp0s9
|
|
||||||
uuid=$(uuidgen)
|
|
||||||
type=ethernet
|
|
||||||
autoconnect-priority=-999
|
|
||||||
interface-name=enp0s9
|
|
||||||
timestamp=$(date +%s)
|
|
||||||
|
|
||||||
[ethernet]
|
|
||||||
|
|
||||||
[ipv4]
|
|
||||||
address1=$ip_enp0s9
|
|
||||||
method=manual
|
|
||||||
|
|
||||||
[ipv6]
|
|
||||||
addr-gen-mode=eui64
|
|
||||||
method=disabled
|
|
||||||
|
|
||||||
[proxy]
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod 600 /etc/NetworkManager/system-connections/enp0s9.nmconnection
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 4. Настройка enp0s3 (внешний интерфейс)
|
|
||||||
echo ""
|
|
||||||
echo "Настройка интерфейса enp0s3 (внешний, в интернет)"
|
|
||||||
read -p "Использовать DHCP для enp0s3? (y/n): " use_dhcp
|
|
||||||
|
|
||||||
if [[ "$use_dhcp" == "y" || "$use_dhcp" == "Y" ]]; then
|
|
||||||
echo "Настраиваем enp0s3 на получение адреса по DHCP"
|
|
||||||
|
|
||||||
cat > /etc/NetworkManager/system-connections/enp0s3.nmconnection << EOF
|
|
||||||
[connection]
|
|
||||||
id=enp0s3
|
|
||||||
uuid=$(uuidgen)
|
|
||||||
type=ethernet
|
|
||||||
autoconnect-priority=-999
|
|
||||||
interface-name=enp0s3
|
|
||||||
timestamp=$(date +%s)
|
|
||||||
|
|
||||||
[ethernet]
|
|
||||||
|
|
||||||
[ipv4]
|
|
||||||
method=auto
|
|
||||||
|
|
||||||
[ipv6]
|
|
||||||
addr-gen-mode=eui64
|
|
||||||
method=disabled
|
|
||||||
|
|
||||||
[proxy]
|
|
||||||
EOF
|
|
||||||
else
|
|
||||||
read -p "Введите статический IP для enp0s3 (формат: IP/маска, шлюз, DNS): " ip_enp0s3
|
|
||||||
if [[ -n "$ip_enp0s3" ]]; then
|
|
||||||
echo "Настраиваем enp0s3 со статическим адресом"
|
|
||||||
|
|
||||||
# Разбираем ввод (ожидается формат: 192.168.1.2/24,192.168.1.1,8.8.8.8)
|
|
||||||
IFS=',' read -ra ADDR <<< "$ip_enp0s3"
|
|
||||||
ip_with_mask="${ADDR[0]}"
|
|
||||||
gateway="${ADDR[1]}"
|
|
||||||
dns="${ADDR[2]}"
|
|
||||||
|
|
||||||
cat > /etc/NetworkManager/system-connections/enp0s3.nmconnection << EOF
|
|
||||||
[connection]
|
|
||||||
id=enp0s3
|
|
||||||
uuid=$(uuidgen)
|
|
||||||
type=ethernet
|
|
||||||
autoconnect-priority=-999
|
|
||||||
interface-name=enp0s3
|
|
||||||
timestamp=$(date +%s)
|
|
||||||
|
|
||||||
[ethernet]
|
|
||||||
|
|
||||||
[ipv4]
|
|
||||||
address1=$ip_with_mask
|
|
||||||
gateway=$gateway
|
|
||||||
dns=$dns
|
|
||||||
method=manual
|
|
||||||
|
|
||||||
[ipv6]
|
|
||||||
addr-gen-mode=eui64
|
|
||||||
method=disabled
|
|
||||||
|
|
||||||
[proxy]
|
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
chmod 600 /etc/NetworkManager/system-connections/enp0s3.nmconnection
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "=== Перезапуск NetworkManager ==="
|
|
||||||
systemctl restart NetworkManager
|
|
||||||
sleep 3
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "=== Настройка iptables и маршрутизации ==="
|
|
||||||
|
|
||||||
# 5. Включение и настройка iptables
|
|
||||||
systemctl enable --now iptables
|
|
||||||
echo "Статус iptables:"
|
|
||||||
systemctl status iptables --no-pager
|
|
||||||
|
|
||||||
# 6. Очистка правил iptables и настройка NAT
|
|
||||||
iptables -F
|
|
||||||
iptables -t nat -F
|
|
||||||
|
|
||||||
# Определяем подсети из введенных адресов
|
|
||||||
if [[ -n "$ip_enp0s8" ]]; then
|
|
||||||
# Извлекаем подсеть из формата IP/маска
|
|
||||||
subnet1=$(echo "$ip_enp0s8" | cut -d'/' -f1 | cut -d'.' -f1-3)
|
|
||||||
mask1=$(echo "$ip_enp0s8" | cut -d'/' -f2)
|
|
||||||
iptables -t nat -A POSTROUTING -s $subnet1.0/$mask1 -o enp0s3 -j MASQUERADE
|
|
||||||
echo "Добавлено правило NAT для подсети: $subnet1.0/$mask1"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n "$ip_enp0s9" ]]; then
|
|
||||||
subnet2=$(echo "$ip_enp0s9" | cut -d'/' -f1 | cut -d'.' -f1-3)
|
|
||||||
mask2=$(echo "$ip_enp0s9" | cut -d'/' -f2)
|
|
||||||
iptables -t nat -A POSTROUTING -s $subnet2.0/$mask2 -o enp0s3 -j MASQUERADE
|
|
||||||
echo "Добавлено правило NAT для подсети: $subnet2.0/$mask2"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 7. Сохранение правил iptables
|
|
||||||
service iptables save
|
|
||||||
|
|
||||||
# 8. Включение IP forwarding
|
|
||||||
echo "Включаем IP forwarding..."
|
|
||||||
sysctl net.ipv4.ip_forward=1 >> /etc/sysctl.conf
|
|
||||||
sysctl -p
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "=== Проверка настроек ==="
|
|
||||||
echo "Текущие правила iptables NAT:"
|
|
||||||
iptables -t nat -L POSTROUTING -n -v
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "Текущее состояние IP forwarding:"
|
|
||||||
sysctl net.ipv4.ip_forward
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "=== Тестирование соединения (после перезагрузки) ==="
|
|
||||||
echo "После перезагрузки вы можете выполнить следующие команды для проверки:"
|
|
||||||
if [[ -n "$ip_enp0s8" ]]; then
|
|
||||||
ip1=$(echo "$ip_enp0s8" | cut -d'/' -f1)
|
|
||||||
echo "ping ya.ru -I $ip1"
|
|
||||||
fi
|
|
||||||
if [[ -n "$ip_enp0s9" ]]; then
|
|
||||||
ip2=$(echo "$ip_enp0s9" | cut -d'/' -f1)
|
|
||||||
echo "ping ya.ru -I $ip2"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
read -p "Выполнить перезагрузку сейчас? (y/n): " reboot_now
|
|
||||||
if [[ "$reboot_now" == "y" || "$reboot_now" == "Y" ]]; then
|
|
||||||
echo "Перезагружаем систему..."
|
|
||||||
reboot
|
|
||||||
else
|
|
||||||
echo "Настройка завершена. Перезагрузите систему для применения всех изменений."
|
|
||||||
echo "Используйте команду: reboot"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in a new issue