Мне нужен совет для правил iptables

Можно ли сказать мне, если мой iptables сценарий хорош? Заключительные правила защищают от DoS-атак. Действительно ли они полезны? У меня нет сервера, и мой ПК только используется для перемещения по Интернету.

Вот мой сценарий:

iptables -t filter -F
iptables -t filter -X
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
iptables -t filter -A INPUT -o lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
or
iptables -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -p icmp -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP
iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state ! --state INVALID -j ACCEPT
#if I want to open a port:
iptables -t filter -A INPUT -s 192.168.0.0/24 --dport 110 -j ACCEPT
iptables -t filter -A OUTPUT -s 192.168.0.0/24 --sport 110 -j ACCEPT
#
iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix   "iptables denied: " --log-level 7
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp --syn -m limit --limit 1/second -j ACCEPT
iptables -A FORWARD -p udp -m limit --limit 1/second -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/second -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

Заранее спасибо.

#

Таким образом, я изменил сценарий.
Основное соединение (никакой сервер, никакой маршрутизатор, никакой DHCP и Ipv6 не отключены),

Я сделал 2 сценария. Второй, я надеюсь, более безопасный. Что Вы думаете?

сценарий один:

  iptables -F
  iptables -X -t filter
  iptables -P INPUT DROP 
  iptables -P FORWARD DROP 
  iptables -P OUTPUT ACCEPT

  #lo
  iptables -A INPUT -i lo -j ACCEPT
  iptables -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
  iptables -A OUTPUT -o lo -j ACCEPT

  #CONNECTION
  iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

  #PING ACCEPTED AND OPENING PORTS THAT I NEED
  iptables -A INPUT -p icmp --icmp-type echo-request -m conntrack --ctstate NEW -m limit --limit 1/s --limit-burst 1 -j ACCEPT
  iptables -A INPUT -p tcp --dport xxxx -j ACCEPT
  iptables -A INPUT -p udp --dport xxxx -j ACCEPT

  #LOG
  iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
  iptables -A FORWARD -j LOG

(Более безопасный) сценарий 2:

  iptables -F
  iptables -X -t filter
  iptables -P INPUT -j DROP
  iptables -P FORWARD DROP 
  iptables -P OUTPUT -j DROP

  modprobe ip-conntrack

  #lo
  iptables -A INPUT -i lo -j ACCEPT
  iptables -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
  iptables -A OUTPUT -o lo -j ACCEPT

  #connection
  iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
  iptables -A OUTPUT -m state ! --state INVALID -j ACCEPT

  #PING ACCEPTED AND OPENING PORTS THAT I NEED
  iptables -A INPUT -p icmp --icmp-type echo-request -m conntrack --ctstate NEW -m limit --limit 1/s --limit-burst 1 -j ACCEPT
  iptables -A INPUT -d 0.0.0.0/0 -p tcp --sport xxxx -m state --state ESTABLISHED -j ACCEPT (I don't know if I must add 0.0.0.0/0 or 192.168.0.0/24)
  iptables -A INPUT -m limit --limit 7/s -j LOG

  #LOG
  iptables -A OUTPUT -m limit --limit 7/s -j LOG
  iptables -A FORWARD -m limit --limit 7/s -j LOG

Заранее спасибо.

0
задан 28 December 2016 в 17:32

2 ответа

Этот ответ характерен для сценария номер 2 от второго набора сценариев.

Во-первых: по крайней мере, попытайтесь загрузить свой сценарий прежде, чем отправить его здесь и разобраться в синтаксисе.

  • Вы все еще обращаетесь к таблице, названной "фильтром", который не существует.
  • Нет никакой потребности вызвать загрузочные модули, они автоматически загрузятся когда-то ссылаемый.
  • Я предложил бы всегда использовать уникальный префикс журнала для каждой строки входа, becuase это делает намного легче коррелировать записи в журнале для сценариев местоположения для отладки и просто ясности.
  • Нет никакой потребности указать адрес назначения в Вашей определенной линии порта, но разве Вы не хотите dport вместо спорта?
  • Нет никакой потребности в той строке во всяком случае, потому что предыдущее, больше универсальной, УСТАНОВЛЕННОЙ строки означает, что правило никогда не будет поражаться.
  • Я не знаю, испытаете ли Вы затруднения с помощью только УСТАНОВЛЕННЫЙ вместо СВЯЗАННОГО, УСТАНОВЛЕННОГО.
  • Как ранее упомянуто, Вам не нужен никто ВПЕРЕД правила, но я понимаю, что, возможно, Вы просто хотите зарегистрировать его, в случае, если.
  • Для Вашего материала ping мне не ясно, что Вы достигнете своей цели с правилом, хотя я признаю, что не знаю, какова Ваша цель. Я все еще смог лавинно разослать, проверяют с помощью ping-запросов компьютер путем, у Вас был он. Возможно, необходимо конкретно иметь дело с другим путем, тот, который не инициировал правило. Взгляните на то, что я сделал.

Так, я выполняю это:

#!/bin/sh
# See: http://askubuntu.com/questions/858878/i-need-advice-for-iptables-rules

iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

#lo
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
iptables -A OUTPUT -o lo -j ACCEPT

#PING ACCEPTED AND OPENING PORTS THAT I NEED
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 1 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

#connection
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state ! --state INVALID -j ACCEPT

#LOG
iptables -A INPUT -m limit --limit 7/s -j LOG --log-prefix "ICATCH:" --log-level info
iptables -A OUTPUT -m limit --limit 7/s -j LOG --log-prefix "OCATCH:" --log-level info
iptables -A FORWARD -m limit --limit 7/s -j LOG --log-prefix "FCATCH:" --log-level info

Предоставление этого, до сих пор:

$ sudo iptables -v -x -n -L
Chain INPUT (policy DROP 218 packets, 21841 bytes)
    pkts      bytes target     prot opt in     out     source               destination
       0        0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
       0        0 REJECT     all  --  !lo    *       0.0.0.0/0            127.0.0.0/8          reject-with icmp-port-unreachable
       5      420 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 8 limit: avg 1/sec burst 1
     329    27636 DROP       icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 8
    3081   206772 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state ESTABLISHED
     213    21380 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 7/sec burst 5 LOG flags 0 level 6 prefix "ICATCH:"

Chain FORWARD (policy DROP 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination
       0        0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 7/sec burst 5 LOG flags 0 level 6 prefix "FCATCH:"

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination
       0        0 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0
    5726  7988360 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ! state INVALID
       0        0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 7/sec burst 5 LOG flags 0 level 6 prefix "OCATCH:"
1
ответ дан 28 September 2019 в 01:28

Нет, Ваш iptables сценарий не очень хорош (и извините если это звучит резким).
нет, Ваши правила DoS-атаки не полезны, и я думаю, что ВХОД объединяет в цепочку, можно было бы препятствовать нормальной производительности. Ваши ВПЕРЕД цепочечные не нужны, потому что Вы не используете ВПЕРЕД цепочка (Ваш компьютер не действует как маршрутизатор).

у Вас есть многие -t filter строки, но Ваш не определили цепочку, названную "фильтром".

я не знаком с pkttype модуль и так не могу прокомментировать ту строку.

я думаю, что необходимо будет позволить некоторый DHCP (порты 67 и 68) трафик, в зависимости от того, как Вы присваиваете свои IP-адреса.

0
ответ дан 28 September 2019 в 01:28

Другие вопросы по тегам:

Похожие вопросы: