LINUX.ORG.RU

[iptables]Ваши рекомендации

 


0

0

У меня iptables использует эти правила:

:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p icmp -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -j REJECT --reject-with icmp-proto-unreachable
COMMIT

Подскажите, может что добавить/убавить? Комп домашний, страдаю паранойей ;)


Вот мой конфиг PF.

#-------------------
#1/Macros
# Сетевой интерфейс с адресом от DHCP
ext_if="nfe0"
# Пространство адресов внутренней сети
lan_net="192.168.1.0/24"
# Разрешенные типы icmp сообщений
allowed_icmp_types="{ echoreq, unreach }"
# Разрешённые сервисы
# 1. разрешить запросы к серверу NFS и RPCBIND только из локальной сети
# 2. обеспечить запуск с флагами mountd -p 883, rpc.lockd -p 884, rpc.statd -p 885 в rc.conf
# 3. выделенные порты для torrent и http/https/ssh-серверов доступны всем
allowed_lan_tcp_services="{ ssh, www, http, https, ntp, nfsd, rpcbind, 883, 884, 885, 6881:6991, 8080 }"
allowed_lan_udp_services="{ ntp, nfsd, rpcbind, 883, 884, 885, 6881:6991 }"
allowed_wan_tcp_services="{ ssh, www, http, https, 6881:6991, 8080 }"
allowed_wan_udp_services="{ ntp, 6881:6991 }"
#-------------------
#2/Tables
#-------------------
#3/Options
# ведение лога
set loginterface $ext_if
# тем, кто лезет туда, куда не нужно, - бить по рукам
set block-policy drop
# на интерфейсах петли пакеты не фильтровать
set skip on { lo }
# укороченный таймаут для состояния установленного tcp соединения
set timeout { frag 10, tcp.established 2400 }
#-------------------
#4/Scrub
# Нормализовать все входящие пакеты
scrub in all
#-------------------
#5/Queueing
#-------------------
#6/Translations
# Перенаправить tcp трафик с порта 80 на порт 8080 для пользовательского Web-сервера
rdr proto tcp from any to any port http -> self port 8080
#-------------------
#7/Filter Rules
# Антиспуффинг
antispoof for $ext_if
# Блокировать всё, что не разрешено
block all
#-------------------
# Разрешить входящий ICMP (ping)
pass inet proto icmp all icmp-type $allowed_icmp_types
# Поэтапное открытие сервисов
# разрешающий доступ откуда угодно (ограниченные службы)
pass in on $ext_if proto tcp to port $allowed_wan_tcp_services
pass in on $ext_if proto udp to port $allowed_wan_udp_services
# разрешающий доступ из локальной сети (ограниченные службы)
pass in on $ext_if proto tcp from $lan_net to port $allowed_lan_tcp_services
pass in on $ext_if proto udp from $lan_net to port $allowed_lan_udp_services
# Разрешить исходящий трафик
pass out all

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

а можно не завидовать ,а просто глубже выучить возможности iptables ;)

Cosmicman ★★
()

Для imcp я бы кол-во пакетов пер секонд ограничил. Ну и раз уж параноик, то форварды с инпутом не дропал бы, а режектил с анричаблем.

P.S. Нищеброд без ноута/сабноута/второго компа?

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

Чему завидовать? Тому, что ключевые слова правил IPTABLES пишутся капсом, а цепочка правил не имеет никакой структуры; правила на сервере активируется через выполняемый скрипт? :)))

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

>Packet Filter -- это почти единственное в бздях, чему стоит завидовать.

А если вкратце, чего он умеет, что я не могу сделать с помощью iptables+ip+tc?

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

>форварды с инпутом не дропал бы, а режектил с анричаблем.

Простите, на каком языке вы говорите?

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

>Тому, что ключевые слова правил IPTABLES пишутся капсом

Тебя жена-блондинка заколебала? Дык надо было брюнетку выбирать, сейчас уже поздно.

