The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Автоматическое включение NAT при загрузке компьютера"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"Автоматическое включение NAT при загрузке компьютера"  
Сообщение от Сергей Петров on 02-Апр-08, 10:31 
Здравсвтуйте.

Есть машина под debian, которая выполняет роль рутера. На ней я включаю NAT с помощью скрипта в конце сообщения. Все работает, все хорошо.

Очень хочется, чтобы это все загружалось автоматически при включении компьютера. Скажите, пожалуйста, каким образом это реализовать "иделогичеси" правильно (может быть вообще никакой такой скрипт не нужен, а как-то это делается очень просто?)

Заранее спасибо!

А вот и сам скрипт:

#!/bin/sh

IPTABLES=/sbin/iptables
EXTIF="eth0" #(inet)
INTIF="eth1" #(home lan)

#echo "   External Interface:  $EXTIF"
#echo "   Internal Interface:  $INTIF"

#echo "   enabling forwarding.."
#echo "1" > /proc/sys/net/ipv4/ip_forward

#echo "   enabling DynamicAddr.."
echo "1" > /proc/sys/net/ipv4/ip_dynaddr

#echo "   clearing any existing rules and setting default policy.."
$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -F FORWARD
$IPTABLES -t nat -F

#echo "   FWD: Allow all connections OUT and only existing and related ones IN"
$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j
ACCEPT
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT

#echo "   Enabling SNAT (MASQUERADE) functionality on $EXTIF"
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

#echo -e "\nDone.\n"

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Автоматическое включение NAT при загрузке компьютера"  
Сообщение от PavelR (??) on 02-Апр-08, 11:02 
Не уверен насчет идеологии, пока нет времени разобраться детально

Скопируй команды из своего скрипта в /etc/rc.local

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "запуск скрипта при загрузке в Debian"  
Сообщение от Andrey Mitrofanov on 02-Апр-08, 11:19 
>Очень хочется, чтобы это все загружалось автоматически при включении компьютера. Скажите, пожалуйста,
>каким образом это реализовать "иделогичеси" правильно

Добавить вызов скрипта в /etc/rc.local, но тогда файервол будет "подниматься" после интерфейсов, наверное. Некузяво.

Скрипт (или симлинк) - в /etc/init.d/, потом что-нибудь вроде "update-rc.d firehol start 41 S . start 36 0 6 .", но скрипт должен, наверное, понимать параметры start/stop и не "гадить" при повторном запуске. (Хм, firehol запускается после поднятия сети?..)

Или скрипт/симлинк в  /etc/network/if-pre-up.d/ , но надо защищаться от повторного запуска...

> (может быть вообще никакой такой
>скрипт не нужен, а как-то это делается очень просто?)

Можно какой-нибудь "генератор файерволов" из пакетов поставить -- в пакетах запуск при загрузке, обычно встроен.

Я пользуюсь firehol (кстати он написан на bash-e = несколько "тормозой", зато пакет из unstable (=новая версия) ставится напрямую в stable). Вот пример конфигурации с маскарадом на модеме из его примеров:

---8<--- $ egrep -v "^[[:space:]]*(#|$)" </usr/share/doc/firehol/examples/home-dialup.conf
version 5
internet_services="smtp http"
internet_requests="10/sec"
home_interface="eth0"
proxy_port="3128"
if [ ! -z "${proxy_port}" ]
then
        iptables -t nat -A PREROUTING -i ${home_interface} -p tcp --dport 80 -j REDIRECT --to-port ${proxy_port}
fi
interface "${home_interface}" home
        policy accept
interface ppp+ internet src not "${UNROUTABLE_IPS}"
        protection strong ${internet_requests}
        server ident reject with tcp-reset
        server "${internet_services}" accept
        client all accept
