Простой шлюз на Ubuntu Server

Немного запоздало, но мне кажется все-таки актуальная тема. У многих дома есть интернет и не один компьютер. Или, может, в офисе простая дешевая коробочка не справляется с нагрузкой. Встает вопрос о поднятии нормального шлюза.

На самом деле это проще простого! Обычно на компьютере, который вскоре станет шлюзом, стоит 2 сетевухи.

Итак, что мы имеем:

  • eth0 – смотрит в интернет
  • eth1 – смотрит в локальную сеть. Чтобы сеть развести на несколько компов ее можно воткнуть в свитч, или создать беспроводную сеть и воткнуть в точку доступа. Тут кому как удобно.

На наш сервер устанавливаем Ubuntu Server.

Для начала на нашей свежеустановленной системе разрешаем форвардить IP адреса. Для этого редактируем файлик /etc/sysctl.conf. Там ищем строчку типа:

# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1

И убираем # перед строкой net.ipv4.ip_forward=1. И после перезагрузки наша система начнет форвардить все наши IP.

Далее настраиваем интерфейсы, а точнее правим файлик /etc/network/interfaces.

sudo nano /etc/network/interfaces
# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# Internet
auto eth0
iface eth0 inet static #указываем сдесь, что адрес статический
 address 10.28.129.186 #ваш статический внешний IP
 network 0.0.0.0
 netmask 255.255.255.0 #маска сети
 broadcast 255.255.255.255
 gateway 10.208.128.1 #шлюз, если интернет не через pppoe
 hwaddress ether 00:11:6B:3F:10:39 #меняем MAC адрес сетевухи, если есть привязка к маку и вы заменили сетевушку. если не надо, то можно закоментить строчку.
 post-up iptables-restore > /etc/iptables.up.rules #поднимаем правила iptables, при подъеме интерфэйса

# Lan
auto eth1
iface eth1 inet static #указываем тут статический адрес
 address 192.168.1.1 #IP адрес сервера в вашей сети
 network 192.168.1.0
 netmask 255.255.255.0 #маска подсети
 broadcast 192.168.1.255

Если настройки интернет соединения вы прописываете вручную, то нужно еще прописать DNS сервера чтобы все заработало. Для этого редактируем файлик resolv.conf:

sudo nano /etc/resolv.conf

И вписываем туда свои DNS:

nameserver 10.28.129.21
nameserver 10.28.129.14

Далее создадим правила для iptables:

sudo nano /etc/iptables.up.rules

И вписываем туда вот такие строчки:

# Generated by iptables-save v1.4.1.1 on Sat Jun  6 23:49:49 2009
*filter
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -s 192.168.1.0/255.255.255.0 -o eth0 -j ACCEPT
-A FORWARD -m conntrack -d 192.168.1.0/255.255.255.0 -i eth0 -j ACCEPT  --ctstate ESTABLISHED,RELATED
COMMIT
# Completed on Sat Jun  6 23:49:49 2009
# Generated by iptables-save v1.4.1.1 on Sat Jun  6 23:49:49 2009
*mangle
: PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
: POSTROUTING ACCEPT [0:0]
COMMIT
# Completed on Sat Jun  6 23:49:49 2009
# Generated by iptables-save v1.4.1.1 on Sat Jun  6 23:49:49 2009
*nat
:OUTPUT ACCEPT [0:0]
: PREROUTING ACCEPT [0:0]
: POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.1.0/255.255.255.0 -j MASQUERADE
COMMIT
# Completed

Сохраняем. Вот в принципе и все. Перезагружаем настройки сети:

sudo /etc/init.d/networking restart

И обновляемся:

sudo apt-get update && sudo apt-get upgrade

Далее, чтобы не париться с подключением новых компов в сети, нам понадобится еще DHCP сервер. Ну и для самого удобства будем маскировать и DNS. Для этого устанавливаем прекрассную утилиту, которая включает в себя как DHCP сервер, так и маскирует DNS. Называется dnsmasq. Устанавливаем:

sudo apt-get install dnsmasq

Редактируем конфиг:

sudo nano /etc/dnsmasq.conf

Правим под свои нужды. Камменты к каждой строчке исчерпывающие. Остановлюсь на основных моментах. Мой конфиг:

# Add domains which you want to force to an IP address here.
# The example below send any host in doubleclick.net to a local
# webserver.
address=/veo-server/127.0.0.1
address=/veo-server/192.168.1.1

# If you want dnsmasq to provide only DNS service on an interface,
# configure it as shown above, and then use the following line to
# disable DHCP on it.
no-dhcp-interface=eth0
 
# This is an example of a DHCP range where the netmask is given. This
# is needed for networks we reach the dnsmasq DHCP server via a relay
# agent. If you don't know what a DHCP relay agent is, you probably
# don't need to worry about this.
dhcp-range=192.168.1.50,192.168.1.150,255.255.255.0,12h
 
# Override the default route supplied by dnsmasq, which assumes the
# router is the same machine as the one running dnsmasq.
dhcp-option=3,192.168.1.1

Сохраняем, и перезапускаем dnsmasq.

sudo /etc/init.d/dnsmasq restart

И теперь на eth1 подключаем свич или точку доступа и коннектимся. Все настройки будут выдаваться автоматом.

