Какова надежная конфигурация iptables для моего рабочего стола?

Какова надежная конфигурация iptables для моего рабочего стола?

На моем рабочем столе я хочу настроить iptables довольно строго. Я не вижу причин, по которым мне нужно разрешать что-либо, кроме интернет-трафика, который я инициировал. И, возможно, даже это можно ограничить только несколькими портами. Каковы основные правила, которые могут закрыть мой рабочий стол? Мне нужно только:

  • Для просмотра интернета
  • Загрузить письмо

Есть ли какой-нибудь рекомендуемый набор правил?

решение1

Следующие правила разрешат все исходящие соединения, но заблокируют все входящие соединения. Цепочки INPUT и FORWARD настроены на отклонение пакетов по умолчанию, цепочка OUTPUT настроена на прием пакетов по умолчанию, а последнее правило разрешает входящие пакеты, которые являются частью существующих соединений (которые в этом случае могут быть только исходящими соединениями).

iptables --policy INPUT DROP
iptables --policy FORWARD DROP
iptables --policy OUTPUT ACCEPT
iptables --append INPUT --match state --state ESTABLISHED,RELATED --jump ACCEPT
iptables --append INPUT --jump REJECT
iptables --append FORWARD --jump REJECT

Если вы хотите ограничить исходящий трафик, вам нужно изменить политику OUTPUT на отклонение и добавить правила для приема трафика на определенных портах. Например:

iptables --policy OUTPUT DROP
iptables --append OUTPUT --protocol udp --match multiport --dports domain,bootps --jump ACCEPT
iptables --append OUTPUT --protocol tcp --match multiport --dports domain,http,https,ssh,pop3s,imaps,submission --jump ACCEPT
iptables --append OUTPUT --jump REJECT

решение2

Следующий iptables-restoreскрипт должен подойти вам:

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -m state ! --state NEW -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
COMMIT

Скрипт можно сделать еще короче, убрав правило, разрешающее пинги ICMP, но я бы не рекомендовал этого делать. По моему скромному мнению, ответ на пинг не сильно вредит безопасности (если вообще вредит), и это может быть полезно для устранения неполадок в сети.

Если вы хотите разрешить входящие соединения на определенном порту TCP (например, разрешить sshсоединения), вы можете добавить правило(а) в свой скрипт, например следующее, прямо над оператором COMMIT:

-A INPUT -p tcp -m tcp --dport 22 --syn -j ACCEPT

Связанный контент