LINUX.ORG.RU
ФорумAdmin

Настройка шлюза на debian 8

 , , ,


0

1

Уважаемое сообщество, столкнулся с задачей настройки шлюза для free wi-fi в магазине. Есть комп с двумя сетевыми(eth1-интернет, eth0-локалка), на который был установлен debian, dnsmasq, apache, mysql, и на php написана страница авторизации с отправкой смс с паролем на введенный номер. Попытался настроить netfilter/iptables. Сами настройки

#!/bin/bash
#Проверка поключения необходимых модулей
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

#Обьявление переменных
export IPT="iptables"

# Внешний интерфейс
export WAN=eth1

# Локальная сеть
export LAN1=eth0
export LAN1_IP_RANGE=192.168.5.0/24

# Очищаем правила
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Запрещаем все, что не разрешено
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

# Разрешаем localhost и локалку
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i $LAN1 -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A OUTPUT -o $LAN1 -j ACCEPT

# Разрешаем сервер у клиента DNS Google
$IPT -A INPUT -s 8.8.8.8 -j ACCEPT

#Запуск цепочек
$IPT -N internet -t mangle
$IPT -t mangle -A PREROUTING -i $LAN1 -j internet

# Рзрешаем пинги
$IPT -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

#добавляем разрешенные маки в исключения путем добавления их в Return
awk 'BEGIN { FS="\t"; } { system("$IPT -t mangle -A internet -m mac --mac-source "$4" -j RETURN"); }' /var/lib/users

#Маркируем все пакеты
$IPT -t mangle -A internet -j MARK --set-mark 99

# ВСе маркированные пакеты, которые идут на 80, 443 порт отпралявляем на наш сервер
# /var/lib/users
$IPT -t nat -A PREROUTING -i $LAN1 -p tcp -m mark --mark 99 -m tcp --dport 80 -j DNAT --to-destination 192.168.5.1
$IPT -t nat -A PREROUTING -i $LAN1 -p tcp -m mark --mark 99 -m tcp --dport 443 -j DNAT --to-destination 192.168.5.1


# http
$IPT -t filter -A INPUT -p tcp --dport 80 -j ACCEPT

# port dns
$IPT -t filter -A INPUT -p udp --dport 53 -j ACCEPT

# drop
$IPT -t filter -A INPUT -m mark --mark 99 -j DROP
echo "1" > /proc/sys/net/ipv4/ip_forward

# Пропускать все уже установленные соединения, а также дочерние...
$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

# Пропускать новые, а также уже иниированные соединения, а также дочерние...
$IPT -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# Пропускать перенапраления, а также тх дочерние...
$IPT -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# Разрешаем все исходящие подключения сервера
$IPT -A OUTPUT -o $WAN -j ACCEPT

# Разрешаем все входящие подключения сервера
$IPT -A INPUT -i $WAN -j ACCEPT

# разрешаем установленные подключения
$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

# Включаем вфрагментацию пакетов
$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# Отбрасываем неопознанные пакеты
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP

# Отбрасываем нулевые пакеты
$IPT -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

# Закрываемся от syn-flood атак
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
 
# Блокируем доступ с указанных адресов
#$IPT -A INPUT -s 84.122.21.197 -j REJECT

# Разрешаем доступ из локалки наружу
$IPT -A FORWARD -i $LAN1 -o $WAN -j ACCEPT

# Закрываем доступ снаружи в локалку
#$IPT -A FORWARD -i $WAN -o $LAN1 -j REJECT

# Включаем NAT
$IPT -A FORWARD -i eth1 -o eth1:1 -m state --state ESTABLISHED,RELATED -j ACCEPT
#$IPT -A FORWARD -i eth1:1 -o eth1 -j ACCEPT
$IPT -A FORWARD -s 192.168.5.1/24 -j ACCEPT
$IPT -t nat -A POSTROUTING -o eth0 -j MASQUERADE
$IPT -t nat -A POSTROUTING -o eth1 -j MASQUERADE
$IPT -t nat -A POSTROUTING -o $WAN -s $LAN1_IP_RANGE -j MASQUERADE


# открываем доступ к SSH
$IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT

#Открываем доступ к web серверу
$IPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$IPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

#Открываем доступ к DNS серверу
#$IPT -A INPUT -i $WAN -p udp --dport 53 -j ACCEPT

# Включаем логирование
$IPT -N block_in
$IPT -N block_out
$IPT -N block_fw

# Сохраняем правила
route -n
$IPT -L
$IPT -L -v -n
$IPT -L -v -n -t nat
/sbin/iptables-save  > /etc/iptables.rules
При подключению к шлюзу, apacheне хочет показывать стартовую страницу, пока не могу понять почему, но вот в чем штука, если прописать адрес то она открывается, проходит регистрация с смс, и добавлением мас-адреса в mysql, все, инета нет.


Помогите разобраться.

Помогите разобраться. Где накосячил с настройками?

yantar
() автор топика

При подключении клиента с него нормально пингуется гугл. И интерфейс винды пишет что интернет есть...

C:\Users\Sadmin>ping 8.8.8.8
Обмен пакетами с 8.8.8.8 по с 32 байтами данных:
Ответ от 8.8.8.8: число байт=32 время=44мс TTL=45
Ответ от 8.8.8.8: число байт=32 время=44мс TTL=45
Ответ от 8.8.8.8: число байт=32 время=44мс TTL=45
Ответ от 8.8.8.8: число байт=32 время=44мс TTL=45

yantar
() автор топика

При подключению к шлюзу, apacheне хочет показывать стартовую страницу, пока не могу понять почему, но вот в чем штука, если прописать адрес то она открывается, проходит регистрация с смс, и добавлением мас-адреса в mysql, все, инета нет.

Что сказать-то хотели?

ЗЫ Ваша портянка iptables это письмо из простоквашино. Начиная с не действующих правил, заканчивая одинаковыми строками которые встречаются по несколько раз.

anc ★★★★★
()
Ответ на: комментарий от Cactus64k

спасибо за совет, все ок. настроил работает dns и NAT.

yantar
() автор топика
Ответ на: комментарий от yantar

Это имеет смысл когда кол-во ненужного меньше кол-ва нужного. У вас же это абсолютно бездумная копипаста разных кусков и возможно сделанная разными людьми. По подобной простыне даже при подключении libastral последней версии невозможно понять чего достигнуть хотели что бы хоть какой-то совет дать.

ЗЫ Выше targitaj вас в правильном направлении отправил.

anc ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.