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


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

Автор Тема: Debian+IpTables  (Прочитано 10353 раз)

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

Оффлайн surgutor

  • Автор темы
  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
Debian+IpTables
« : 20 Мая 2009, 13:59:20 »
Народ, кто нить гонял iptables под дебианом?
Я создал файл iptables.rules
#!/bin/bash

# Местонахождение iptables
IPTABLES=/sbin/iptables

# Сбрасываем все правила
$IPTABLES -F
$IPTABLES -t nat -F

# Дропим INPUT и FORWARD. OUTPUT дропить не надо, иначе не будет выхода наружу
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

# Пишем разрешающие правила
$IPTABLES -A INPUT -i lo -j ACCEPT

# Это для ответов (уже установленного соединения)
#$IPTABLES -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

# Разрешим входящие udp и icmp
#$IPTABLES -A INPUT -p udp -j ACCEPT
$IPTABLES -A INPUT -p icmp -j ACCEPT

# ТЕПЕРЬ ОСТАЛОСЬ ОТКРЫТЬ НУЖНЫЕ TCP ПОРТЫ
# Обращения извне к НАШЕЙ машине, а не наоборот.

# Правила для FTP-сервера (21 порт и tcp соединение)
$IPTABLES -A INPUT -i eth0 -p tcp -m multiport --port 21 -j ACCEPT

# Правила для SSH-соединений (22 порт и tcp/udp соединение)
$IPTABLES -A INPUT -i eth0 -p tcp -m multiport --port 22 -j ACCEPT

# Правила для NameServer (35 порт и tcp/udp соединение)
$IPTABLES -A INPUT -i eth0 -p tcp -m multiport --port 35 -j ACCEPT
$IPTABLES -A INPUT -i eth0 -p udp -m multiport --port 35 -j ACCEPT

# Правила для Apache-cервера (80 порт и tcp соединение)
$IPTABLES -A INPUT -i eth0 -p tcp -m multiport --port 80 -j ACCEPT

# Правила для MySQL-cервера (3306 порт и tcp соединение)
$IPTABLES -A INPUT -i eth0 -p tcp -m multiport --port 3306 -j ACCEPT

и применяю его с помощью ./iptables.rules
правила мприменяются, это показывает

Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     0    --  anywhere             anywhere           
ACCEPT     icmp --  anywhere             anywhere           
ACCEPT     tcp  --  anywhere             anywhere            multiport ports ftp
ACCEPT     tcp  --  anywhere             anywhere            multiport ports ssh
ACCEPT     tcp  --  anywhere             anywhere            multiport ports 35
ACCEPT     udp  --  anywhere             anywhere            multiport ports 35
ACCEPT     tcp  --  anywhere             anywhere            multiport ports www
ACCEPT     tcp  --  anywhere             anywhere            multiport ports mysql

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         


Но пара проблем
1
ACCEPT 0 -- anywhere anywhere
это кто
2
как мне сделать, чтобы правила применялись до момента инициализации сетевых настроек, тк я почитал, типо
"оздаешь в /etc/iptables.rules правила для iptables, а потом прописываешь в /etc/network/interfaces в начале строку:
pre-up iptables-restore /etc/iptables.rules."
но не прокатываеи, тогда сетевые интерфейсы не поднимаются вообще
способ второй -
"Когда все заработает делаем
/etc/init.d/iptables save
эта команда запишет вывод iptables-save в /var/lib/iptables/rules-save
который будет подхватываться при загрузке, ессно для этого надо сделать
rc-update add iptables default
Все, теперь свой скрипт спрячь подальше до того момента, пока не захочешь че нить поменять, он уже не нужен."
не прокатывает, тк в init.d нет iptables, попытался через sbin/iptables - но он не знает никаких команд на save

вообщем-как заставить правила применялись вовремя и правильно


Оффлайн Rock

  • Участник
  • *
  • Сообщений: 124
  • Debian GNU/Linux testing
    • Просмотр профиля
Re: Debian+IpTables
« Ответ #1 : 20 Мая 2009, 14:14:03 »
0. $IPTABLES -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
Раскоментируй.
1. $IPTABLES -A INPUT -i lo -j ACCEPT
Это оно.
2. iptables-restore восстанавливает правила созданные коммандой iptables-save
# mv /etc/iptables.rules /etc/iptables.rules.bak
# /etc/iptables.rules.bak
# iptables-save > /etc/iptables.rules
Цитировать
а потом прописываешь в /etc/network/interfaces в начале строку:
pre-up iptables-restore /etc/iptables.rules
если все заработало, то /etc/iptables.rules.bak можешь удалить. Эти-же правила должны быть в /etc/iptables.rules

