Ubuntu 14.04 як шлюз / маршрутизатор та брандмауер


16

Моя поточна настройка системи - Ubuntu 14.04 Desktop 64 Bit, і я використовую Інтернет від маршрутизатора, використовуючи загальнодоступний IP

eth0 - WAN Public IP 182.x.x.x  
eth1 - LAN private IP 192.168.0.1

Тепер я хочу , щоб поширити цей зв'язок з іншими комп'ютерами з допомогою моєї системи , як Gateway, моя система IP є 192.168.0.1і інші комп'ютери в мережі, використовуючи статичний IP 192.168.0.2і , 192.168.0.255 як staticі / або DHCP.

Також я хочу встановити брандмауер на своїй системі, щоб я міг контролювати і контролювати трафік інших систем в мережі.

Відповіді:


15
  1. Відкрийте термінал Ctrl+ Alt+T

  2. Для редагування interfacesфайлу введіть наступну команду :

    sudo vim /etc/network/interfaces
    
  3. Відредагуйте файл такими рядками: (додайте своє netmaskта gateway)

    auto lo 
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet static
    address 182.x.x.x 
    netmask  x.x.x.x 
    gateway x.x.x.x
    
    auto eth1
    iface eth1 inet static 
    address 192.168.0.1
    netmask x.x.x.x
    
  4. Тепер редагуйте /etc/sysctl.confта скаментуйте:

    # net.ipv4.ip_forward=1
    

    щоб він читав:

    net.ipv4.ip_forward=1
    

    і збережіть його, ввівши

    sudo sysctl -p /etc/sysctl.conf

  5. Щоб увімкнути IP маскування, введіть у термінал наступний набір команд:

    sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    
    sudo iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
    
    sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
    

Оновлення: виправити дивну "-–state" команду, що викликає збій, і виправити nat MASQUERADE до eth0 (wan інтерфейс)


робив усе як радить ... але якщо я редагую / etc / network / інтерфейси та перезавантажую сервіс, він автоматично підключатиметься до eth1, а не до Інтернету через eth0. Якщо я редагую Connectio в режимі GUI, він підключається до Інтернету за допомогою eth0. Тепер проблема полягає в тому, що я не в змозі підключити клієнтський комп'ютер за допомогою IP 192.168.0.5/nm.255.255.255.0/gw.192.168.0.1 до Інтернету. будь-яка пропозиція?
Санті Варгезе

3
Хочу додати, що після зміни лінії net.ipv4.ip forward=1ви хочете запустити, sudo sysctl -p /etc/sysctl.confщоб нове значення набуло чинності.
Самуель Лі

2
У вас все ще є обмін пристроями в останніх двох рядках на кроці 5, і ви не маєте жодної згадки про безпеку за замовчуванням (тобто, вперед має бути політика DROP).
chreekat

3

@ chreekat коментар правильний, що адаптери Ethernet замінені на етапі 5 відповіді @ Anbu, і як показано (станом на 2017-02-21) створює ВЕЛИЧНУ БЕЗПЕЧНОСТІ, яка дозволяє необмежений доступ до приватної мережі будь-ким у загальнодоступній мережі .

Виправлена ​​конфігурація для кроку 5 показана нижче.

Теорія роботи: (Правило №2) Пакети, що потрапляють із загальнодоступної мережі (eth0), приймаються для пересилання в приватну мережу (eth1), якщо і лише якщо вхідний загальнодоступний пакет пов'язаний з розмовою, встановленою хостом на приватна мережа. (Правило №3) Прийміть всі пакети, що надходять з приватної мережі (eth1), і перешліть їх у загальнодоступну мережу (eth0).

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

0

Це те, що я використовую, працює добре завжди. Поєднання різних навчальних посібників. Тестували і на Ubuntu 16.04LTS.

Крок A. Переконайтеся, що ufw встановлено

sudo apt-get install ufw

Крок В - Налаштування мережевих інтерфейсів .

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).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The WAN primary network interface
iface eth0 inet static
        address 182.xxx.xxx.xxx
        netmask xxx.xxx.xxx.xxx
        gateway xxx.xxx.xxx.xxx

#LAN side interface
auto eth1
iface eth1 inet static
        address 192.168.0.1
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        address 192.168.0.1

Збережіть файл, вибравши CTRL-X від nano або будь-який інший редактор, який ви бажаєте.

Крок C - Дозволити вперед IP . Встановіть переадресацію. Відредагуйте файл /etc/sysctl.conf

sudo nano /etc/sysctl.conf

Видаліть коментар до цього рядка, # net.ipv4.ip_forward=1щоб він був net.ipv4.ip_forward=1 Збереження змін, і перейдіть до наступного кроку.

Крок D - правила маскування / пересилання

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

Зберігаються зміни iptables

sudo su
sudo iptables-save > /etc/iptables.rules
sudo nano /etc/network/if-pre-up.d/iptables

Введіть цей вміст:

#!/bin/sh
iptables-restore < /etc/iptables.rules
exit 0

Зберегти зміни Потім відредагуйте / створіть наступний файл iptables

sudo nano /etc/network/if-post-down.d/iptables

Введіть цей вміст:

#!/bin/sh
iptables-save -c > /etc/iptables.rules
if [ -f /etc/iptables.rules ]; then
    iptables-restore < /etc/iptables.rules
fi
exit 0

Зберегти зміни. Зробіть обидва файли виконаними

sudo chmod +x /etc/network/if-post-down.d/iptables
sudo chmod +x /etc/network/if-pre-up.d/iptables

Етап Е - завершення з конфігурацією ufw

sudo nano /etc/default/ufw

Змініть політику переадресації параметра для прийняття

DEFAULT_FORWARD_POLICY="ACCEPT"

Зберегти зміни.

У мене є порт SSH на порту 49870, тому я також дозволив ufw приймати з'єднання на цьому порту:

sudo ufw allow 49870

Крок F - Не забудьте включити ufw .

sudo ufw enable

На цьому етапі просто перезавантажте систему. Тоді всі пристрої локальної мережі можуть використовувати його як основний шлюз. З іншого боку, ufw дуже зручно керувати налаштуваннями брандмауера.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.