- /etc/netstart, dvsarc, 18:39 , 20-Май-05 (1)
>У меня проблема в следующем. Когда удаленно запускаю на машине /etc/netstart для >перезагрузки правил фаервола из файла, доступ к машине прекращается. Иду в >серверную и вижу, что там только первые два правила остались и >последнее!!! >Потом при запуске /etc/netstart локально все правила загружаются нормально. >У меня FreeBSD 5.4. На 4.11 такой фигни нету. В чем проблема? >sh /etc/netstart
- /etc/netstart, Евгений, 20:15 , 20-Май-05 (2)
>sh /etc/netstart не помогло. Загружает первое правило и последнее. Пробовал переставить верхние правила в середну. После загрузки первого, файервол дальше правила не грузит.
- /etc/netstart, Brainbug, 10:44 , 24-Май-05 (3)
> >>sh /etc/netstart > >не помогло. Загружает первое правило и последнее. Пробовал переставить верхние правила в >середну. После загрузки первого, файервол дальше правила не грузит. I pravilno delajet. Jesli pomostret skript zagruzki pravil, to mozno uvidet, 4to pervoje 4to delajetca - flush, posemu srazu obrivajetca svaz i vse. Pravila do konca ne zagruzeni i ostajutca default (ACCEPT libo DENY). Dla udalennoi perezegruzki pravil ispolzui at ili cron. Zdes v uzhe obsuzdalos kak i 4to nado delat.
- /etc/netstart, RCOleg, 19:33 , 01-Июн-05 (4)
- /etc/netstart, AMDmi3, 21:00 , 01-Июн-05 (5)
>У меня проблема в следующем. Когда удаленно запускаю на машине /etc/netstart для >перезагрузки правил фаервола из файла, доступ к машине прекращается. Иду в >серверную и вижу, что там только первые два правила остались и >последнее!!! >Потом при запуске /etc/netstart локально все правила загружаются нормально. >У меня FreeBSD 5.4. На 4.11 такой фигни нету. В чем проблема? Уж сколько раз твердили миру... nohup /etc/netstart daemon /etc/netstart screen /etc/netstart at cron
- /etc/netstart, Azazelo, 17:27 , 06-Июн-05 (6)
>>У меня проблема в следующем. Когда удаленно запускаю на машине /etc/netstart для >>перезагрузки правил фаервола из файла, доступ к машине прекращается. Иду в >>серверную и вижу, что там только первые два правила остались и >>последнее!!! >>Потом при запуске /etc/netstart локально все правила загружаются нормально. >>У меня FreeBSD 5.4. На 4.11 такой фигни нету. В чем проблема? > >Уж сколько раз твердили миру... > >nohup /etc/netstart >daemon /etc/netstart >screen /etc/netstart >at >cron вот начало моего firewalla
#!/bin/sh ipfw="/sbin/ipfw -q" ${ipfw} -f flush ..... в таком случае работает без проблем , даже если запустить так . #sh /etc/rc.fire а если такая шапка . #!/bin/sh ipfw="/sbin/ipfw -q" /sbin/ipfw -f flush то работает #sh /etc/rc.fire & правда тогда ssh конект отвалится , но можно опять подключится .
- /etc/netstart, Azazelo, 17:31 , 06-Июн-05 (7)
забыл добавить , по умолчанию стоит deny . - /etc/netstart, AMDmi3, 18:37 , 06-Июн-05 (8)
>правда тогда ssh конект отвалится , но можно опять подключится . Происходит примерно следующее: 1) Вы запускаете скрипт, меняющий правила firewalla, который, разумеется, первым делом делает flush. Т.к. стоит default to deny, любой траффик блокируется. 2) Скрипт работает дальше, добавляя правила по одному. Если нет опции -q, строчки с правилами правила пишутся в stdout. 3) sshd берет stdout скрипта и пытается отправить его вам по сети, 4) и, естественно, обламывается, потому что траффик блокируется. Ошибка считается фатальной и sshd считает сессию разорваной. 5) Вместе с сессией прибивается (сигналом HUP) все, что в ней запущено, т.е. наш скрипт. Все, сессии нет, в firewall'e пара-тройка правил. Финита. Как бороться: 1) Можно сделать так, чтобы ipfw не писал ничего в stdout, тогда sshd нечего будет отправлять клиенту во время работы скрипта, и период, когда траффик блокируется, мы успешно минуем. Это делается при помощи указания ipfw опции -q или так: ./my_cool_firewall_script >/dev/null 2>&1. Это будет работать, но все равно гарантии, что sshd не приспичит нам что-нибудь послать пока работает скрипт, нету, так что в один прекрасный миг можно жестоко наколоться. 2) Простейшие варианты: - Запускать скрипт как nohup имя_скрипта. Наш скрипт будет игнорировать сигнал HUP, который пошлет ему sshd в случае обрыва сессии и отработает целиком. Вывод будет перенаправлен в файл nohup.out в текущем каталоге. Вывод можно будет посмотреть, правда файл можно забыть стереть. Со временем их может много накопиться в разных местах файловой системы :) - Запускать скрипт как daemon -cf имя скрипта. Тогда скрипт демонизируется, т.е. отвалится от псевдотерминала, и уже не будет частью сессии, т.е. HUP ему не пошлется. Вывода вы не увидите. - Запускать скрипт в screen. И вывод можно будет посмотреть и скрипт не прервется, и файлов не будет. Если запускать screen в обычном режиме (т.е. не detached), вывод все-таки пойдет через sshd и сессия может отвалиться. - Запускать скрипт через at. Например at "now +1 min". Вывод придет вам в виде письма, обрыв сессии, разумеется, не страшен. - Запускать скрипт через cron. Добавить задание как, например, ежеминутное (* * * * *), потом убрать. Дурацкий способ, тем не менее кто-то его использует. 3) Продвинутый способ. Идеальным решеним будет иметь программу, меняющую правила ipfw, перенаправляя вывод в какой-либо файл (чтобы не беспокоить sshd и не рвать сессию), позаботившись о защите от SIGHUP (чтобы, если сессия все-таки порвется, скрипт доработал и правила не пропали). Кроме того, через некоторый промежуток времени, она должна восстановить предедущую конфигурацию firewall'а. Таким образом вы будете надежно защищены от ошибок при удаленной настройке ipfw. Пожно копнуть еще глубже и, например, останавливать (SIGSTOP/SIGCONT) sshd на время смены правил. Либо настроить ipfw на пропускание пакетов по умолчанию, а последним правилом добавлять deny all, хотя это не особо хороший способ. В общем, думайте. А я думаю кем-то все это уже написано :)
- /etc/netstart, секрет, 06:09 , 07-Июн-05 (9)
не проще для фаера: sh /etc/rc.firewall ?у меня так (примерно): #cat /etc/rc.firewall ipfw -q flush ipfw add pass all from any to any по идее надо вставлять #!/bin/sh в начало (да ладно, и так пашет) а netstart использую редко и только для перезагрузки интерфейсов (добавления новых)
- /etc/netstart, Alexey Leonchik, 08:46 , 07-Июн-05 (10)
>не проще для фаера: >sh /etc/rc.firewall ? Поддерживаю. Тоже всегда пользовался sh /etc/rc.firewall А /etc/netstart - когда надо было IP менять: route default delete; /etc/netstart stop; /etc/netstart start Соединение рвалось в обоих случаях, но разве это проблема?
|