Я новичок в Linux.Я только что реализовал следующие команды в iptables, которые я нашел на сайте для безопасности (я не очень понимаю, как работает каждое правило). Команды следующие:

$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP

$IPTABLES -A OUTPUT -m state --state INVALID -j DROP

$IPTABLES -A OUTPUT -p tcp --tcp-flags ALL ACK,RST,SYN,FIN -j DROP
$IPTABLES -A OUTPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
$IPTABLES -A OUTPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

$IPTABLES -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A OUTPUT -f -j DROP
$IPTABLES -A OUTPUT -p tcp --tcp-flags ALL ALL -j DROP
$IPTABLES -A OUTPUT -p tcp --tcp-flags ALL NONE -j DROP  

$IPTABLES -A INPUT -m state --state INVALID -j DROP

$IPTABLES -A INPUT -p tcp --tcp-flags ALL ACK,RST,SYN,FIN -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A INPUT -f -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j DROP  

После реализации я не смог ничего просмотреть. Как исправить мои возможные ошибки?

3 ответа3

2

Вы должны понимать, что в третьих первых строках по умолчанию отключен весь трафик с вашего компьютера, на него и через него (-P DROP).

Если вы хотите использовать IP-таблицы с этими правилами по умолчанию, последующие правила предназначены для разрешения трафика. Это делается где-то с помощью правил ACCEPT .

Например, вы можете разрешить входящие пакеты порта 80:

-A INPUT -p tcp --dport 80 -j ACCEPT

С другой стороны, вы можете пойти другим путем, то есть разрешить весь трафик по умолчанию -P ACCEPT , а затем написать конкретные вещи, которые вам нужно запретить.

Я мало что могу для вас сделать, но предлагаю вам прочитать руководство по iptables, чтобы понять, как оно работает. Вы не получите безопасность с полки с iptables.

-1

Когда вы начинаете, я бы посоветовал отказаться от всего, что у вас есть сейчас, и начать с некоторых основ, которые дадут вам самые большие победы.

Например:

:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

# Drop a persistent nuisance
-A INPUT -s 89.163.185.170 -j DROP

# Accept established connections and loopback traffic

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT

# Allow ssh from our IP address 1.2.3.4 (but also use hosts.allow and hosts.deny files)
-A INPUT -s 1.2.3.4 -i eth0 -m tcp -p tcp --dport 22 -j ACCEPT

# Allow web traffic on port 80 and 443 from everywhere
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

# Block everything else
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

Вы можете легко развить это.

-1

Вы пропустили разрешение на ESTABLISHED соединения. Попробуйте добавить это в конце вашего скрипта

iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Также я начал бы сначала ограничивать входящие данные. Вы выводите правила только для предотвращения отправки специальных пакетов, созданных вручную. Когда вы беспокоитесь о вредоносном программном обеспечении, это не очень помогает, поскольку они обычно просто подключаются к удаленным серверам, используя обычные "правильные" пакеты.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .