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

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

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

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

      Рекомендую использовать только стабильные релизы операционной системы, в 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 http://repo.geek-speak.perm.ru/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 сетевая карта. Схема подключения будет выглядеть следующим образом:

      • Тема изменена 4 года, 6 месяцев назад пользователем E-tec.
      • Тема изменена 4 года, 6 месяцев назад пользователем E-tec.

    Просмотр 1 сообщения - с 1 по 1 (всего 1)
    • Для ответа в этой теме необходимо авторизоваться.
    Авторизация
    *
    *
    Регистрация
    *
    *
    *
    Пароль не введен
    *
    captcha
    Генерация пароля