|
 |
|
Примеры скриптов настройки маскарадингаЯдро 2.0, ipfwadm
#!/bin/sh
#04/04/1999
#Пример скрипта rc.firewall для ядер версий 2.0, использующих ipfwadm
#Я не могу полностью поручиться за этот скрипт. Я нашел его
#несколько лет назад и немножко подправил.
#Вопросы и предложения посылайте по адресу acj@home.com.
#---------------------------------------------------------------------
#Переменные
#---------------------------------------------------------------------
#локальный ethernet-интерфейс
localip=
localif=eth0
#статический ethernet-интерфейс
staticip=
staticif=eth1
PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
#---------------------------------------------------------------------
#Политика Firewall для входящего потока
#---------------------------------------------------------------------
#удаляем все правила для входящего потока
/sbin/ipfwadm -I -f
#устанавливаем запрет всех пакетов для входящего потока
/sbin/ipfwadm -I -p deny
#---------------------------------------------------------------------
#разрешено посылать пакеты, куда угодно, с локального интерфейса с локальных машин
/sbin/ipfwadm -I -a accept -V $localip -S $localip/24 -D 0.0.0.0/0
#запрещаем все пакеты, идущие из статического интерфейса, "от локальных машин" (spoofing)
#записываем это в журнал
/sbin/ipfwadm -I -a deny -V $staticip -S $localip/24 -D 0.0.0.0/0 -o
#разрешаем все пакеты, идущие, откуда угодно, на статический интерфейс
/sbin/ipfwadm -I -a accept -V $staticip -S 0.0.0.0/0 -D $staticip/32
#разрешаем все пакеты, идущие через интерфейс обратной петли
/sbin/ipfwadm -I -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0
#запрещаем все остальные входящие пакеты - записываем это в журнал
/sbin/ipfwadm -I -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o
#---------------------------------------------------------------------
#Политика Firewall для исходящего потока
#---------------------------------------------------------------------
#удаляем все правила для исходящего потока
/sbin/ipfwadm -O -f
#устанавливаем запрет всего для исходящего потока
/sbin/ipfwadm -O -p deny
#---------------------------------------------------------------------
#разрешены пакеты, откуда угодно, на локальном интерфейса для локальных машин
/sbin/ipfwadm -O -a accept -V $localip -S 0.0.0.0/0 -D $localip/24
#запрещены исходящие через статический интерфейс пакеты для локальной сети (ошибка маршрутизации)
/sbin/ipfwadm -O -a deny -V $staticip -S 0.0.0.0/0 -D $localip/24 -o
#запрещены исходящие через статический интерфейс пакеты из локальной сети (ошибка маскарадинга)
/sbin/ipfwadm -O -a deny -V $staticip -S $localip/24 -D 0.0.0.0/0 -o
#запрещены исходящие через статический интерфейс пакеты для локальной сети (ошибка маскарадинга)
/sbin/ipfwadm -O -a deny -V $staticip -S 0.0.0.0/0 -D $localip/24 -o
#разрешено все остальное от статического интерфейса
/sbin/ipfwadm -O -a accept -V $staticip -S $staticip/32 -D 0.0.0.0/0
#разрешаем все пакеты, идущие через интерфейс обратной петли
/sbin/ipfwadm -O -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0
#все остальное запрещено
/sbin/ipfwadm -O -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o
#--------------------------------------------------------------------------
#Политика Firewall для проходящего потока
#--------------------------------------------------------------------------
#удаляем все правила для проходящего потока
/sbin/ipfwadm -F -f
#устанавливаем запрет всего для проходящего потока
/sbin/ipfwadm -F -p deny
#маскарадинг для всего, идущего из локальной сети через статический интерфейс
/sbin/ipfwadm -F -a masquerade -W $staticif -S $localip/24 -D 0.0.0.0/0
#другая маршрутизация запрещена
/sbin/ipfwadm -F -a deny -S 0.0.0.0/0 -D 0.0.0.0/0
exit 0
|
Ядро 2.1/2.2, ipchains
#!/bin/sh
#04/04/1999
#Пример скрипта rc.firewall для новых ядер версий 2.1/2.2, использующих ipchains,
#определяющий пользовательские потоки для каждого интерфейса. Здесь есть также
#правила, защищающие от spoofing-а, которые может быть и не очень нужны -
#подобная защита уже встроена в ядро.
#Вопросы и предложения посылайте по адресу acj@home.com.
#---------------------------------------------------------------------
#Переменные
#---------------------------------------------------------------------
#локальный ethernet-интерфейс
localip=
localif=eth0
#статический ethernet-интерфейс
staticip=
staticif=eth1
#интерфейс обратной петли
loopback=lo
PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
#---------------------------------------------------------------------
#Удаляем все правила для входящего, исходящего и проходящего потоков
#По умолчанию отбрасываем все пакеты
#---------------------------------------------------------------------
#устанавливаем запрет всего для входящего потока
ipchains -P input DENY
#удаляем все правила для входящего потока
ipchains -F input
#---------------------------------------------------------------------
#устанавливаем запрет всего для исходящего потока
ipchains -P output DENY
#удаляем все правила для исходящего потока
ipchains -F output
#---------------------------------------------------------------------
#устанавливаем запрет всего для проходящего потока
ipchains -P forward DENY
#удаляем все правила для проходящего потока
ipchains -F forward
#---------------------------------------------------------------------
#удаляем все правила вообще (в том числе и пользовательские)
#ipchains -F
#удаляем все пользовательские потоки - вам это может понадобиться
#ipchains -X
#---------------------------------------------------------------------
#Политика Firewall для входящего потока
#---------------------------------------------------------------------
#создаем пользовательский входящий поток для статического интерфейса
ipchains -N $staticif"-i"
#в этом потоке удаляем все правила (на всякий случай)
ipchains -F $staticif"-i"
#блокируем все входящие SYN-пакеты на всех портах на статическом интерфейсе
#это может показаться грубым, но это правильно
#ipchains -A $staticif"-i" -j DENY -p tcp -y -i $staticif -s 0/0 \
#-d $staticip : -l
#запрещаем все пакеты, идущие из статического интерфейса, "от локальных машин" (spoofing)
#записываем это в журнал
ipchains -A $staticif"-i" -j DENY -i $staticif -s $localip/16 -d 0/0 -l
#разрешаем все пакеты, идущие, откуда угодно, на статический интерфейс
ipchains -A $staticif"-i" -j ACCEPT -i $staticif -s 0/0 -d $staticip/32
#запрещаем все остальные входящие пакеты - записываем это в журнал
ipchains -A $staticif"-i" -j DENY -s 0/0 -d 0/0 -l
#---------------------------------------------------------------------
#создаем пользовательский входящий поток для интерфейса локальной сети
ipchains -N $localif"-i"
#в этом потоке удаляем все правила (на всякий случай)
ipchains -F $localif"-i"
#разрешено посылать пакеты, куда угодно, с локального интерфейса с локальных машин
ipchains -A $localif"-i" -j ACCEPT -i $localif -s $localip/24 -d 0/0
#запрещаем все остальные входящие пакеты - записываем это в журнал
ipchains -A $localif"-i" -j DENY -s 0/0 -d 0/0 -l
#---------------------------------------------------------------------
#создаем пользовательский входящий поток для интерфейса обратной петли
ipchains -N $loopback"-i"
#в этом потоке удаляем все правила (на всякий случай)
ipchains -F $loopback"-i"
#разрешено все, идущее на интерфейс обратной петли
ipchains -A $loopback"-i" -j ACCEPT -i $loopback -s 0/0 -d 0/0
#запрещаем все остальные входящие пакеты - записываем это в журнал
ipchains -A $loopback"-i" -j DENY -s 0/0 -d 0/0 -l
#--------------------------------------------------------------------------
#Политика Firewall для проходящего потока
#--------------------------------------------------------------------------
#создаем пользовательский проходящий поток для статического интерфейса
ipchains -N $staticif"-f"
#в этом потоке удаляем все правила (на всякий случай)
ipchains -F $staticif"-f"
#маскарадинг для всего, что идет из локальной сети, куда угодно
ipchains -A $staticif"-f" -j MASQ -i $staticif -s $localip/24 -d 0/0
#запрещаем все остальные проходящие пакеты - записываем это в журнал
ipchains -A $staticif"-f" -j DENY -s 0/0 -d 0/0 -l
#---------------------------------------------------------------------
#создаем пользовательский проходящий поток для интерфейса локальной сети
ipchains -N $localif"-f"
#в этом потоке удаляем все правила (на всякий случай)
ipchains -F $localif"-f"
#запрещаем все остальные проходящие пакеты - записываем это в журнал
ipchains -A $localif"-f" -j DENY -s 0/0 -d 0/0 -l
#---------------------------------------------------------------------
#создаем пользовательский проходящий поток для интерфейса обратной петли
ipchains -N $loopback"-f"
#в этом потоке удаляем все правила (на всякий случай)
ipchains -F $loopback"-f"
#запрещаем все остальные проходящие пакеты - записываем это в журнал
ipchains -A $loopback"-f" -j DENY -s 0/0 -d 0/0 -l
#---------------------------------------------------------------------
#Политика Firewall для исходящего потока
#---------------------------------------------------------------------
#создаем пользовательский исходящий поток для статического интерфейса
ipchains -N $staticif"-o"
#в этом потоке удаляем все правила (на всякий случай)
ipchains -F $staticif"-o"
#запрещены исходящие через статический интерфейс пакеты для локальной сети (ошибка маршрутизации)
ipchains -A $staticif"-o" -j DENY -i $staticif -s 0/0 -d $localip/24 -l
#запрещены исходящие через статический интерфейс пакеты из локальной сети (ошибка маскарадинга)
ipchains -A $staticif"-o" -j DENY -i $staticif -s $localip/24 -d 0/0 -l
#разрешено все остальное от статического интерфейса
ipchains -A $staticif"-o" -j ACCEPT -i $staticif -s $staticip/32 -d 0/0
#запрещаем все остальные исходящие пакеты - записываем это в журнал
ipchains -A $staticif"-o" -j DENY -s 0/0 -d 0/0 -l
#---------------------------------------------------------------------
#создаем пользовательский исходящий поток для интерфейса локальной сети
ipchains -N $localif"-o"
#в этом потоке удаляем все правила (на всякий случай)
ipchains -F $localif"-o"
#разрешены пакеты, откуда угодно, на локальном интерфейса для локальных машин
ipchains -A $localif"-o" -j ACCEPT -i $localif -s 0/0 -d $localip/24
#запрещаем все остальные исходящие пакеты - записываем это в журнал
ipchains -A $localif"-o" -j DENY -s 0/0 -d 0/0 -l
#---------------------------------------------------------------------
#создаем пользовательский исходящий поток для интерфейса обратной петли
ipchains -N $loopback"-o"
#в этом потоке удаляем все правила (на всякий случай)
ipchains -F $loopback"-o"
#разрешено все, идущее из интерфейса обратной петли
ipchains -A $loopback"-o" -j ACCEPT -i $loopback -s 0/0 -d 0/0
#запрещаем все остальные исходящие пакеты - записываем это в журнал
ipchains -A $loopback"-o" -j DENY -s 0/0 -d 0/0 -l
#--------------------------------------------------------------------------
#Для большей уверенности разрешаем ядру переадресацию пакетов
#--------------------------------------------------------------------------
/bin/echo 1 > /proc/sys/net/ipv4/ip_forward
#--------------------------------------------------------------------------
#добавляем в стандартные потоки правила со ссылками на пользовательские потоки
#--------------------------------------------------------------------------
#входящий поток на интерфейсе локальной сети
ipchains -A input -i $localif -j $localif"-i"
#входящий поток на статическом интерфейсе
ipchains -A input -i $staticif -j $staticif"-i"
#входящий поток на интерфейсе обратной петли
ipchains -A input -i $loopback -j $loopback"-i"
#-------------------------------------------------------------------------
#исходящий поток на интерфейсе локальной сети
ipchains -A output -i $localif -j $localif"-o"
#исходящий поток на статическом интерфейсе
ipchains -A output -i $staticif -j $staticif"-o"
#исходящий поток на интерфейсе обратной петли
ipchains -A output -i $loopback -j $loopback"-o"
#-------------------------------------------------------------------------
#проходящий поток на интерфейсе локальной сети
ipchains -A forward -i $localif -j $localif"-f"
#проходящий поток на статическом интерфейсе
ipchains -A forward -i $staticif -j $staticif"-f"
#проходящий поток на интерфейсе обратной петли
ipchains -A forward -i $loopback -j $loopback"-f"
#---------------------------------------------------------------------
#Проверка Сверх-Параноика --- несмотря на отказ всем пакетам по умолчанию,
#блокируем все пакеты на всех интерфейсах
#---------------------------------------------------------------------
#запрещаем все остальные входящие пакеты - записываем это в журнал
ipchains -A input -j DENY -s 0/0 -d 0/0 -l
#запрещаем все остальные исходящие пакеты - записываем это в журнал
ipchains -A output -j DENY -s 0/0 -d 0/0 -l
#запрещаем все остальные проходящие пакеты - записываем это в журнал
ipchains -A forward -j DENY -s 0/0 -d 0/0 -l
exit 0
|
|
 |
 |
