LINUX.ORG.RU

Правила для файрвола


0

1

Доброй ночи

решил в инете посидеть и собрать правила и вот что получилась

#!/bin/bash

echo 1 > /proc/sys/net/ipv4/ip_forward

IPT=/sbin/iptables

# Локальная сеть:
USERNET=192.168.1.0/24
# Наш внешний IP адрес (выданный провайдером):
INETIP=123

# Внутренний IP адрес:
LANIP=192.168.1.1

# Адаптер подключенный к локальной сети:
LAN_ADAPTER=eth1
# Адаптер подключенный к Интернету:
WAN_ADAPTER=eth0

/sbin/modprobe nf_conntrack_sip
/sbin/modprobe nf_nat_sip

# Сбрасываю старые правила:
$IPT -F
$IPT -t nat -F

# Открываю ssh
$IPT -A INPUT –m state --state NEW –m tcp –p tcp –dport 22 –j ACCEPT

# Данное правило разрывает TCP-соединение с отправкой RST-пакета, если первым пакетом в этом соединении был SYN-ACK. 
# Подобное поведение файрвола не позволит злоумышленникам использовать IP-адрес хоста в атаках с использованием IP спуфинга.
$IPT -A INPUT -p tcp -m state --state NEW --tcp-flags SYN,ACK SYN,ACK -j REJECT --reject-with tcp-reset

# Сбрасываю первый пакет TCP-соединения, если он не является SYN-пакетом.
$IPT -A INPUT -p tcp -m state --state NEW ! --syn -j DROP

# Защищаемся от SYN атак 
$IPT  -A INPUT -p tcp --tcp-flags SYN,ACK SYN,ACK \
  -m state --state NEW  -j REJECT --reject-with tcp-reset
$IPT  -A INPUT -p tcp ! --syn -m state --state NEW  -j DROP
$IPT -A INPUT -p tcp  --tcp-flags SYN,ACK,FIN SYN  \
  -i $WAN_ADAPTER -m state --state NEW -m limit  --limit 30/second --limit-burst 30 -j RETURN
$IPT -A INPUT -p tcp   --tcp-flags SYN,ACK,FIN SYN  \
  -i $WAN_ADAPTER -m state --state NEW  -j DROP

# Разрешаю уже установленные соединения
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Сбрасываю пакеты в состоянии INVALID
$IPT -A INPUT -m state --state INVALID -j DROP

# Открываю доступ в интернет для рабочей подсети
$IPT -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE

# Закрываю порты NETBIOS
$IPT -A INPUT -p tcp --destination-port 445 -j DROP
$IPT -A INPUT -p tcp --destination-port 135 -j DROP
$IPT -A INPUT -p udp -m multiport  --ports 135,136,137,138,139 -j DROP
$IPT -A INPUT -p tcp -m multiport  --ports 135,136,137,138,139 -j DROP
$IPT -A FORWARD -p udp -m multiport  --ports 135,136,137,138,139,445 -j DROP
$IPT -A FORWARD -p tcp -m multiport  --ports 135,136,137,138,139,445 -j DROP

# Блокирую входящие пакеты с локальными IP адресами
$IPT -A INPUT -p tcp -i $WAN_ADAPTER -s $USERNET -j DROP

# Блокируею входящие пакеты c нелокальными IP на внутреннем интерфейсе
$IPT -A INPUT -p tcp -i $LAN_ADAPTER -s ! $USERNET -j DROP

и тут не задача, после инициализации правил баш выдает мне ошибку

bad argument '-m'

подскажите где же тут ошибка? спасибо

Поди пробел, а не перевод строки после слеша. Но, за это время, что вы писали этот пост, могли бы и сами найти, либо опцией ″-x″ получить от баша какие команды он выполняет, либо навтыкав отладочной печати (echo) и посмотрев, между какими сообщениями вылазит это сообщение об ошибке.

mky ★★★★★
()
$IPT -A INPUT –m state --state NEW –m tcp –p tcp –dport 22 –j ACCEPT

"-m tcp" лишнее

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

Ну берёте и редактируете свой скрипт:

echo 1
# Открываю ssh
$IPT -A INPUT –m state --state NEW –m tcp –p tcp –dport 22 –j ACCEPT

echo 2
# Данное правило разрывает TCP-соединение с отправкой RST-пакета, если первым пакетом в этом соединении был SYN-ACK. 
# Подобное поведение файрвола не позволит злоумышленникам использовать IP-адрес хоста в атаках с использованием IP спуфинга.
$IPT -A INPUT -p tcp -m state --state NEW --tcp-flags SYN,ACK SYN,ACK -j REJECT --reject-with tcp-reset

echo 3
# Сбрасываю первый пакет TCP-соединения, если он не является SYN-пакетом.
$IPT -A INPUT -p tcp -m state --state NEW ! --syn -j DROP

Потом запускаете, в выводе будут строки ″1″, ″2″, ″3″ и где-то между ними сообщение про плохой аргумент...

mky ★★★★★
()

Не мучайся, поставь shorewall.

anonymous
()
Ответ на: комментарий от vel

Про опцию ″-x″ я написал в первом сообщении, но ТС'а больше заинтересовал второй вариант с отладочной печатью.

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