Помогите раздать инет в сети (Страница 2) / linuxforum



zenon написал

4 года назад

#16

kisil, modprobe iptable_nat — вот на это уж точно ругаться не должно, значит либо что-то не установлено либо (ну это экзотика) где нибудь кирилица или еще какие символы затесались.

ERT написал

4 года назад

#17 Автор

После того, как добавил к сетевому интерфейсу eth0, в конце, network и broadcast

root@evolution:~# /etc/init.d/networking restart  
Running /etc/init.d/networking restart is deprecated because it may not enable a  
gain some interfaces ... (warning).  
Reconfiguring network interfaces.../etc/network/interfaces:19: duplicate option  
ifdown: couldn't read interfaces file "/etc/network/interfaces"  
/etc/network/interfaces:19: duplicate option  
ifup: couldn't read interfaces file "/etc/network/interfaces"  
failed.

iptables я не устанавливал, но вот как прошла попытка установить

root@evolution:~# aptitude install iptables  
Ни одного пакета не будет установлено, обновлено или удалено.  
0 пакетов обновлено, 0 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.  
Необходимо получить 0 B архивов. После распаковки 0 B будет занято.

dnsmasq установил.

zenon написал

4 года назад

#18

После того, как добавил к сетевому интерфейсу eth0, в конце, network и broadcast

root@evolution:~# /etc/init.d/networking restart  
Running /etc/init.d/networking restart is deprecated because it may not enable a  
gain some interfaces ... (warning).  
Reconfiguring network interfaces.../etc/network/interfaces:19: duplicate option  
ifdown: couldn't read interfaces file "/etc/network/interfaces"  
/etc/network/interfaces:19: duplicate option  
ifup: couldn't read interfaces file "/etc/network/interfaces"  
failed.

Ну у тебя где-то дубликаты, внимательней.

iptables я не устанавливал, но вот как прошла попытка установить

root@evolution:~# aptitude install iptables  
Ни одного пакета не будет установлено, обновлено или удалено.  
0 пакетов обновлено, 0 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.  
Необходимо получить 0 B архивов. После распаковки 0 B будет занято.

dnsmasq установил.

"Ни одного пакета не будет установлено…." — значит на месте всё ок.

На чём остановились?

zenon написал

4 года назад

#19

Вот пример:

# /etc/network/interfaces  
# Файл описывает сетевые интерфейсы доступные в системе и способы активирования их.  
# The loopback network interface  
auto lo  
iface lo inet loopback  
auto eth0  
iface eth0 inet static  
address xxx.xxx.xxx.xxx  
netmask xxx.xxx.xxx.xxx  
network xxx.xxx.xxx.xxx  
broadcast xxx.xxx.xxx.xxx  
gateaway xxx.xxx.xxx.xxx  
dns-nameservers xxx.xxx.xxx.xxx  
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
ERT написал

4 года назад

#20 Автор

ЧИТАЙТЕ ТАКЖЕ:  IPTV и локальная сеть в GNU/Linux - Mr.Cat

Ну у тебя где-то дубликаты, внимательней.

На чём остановились?

Не к тому интерфейсу дописал.

Снова запускаю sh /etc/firewall.sh (закомментировал строки)

root@evolution:~# sh /etc/firewall.sh  
: Directory nonexistentnnot create /proc/sys/net/ipv4/ip_forward  
: bad variable name

dnsmasq как-то надо настраивать?

zenon написал

4 года назад

#21

ERT, ищи на чем спотыкается firewall.sh — попробуй закоментируй всю шапку "bad variable name" это очень похоже что где-то переменная не правильно записана вот это

export IPT="/sbin/iptables "   
export P_PLAN=eth0  
export Z_PLAN=eth1  
export Z_COMP=192.168.0.0/24

объявление переменных, далее в скрипте они соответственно $P_LAN — значение eth0 ну и т.д.

можно от них отказаться, но это не удобно.

