Можете ли вы сказать, хороший ли сценарий 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 скрипта. Второй, надеюсь, более безопасен. Как вы думаете?
script one:
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
Спасибо заранее.
Нет, ваш скрипт iptables не очень хорош (и извините, если это звучит жестко). Нет, ваши правила атаки DOS не полезны, и я думаю, что цепочка INPUT может помешать нормальной работе. Ваш FORWARD-цепочка не нужен, потому что вы не используете цепочку FORWARD (ваш компьютер не работает как маршрутизатор).
У вас много -t filter строк, но вы не определили цепочку
Я не знаком с модулем pkttype и поэтому не могу прокомментировать эту строку.
Думаю, вам нужно будет разрешить некоторые DHCP (порты 67 и 68) в зависимости от того, как вы назначаете свои IP-адреса.