Перейти до

Помогите разобраться с файерволом


Рекомендованные сообщения

Что именно не работает ?

Не блокирует доступ на внешние ип заданные в правилах всем пользователям кроме админов

 

Нужно заблокировать полный доступ с сети всем пользователям кроме админов на конкретные ип вышестоящего провайдера

Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 77
  • Створено
  • Остання відповідь

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

А что это у вас, батенька, логи в неположенном месте лежат, а?

ssh, другого админа отправить учиться.

Вот мучился мучился но всё таки осилил

Выкладываю скрипт запуска

/etc/init.d/bil

#!  /bin/sh
# /etc/init.d/bil
########################################################################
######################## Конфигурация путей ############################
HTB="/etc/init.d/htb.init" #Путь к шейперу
IPTABLES="/sbin/iptables" # Путь до IPTABLES
IPSET="/usr/sbin/ipset" # Путь до IPSET
WAN_IP="172.16.0.2" #IP адрес внешнего интерфейса
LOCAL_IP0="10.0.0.1" #IP адрес локальный подсеть 10
LOCAL_IP1="192.168.10.5" #IP адрес локальный подсеть 192
IF_WORLD="eth1" #Интерфейс смотрящий в грешный мир
IF_LOCAL0="eth0" #Интерфейс локалки 10.0.0.0/24
IF_LOCAL1="eth3" #Интерфейс локалки 192.168.10.0/24
SQL="/etc/init.d/mysql" # Путь до init.d скрипта MySQL
WEB="/etc/init.d/apache2" #  Путь до init.d скрипта Apache2
DHCP="/etc/init.d/dhcp-server" # Путь до init.d скрипта Dhcp3-server
BAND="/etc/init.d/bandwidthd" # Путь до init.d скрипта Bandwindthd
STAR="/usr/sbin/stargazer" # Путь до bin файла stargazer
SOFTD="/etc/init.d/softflowd" #  Путь до init.d скрипта  Softflowd
#Softflowd для разных подсетей
SOFT="/usr/sbin/softflowd -i eth0 -n 127.0.0.1:42111" # Тут указываем интерфейс на котором висят юзвери eth0
SOFT="/usr/sbin/softflowd -i eth3 -n 127.0.0.1:42111" # Тут указываем интерфейс на котором висят юзвери eth3
########################################################################
# Что будет происходить и запускаться при старте: (Конфигурация запуска)
########################################################################
case "$1" in
  start)
