Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: iptables и автоматическая загрузка  (Прочитано 32274 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн soloik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
iptables и автоматическая загрузка
« : 19 Апрель 2007, 08:35:30 »
На своем сервере который является шлюзом в интернет прописал правила по инструкции из Руководства по iptables http://www.opennet.ru/docs/RUS/iptables/misc/iptables-tutorial/scripts/rc.firewall.txt
Работает, но после перезагрузки все настройки слетают.
Нашел инструкцию https://help.ubuntu.com/community/IptablesHowTo
Сделал по ней.
Сохраняем правила в файл iptables-save > /etc/iptables.up.rules
а затем при каждой загрузке прогружаем, для стого в /etc/network/interfaces
прописываем
auto eth0
iface eth0 inet dhcp
  pre-up iptables-restore < /etc/iptables.up.rules

Но не все так гладко, порты закрываются, но правила не работают. Т.е. если я вручную прогрузил правила то ping работает, но после перезагрузки нет. Хотя порты закрыты.

Как это победить или может подскажете другие способы. Задача одна заставить автоматически стартовать правила iptables.


Оффлайн A2K

  • Активист
  • *
  • Сообщений: 402
    • Просмотр профиля
Re: iptables и автоматическая загрузка
« Ответ #1 : 19 Апрель 2007, 21:00:55 »
а должно бы работать. странно.


попробуй просто записать в файл последовательность комманд добавления правил и положить его в автозагрузку.
Gentoo.

Оффлайн jmur

  • Активист
  • *
  • Сообщений: 350
    • Просмотр профиля
Re: iptables и автоматическая загрузка
« Ответ #2 : 23 Апрель 2007, 14:50:32 »
Но не все так гладко, порты закрываются, но правила не работают. Т.е. если я вручную прогрузил правила то ping работает, но после перезагрузки нет. Хотя порты закрыты.
Что конкретно не работает?
Если после загрузки сделать руками iptables-save > /etc/iptables.current и посмотреть этот файл, то совпадают ли правила с теми что нужно?
Если не работает форвардинг, то надо его разрешить в /etc/sysctl.conf

Оффлайн Polumish

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: iptables и автоматическая загрузка
« Ответ #3 : 08 Май 2007, 12:46:04 »
Я немного по другому сделал - в /etc/init.d/networking добавь предпоследней строчкой iptables-restore /etc/iptables.up.rules
Будет всё работать :))

Оффлайн hangover

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: iptables и автоматическая загрузка
« Ответ #4 : 11 Декабрь 2007, 14:01:54 »
Самый адекватный, по-моему, способ:
Пишем скрипт, например:
#!/bin/sh

IPT="/sbin/iptables"

start_fw()
{

    # Сбросить правила и удалить цепочки.
    $IPT -F
    $IPT -X
   
    # Тут пишем наши правила для iptables.
    $IPT -P INPUT ACCEPT
    $IPT -P FORWARD ACCEPT
    $IPT -P OUTPUT ACCEPT
   
}


case "$1" in
start)  echo -n "Starting firewall: iptables"
        start_fw
        echo "."
        ;;
stop)   echo -n "Stopping firewall: iptables"
        iptables -F
        iptables -X
        echo "."
        ;;
save)   echo -n "Saving firewall: iptables"
        iptables-save > /etc/iptables.up.rules
        echo "."
        ;;   
restart) echo -n "Restarting firewall: iptables"
        iptables -F
        iptables -X
        start_fw
        echo "."
        ;;
reload|force-reload) echo -n "Reloading configuration files for firewall: iptables"
        echo "."
        ;;
*)      echo "Usage: /etc/init.d/rc.iptables start|stop|restart|reload|force-reload"
        exit 1
        ;;
esac
exit 0

кидаем его в /etc/init.d
назначаем для него права:
   chmod 775 your_script_name
и помещаем в автозагрузку:
   update-rc.d your_script_name defaults

Всё! теперь его можно применить /etc/init.d/your_script_name start
после перезагрузки, естественно, правила тоже применятся.
« Последнее редактирование: 11 Декабрь 2007, 14:25:57 от hangover »
человек и пулемёт.

Оффлайн cOnf_ua

  • Новичок
  • *
  • Сообщений: 47
    • Просмотр профиля
Re: iptables и автоматическая загрузка
« Ответ #5 : 11 Июль 2008, 16:28:07 »
и чем здесь отличается пункт restart) от пункта start) ?
обычно restart = stop + start (не наоборот)
да и пункт save) очень странный - у файлика созданного правилом iptables-save стилистика отличная от тех правил которые задаются в start_fw

ИМХО не адекватный способ, и уж тем более не самый.
« Последнее редактирование: 11 Июль 2008, 16:31:32 от cOnf_ua »

m0r9un0v

  • Гость
Re: iptables и автоматическая загрузка
« Ответ #6 : 11 Июль 2008, 20:11:37 »
Давненько этим не занимался, но предположу:
В ядре 2,4 надо было разрешать форвардинг посредством echo 1 > /proc/sys/net/ipv4/ip_forward или в 2,6 этого делать уже не надо?

Оффлайн ADL

  • Активист
  • *
  • Сообщений: 446
    • Просмотр профиля
Re: iptables и автоматическая загрузка
« Ответ #7 : 11 Июль 2008, 21:12:56 »
прописываем

auto eth0
iface eth0 inet dhcp
  pre-up iptables-restore < /etc/iptables.up.rules

использую

....
up iptables-restore < /etc/iptables.up.rules

Оффлайн aleks-new

  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: iptables и автоматическая загрузка
« Ответ #8 : 11 Июль 2008, 21:48:43 »
update-rc.d....

