Ноя 262011
 

Хороший знакомый поставил себе замечательную систему debian linux, и обратился ко мне по вопросу безопасности, быстренько ему собрал свод правил к iptables для домашней машине.

#!/bin/sh

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

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

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

/sbin/modprobe ip_conntrack_ftp

IN_IF="eth0"
IN_IP="192.168.1.0/24"

#Сбрасываем правила
$IPT -F
$IPT -X

#Установка правил по умолчанию
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP

#Создаем новую цепочку
$IPT -N BAD_PACKETS

#Разрешить The Loopback
$IPT -A INPUT -i lo -j ACCEPT

#Jump To BAD_PACKETS
$IPT -A INPUT -j BAD_PACKETS

#Разрешить Established Connections
$IPT -A INPUT -i $IN_IF -m state --state ESTABLISHED,RELATED -j ACCEPT

# разрешаем DNS
$IPT -A INPUT -s $IN_IP -p udp --dport domain -j ACCEPT

# Разрешить DHCP
$IPT -A INPUT -p UDP --dport 68 --sport 67 -j ACCEPT

#Разрешить SSH From Specified Hots
$IPT -A INPUT -p TCP -i $IN_IF --dport 22 -j ACCEPT
$IPT -A INPUT -p TCP -i $IN_IF --dport 22 -j ACCEPT

#Разрешить input torrents-client
$IPT -A INPUT -p tcp -m tcp --dport 59222 -j ACCEPT

#Разрешить input skype
$IPT -A INPUT -p TCP -i $IN_IF --dport 13308 -j ACCEPT

#Разрешить ICMP Replies From Specified Hosts (Ping)
$IPT -A INPUT -p ICMP -i $IN_IF --icmp-type 8 -j ACCEPT
$IPT -A INPUT -p ICMP -i $IN_IF --icmp-type 8 -j ACCEPT

#Логи
$IPT -A INPUT -j ULOG --ulog-prefix "INPUT DROP: "

#Разрешить Samba From Specified Hosts
$IPT -A INPUT -p TCP -i $IN_IF --dport 137:139 -j ACCEPT
$IPT -A INPUT -p UDP -i $IN_IF --dport 137:139 -j ACCEPT
$IPT -A INPUT -p TCP -i $IN_IF --sport 137:139 -j ACCEPT
$IPT -A INPUT -p UDP -i $IN_IF --sport 137:139 -j ACCEPT

#Accept Loopback On OUTPUT
$IPT -A OUTPUT -o lo -j ACCEPT

#Разрешить Established Connections
$IPT -A OUTPUT -o $IN_IF -m state --state ESTABLISHED,RELATED -j ACCEPT

#Разрешить output skype
$IPT -A OUTPUT -p TCP -o $IN_IF --dport 13308 -j ACCEPT
$IPT -A OUTPUT -p UDP -o $IN_IF --sport 13308 -j ACCEPT

#Разрешить DNS,SSH,HTTP,FTP,SMTP и Port 443 Outbound
$IPT -A OUTPUT -p TCP -o $IN_IF --dport 443 -j ACCEPT
$IPT -A OUTPUT -p TCP -o $IN_IF --dport 80 -j ACCEPT
$IPT -A OUTPUT -p TCP -o $IN_IF --dport 53 -j ACCEPT
$IPT -A OUTPUT -p UDP -o $IN_IF --dport 53 -j ACCEPT
$IPT -A OUTPUT -p TCP -o $IN_IF --dport 25 -j ACCEPT
$IPT -A OUTPUT -p TCP -o $IN_IF --dport 22 -j ACCEPT
$IPT -A OUTPUT -p TCP -o $IN_IF --dport 21 -j ACCEPT

#Разрешить pop, imap
$IPT -A OUTPUT -p TCP -o $IN_IF --dport 110 -j ACCEPT
$IPT -A OUTPUT -p TCP -o $IN_IF --dport 143 -j ACCEPT

#Разрешить Samba From Specified Hosts
$IPT -A OUTPUT -p TCP -o $IN_IF --dport 137:139 -j ACCEPT
$IPT -A OUTPUT -p UDP -o $IN_IF --dport 137:139 -j ACCEPT
$IPT -A OUTPUT -p TCP -o $IN_IF --dport 445 -j ACCEPT
$IPT -A OUTPUT -p UDP -o $IN_IF --dport 445 -j ACCEPT

# Torrents
$IPT -A OUTPUT -p tcp --source-port 59222 -j ACCEPT

#Разрешить output icq
$IPT -A OUTPUT -p TCP -o $IN_IF --dport 5190 -j ACCEPT

#Разрешить output ntp (for ntpdate)
$IPT -A OUTPUT -p UDP -o $IN_IF --dport 123 -j ACCEPT

#Разрешить ICMP Replies (Ping)
$IPT -A OUTPUT -p ICMP -o $IN_IF --icmp-type 8 -j ACCEPT

#Запрещяем
$IPT -A OUTPUT -j ULOG --ulog-prefix "OUTPUT DROP: "
$IPT -A BAD_PACKETS -p TCP ! --syn -m state --state NEW -j DROP
$IPT -A BAD_PACKETS -p TCP --tcp-flags ALL ALL -j DROP
$IPT -A BAD_PACKETS -p TCP --tcp-flags ALL NONE -j DROP
$IPT -A BAD_PACKETS -p TCP --tcp-flags ALL SYN \-m state --state ESTABLISHED -j DROP
$IPT -A BAD_PACKETS -p ICMP --fragment -j DROP
$IPT -A BAD_PACKETS -m state --state INVALID -j DROP
$IPT -A BAD_PACKETS -d 255.255.255.255 -j DROP
$IPT -A BAD_PACKETS -j RETURN

 Leave a Reply

(required)

(required)

39 Запросов к базе. 0,352 Генерации страницы, 37MB Использование памяти.
Вы зашли с IP: 54.198.210.67