С шапкой можно так:

поочереди в консоли каждую строку из

echo 1 > /proc/sys/net/ipv4/ip_forward  
echo 1 > /proc/sys/net/ipv4/ip_dynaddr  
modprobe iptable_nat  
modprobe ip_nat_ftp

смотри где ошибка.

Посмотри есть ли /proc/sys/net/ipv4/ip_forward

проверить можно так:

$ cat /proc/sys/net/ipv4/ip_forward

должна быть единица

ERT написал

4 года назад

#22 Автор

После того как закомментировал export IPT="/sbin/iptables ", export P_PLAN=eth0, export Z_PLAN=eth1, export Z_COMP=192.168.0.0/24 и запустив firewall.sh

root@evolution:~# sh /etc/firewall.sh  
: Directory nonexistentnnot create /proc/sys/net/ipv4/ip_forward  
: not foundll.sh: 13: -F  
/etc/firewall.sh: 14: -t: not found  
/etc/firewall.sh: 15: -t: not found  
: not foundll.sh: 17: -X  
/etc/firewall.sh: 18: -t: not found  
/etc/firewall.sh: 19: -t: not found  
/etc/firewall.sh: 22: -P: not found  
/etc/firewall.sh: 23: -P: not found  
/etc/firewall.sh: 24: -P: not found  
/etc/firewall.sh: 27: -A: not found  
/etc/firewall.sh: 28: -A: not found  
/etc/firewall.sh: 29: -A: not found  
/etc/firewall.sh: 30: -A: not found  
/etc/firewall.sh: 35: -A: not found  
/etc/firewall.sh: 36: -A: not found  
/etc/firewall.sh: 37: -A: not found  
/etc/firewall.sh: 38: -A: not found  
/etc/firewall.sh: 39: -A: not found  
/etc/firewall.sh: 40: -A: not found  
/etc/firewall.sh: 43: -A: not found  
/etc/firewall.sh: 45: -A: not found  
/etc/firewall.sh: 48: -t: not found  
: not foundll.sh: 49:  
/etc/firewall.sh: 50: -L: not found

Команды:

echo 1 > /proc/sys/net/ipv4/ip_forward

echo 1 > /proc/sys/net/ipv4/ip_dynaddr

modprobe iptable_nat

modprobe ip_nat_ftp

Вводятся без ошибок

Проверил /proc/sys/net/ipv4/ip_forward. После ввода команды — 1.

zenon написал

4 года назад

#23

ERT, ну зачем закоментировал export IPT="/sbin/iptables " 🙁 🙁

