Linux mini-HOWTO

         

/Etc/cipe/ip-down



Ядро 2.0, ipfwadm, cipe 1.0.x

#!/bin/bash # ip-down #3/29/1999 #Это пример скрипта ip-down для старых ядер версий 1.x 2.x, использующих ipfwadm, #удаляющий маршруты и правила firewall, заданные ранее для соединения вашей сети класса c #с удаленной сетью класса c. #Вопросы и предложения посылайте по адресу acj@home.com

#-------------------------------------------------------------------------- #Настраиваем некоторые переменные device=$1 # Интерфейс CIPE me=$2 # Наш UDP-адрес pid=$3 # ID процесса демона ipaddr=$4 # IP-адрес нашего CIPE-устройства ptpaddr=$5 # IP-адрес удаленного CIPE-устройства option=$6 # аргументы, переданные через опции скрипта

PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"

#рас(за)-комментируйте следующую строку для включение в системный журнал #всех попыток неавторизованного доступа. Эта строка должна соответствовать #строке в скрипте ip-up для правильного отключения правил. log="-o"

#-------------------------------------------------------------------------- umask 022

# пример записи в журнал #echo "DOWN $*" >> /var/adm/cipe.log

# во многих системах требуются такие pid-файлы #rm -f /var/run/$device.pid

#-------------------------------------------------------------------------- #Правила для входящего потока firewall для интерфейса cipe

#удаляем запрещение всех остальных входящих с интерфейса cipe пакетов ipfwadm -I -d deny -W $device -S 0/0 -D 0/0 $log

#удаляем разрешение всех пакетов, входящих с интерфейса cipe из удаленной сети для локальной ipfwadm -I -d accept -W $device -S $ptpaddr/24 -D $ipaddr/24

#удаляем разрешение всех пакетов, входящих с интерфейса cipe из локальной сети для удаленной ipfwadm -I -d accept -W $device -S $ipaddr/24 -D $ptpaddr/24

#удаляем запрещение всех пакетов, входящих с интерфейса cipe из локальной сети для локальной ipfwadm -I -d deny -W $device -S $ipaddr/24 -D $ipaddr/24 $log

#-------------------------------------------------------------------------- #Правила для исходящего потока firewall для интерфейса cipe


# удаляем запрещение всех остальных, исходящих из интерфейса cipe, пакетов ipfwadm -O -d deny -W $device -S 0/0 -D 0/0 $log

#удаляем разрешение всех пакетов, исходящих из интерфейса cipe, из удаленной сети для локальной ipfwadm -O -d accept -W $device -S $ptpaddr/24 -D $ipaddr/24

#удаляем разрешение всех пакетов, исходящих из интерфейса cipe, из локальной сети для удаленной ipfwadm -O -d accept -W $device -S $ipaddr/24 -D $ptpaddr/24

#удаляем запрещение всех пакетов, исходящих из интерфейса cipe, из локальной сети для локальной ipfwadm -O -d deny -W $device -S $ipaddr/24 -D $ipaddr/24 $log

#-------------------------------------------------------------------------- #Правила для проходящего потока firewall для интерфейса cipe

#удаляем запрещение всех остальных пакетов, проходящих через интерфейс cipe ipfwadm -F -d deny -W $device -S 0/0 -D 0/0 $log

#удаляем разрешение всех пакетов, проходящих через интерфейс cipe, из удаленной сети для локальной ipfwadm -F -d accept -W $device -S $ptpaddr/24 -D $ipaddr/24

#удаляем разрешение всех пакетов, проходящих через интерфейс cipe, из локальной сети для удаленной ipfwadm -F -d accept -W $device -S $ipaddr/24 -D $ptpaddr/24

#-------------------------------------------------------------------------- #Дополнение к системе безопасности - в случае, если стандартное правило для #проходящего потока установлено в DENY или REJECT.

#define machine interfaces #localif="eth0" #staticif="eth1" ;для пользователей кабельных модемов #staticif="ppp0" ;для пользователей обычных модемов

#По-настоящему грубо определяем удаленный ip-адрес, взяв его из файла options. #В идеале этот адрес надо передавать скрипту через аргументы #Надо раскомментировать обе строки #peerfile=`grep $device /etc/cipe/options.* | cut -f1 -d:` #peer=`grep peer $peerfile | cut -f1 -d: | awk '{print $2}'`

#Запоминаем удаленный ip-адрес для скрипта ip-down (???) #echo $peer > /var/run/$device.peerip

#удаляем разрешение пересылки пакетов из локальной сети в удаленную, через сетевую карту #ipfwadm -F -d accept -W $localif -S $ipaddr/24 -D $ptpaddr/24 #удаляем разрешение пересылки пакетов из удаленной сети в локальную, через сетевую карту #ipfwadm -F -d accept -W $localif -S $ptpaddr/24 -D $ipaddr/24 #удаляем разрешение пересылки пакетов через интерфейс staticif от этой системы к удаленной #myaddr=`echo $me | cut -f1 -d:` #ipfwadm -F -d accept -W $staticif -S $myaddr -D $peer #-------------------------------------------------------------------------- #Второе дополнение к системе безопасности - блокируем все запросы к udp-порту #cipe, кроме идущих от удаленной машины