P.S. ИМХО удобнее смотреть правила: iptables -S

Оффлайн surgutor

  • Автор темы
  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
Re: Debian+IpTables
« Ответ #2 : 20 Мая 2009, 15:31:54 »
0) Я пока с этим не совсем до конца понял-посемы пока не буде коментить.
1) Спасибо большое
3) Не совсем понял, зачем в .bat перегонять?
iptables-save > /etc/iptables.rules  сделал, вроде никаких оибок не возникло
прописываю в /etc/network/interfaces данною строчку-но после перезагрузки все интерфейсы отваливаются
ifconfig выдает пустоту (за исключением одного моего интерфейса venet-00-0, но это потому, что у меня ядро, поддерживающее OpenVZ)

Оффлайн Rock

  • Участник
  • *
  • Сообщений: 124
  • Debian GNU/Linux testing
    • Просмотр профиля
Re: Debian+IpTables
« Ответ #3 : 20 Мая 2009, 20:23:16 »
0. Это дает возможность получать пакеты с соединений инициализированных тобой, или открывать новые соединения инициированные существующими.
3. У тебя были правила в /etc/iptables.rules
Ты переименооваешь их в /etc/iptables.rules.bak
Обнуляешь таблицы, Добавляешь их из /etc/iptables.rules.bak
Коммандой iptables-save сохраняешь их в файл /etc/iptables.rules
Прописываешь их восстановление строкой в interfaces
pre-up iptables-restore /etc/iptables.rules

Ты обнулил iptables. Сохранил пустые таблицы коммандой iptables-save
Восстановил те-же пустые таблицы pre-up iptables-restore /etc/iptables.rules добавленной в interfaces

Оффлайн it-help

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
    • За помощью обращаться сюда!
Re: Debian+IpTables
« Ответ #4 : 10 Августа 2009, 17:59:21 »
Для того что бы правила применялись до загрузки () я юзаю Деб 5()
По крайней мере у меня работает так

Поочереди ввожу команды IPTABLES
После этого
# iptables-save > /куда_сохраняем/имя_вашего_вайла
Далее

sudo nano /etc/network/if-pre-up.d/00-iptables
заполняем
#!/bin/sh
iptables-restore < /где_сохранен/имя_файла
далее ctrl+x далее Y (проще говоря сохраняем изменения)
теперь у вас в /etc/network/if-pre-up.d/ лежит файл 00-iptables в котором прописано где брать правила iptables-restore
делаем файл исполняеммым скриптом
chmod +x /etc/network/if-pre-up.d/00-iptables

все
теперь ваши правила будут подниматься до загрузки сетевых ифейсов.
Есть только два состояния души - пессимизм и оптимизм,
остальное все синонимы пессимизма.

Оффлайн int1k

  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Re: Debian+IpTables
« Ответ #5 : 25 Августа 2009, 18:36:30 »
Прошу прощенья, а почму нету правил для обратных пакетов?
Почему на OUTPUT на все ACCEPT

Пользователь решил продолжить мысль 25 Августа 2009, 18:52:07:
И потом. Открывать 3306 порт на базы данных на весь инпут - это сильно погоричились. Такое брутфорсом только и ломать.
« Последнее редактирование: 25 Августа 2009, 18:52:07 от int1k »

Оффлайн it-help

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
    • За помощью обращаться сюда!
Re: Debian+IpTables
« Ответ #6 : 17 Сентября 2009, 12:27:27 »
Прошу прощенья, а почму нету правил для обратных пакетов?
Почему на OUTPUT на все ACCEPT

Пользователь решил продолжить мысль 25 Августа 2009, 18:52:07:
И потом. Открывать 3306 порт на базы данных на весь инпут - это сильно погоричились. Такое брутфорсом только и ломать.

Ну наверное админ добрый и разрешил доступ из сети в большой мир)))
А вообще IPTABLES нужно понять и потом писать правила соглласно необходимым задачам.
Есть только два состояния души - пессимизм и оптимизм,
остальное все синонимы пессимизма.

 

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