Ru-Board.club
← Вернуться в раздел «UNIX»

» Хороши ли эти правила?

Автор: Moadiv
Дата сообщения: 19.04.2006 09:29
Не обладая достаточными познаниями, хочу поинтересоваться у знающих людей насколько хороши данные правила iptables. Ситуация стандартная: маленькая сеть, на шлюзе 2 интерфейса. Один внутрь, другой наружу в инет, на нем же squid (даже binds не ставил). Задача стоящая перед ними - разрешить весть локальный траффик и обрубить все входящие соединения из вне, при этом надо оставить работающим squid. Сами правила прописаны в отдельный файлик (листинг ниже) и в /etc/rc.d/rc.local добавлена строчка типа /bin/firewallrules, дабы правила применялись автоматом при запуске системы.
Может есть у кого замечания как это можно сделать по-другому, может более правильно? Буду рад любым замечаниям.


#Eth0 is internal interface (local net) and eth1 is external
#interface (internet).

#Flush all current settings.
/sbin/iptables -F

#Clear all empty chains
/sbin/iptables -X

#Set default rules to drop all packets
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP

#Enable all loopback traffic
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A FORWARD -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT

#Enable all local traffic
/sbin/iptables -A INPUT -i eth0 -j ACCEPT
/sbin/iptables -A OUTPUT -o eth0 -j ACCEPT


#Enable all outgoing traffic from eth1 interface
/sbin/iptables -A OUTPUT -o eth1 -j ACCEPT

#Enable all incoming related and established packets
/sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Автор: mtur
Дата сообщения: 19.04.2006 11:27
не претендую на 100 % правильный ответ, но у меня длительный период работает так:

#!/bin/bash

# Определяем переменные
FW='/sbin/iptables'
IFACE_IN='eth0'
IFACE_OUT='ppp+'
IP_LAN_OFFICE='192.168.0.0/24'    # описываем офисную сеть
IP_INET='1.2.3.4'

# Компьютеры ходящие в инет из сети OFFICE
USER1='192.168.0.13'
USER2='192.168.0.14'
USER3='192.168.0.15'

# Порты разрешенные для работы с инетом для сети O
PORTS_UDP=53 # резолвим адрес
PORTS_TCP=25,110,80,443 # получаем\отправляем почту, ходим по страничкам

#######################################################

echo "Выключаем форвардинг"
/bin/echo "0" > /proc/sys/net/ipv4/ip_forward

#######################################################

echo "Сбрасываем раннее установленные правила"
$FW -F
$FW -F -t nat

echo "Удаляем все цепочки"
$FW -X

echo "Устанавливаем политики по умолчанию ACCEPT"
$FW -P INPUT ACCEPT
$FW -P OUTPUT ACCEPT
$FW -P FORWARD DROP

#######################################################

echo "Разрешаем входящий-исходящий траффик на loopback"
$FW -A INPUT -i lo -j ACCEPT
$FW -A OUTPUT -o lo -j ACCEPT

#######################################################

echo "Разрешаем ssh для локальной сети OFFICE"
$FW -A INPUT -p tcp -s $IP_LAN_OFFICE --dport 22 -j ACCEPT
$FW -A OUTPUT -p tcp -d $IP_LAN_OFFICE --sport 22 -j ACCEPT

#######################################################

echo "Защита от Syn-flood"
$FW -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT

echo "Защита от скрытого сканирования портов"
$FW -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

echo "Защита от Ping of death"
$FW -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

echo "Запрещаем NEW и INVALID входящие пакеты с ppp0"
$FW -A INPUT -i $IFACE_OUT -m state --state NEW,INVALID -j DROP

#######################################################

echo "Запрещаем подключаться на нижние порты"
$FW -A INPUT -p tcp --dport 0:1024 -j DROP
$FW -A OUTPUT -p tcp --sport 0:1024 -j DROP

#######################################################

echo "Откидываем весь udp трафик кроме указанного выше"
$FW -A INPUT -p udp -j DROP
$FW -A OUTPUT -p udp -j DROP

#######################################################

echo "Создаем пользователькую цепочку для сети OFFICE"
$FW -N inet_office

$FW -A inet_office -s $USER1 -p udp -m multiport --destination-port $PORTS_UDP -j ACCEPT
$FW -A inet_office -d $USER1 -p udp -m multiport --source-port $PORTS_UDP -j ACCEPT

$FW -A inet_office -s $USER1 -p tcp -m multiport --destination-port $PORTS_TCP -j ACCEPT
$FW -A inet_office -d $USER1 -p tcp -m multiport --source-port $PORTS_TCP -j ACCEPT

#######################################################

echo "Перенаправляем на прозрачный прокси"
# в настройках прокси укажем кому можно ходить в инет, кому нельзя
$FW -t nat -A PREROUTING -s $IP_LAN_OFFICE -p tcp --dport 80 -j REDIRECT --to-port 3128

#######################################################

echo "Форвардим всех из сети OFFICE в цепочку inet_office"
# в цепочках проверится кому можно в инет, кому нет
$FW -A FORWARD -s $IP_LAN_OFFICE -j inet_office
$FW -A FORWARD -d $IP_LAN_OFFICE -j inet_office

#######################################################

echo "Включаем NAT"
$FW -t nat -A POSTROUTING -o $IFACE_OUT -j SNAT --to-source $IP_INET

#######################################################

echo "Включаем форвардинг"
/bin/echo "1" > /proc/sys/net/ipv4/ip_forward
Автор: tankistua
Дата сообщения: 19.04.2006 13:37
отличные правила. Мне больше нравиться вот такой набор.

#!/bin/sh
#

$IPTABLES -F
$IPTABLES -X
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP


Курить ман :) - http://gazette.linux.ru.net/rus/articles/iptables-tutorial.html
Автор: Moadiv
Дата сообщения: 20.04.2006 01:22

Цитата:
Курить ман


Значит ли это что я что-то упустил и сделал не так?

Страницы: 1

Предыдущая тема: Загрузочный диск LINUX


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.