router myrouter inface ppp+ outface "${home_interface}"
        masquerade reverse
        client all accept

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Автоматическое включение NAT при загрузке компьютера"  
Сообщение от Nimdar (ok) on 02-Апр-08, 11:21 
>Есть машина под debian, которая выполняет роль рутера. На ней я включаю
>NAT с помощью скрипта в конце сообщения. Все работает, все хорошо.
>
>
>Очень хочется, чтобы это все загружалось автоматически при включении компьютера. Скажите, пожалуйста,
>каким образом это реализовать "иделогичеси" правильно (может быть вообще никакой такой
>скрипт не нужен, а как-то это делается очень просто?)

1.
man iptables-restore
man iptables-save

2.
Ищем /etc/default/iptables
Если нет такого, не страшно, можно просто тупо запустить /etc/init.d/iptables. Вываливается Usage:

# /etc/init.d/iptables
/etc/init.d/iptables options:
  start|restart|reload|force-reload
....
....
Saved ruleset locations: /var/lib/iptables/

Найди в скрипте, какой именно файл он считывает из /var/lib/iptables/ (например, active)

iptables-save >/var/lib/iptables/active - у тебя сохранятся все текущие правила в "правильном" формате (эту команду запускать только один раз, для создания файла с твоими правилами).

При /etc/init.d/iptables start они подгрузятся. Для добавления/удаления правил, тебе нужно будет править только /var/lib/iptables/active

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Автоматическое включение NAT при загрузке компьютера"  
Сообщение от PavelR (??) on 06-Апр-08, 18:04 
Маны первого пункта давным-давно известны. А вот второго пункта в моем дебиан "почему-то" нет.

Каким пакетом это дело организуется у Вас ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

14. "Автоматическое включение NAT при загрузке компьютера"  
Сообщение от Nimdar (ok) on 07-Апр-08, 12:57 
>Маны первого пункта давным-давно известны. А вот второго пункта в моем дебиан
>"почему-то" нет.
>
>Каким пакетом это дело организуется у Вас ?

# apt-get install iptables

/usr/share/doc/iptables/examples/oldinitdscript.gz

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Автоматическое включение NAT при загрузке компьютера"  
Сообщение от hate email on 02-Апр-08, 12:01 

>Очень хочется, чтобы это все загружалось автоматически при включении компьютера. Скажите, пожалуйста,
>каким образом это реализовать "иделогичеси" правильно (может быть вообще никакой такой
>скрипт не нужен, а как-то это делается очень просто?)

apt-get install arno-iptables-firewall


  Прочитай документацию, настрой и будешь доволен.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Автоматическое включение NAT при загрузке компьютера"  
Сообщение от PavelR (??) on 06-Апр-08, 18:47 
>
>>Очень хочется, чтобы это все загружалось автоматически при включении компьютера. Скажите, пожалуйста,
>>каким образом это реализовать "иделогичеси" правильно (может быть вообще никакой такой
>>скрипт не нужен, а как-то это делается очень просто?)
>
>apt-get install arno-iptables-firewall
>
>
>  Прочитай документацию, настрой и будешь доволен.

Как по мне - уж больно наворочено, хотя конечно функционально :)

Подскажите, какой пакет поставить чтобы было как в redhat -
/etc/init.d/iptables save|start|stop делало банальные iptables-save iptables-restore ...

Комбайны с чужой идеологией построения цепочек файрволла мне пока не нужны..

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Автоматическое включение NAT при загрузке компьютера"  
Сообщение от hate email on 06-Апр-08, 19:32 

>>apt-get install arno-iptables-firewall
>>  Прочитай документацию, настрой и будешь доволен.
>
>Как по мне - уж больно наворочено, хотя конечно функционально :)

Это не комбайн. Довольно простенький.


>Подскажите, какой пакет поставить чтобы было как в redhat -
>/etc/init.d/iptables save|start|stop делало банальные iptables-save iptables-restore ...

  Посмотри на предложенный и переделай.

>Комбайны с чужой идеологией построения цепочек файрволла мне пока не нужны..