echo "###################################################################################"
echo "###################################################################################"
echo "########################### Запускаем Биллинговую систему #########################"
echo "###################################################################################"
echo "###################################################################################"
#Разрешаем хождение пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X
$IPTABLES -t mangle -Z
$IPTABLES -t mangle -F
## allow loopback
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
#По умолчанию проходящие пакеты в DROP
$IPTABLES -P FORWARD DROP
# Разрешаем пингам ходить всюду и всегда
$IPTABLES -t filter -A INPUT -p icmp -j ACCEPT
$IPTABLES -t filter -A FORWARD -p icmp -j ACCEPT
$IPTABLES -t filter -A OUTPUT -p icmp -j ACCEPT
#Создаём цепочку бана для ненужных ип
#Например банить злостных ботов нарушающих спокоствие сервера
$IPSET -F Virus
$IPSET -X Virus
$IPSET -N Virus nethash
$IPSET -A Virus 216.163.188.0/24
$IPSET -A Virus 59.37.54.46/31
$IPTABLES -t filter -I INPUT -m set --set Virus src -j DROP
# Создаём списки для подсети: (10.0)
$IPSET -N FFIN ipmap --network 10.0.0.0/24
$IPSET -N FSNAT ipmap --network 10.0.0.0/24
#$IPSET -N FSNATDROP ipmap --network 10.0.0.0/24
# Создаём списки для подсети: (192.168)
$IPSET -N FFINW ipmap --network 192.168.10.0/24
$IPSET -N FSNATW ipmap --network 192.168.10.0/24
#$IPSET -N FSNATDROPW ipmap --network 192.168.10.0/24
#Закрываем порт прокси для неавторизованных и открываем авторизованных и протаскиваем
#$IPTABLES -t filter -I INPUT -p tcp -s 192.168.10.0/24 --dport 3128 -j DROP
$IPTABLES -t filter -I INPUT -p tcp -s 10.0.0.0/24 --dport 3128 -j DROP
#$IPTABLES -t nat -A PREROUTING -m set --set FSNAT  -p tcp --dport 80 -j REDIRECT --to-ports 10.0.0.1:3128
#$IPTABLES -t nat -A PREROUTING -m set --set FSNATW  -p tcp --dport 80 -j REDIRECT --to-ports 10.0.0.1:3128
# Добавляем наши адреса в NAT таблицу 10.0.0.0/24
$IPTABLES -t filter -I FORWARD -m set --set FFIN src -j ACCEPT
$IPTABLES -t filter -I FORWARD -m set --set FFIN dst -j ACCEPT
$IPTABLES -t nat -A POSTROUTING  -m set --set FSNAT src -o $IF_WORLD -j SNAT --to-source $WAN_IP
#$IPTABLES -t nat -A PREROUTING -s 192.168.10.0/24 -p TCP --dport 80 -j DNAT --to 10.0.0.1:82
# Добавляем наши адреса в NAT таблицу 192.168.10.0/24
$IPTABLES -t filter -I FORWARD -m set --set FFINW src -j ACCEPT
$IPTABLES -t filter -I FORWARD -m set --set FFINW dst -j ACCEPT
$IPTABLES -t nat -A POSTROUTING  -m set --set FSNATW src -o $IF_WORLD -j SNAT --to-source $WAN_IP
#$IPTABLES -t nat -A PREROUTING -s 10.0.0.0/24 -p TCP --dport 80 -j DNAT --to 10.0.0.1:82
#разрешаем ходить на локальный сайт
$IPTABLES -t filter -I INPUT -p tcp --dport 80 -j ACCEPT
#Редирект неавторизованных на страничку приветствия и контактов
$IPSET -N authorized1 ipmap --network 10.0.0.0/24
$IPSET -N authorized2 ipmap --network 192.168.10.0/24
$IPTABLES -A FORWARD -m set --set authorized1 src,dst -j ACCEPT
$IPTABLES -A FORWARD -m set --set authorized2 src,dst -j ACCEPT
$IPTABLES -A FORWARD -m set --set authorized1 dst,src -j ACCEPT
$IPTABLES -A FORWARD -m set --set authorized2 dst,src -j ACCEPT
$IPTABLES -t nat -N park
$IPTABLES -t nat -A park -m set --set authorized1 src -j RETURN
$IPTABLES -t nat -A park -m set --set authorized2 src -j RETURN
$IPTABLES -t nat -A park -d 10.0.0.1/32 -j RETURN
$IPTABLES -t nat -A park -p TCP --dport 80 -j DNAT --to 10.0.0.1:82
$IPTABLES -t nat -A PREROUTING -s 10.0.0.0/24 -j park
$IPTABLES -t nat -A PREROUTING -s 192.168.10.0/24 -j park
#Перенаправляем всех на внутренний прокси
#$IPTABLES -t nat -A PREROUTING -s 10.0.0.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128
#$IPTABLES -t nat -A PREROUTING -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128
# Создание правил доступа к Авангард (разрешённые IP адреса)
$IPSET -N WHITE iptree
$IPSET -A WHITE 10.0.0.0
$IPSET -A WHITE 10.128.0.0
#Адреса серверов Авангард страниц:
$IPSET -N AVANGARD iptree
$IPSET -A AVANGARD 212.48.199.125
$IPSET -A AVANGARD 212.48.192.132
$IPSET -A AVANGARD 193.222.109.119
$IPSET -A AVANGARD 193.222.109.113
$IPSET -A AVANGARD 193.222.109.102
$IPSET -A AVANGARD 78.36.121.68
$IPSET -A AVANGARD 78.36.121.69
# Запрещаем всем , кроме 1 адреса (админа)  посейщать Авангард
$IPTABLES -t filter -I FORWARD -s ! 10.0.0.0/32 -m set --set AVANGARD dst -j DROP
#Закрываем доступ к нужным портам
$IPSET -F Vports
$IPSET -X Vports
$IPSET -N Vports portmap --from 1 --to 65535
$IPTABLES -t filter -I FORWARD -m set --set Vports dst -j DROP
#$IPSET -A Vports 135
$IPSET -A Vports 25
#$IPSET -A Vports 139
#$IPSET -A Vports 445
# Запускаем Bandwindthd
$BAND start
# Запускаем HTB (Шейпер)
$HTB start
# Запускаем прослушку Softflowd для (10)
$SOFT

# Запускаем Stargazer
$STAR
echo "###################################################################################"
echo "###################################################################################"
echo "#################################### Биллинг запущен ##############################"
echo "###################################################################################"
echo "###################################################################################"
 ;;


########################################################################################
########################################################################################
# Что будет происходить при остановке скрипта: (Конфигурация завершения работы биллинга)
########################################################################################

  stop)
echo "###################################################################################"
echo "###################################################################################"
echo "############################# Выключаем систему Биллинга ##########################"
echo "###################################################################################"
echo "###################################################################################"

#Убиваем все процессы старгазера
killall stargazer
#Удаляем правила шейпера
tc qdisc del dev eth1 root #(10)
#Останавливаем softflowd
$SOFTD stop
#Останавливаем Bandwindthd
$BAND stop
#Останавливаем шейпер HTB
$HTB stop
# Чистим правила в таблицах Iptables и удаляем списки IPSET
#(10)
$IPTABLES -F
$IPTABLES -F -t nat
$IPSET -F FFIN
$IPSET -F FFINW
$IPSET -F FFINV
$IPSET -X FFIN
$IPSET -X FFINW
$IPSET -X FFINV
$IPSET -F FSNAT
$IPSET -F FSNATW
$IPSET -F FSNATV
$IPSET -X FSNAT
$IPSET -X FSNATW
$IPSET -X FSNATV
$IPSET -F FSNATDROP
$IPSET -F FSNATDROPW
$IPSET -F FSNATDROPV
$IPSET -X FSNATDROP
$IPSET -X FSNATDROPW
$IPSET -X FSNATDROPV
#Удаляем учётные записи с конфигурацией шейпера.
rm -rf /etc/stargazer/dn/*
echo "###################################################################################"
echo "###################################################################################"
echo "#################################### Биллинг выключен #############################"
echo "###################################################################################"
echo "###################################################################################"
 ;;
  *)
 echo "Usage: /etc/init.d/billing {start|stop}"
 exit 1
 ;;
esac
exit 0

 

А так же скрипты он коннект

#!/bin/bash
#OnConnect
IFUP="eth1"
IFDOWN="eth1"

###########################
LOGIN=$1
IP=$2
CASH=$3
ID=$4
SPEED=`/etc/stargazer/GetSpeed $LOGIN`
UPSPEED=`/etc/stargazer/GetUpSpeed $LOGIN`
MAC=`/etc/stargazer/GetMac $LOGIN`
SCOUNT="Kbit"
IPT="/sbin/iptables"
IPS="/usr/sbin/ipset"
tc="/sbin/tc"
arpcmd="/usr/sbin/arp"
cur_date=`date +%Y.%m.%d`
cur_time=`date +%H:%M:%S`
#Разрешаем авторизованным инет
#$IPS -D $IP NOINET
# DELETE RULEZ
######################################################################
#iptables -A INPUT -i eth3 -p tcp --dport 80 -s $ip -j ACCEPT
#iptables -A INPUT -i eth3 -p tcp --dport 3128 -s $ip -j ACCEPT
#iptables -t nat -A PREROUTING -i eth3 -p tcp --dport 80 -s $ip -j REDIRECT --to-port 3128
#$IPT -t nat -D PREROUTING --src $IP --dst 0.0.0.0/0 -p tcp --dport 80 -j DNAT --to-destination 172.16.0.2
#$IPT -t filter -D INPUT -s $IP -j ACCEPT
#while [ $? -eq 0 ]
#do
#$IPT -t filter -D INPUT -s $IP -j ACCEPT
#done
#$IPT -t filter -D FORWARD -s $IP -j ACCEPT
#while [ $? -eq 0 ]
#do
#$IPT -t filter -D FORWARD -s $IP -j ACCEPT
#done
#$IPT -t filter -D FORWARD -d $IP -j ACCEPT
#while [ $? -eq 0 ]
#do
#$IPT -t filter -D FORWARD -d $IP -j ACCEPT
#done
#$IPT -t filter -D OUTPUT -d $IP -j ACCEPT
#while [ $? -eq 0 ]
#do
#$IPT -t filter -D OUTPUT -d $IP -j ACCEPT
#done
#######################################################################
# fix user mac to ip
#$arpcmd -d $IP $MAC
#while [ $? -eq 0 ]
#do
#$arpcmd -d $IP $MAC
#done
$arpcmd -s $IP $MAC
############################
declare -i mark1=$ID+101
declare -i mark2=$ID+4101
$IPT -t mangle -A FORWARD -d $IP -j MARK --set-mark $mark1
$IPT -t mangle -A FORWARD -s $IP -j MARK --set-mark $mark2

############################################
########## 1subnet
#Download
$tc class add dev $IFDOWN parent 1:1 classid 1:$mark1 htb rate $SPEED$SCOUNT
$tc filter add dev $IFDOWN parent 1: protocol ip prio 3 handle $mark1 fw classid 1:$mark1
#Upload
$tc class add dev $IFUP parent 1:1 classid 1:$mark2 htb rate $UPSPEED$SCOUNT
$tc filter add dev $IFUP parent 1: protocol ip prio 3 handle $mark2 fw classid 1:$mark2
#############################################

## Интернет для (10)
$IPS -D FSNATDROP $IP
## Интернет для (192)
$IPS -D FSNATDROPW $IP
## Интернет для (10.128)
$IPS -D FSNATDROV $IP
while [ $? -eq 0 ]
do
$IPS -D FSNATDROP $IP
$IPS -D FSNATDROPW $IP
$IPS -D FSNATDROPV $IP
done
$IPS -A FFIN $IP
$IPS -A FFINW $IP
$IPS -A FFINV $IP
$IPS -A FSNAT $IP
$IPS -A FSNATW $IP
$IPS -A FSNATV $IP

#
################################################
#Редирект на авторизацию отключен для пользователя
ipset -A authorized1 $2
ipset -A authorized2 $2

# DAY/NIGHT switcher
/bin/echo $SPEED:`expr $ID + 4101` > /etc/stargazer/dn/$LOGIN

# ADD TO LOG
echo "$cur_date $cur_time CONNECT: ID-$ID;LOGIN-$LOGIN;IP-$IP;CASH-$CASH;SPEED-$SPEED;UPSPEED-$UPSPEED,MAC-$MAC" >> /var/log/stg/allconnect.log

 

и дисконнект

#!/bin/bash
# OnDisconnect
IFUP="eth1"
IFDOWN="eth1"
LOGIN=$1
IP=$2
CASH=$3
ID=$4
SPEED=`/etc/stargazer/GetSpeed $LOGIN`
UPSPEED=`/etc/stargazer/GetUpSpeed $LOGIN`
SCOUNT="Kbit"
IPT="/sbin/iptables"
IPS="/usr/sbin/ipset"
tc="/sbin/tc"

# TIME FORMAT
cur_date=`date +%Y.%m.%d`
cur_time=`date +%H:%M:%S`
#Запрещаем инет редирект на локаль
#$IPS -A $IP NOINET
# DELETE RULEZ  IPT
######################################################################
$IPT -t filter -D INPUT -s $IP -j ACCEPT
while [ $? -eq 0 ]
do
$IPT -t filter -D INPUT -s $IP -j ACCEPT
done
$IPT -t filter -D FORWARD -s $IP -j ACCEPT
while [ $? -eq 0 ]
do
$IPT -t filter -D FORWARD -s $IP -j ACCEPT
done
$IPT -t filter -D FORWARD -d $IP -j ACCEPT
while [ $? -eq 0 ]
do
$IPT -t filter -D FORWARD -d $IP -j ACCEPT
done
$IPT -t filter -D OUTPUT -d $IP -j ACCEPT
while [ $? -eq 0 ]
do
$IPT -t filter -D OUTPUT -d $IP -j ACCEPT
done
#########################
declare -i mark1=$ID+101
declare -i mark2=$ID+4101

if [ -n "$mark1" ]
then
   $IPT -t mangle -D FORWARD -d $IP -j MARK --set-mark $mark1
   while [ $? = 0 ]
   do
	    $IPT -t mangle -D FORWARD -d $IP -j MARK --set-mark $mark1
   done
fi
if [ -n "$mark2" ]
then
   $IPT -t mangle -D FORWARD -s $IP -j MARK --set-mark $mark2
   while [ $? = 0 ]
   do
	    $IPT -t mangle -D FORWARD -s $IP -j MARK --set-mark $mark2
   done
fi
#############################################################################
#Download
$tc filter del dev $IFDOWN parent 1: protocol ip prio 3 handle $mark1 fw classid																			  1:$mark
$tc class del dev $IFDOWN parent 1:1 classid 1:$mark1 htb rate $SPEED$SCOUNT
#Upload
$tc filter del dev $IFUP parent 1: protocol ip prio 3 handle $mark2 fw classid 1																			 :$mark1
$tc class del dev $IFUP parent 1:1 classid 1:$mark2 htb rate $UPSPEED$SCOUNT
############################################################################

## Отключить интернет (10)
$IPS -D FFIN $IP
$IPS -D FFINW $IP
$IPS -D FFIV $IP
while [ $? -eq 0 ]
do
$IPS -D FFIN $IP
$IPS -D FFINW $IP
$IPS -D FFIV $IP
done
$IPS -D FSNAT $IP
$IPS -D FSNATW $IP
$IPS -D FSNATV $IP
while [ $? -eq 0 ]
do
$IPS -D FSNAT $IP
$IPS -D FSNATW $IP
$IPS -D FSNAV $IP
done
$IPS -A FSNATDROP $IP
$IPS -A FSNATDROPW $IP
$IPS -A FSNATDROPV $IP
############################################################################
#iptables -D INPUT -i eth3 -p tcp --dport 80 -s $ip -j ACCEPT
#iptables -D INPUT -i eth3 -p tcp --dport 3128 -s $ip -j ACCEPT
#iptables -t nat -D PREROUTING -i eth3 -p tcp --dport 80 -s $ip -j REDIRECT --to-port 3128
#$IPT -t nat -A PREROUTING --src $IP --dst 0.0.0.0/0 -p tcp --dport 80 -j DNAT --to-destination 172.16.0.2
#Редирект на страницу авторизации включен
ipset -D authorized1 $2
ipset -D authorized2 $2
# DAY/NIGHT switcher
/bin/rm /etc/stargazer/dn/$LOGIN

echo "$cur_date $cur_time DISCONNECT: ID-$ID;LOGIN-$LOGIN;IP-$IP;CASH-$CASH" >> /var/log/stg/allconnect.log

Ну пока ещё сырые но работает отлично

Естественно остальные сервисы выстраиваете под свои нужды

Всем спасибо за помощь!

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.


×
×
  • Створити нове...