Интернет шлюз на Ubuntu Server - Geek-Speak

Главная Форумы SOFTWARE System settings Интернет шлюз на Ubuntu Server

В этой теме 0 ответов, 1 участник, последнее обновление  Esmertec 1 год, 2 мес. назад.

Просмотр 1 сообщения - с 1 по 1 (всего 1)
  • Автор
    Сообщения
  • #84

    Esmertec
    Хранитель

    Рекомендую использовать только стабильные релизы операционной системы, в ubuntu 16.xx сетевые интерфейсы имеют не стандартные названия, поэтому лучше сразу запомнить, либо записать имя адаптера, чтоб не получить проблем в дальнейшем.

    После установки системы заходим под рут пользователем для удобства
    sudo -s
    И сразу зададим нашим интерфейсам статические IP адреса, конфиг с настройками LAN адаптеров хранится в /etc/network/interfaces, откроем его любым удобным для вас редактором и пропишем “статику”
    nano /etc/network/interfaces
    в редакторе нужно изменить следующее:

    auto eth0
    iface eth0 inet static
    address 172.18.0.106 -
    netmask 255.255.240.0
    gateway 172.18.0.1
    dns-nameservers 172.18.0.1 208.67.222.222
    
    auto eth1
    iface eth1 inet static
    address 192.168.0.100
    netmask 255.255.255.0
    
    post-up /etc/nat

    где eth0 – интерфейс смотрящий во внешнюю сеть, в него подключен кабель провайдера, eth1 – смотрит внутрь локальной сети, где находятся ПК нуждающиеся в интернете =). post-up /etc/nat команда запуска правил iptables после перезагрузки сервера, пока этого файла в системе нет, его создадим по позже. Адреса провайдера по которому раздается интернет.

    после настройки сети нужно перезапустим сеть:
    service networking restart

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

    apt-get update
    apt-get upgrade
    apt-get install mc ssh dnsmasq squid3

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

    Для начала нам нужно создать файл NATа для правил iptables:

    touch /etc/nat

    после чего откроем этот файл в редакторе и зададим правила:

    #!/bin/sh
    
    #Включаем форвардинг пакетов
    echo 1 > /proc/sys/net/ipv4/ip_forward
    
    #Разрешаем траффик на lo
    iptables -A INPUT -i lo -j ACCEPT
    
    #Разрешаем доступ из внутренней сети наружу
    iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
    
    #Включаем NAT
    iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
    
    #Разрешаем ответы из внешней сети
    iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    
    #Запрещаем доступ снаружи во внутреннюю сеть
    iptables -A FORWARD -i eth0 -o eth1 -j REJECT

    Чтоб не писать файл nat сделал готовый файл со всем правилами, переходим в директорию cd /etc/, и скачиваем файл wget https://geek-speak.ru/files/tmp/nat

    Рекомендую подключиться к серверу с помощью Putty по SSH, и просто скопировать содержимое, чтоб уменьшить к минимуму вероятность ошибок при вводе правил, это важно!

    Сохраним изменения и дадим нашему файлу права на исполнение:

    chmod +x /etc/nat

    перезагрузим сервер:

    reboot
    Теперь если вручную задать сетевые настройки для рабочей станции, указав в качестве шлюза наш роутер и любой доступный DNS-сервер, то не ней должен появиться доступ в интернет.

    Настраиваем DHCP

    После установки открываем /etc/dnsmasq.conf, находим, раскомментируем и изменяем следующим образом строку, чтобы разрешить серверу принимать DNS запросы из внутренней сети.:
    listen-address=127.0.0.1, 192.168.0.100
    192.168.0.100 – это IP нашего роутера! В качестве DHCP сервера выступит уже установленный dnsmasq. Настроить его не просто, а очень просто, для чего снова открываем sudo nano /etc/dnsmasq.conf, находим, раскомментируем и изменяем следующим образом строку:
    dhcp-range=192.168.0.2,192.168.0.99,255.255.255.0,120h
    192.168.0.2 – IP с которого будет начинаться раздача
    192.168.0.99 – по какой IP будет раздача по DHCP нашим роутером
    255.255.255.0 – тут все понятно, это маска подсети с нашего роутера
    120h – время аренды IP по стандарту 12 часов

    Перезапусим сервис:

    service dnsmasq restart
    После чего хосты внутренней сети будут получать все сетевые настройки автоматически.

    Настраиваем кэширующий прокси-сервер Squid
    Останавливаем прокси-сервер и приступаем к настройке:
    service squid3 stop
    Открываем /etc/squid3/squid.conf, находим и корректируем следующие строки, не забыв их раскомменитровать:

    acl localnet src 192.168.0.0/24

    Затем, спускаясь далее по конфигурационному файлу найдем секцию отвечающую за правила доступа и убедимся, что она содержит следующие правила:

    http_access allow localnet
    http_access allow localhost
    http_access deny all

    Теперь укажем порт, интерфейс и режим работы прокси-сервера.

    http_port 192.168.0.100:3128 intercept

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

    cache_mem 1024 MB
    maximum_object_size_in_memory 512 KB

    После чего укажем размер дискового кэша и его расположение:

    cache_dir ufs /var/spool/squid3 2048 16 256

    Следующий параметр задает максимальный размер объекта в дисковом кэше:

    maximum_object_size 4 MB

    Далее по файлу укажем место хранения логов и количество ротаций:

    access_log daemon:/var/log/squid3/access.log squid
    logfile_rotate 31

    Перед тем как перезапускать службу выполним проверку файла конфигурации:

    squid3 -k check

    Если команда отрабатывает без вывода – ошибок нет, в противном случае изучаем вывод и исправляем допущенные ошибки. После этого перезапустим службу, чтобы применить внесенные изменения.

    service squid3 restart
    В том случае, когда были изменены параметры кэша следует его перестроить:

    service squid3 stop
    squid3 -z
    service squid3 start

    Затем в /etc/nat добавляем правило заворачивающее http-трафик на squid:

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

    Схема подключения будет выглядеть следующим образом:

    Версия под PPoE, отличается настройками интерфейса (/etc/network/interfaces) и NAT (/etc/nat) выглядит примерно вот так:

    /etc/network/interfaces:
    auto eth0
    iface eth0 inet static
    address 192.168.0.100
    netmask 255.255.255.0
    dns-nameservers 212.120.160.130 212.120.173.34
    
    post-up /etc/nat

    /etc/nat

    #!/bin/sh
    
    # Включаем форвардинг пакетов
    echo 1 > /proc/sys/net/ipv4/ip_forward
    
    # Разрешаем трафик на loopback-интерфейсе
    iptables -A INPUT -i lo -j ACCEPT
    
    # Разрешаем доступ из внутренней сети наружу
    iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT
    
    # Включаем NAT
    iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE
    
    # Разрешаем ответы из внешней сети
    iptables -A FORWARD -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    
    # Запрещаем доступ снаружи во внутреннюю сеть
    iptables -A FORWARD -i ppp0 -o eth0 -j REJECT
    
    # Заворачиваем http на прокси
    iptables -t nat -A PREROUTING -i eth0 ! -d 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.100:3128

    Для подключения к сети провайдера вводим команду:
    sudo pppoeconf
    в котором увидите цветное окно, где у вас попросят логин и пароль для подключения к интернету. В этом варианте у вас на самодельном роутере будет 1 сетевая карта. Схема подключения будет выглядеть следующим образом:

    • Тема изменена 1 год, 2 мес. назад пользователем  Esmertec.
    • Тема изменена 1 год, 2 мес. назад пользователем  Esmertec.

    Ты знаешь, что такое безумие? Безумие - это точное повторение одного и того же действия, раз за разом, в надежде на изменение.

Просмотр 1 сообщения - с 1 по 1 (всего 1)

Для ответа в этой теме необходимо авторизоваться.

Авторизация
*
*
Регистрация
*
*
*
Генерация пароля