"чужой идеология" - это как? Ты на марсе в сети IPMars? :)


  

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Автоматическое включение NAT при загрузке компьютера"  
Сообщение от PavelR (??) on 06-Апр-08, 20:05 
>[оверквотинг удален]
>>Как по мне - уж больно наворочено, хотя конечно функционально :)
>
>Это не комбайн. Довольно простенький.
>
>
>>Подскажите, какой пакет поставить чтобы было как в redhat -
>>/etc/init.d/iptables save|start|stop делало банальные iptables-save iptables-restore ...
>
>  Посмотри на предложенный и переделай.
>

Свой я сам написать могу, я как-бы готовым, имеющимся пакетом интересуюсь...

>
>>Комбайны с чужой идеологией построения цепочек файрволла мне пока не нужны..
>
> "чужой идеология" - это как? Ты на марсе в сети IPMars?
>:)

У меня своя специфика фильтрации траффика, свои отдельные цепочки, несколько провайдеров, несколько внутренних сеток и т п... Мне удобно сделать что-то вроде

iptables -I FORWARD XXX -i eth0 -p tcp --dport 80 -d xxx.x.x.x -j ACCEPT
/etc/init.d/iptables save

- вот и хочу аналогичного в Debian

PS: Да, железный рутер лучше, но так сложилось ....

PPS: Когда там в Lenny появится 2.6.24-smp ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Автоматическое включение NAT при загрузке компьютера"  
Сообщение от hate email on 06-Апр-08, 20:43 
>>[оверквотинг удален]
>У меня своя специфика фильтрации траффика, свои отдельные цепочки, несколько провайдеров, несколько
>внутренних сеток и т п... Мне удобно сделать что-то вроде
>
>iptables -I FORWARD XXX -i eth0 -p tcp --dport 80 -d xxx.x.x.x
>-j ACCEPT
>/etc/init.d/iptables save
>
>- вот и хочу аналогичного в Debian

  Вот тебе кусок из рабочего того что я предлагаю. Никак не пойму что тебя в нем не устаивает.


----------------------  iptables.save  ----------------------------