|
|
 |
 |
 |
Новости мира IT:
- 19.06 - В России появятся складные смартфоны на отечественной платформе «Ред ОС М»
- 19.06 - В переговорах OpenAI и Microsoft сохраняется несколько важных противоречий
- 19.06 - OpenAI вскрыла тёмные личности в ИИ, отвечающие за ложь, сарказм и токсичные ответы
- 19.06 - Поставщиком гибких дисплеев для складного iPhone будет компания Samsung
- 19.06 - Apple намеревается использовать ИИ для разработки своих чипов
- 18.06 - «Сбер» выпустит отечественный рассуждающий ИИ
- 18.06 - Google выпустила финальную версию мощной ИИ-модели Gemini 2.5 Pro, а также экономную Gemini 2.5 Flash-Lite
- 18.06 - ИИ-стартап xAI Илона Маска собрался привлечь ещё $4,3 млрд в дополнение к $5 млрд долговых обязательств
- 18.06 - Роскомнадзор пойдёт по трафику: операторов обяжут раскрыть маршруты и устройства в сетях
- 11.06 - Опубликована 65 редакция рейтинга самых высокопроизводительных суперкомпьютеров
- 11.06 - ВТБ начал тестировать отечественную альтернативу Apple Pay — сервис «Волна» от НСПК
- 11.06 - Google выпустила стабильную версию Android 16, но масштабный редизайн ещё не готов
- 11.06 - Руководство Apple признало, что первая попытка создать ИИ-версию Siri провалилась
- 11.06 - Госдума РФ приняла законопроект о создании российского национального мессенджера
- 11.06 - OpenAI выпустила мощную модель o3-pro, но она медленнее, чем o1-pro
- 11.06 - IBM построит первый в мире модульный квантовый компьютер с 200 логическими кубитами и встроенной коррекцией ошибок
- 11.06 - Nintendo установила рекорд, продав более 3,5 млн консолей Switch 2 всего за четыре дня
- 09.06 - Презентация национального российского мессенджера состоится уже летом
- 09.06 - Apple представила iPadOS 26 со стеклянным дизайном, окнами и другими улучшениями
- 09.06 - Российские 4G и 5G заработают на зеленоградских чипах
Архив новостей
|
 |
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
|
 |
 |
|
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее... |
|