Удачи! =)

一步一步地会到目的

I do not smoke or drink



Search for Extra-Terrestrial Intelligence at Home
Search for Extra-Terrestrial Intelligence at Home

User signature graphic BOINC Stars

Power by BOINC


International Space Station
Прямая трансляция переговоров космонавтов МКС с ЦУП.
Только голос | Голос и Видео
Говорят они не всегда, только по необходимости, так что не удивляйтесь, если на канале будет тишина.

Ubuntu 14.04 (Trusty Tahr) Daily Build

>>> Старые релизы Ubuntu <<<

Оглавление

Cisco Systems

Связь через консольный кабель
Сброс пароля на Catalyst 2950
Создание VLAN на Catalyst 2950
Создание и управление стеками коммутаторов

FreeBSD 8.2 - Сервер с "нуля"

Установка
Начальная настройка
Сборка ядра (c Kernel NAT)
Named
OpenVPN

Ubuntu Server

Настраиваем WEB-сервер
Apache2 + PHP5 + MySQL + phpMyAdmin
Пример для виртуальных хостов

VSFTPd + SSL Не закончено!
Установка TFTP сервера (tftpd)
Установка Midnight Commander
Установка Deluge с Web-интерфейсом
Бэкапим MySQL базы
MySQL шпаргалки
Резервное копирование - м1
Простой шлюз на Ubuntu Server
Сетевое радио на Icecast2
Объединение HDD дисков
Управление автозагрузкой
Настройка сети вручную
Защита от брутфорса
ssh, ftp, http: fail2ban

OpenVPN Installation Ubuntu

Ubuntu Desktop

Настройка Ubuntu Desktop 10.10
Раскукоживаем Менеждер обновлений
Раскладка - флажки вместо текста
QutIM - клиент ICQ, Jabber, MAgent, IRC
Температура железа на панеле

Горячие клавиши в Ubuntu Unity

Драйвера NVIDIA в Ubuntu
Радио лоток в области уведомлений
SSHFS - Монтируем удаленную FS
Резервное копирование Ubuntu Desk
Загрузочная флешка Ubuntu Server
Загрузочная USB из под Windows
Как найти нужный PPA-репозиторий
Видеонаблюдение под Ubuntu 10.04 для "чайников"
Видеонаблюдение легально!

Linux

Полезные команды Linux
Конфиг железа в Ubuntu
Мониторинг хостов в сети
Разное на одном листе
inotify - это подсистема ядра Linux, которая позволяет получать уведомления об изменениях в файловой системе.

Полезное под Windows

FTPS - защищённое соединение
PuTTY - Как сохранить настройки
VirtualBox - Клонирование виртуальных машин.

Скриптовые языки

AWK - Язык обработки структурированных текстов

Чит-листы или Шпаргалки

pdf css_cheat-sheet ver.1
pdf css_cheat-sheet ver.2
pdf php_cheat-sheet ver.1
pdf php_cheat-sheet ver.2
pdf javascript_cheat-sheet ver.1
pdf mysql_cheat-sheet ver.1
pdf html_cheat-sheet ver.1
pdf regular_expressions ver.1
pdf regular_expressions ver.2
pdf mod_rewrite_cheat-sheet ver.1
pdf mod_rewrite_cheat-sheet ver.2
pdf sql_server_cheat-sheet ver.1
pdf microformats_cheat-sheet ver.1
pdf seo_cheat-sheet ver.0.4
pdf wordpress_designer ver.1

Последовательное соединение проводников
Последовательное соединение проводников

Параллельное соединение проводников
Параллельное соединение проводников


Gedit style schemes

xml darktango.xml
xml emacs-darkslategrey.xml

HTML заметки

Разные валидные фичи
10 преступлений с HTML тегами
Заметки по установке
MaxSite CMS версия 0.42

Горизонтальное CSS Меню
.htacces паролим сайт
Противоугонный пакет

Коллекция jQuery plagins

Quovolver [?]
Custom Animation Banner [?]
Style my tooltips [?]


ipv6.nic.ru

QR Coder.ru
Генератор QR-кодов


2:5020/1209.12@FidoNet

Logo WebMoney
WMIDwmid 358066815673
pursewmzZ452007172362
wmrR568219491953
wmeE770110075404

Logo Yandex.Money
 Yndex purse4100178599238



Мои телефоны:
  1. Билайн AMPS/DAMPS - модели ERICSSON DH318,
    ERICSSON DH618
  2. Билайн GSM - Siemens C25 корпус "Хамелион" (тариф "Серебрянный")
  3. Мегафон GSM - SAMSUNG SGH-T400
  4. Мегафон GSM / AIS GSM Thailand - Qtek s100
  5. Мегафон GSM - SAMSUNG SGH-i900 WiTu 8Gb
  6. Мегафон GSM - HTC Wildfire S
  7. Мегафон GSM - HTC One S
  8. Мегафон GSM / Теле2 GSM - ASUS Zenfone 2 ZE550ML
  9. Мегафон GSM - Xiaomi Redmi Note 4 4Gb 64Gb
  10. Мегафон GSM - Xiaomi Redmi Note 8 6Gb 64Gb