воскресенье, 10 августа 2014 г.

Файрволл и безопасность

Отсюда: http://archlinux.org.ru/forum/post/140497/


/etc/sysctl.d/net.conf
# Отключаем IP-форвардинг
net.ipv4.ip_forward = 0

# Активируем защиту от IP-спуфинга.
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# Устраняем ARP Flux Problem
net.ipv4.conf.all.arp_filter = 1
net.ipv4.conf.default.arp_filter = 1

# Запрещаем маршрутизацию от источника.
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0

net.ipv6.conf.all.accept_source_route = 0
net.ipv6.conf.default.accept_source_route = 0

# Отключение приема перенаправлений
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0

net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0

net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0

# Защита против неправильных сообщений об ошибках
net.ipv4.icmp_ignore_bogus_error_responses = 1

# Не отвечаем на ICMP ECHO запросы, переданные широковещательными пакетами
net.ipv4.icmp_echo_ignore_broadcasts = 1

# Можно вообще не отвечать на ICMP ECHO запросы (сервер не будет пинговаться)
# net.ipv4.icmp_echo_ignore_all = 1
net.ipv4.tcp_syncookies = 1

# Разрешаем повторное использование TIME-WAIT сокетов в случаях, если протокол считает это безопасным.
net.ipv4.tcp_tw_reuse = 1

# Разрешаем динамическое изменение размера окна TCP стека
net.ipv4.tcp_window_scaling = 1

# Защищаемся от TIME_WAIT атак.
net.ipv4.tcp_rfc1337 = 1
 /etc/iptables/ip6tables.rules
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]

:TCP - [0:0]
:UDP - [0:0]

## LOGDROP chain
:LOGDROP - [0:0]

-A LOGDROP -m limit --limit 5/min --limit-burst 10 -j LOG
#--log-level debug --log-prefix "ip6_invalid "
#-A LOGDROP -j AUDIT --type drop
-A LOGDROP -j DROP
# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn`t use lo0
-A INPUT -i lo -j ACCEPT
#-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT

# Accepts all established inbound connections
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
## log AND drop packets that hit this rule:
-A INPUT -m conntrack --ctstate INVALID -j LOGDROP
-A INPUT -m conntrack --ctstate INVALID -j DROP

-A INPUT -p icmpv6 -m icmp6 --icmpv6-type echo-request -m conntrack --ctstate NEW -j ACCEPT

-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp --syn -m conntrack --ctstate NEW -j TCP

-A INPUT -p udp -j REJECT --reject-with icmp6-port-unreachable
-A INPUT -p tcp -j REJECT --reject-with tcp-reset

#-A INPUT -j REJECT --reject-with icmp6-proto-unreachable
-A INPUT -j REJECT --reject-with icmp6-adm-prohibited
# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A TCP -p tcp --dport 80 -j ACCEPT
-A TCP -p tcp --dport 443 -j ACCEPT

# Allows FTP and FTPS connections
-A TCP -p tcp --dport 21 -j ACCEPT
-A TCP -p tcp --dport 990 -j ACCEPT

# Allows SSH connections
# THE -dport NUMBER IS THE SAME ONE YOU SET UP IN THE SSHD_CONFIG FILE
-A TCP -p tcp --dport 22 -j ACCEPT

-A UDP -p udp --dport 53 -j ACCEPT
COMMIT

/etc/iptables/iptables.rules

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]

:TCP - [0:0]
:UDP - [0:0]

## LOGDROP chain
:LOGDROP - [0:0]

-A LOGDROP -m limit --limit 5/min --limit-burst 10 -j LOG
#--log-level debug --log-prefix "ip4_invalid "
#-A LOGDROP -j AUDIT --type drop
-A LOGDROP -j DROP
# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn`t use lo0
-A INPUT -i lo -j ACCEPT
#-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT

# Accepts all established inbound connections
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
## log AND drop packets that hit this rule:
-A INPUT -m conntrack --ctstate INVALID -j LOGDROP
-A INPUT -m conntrack --ctstate INVALID -j DROP

-A INPUT -p icmp -m icmp --icmp-type echo-request -m conntrack --ctstate NEW -j ACCEPT

-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp --syn -m conntrack --ctstate NEW -j TCP

-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -j REJECT --reject-with tcp-reset

#-A INPUT -j REJECT --reject-with icmp-proto-unreachable
-A INPUT -j REJECT --reject-with icmp-admin-prohibited
# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A TCP -p tcp --dport 80 -j ACCEPT
-A TCP -p tcp --dport 443 -j ACCEPT

# Allows FTP and FTPS connections
-A TCP -p tcp --dport 21 -j ACCEPT
-A TCP -p tcp --dport 990 -j ACCEPT

# Allows SSH connections
# THE -dport NUMBER IS THE SAME ONE YOU SET UP IN THE SSHD_CONFIG FILE
-A TCP -p tcp --dport 22 -j ACCEPT

-A UDP -p udp --dport 53 -j ACCEPT
COMMIT

И еще: http://pastebin.com/iw7mt0VD - как создать правила iptables для отдельного пользователя, отсюда: http://pastebin.com/iw7mt0VD

Ярлыки:

Комментарии: 0:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.

Подпишитесь на каналы Комментарии к сообщению [Atom]

<< Главная страница