A INPUT -i eth1 -p ! icmp -m state --state NEW -j EXT_INPUT_CHAIN
-A INPUT -i eth1 -p icmp -m state --state NEW -m limit --limit 20/sec --limit-burst 100 -j EXT_INPUT_CHAIN
-A INPUT -i eth1 -p icmp -m state --state NEW -j EXT_ICMP_CHAIN
-A INPUT -m limit --limit 1/sec -j LOG --log-prefix "Dropped INPUT packet: " --log-level 6
-A INPUT -j DROP
-A FORWARD -i lo -j ACCEPT
-A FORWARD -o eth1 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -m state --state ESTABLISHED -j ACCEPT
-A FORWARD -p tcp -m state --state RELATED -m tcp --dport 1024:65535 -j ACCEPT
-A FORWARD -p udp -m state --state RELATED -m udp --dport 1024:65535 -j ACCEPT
-A FORWARD -p icmp -m state --state RELATED -j ACCEPT
-A FORWARD -i eth1 -j HOST_BLOCK
-A FORWARD -j SPOOF_CHK
-A FORWARD -i eth1 -j VALID_CHK
-A FORWARD -m limit --limit 1/min --limit-burst 3 -j LOG --log-prefix "Dropped FORWARD packet: " --log-level 6
-A FORWARD -j DROP
-A OUTPUT -o eth1 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A OUTPUT -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -f -m limit --limit 3/min -j LOG --log-prefix "FRAGMENTED PACKET (OUT): " --log-level 6
-A OUTPUT -f -j DROP
-A OUTPUT -o eth1 -j EXT_OUTPUT_CHAIN
-A EXT_ICMP_CHAIN -p icmp -m icmp --icmp-type 8 -m limit --limit 12/hour --limit-burst 1 -j LOG --log-prefix "ICMP-request(ping) flood: " --log-level 6
-A EXT_ICMP_CHAIN -p icmp -m icmp --icmp-type 3 -m limit --limit 12/hour --limit-burst 1 -j LOG --log-prefix "ICMP-unreachable flood: " --log-level 6
-A EXT_ICMP_CHAIN -p icmp -m icmp --icmp-type 4 -m limit --limit 12/hour --limit-burst 1 -j LOG --log-prefix "ICMP-source-quench flood: " --log-level 6
-A EXT_ICMP_CHAIN -p icmp -m icmp --icmp-type 11 -m limit --limit 12/hour --limit-burst 1 -j LOG --log-prefix "ICMP-time-exceeded flood: " --log-level 6
-A EXT_ICMP_CHAIN -p icmp -m icmp --icmp-type 12 -m limit --limit 12/hour --limit-burst 1 -j LOG --log-prefix "ICMP-param.-problem flood: " --log-level 6
-A EXT_ICMP_CHAIN -p icmp -m icmp --icmp-type 8 -j DROP
-A EXT_ICMP_CHAIN -p icmp -m icmp --icmp-type 3 -j DROP
-A EXT_ICMP_CHAIN -p icmp -m icmp --icmp-type 4 -j DROP
-A EXT_ICMP_CHAIN -p icmp -m icmp --icmp-type 11 -j DROP
-A EXT_ICMP_CHAIN -p icmp -m icmp --icmp-type 12 -j DROP
-A EXT_ICMP_CHAIN -p icmp -m limit --limit 12/hour --limit-burst 1 -j LOG --log-prefix "ICMP(other) flood: " --log-level 6
-A EXT_ICMP_CHAIN -p icmp -j DROP
-A EXT_INPUT_CHAIN -p tcp -m tcp --dport 0 -m limit --limit 6/hour --limit-burst 1 -j LOG --log-prefix "TCP port 0 OS fingerprint: " --log-level 6
-A EXT_INPUT_CHAIN -p udp -m udp --dport 0 -m limit --limit 6/hour --limit-burst 1 -j LOG --log-prefix "UDP port 0 OS fingerprint: " --log-level 6
-A EXT_INPUT_CHAIN -p tcp -m tcp --dport 0 -j DROP
-A EXT_INPUT_CHAIN -p udp -m udp --dport 0 -j DROP
-A EXT_INPUT_CHAIN -p tcp -m tcp --sport 0 -m limit --limit 6/hour -j LOG --log-prefix "TCP source port 0: " --log-level 6
-A EXT_INPUT_CHAIN -p udp -m udp --sport 0 -m limit --limit 6/hour -j LOG --log-prefix "UDP source port 0: " --log-level 6
-A EXT_INPUT_CHAIN -p tcp -m tcp --sport 0 -j DROP

----------------------

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Автоматическое включение NAT при загрузке компьютера"  
Сообщение от PavelR (??) on 06-Апр-08, 21:13 

  и как ты получил этот файл ?

Мне вот например не нужны:

  # Create several chains that we will use later on
  ######################################################################
  $IPTABLES -N HOST_BLOCK
  $IPTABLES -N MAC_FILTER
  $IPTABLES -N VALID_CHK
  $IPTABLES -N RESERVED_NET_CHK
  $IPTABLES -N SPOOF_CHK
  $IPTABLES -N DMZ_INPUT_CHAIN
  $IPTABLES -N DMZ_LAN_FORWARD_CHAIN
  $IPTABLES -N INET_DMZ_FORWARD_CHAIN
  $IPTABLES -N DMZ_INET_FORWARD_CHAIN
  $IPTABLES -N LAN_INPUT_CHAIN
  $IPTABLES -N LAN_INET_FORWARD_CHAIN
  $IPTABLES -N EXT_INPUT_CHAIN
  $IPTABLES -N EXT_ICMP_FLOOD_CHAIN
  $IPTABLES -N EXT_OUTPUT_CHAIN


как бы это сказать, задачи несколько другие....


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "Автоматическое включение NAT при загрузке компьютера"  
Сообщение от hate email on 07-Апр-08, 00:19 