#необходимо определить udp-порты интерфейса cipe #получаем наш udp-порт #if [ "$option" = "" ]; then # myport=`echo $me | cut -f2 -d:` #else # myport=$option #fi

#получаем удаленный udp-порт # переменная peerfile должна быть задана #peerport=`grep peer $peerfile | cut -f2 -d:`

#запоминаем удаленный udp-порт cipe для скрипта ip-down (???) #echo $peerport > /var/run/$device.peerport

#получаем наш ip-адрес #myaddr=`echo $me | cut -f1 -d:`

#удаляем запрещение всех запросов к udp-порту cipe #ipfwadm -I -d deny -P udp -W $staticif -S 0/0 -D $myaddr $myport $log #удаляем разрешение всех запросов к udp-порту cipe, идущих из интерфейса staticif, от удаленной машины #ipfwadm -I -d accept -P udp -W $staticif -S $peer $peerport \ #-D $myaddr $myport

exit 0



Ядро 2.1/2.2, ipchains, cipe 1.2.x



#!/bin/sh # ip-down #3/29/1999 #Это пример скрипта ip-down для новых ядер версий 2.1/2.2, использующих ipchains, #удаляющий маршруты и правила firewall, заданные ранее для соединения вашей сети класса c #с удаленной сетью класса c. #Вопросы и предложения посылайте по адресу acj@home.com.

#-------------------------------------------------------------------------- #Настраиваем некоторые переменные device=$1 # Интерфейс CIPE me=$2 # Наш UDP-адрес pid=$3 # ID процесса демона ipaddr=$4 # IP-адрес нашего CIPE-устройства ptpaddr=$5 # IP-адрес удаленного CIPE-устройства option=$6 # аргументы, переданные через опции скрипта PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"

#рас(за)-комментируйте следующую строку для включение в системный журнал #всех попыток неавторизованного доступа. Эта строка должна соответствовать #строке в скрипте ip-up для правильного отключения правил. log="-l"

#-------------------------------------------------------------------------- umask 022

# пример записи в журнал #echo "DOWN $*" >> /var/adm/cipe.log

# во многих системах требуются такие pid-файлы #rm -f /var/run/$device.pid

#-------------------------------------------------------------------------- #удаляем с главных потоков ссылки на пользовательские ipchains -D input -i $device -j $device"i" ipchains -D output -i $device -j $device"o" ipchains -D forward -i $device -j $device"f"



#-------------------------------------------------------------------------- # Удаляем все правила из пользовательского входящего потока ipchains -F $device"i" #Удаляем пользовательский входящий поток ipchains -X $device"i"

#-------------------------------------------------------------------------- #Удаляем все правила из пользовательского исходящего потока ipchains -F $device"o" #Удаляем пользовательский исходящий поток ipchains -X $device"o"

#-------------------------------------------------------------------------- #Удаляем все правила из пользовательского проходящего потока ipchains -F $device"f" #Удаляем пользовательский проходящий поток ipchains -X $device"f"

#-------------------------------------------------------------------------- #Удаляем дополнительные меры безопасности

#получаем ip-адрес удаленной машины #peer=`cat /var/run/$device.peerip`

#определяем интерфейсы машины #localif="eth0" #staticif="eth1" ;для пользователей кабельных модемов #staticif="ppp0" ;для пользователей обычных модемов

#получаем наш ip-адрес #myaddr=`echo $me |cut -f1 -d:`

#удаляем разрешение пересылки пакетов из локальной сети в удаленную, через сетевую карту #ipchains -D forward -j ACCEPT -i $localif -s $ipaddr/24 -d $ptpaddr/24

#удаляем разрешение пересылки пакетов из удаленной сети в локальную, через сетевую карту #ipchains -D forward -j ACCEPT -i $localif -s $ptpaddr/24 -d $ipaddr/24

#удаляем разрешение пересылки пакетов через интерфейс staticif от этой системы к удаленной #ipchains -D forward -j ACCEPT -i $staticif -s $myaddr -d $peer

#удаляем файл с запомненным удаленным ip-адресом #rm /var/run/$device.peerip

#-------------------------------------------------------------------------- #Удаляем дополнительные меры безопасности

#получаем удаленный udp-порт #peerport=`cat /var/run/$device.peerport`

#получаем наш udp-порт #if [ "$option" = "" ]; then # myport=`echo $me | cut -f2 -d:` #else # myport=$option #fi

#удаляем запрещение всех запросов к udp-порту cipe #ipchains -D input -j DENY -p udp -i $staticif -s 0/0 \ #-d $myaddr $myport $log #удаляем разрешение всех запросов к udp-порту cipe, идущих из интерфейса staticif, от удаленной машины #ipchains -D input -j ACCEPT -p udp -i $staticif -s $peer $peerport \ #-d $myaddr $myport

#удаляем файл с запомненным удаленным ip-адресом #rm /var/run/$device.peerport

#--------------------------------------------------------------------------

exit 0




Содержание раздела