Главная › Форумы › SOFTWARE › System settings › Интернет шлюз на Ubuntu Server
- В этой теме 0 ответов, 1 участник, последнее обновление 6 лет, 3 месяца назад сделано E-tec.
-
АвторСообщения
-
30.07.2018 в 10:04 #84
Рекомендую использовать только стабильные релизы операционной системы, в 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 сетевая карта. Схема подключения будет выглядеть следующим образом:
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.