>  и как ты получил этот файл ?

  Повтроряю, настрой и запусти то что я говорю. Дальше поймешь и увидишь все сам.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "Автоматическое включение NAT при загрузке компьютера"  
Сообщение от PavelR (??) on 07-Апр-08, 10:32 
>>  и как ты получил этот файл ?
>
>  Повтроряю, настрой и запусти то что я говорю. Дальше поймешь
>и увидишь все сам.
>
>

Я не получил ответ на вопрос - как был получен этот файл..

И далее - ты сам эти правила посоставлял ? Нет, это тебе скрипт их нагенерил. Думаю, что не сильно ты можешь правила менять как тебе нужно.
Я поизучал содержимое стартового скрипта, и меня это не устраивает.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "Автоматическое включение NAT при загрузке компьютера"  
Сообщение от hate email on 07-Апр-08, 11:55 
>>>  и как ты получил этот файл ?
>>
>>  Повтроряю, настрой и запусти то что я говорю. Дальше поймешь
>>и увидишь все сам.
>Я не получил ответ на вопрос - как был получен этот файл..

  Он был сгенерен самим arno-iptables-firewall
  
>И далее - ты сам эти правила посоставлял ? Нет, это тебе
>скрипт их нагенерил.

  Это даже ежу ясно.


>Думаю, что не сильно ты можешь правила менять как тебе нужно.

  Я меняю все что мне нужно.


>Я поизучал содержимое стартового скрипта, и меня это не устраивает.

А переделать скрипт так как тебе нужно "камасутра не позволяет"?  :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

15. "Автоматическое включение NAT при загрузке компьютера"  
Сообщение от PavelR (??) on 07-Апр-08, 12:59 

>>Я поизучал содержимое стартового скрипта, и меня это не устраивает.
>
> А переделать скрипт так как тебе нужно "камасутра не позволяет"?  
>:)

Цитирую свое сообщение:

>[оверквотинг удален]
>>
>>Это не комбайн. Довольно простенький.
>>
>>
>>>Подскажите, какой пакет поставить чтобы было как в redhat -
>>>/etc/init.d/iptables save|start|stop делало банальные iptables-save iptables->restore ...
>>
>>  Посмотри на предложенный и переделай.
>>
>Свой я сам написать могу, я как-бы готовым, имеющимся пакетом интересуюсь...

Поясните, почему в RH могут сделать удобный скрипт в базовой системе/пакетах, а в Debian я такого найти не могу ?

Итого:

1. Перепиши под себя скрипт файрволла
2. Смени syslog на syslog-ng потому что кто-то придумал извращенный скрипт ротации логов сислога _не_ через logrotate (все интересующиеся изучают состав пакета syslog)
3. Sarg ставится конечно из пакетов, но вот бага с моментами генерации отчетов за месяц из 7 ежедневных файлов уже сколько лет висит..

и это только мелкий сервер, который только начинает жить...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

16. "Автоматическое включение NAT при загрузке компьютера"  
Сообщение от hate email on 07-Апр-08, 13:31 

>[оверквотинг удален]
>
>1. Перепиши под себя скрипт файрволла
>2. Смени syslog на syslog-ng потому что кто-то придумал извращенный скрипт ротации
>логов сислога _не_ через logrotate (все интересующиеся изучают состав пакета syslog)
>
>3. Sarg ставится конечно из пакетов, но вот бага с моментами генерации
>отчетов за месяц из 7 ежедневных файлов уже сколько лет висит..
>
>
>и это только мелкий сервер, который только начинает жить...

  Мир не совершенен. :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

17. "Автоматическое включение NAT при загрузке компьютера"  
Сообщение от Anonimous on 06-Июн-08, 04:25 
На самом деле если ставить GNU/Debian 4 "с нуля", в отличии от апгрейда с версии 3, то в файл /etc/init.d/iptables отсуствует, соответственно негде посмотреть откуда грузятся автоматически правила, да и не грузятся они в общем, приходится самому все писать :((
В третьей версии все было нормально в четвертой сломали....
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру