После того, как добавил к сетевому интерфейсу 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 установил.
После того, как добавил к сетевому интерфейсу 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 установил.
"Ни одного пакета не будет установлено…." — значит на месте всё ок.
На чём остановились?
Вот пример:
# /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
Ну у тебя где-то дубликаты, внимательней.
На чём остановились?Не к тому интерфейсу дописал.
Снова запускаю sh /etc/firewall.sh (закомментировал строки)
root@evolution:~# sh /etc/firewall.sh
: Directory nonexistentnnot create /proc/sys/net/ipv4/ip_forward
: bad variable name
dnsmasq как-то надо настраивать?
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
должна быть единица
После того как закомментировал 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.
ERT, ну зачем закоментировал export IPT="/sbin/iptables " 🙁 🙁
Там же потом весь скрипт полетит это переменная. Тогда (если закоментировал export IPT="/sbin/iptables " каждую $IPT надо тоже изменить на её значение т.е. на /sbin/iptables ну сооброжай. winkЕще раз скопируй отсюда (ну назови 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
Все так же
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
Очень странно, но сервер раздает инет! Это как?
Думаю, что после ввода 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: $: команда не найдена
Что делать?
$ не надо, и да всё правильно, раздача сейчас есть, но большое но сейчас твой IP светится наружу всеми своими прелястями — ломай нихочу, и сетка вероятно твоя внутренняя тоже доступна — так-то.
Теперь попробуй эти строчки в какой-нибудь скрипт запихни и запусти только добавь строчку ещё одну
iptables -L -n -t nat чтобы видеть правила.Дальше будем доделывать.
http://linuxforum.ru/topic/13140/page/2
Кандидат технических наук, доцент кафедры ИУ-6 (Компьютерные системы и сети) Московского государственного технического университета им. Н. Э. Баумана. Самый молодой в России PhD in Computer Science. Эксперт в области компьютерных технологий и программирования.
Стаж: 8 лет.
Образование: МГТУ им. Н. Э. Баумана, к.т.н.
- Автоматическое монтирование fstab и systemd - 24.02.2021
- Как в Linux подключить новый диск, разметить и отформатировать разделы - 24.02.2021
- Как сменить режим работы PHP - 24.02.2021