Оффлайн MaratSh

  • Участник
  • *
  • Сообщений: 204
  • Всё пройдёт...
    • Просмотр профиля
Re: iptables и автоматическая загрузка
« Ответ #9 : 11 Апрель 2009, 13:05:46 »
Если для настройки iptables использовать Webmin, правила прописываются здесь: /etc/iptables.up.rules , а в /etc/network/interfaces добавляется строка:
Цитировать
auto lo eth0 eth1
iface lo inet loopback

iface eth0 inet static
   address 192.168.0.1
   netmask 255.255.255.0
   broadcast 0.0.0.255
   network 192.168.0.0
   post-up iptables-restore < /etc/iptables.up.rules

iface eth1 inet dhcp
Запустится ли iptables-restore если будет отключен eth0 или если отключен сетевой кабель?
« Последнее редактирование: 11 Апрель 2009, 13:31:53 от MaratSh »

Оффлайн Unreg

  • Активист
  • *
  • Сообщений: 751
  • Ubuntu 8.04 / Acer Aspire One 110 > Debian 5.04
    • Просмотр профиля
    • LJ
Re: iptables и автоматическая загрузка
« Ответ #10 : 02 Июль 2009, 14:34:44 »
Вроде в такой последовательности делал еще на 7.10

sudo nano /etc/init.d/iptables
cat /etc/init.d/iptables

#!/bin/bash
IPT="/sbin/iptables"
START="/bin/bash"
PATH="/sbin:/bin:/usr/sbin:/usr/bin"
NAME="$0"
N="/etc/init.d/$NAME"

if [ ! -f /etc/rc.firewall ]; then
    echo "/etc/rc.firewall does not exist"
    exit 0
fi

case "$1" in
    start|restart)
    echo -n "Starting up iptables firewall..."
    $START /etc/rc.firewall
    echo "done."
    ;;
    stop)
    $IPT -t filter -F
    $IPT -t filter -X
    $IPT -t nat -F
    $IPT -t nat -X
    $IPT -t mangle -F
    $IPT -t mangle -X
    echo "done."
    exit 0;
    ;;
*)
    echo "Usage: $N {start|restart|stop}" >&2
    exit 1
    ;;
esac

exit 0

sudo chmod +x /etc/init.d/iptables
sudo update-rc.d /etc/init.d/iptables defaults

cat /etc/rc.firewall
#!/bin/bash

# Включаем IP форвардинг
echo "1" > /proc/sys/net/ipv4/ip_forward

# Защита от Syn flood атаки
echo "1" > /proc/sys/net/ipv4/tcp_syncookies


iptables -F
iptables -t nat -F

#Установим политики по умолчанию для трафика, не соответствующего ни одному из правил
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

#Скопируйте и вставьте для примера...
export LAN=eth1
export WAN=eth0

#Теперь закроем наши сервисы так, чтобы они могли работать только для LAN
iptables -I INPUT 1 -i ${LAN} -j ACCEPT
iptables -I INPUT 1 -i lo -j ACCEPT
iptables -A INPUT -p UDP --dport bootps -i ! ${LAN} -j REJECT
iptables -A INPUT -p UDP --dport domain -i ! ${LAN} -j REJECT

#(Необязательно) Разрешаем доступ к нашему ssh-серверу из интернета
iptables -A INPUT -p TCP --dport ssh -i ${WAN} -j ACCEPT

#Отбросим все TCP/UDP-пакеты, обращающиеся к привилегированным портам
iptables -A INPUT -p TCP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP
iptables -A INPUT -p UDP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP

#В конце добавляем правила для NAT
iptables -I FORWARD -i ${LAN} -d 192.168.5.0/255.255.255.0 -j DROP
iptables -A FORWARD -i ${LAN} -s 192.168.5.0/255.255.255.0 -j ACCEPT
iptables -A FORWARD -i ${WAN} -d 192.168.5.0/255.255.255.0 -j ACCEPT
iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE
sudo chmod +x /etc/rc.firewall

Оффлайн slonik81

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: iptables и автоматическая загрузка
« Ответ #11 : 14 Август 2009, 15:15:42 »
sudo update-rc.d /etc/init.d/iptables defaults
на что выдает
root@ubuntu:/etc/init.d# update-rc.d /etc/init.d/iptables defaults
update-rc.d: /etc/init.d//etc/init.d/iptables: file does not exist
В чем проблема???

Оффлайн xazrad

  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: iptables и автоматическая загрузка
« Ответ #12 : 14 Август 2009, 18:40:08 »
Я уже устал искать метод автомачиской загрузки iptables. оставил так чтоб после перезагруки ручками их подгружать

Оффлайн Unreg

  • Активист
  • *
  • Сообщений: 751
  • Ubuntu 8.04 / Acer Aspire One 110 > Debian 5.04
    • Просмотр профиля
    • LJ
Re: iptables и автоматическая загрузка
« Ответ #13 : 14 Август 2009, 19:37:14 »
sudo update-rc.d /etc/init.d/iptables defaults
на что выдает
root@ubuntu:/etc/init.d# update-rc.d /etc/init.d/iptables defaults
update-rc.d: /etc/init.d//etc/init.d/iptables: file does not exist
В чем проблема???
sudo update-rc.d iptables defaults

Гарри Кашпировский

  • Гость
Re: iptables и автоматическая загрузка
« Ответ #14 : 14 Август 2009, 19:41:05 »
Вообще то оно там из под рута запускается.
Костыль конечно, но таки работает.
Поместите правила айпитеблз в /etc/rc.local
« Последнее редактирование: 14 Август 2009, 19:47:23 от Гарри Кашпировский »

 

Страница сгенерирована за 0.059 секунд. Запросов: 23.