>правила на сервере активируется через выполняемый скрипт?


Когда iptables-restore стало скриптом?

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

http://densoro.blogspot.com/2007/08/pf-vs-iptables.html
"Поиск в Google готовых результатов сравнения iptables и pf говорит, что есть много BSD-фанатов, которые просто ненавидят iptables, совсем нет пользователей iptables, ненавидящих pf , и, в целом, очень мало тех, кто действительно пользовался и знает и iptables, и pf."

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

>> форварды с инпутом не дропал бы, а режектил с анричаблем. > Простите, на каком языке вы говорите?

это язык iptables!

Вот научить бы iptables языку openbsd packet filter...

ei-grad ★★★★★
()
Ответ на: комментарий от iZEN

>http://densoro.blogspot.com/2007/08/pf-vs-iptables.html

Почитал. Сплошные восторги автора по поводу большей логичности pf фактически без примеров. При явном указании, что по количеству возможностей pf уступает. К тому же, имеет место быть смешивание квотирования и фильтрации, тогда как это реализуется уже средствами iptables+ip+tc, т.е. сравнивают теплое с мягким.

redgremlin ★★★★★
()
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
-A OUTPUT -i lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
-A INPUT -p tcp -s 217.76.32.61 --sport 80 -j ACCEPT
-A OUTPUT -p tcp -d 217.76.32.61 --dport 80 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
COMMIT

враги повсюду!!!

ei-grad ★★★★★
()
Ответ на: комментарий от ei-grad

Хоть бы гугль разбанил, изверг. Хотя, что это я, он в ЛОР встроен. ПРИМЕНИЛ!!!1111

redgremlin ★★★★★
()
Ответ на: комментарий от ei-grad

[code] :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT DROP [0:0] -A INPUT -p tcp -s 217.76.32.61 --sport 80 -j ACCEPT -A OUTPUT -p tcp -d 217.76.32.61 --dport 80 -j ACCEPT COMMIT [/code]

лучше так... ну и еще

[code] # echo 217.76.32.61 {www.,}linux.org.ru >> /etc/hosts [/code]

ei-grad ★★★★★
()
Ответ на: комментарий от iZEN

Гуглить я тоже умею) но там не pf а пара велосипедов с передним приводом... А вот на iptables это делается очень просто )... Но вообще почитал я про pf похоже он тоже это умеет.

ei-grad ★★★★★
()
Ответ на: комментарий от ei-grad

IPTABLES очень подробный (многословный, как ассемблер), его правила 1 к 1 применяются к файерволу.
PF же, наоборот, строится с учётом "развёртки" правил, записанных на DLS (domain language specific), в рабочие правила файервола. При этом человеку достаточно знать DSL, а не подробности "развёртки" (хотя подробности можно посмотреть командой pfctl -sa).
Итого имеем в общем случае многофункционального фаервола:
на IPTABLES сотни однотипных правил с ключевыми словами, набранными капсом;
на PF — полторы сотни строк с той же функциональностью правил (если не большей) на DLS, понятным человеку.

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

>>P.S. Нищеброд без ноута/сабноута/второго компа?

Человек, у которго линукс не на всех домашних компах установлен, а только на ноуте, Sony vaio. А что?

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

Если серьезно —
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp --icmp-type 8 -m limit --limit 10/sec -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT

Считается, что REJECT менее секурно, чем DROP. Хотя в основном это играет роль при сканировании портов, при наличии открытых портов. В твоем случае DROP не позволит злым дядям узнать, включен ли вообще твой комп (но только при условии, что твой пров не будет отсылать им icmp-host-unreachable).

P.S. Если есть debian и желание постебаться над злыми хацкерами, поставь xtables-addons и покури маны насчет TARPIT и CHAOS.

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

После добавления
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
вновь создаваемые правила, например:
sudo iptables -A INPUT -s mail.yandex.ru -j DROP
не работают. Как быть?

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

Добавлять их не через -A, а через -I.

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