Там же потом весь скрипт полетит это переменная. Тогда (если закоментировал export IPT="/sbin/iptables " каждую $IPT надо тоже изменить на её значение т.е. на /sbin/iptables ну сооброжай. wink

ЧИТАЙТЕ ТАКЖЕ:  Debian — настройка после установки

zenon написал

4 года назад

#24

Еще раз скопируй отсюда (ну назови firewall_1.sh) и запусти:

#!/bin/sh  
echo 1 > /proc/sys/net/ipv4/ip_forward  
echo 1 > /proc/sys/net/ipv4/ip_dynaddr  
modprobe iptable_nat  
modprobe ip_nat_ftp  
export IPT="/sbin/iptables "   
export P_PLAN=eth0  
export Z_PLAN=eth1  
export Z_COMP=192.168.0.0/24  
# flush all the rules in the filter and nat tables.  
$IPT           -F  
$IPT -t nat    -F  
$IPT -t mangle -F  
# erase all chains that's not default in filter and nat table.  
$IPT           -X  
$IPT -t nat    -X  
$IPT -t mangle -X  
# Let's go  
# Закрываем изначально ВСЁ:  
$IPT -P INPUT   DROP  
$IPT -P OUTPUT  DROP  
$IPT -P FORWARD DROP  
# ********************************************************************************* #  
# разрешаем локальный траффик для loopback и внутренней сети  
$IPT -A INPUT  -i lo      -j ACCEPT  
$IPT -A INPUT  -i $Z_PLAN -j ACCEPT  
$IPT -A OUTPUT -o lo      -j ACCEPT  
$IPT -A OUTPUT -o $Z_PLAN -j ACCEPT  
# ********************************************************************************* #  
# Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим  
# признак ESTABLISHED.  
# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.  
$IPT -A INPUT              -m state --state RELATED,ESTABLISHED     -j ACCEPT  
$IPT -A OUTPUT             -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT  
$IPT -A FORWARD -o $P_PLAN -m state --state RELATED,ESTABLISHED     -j ACCEPT  
$IPT -A FORWARD -o $Z_PLAN -m state --state RELATED,ESTABLISHED     -j ACCEPT  
$IPT -A FORWARD -i $P_PLAN -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT  
$IPT -A FORWARD -i $Z_PLAN -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT  
# ********************************************************************************* #  
# Разрешаем доступ из внутренней сети наружу  
$IPT -A FORWARD -i $Z_PLAN -o $P_PLAN -j ACCEPT  
# Разрешаем обмен между сетями  
$IPT -A FORWARD -i $Z_PLAN -o $P_PLAN -j ACCEPT  
# ********************************************************************************* #  
# Маскарадинг  
$IPT -t nat -A POSTROUTING -o $P_PLAN -s $Z_COMP    -j MASQUERADE     
$IPT -L -n -t nat

Проверил тут ошибок нет.

Результат должен быть такой:

Chain PREROUTING (policy ACCEPT)  
target     prot opt source               destination           
Chain INPUT (policy ACCEPT)  
target     prot opt source               destination           
Chain OUTPUT (policy ACCEPT)  
target     prot opt source               destination           
Chain POSTROUTING (policy ACCEPT)  
target     prot opt source               destination           
MASQUERADE  all  --  192.168.0.0/24       0.0.0.0/0
ERT написал

4 года назад

#25 Автор

ЧИТАЙТЕ ТАКЖЕ:  CentOS + iptables = роутер | Progger.ru

Все так же

root@evolution:~# sh /etc/firewall.sh1  
: Directory nonexistentannot create /proc/sys/net/ipv4/ip_forward  
: Directory nonexistentannot create /proc/sys/net/ipv4/ip_dynaddr  
not found.le iptable_nat  
not found.le ip_nat_ftp  
: bad variable name
zenon написал

4 года назад

#26

Ну блин, …

при условии что

$ cat /proc/sys/net/ipv4/ip_forward

ответ 1.

Построчно ввод:

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE

Ошибки?

ERT написал

4 года назад

#27 Автор

Ну блин, …

при условии что

$ cat /proc/sys/net/ipv4/ip_forward

ответ 1.

Построчно ввод:

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE

Ошибки?

Нет ошибок

zenon написал

4 года назад

#28

ERT, значит как-то криво скопировал в скрипт

интернет на клиентах есть?

вывод

$ iptables -L -n -t nat

дай

ы. Каким редактором правишь скрипт?

ERT написал

4 года назад

#29 Автор

Очень странно, но сервер раздает инет! Это как?

Думаю, что после ввода

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE

Но при этом $ iptables -L -n -t nat

root@evolution:~# $ iptables  -L -n -t nat  
-bash: $: команда не найдена

Что делать?

zenon написал

4 года назад

#30

$ не надо, и да всё правильно, раздача сейчас есть, но большое но сейчас твой IP светится наружу всеми своими прелястями — ломай нихочу, и сетка вероятно твоя внутренняя тоже доступна — так-то.

Теперь попробуй эти строчки в какой-нибудь скрипт запихни и запусти только добавь строчку ещё одну

iptables -L -n -t nat

чтобы видеть правила.

Дальше будем доделывать.


http://linuxforum.ru/topic/13140/page/2

Губарь Маргарита Александровна