LinuxForum.Fans
Тема

Проблема с фаерволлом

Автор: 4fun 24 сообщений 4147 просмотров
#175567

Здравствуйте. После стоп-старт фаерволла, iptables заблочил все порты, которые раннее были открыты. Как можно вернуть старые правила? Заблочено все: ftp, ssh и т.д. То есть я даже от терминала отключиться не могу, т.к. потом не зайду. Видимо, слетели все правила.

#175570

[console]
servise iptables restart
[/console]
Вернёт его в исходное сотояние, которое было до ваших манипуляций. Если конечно не сдлали после них iptables save
Если такую промашку допустили то [console]
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
[/console]
Откроет вам всё и вся, но только с этим аккуратнее, особенно если сервант смотрит в мир.

#175575

[console]serviсe iptables restart[/console]
Не помогло. iptables save не делал. То есть у меня были открыты те порты, которые мне нужны, сделал стоп-старт фаерволла (надо было проверить кое-что) и все, все порты заблочены. Сервер, как вы выразились, смотрит в мир.

#175576

Тогда рулите политиками, как я описал во второй консоли.
Только вы должны быть уверены в том что делаете.
Команда iptables -L -n -v что показывает? приведите её вывод сюда.

#175579

[console]# iptables -L -n -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
79633 5813K RH-Firewall-1-INPUT all -- * * 0.0.0.0/0 0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 RH-Firewall-1-INPUT all -- * * 0.0.0.0/0 0.0.0.0/0

Chain OUTPUT (policy ACCEPT 124K packets, 17M bytes)
pkts bytes target prot opt in out source destination

Chain RH-Firewall-1-INPUT (2 references)
pkts bytes target prot opt in out source destination
1550 137K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
99 5792 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 255
0 0 ACCEPT esp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT ah -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT udp -- * * 0.0.0.0/0 224.0.0.251 udp dpt:5353
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:631
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:631
67785 5129K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
10199 541K REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited[/console]

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

#175584

Да а чего там разбираться? всё просто, у вас уже "всё включено".
То есть все политики по умолчанию разрешают доступ. Так же открыт доступ к 22 порту, ssh то есть. Вы же подключенны по ssh?
Такое положение вещей не есть айс, так как к вам может зайти любой.
Собственно вам нужно назначить политики по умолчанию всё запрещающие и открыть только те порты, которые вм нужны.
Вот пример:
[console]
#!/bin/bash
#
# Flash all default
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -t nat -F
/sbin/iptables -t nat -X
#
# Setup policy DROP for all
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT DROP
#
# loop=trusted.
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
#
# Reject invalid pakets
/sbin/iptables -A INPUT -m state --state INVALID -j DROP
#
# ESTABLISHED connection
/sbin/iptables -A INPUT -i eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# Remote control
/sbin/iptables -A INPUT -i eth2 -p tcp --dport 22 -s 192.168.0.555 -j ACCEPT
/sbin/iptables -A INPUT -i eth2 -p tcp --dport 10000 -s 192.168.0.555 -j ACCEPT
#
# DNS & DHCP & Time
/sbin/iptables -A INPUT -i eth2 -p tcp -m multiport --dport 53,67,68 -s 192.168.0.0/24 -j ACCEPT
/sbin/iptables -A INPUT -i eth2 -p udp -m multiport --dport 53,67,68 -s 192.168.0.0/24 -j ACCEPT
#
/sbin/iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp --dport 123 -j ACCEPT
#
# Samba conection
/sbin/iptables -A INPUT -i eth2 -p tcp -m multiport --dport 137,138,139,445 -s 192.168.0.0/24 -j ACCEPT
/sbin/iptables -A INPUT -i eth2 -p udp -m multiport --dport 137,138,139,445 -s 192.168.0.0/24 -j ACCEPT
#
# Setup PING
# Allow me ping outside
/sbin/iptables -A INPUT -p icmp -m icmp -i eth2 --icmp-type echo-request -j ACCEPT
/sbin/iptables -A OUTPUT -p icmp -m icmp -o eth2 --icmp-type echo-request -j ACCEPT
#
# Setup to WEB access
/sbin/iptables -A OUTPUT -o eth2 -p tcp -m multiport --dport 21,22,80,137,138,139,443,445,3128,8000,8080 -j ACCEPT
/sbin/iptables -A OUTPUT -o eth2 -p udp -m multiport --dport 21,22,80,137,138,139,443,445,3128,8000,8080 -j ACCEPT
#
[/console]
eth2 - это ваш сетевой интерфейс, соответсвенно если их два, то можно и нужно разграничить, например самба из внутреннего, апач из внешнего
192.168.0.555 - это IP адрес вашей рабочей машины, с которой вы рулите, что бы ни кто другой рулить не смог.
А вообще, если сервант смотрит в мир, то лучше ssh на другой порт повесить, и его (ЭТОТ ПОРТ) так эе нужно тут открыть, а 22 потом закрыть.

#175586

Мою консольку сохраните в файл, например pravila.sh и сделайте исполнимым, а потом запустите ./pravila.sh

#175589

Да дело в том, что ssh висит на другом порту
Можете переписать свои правила, если мне нужен открытый порт 21 для фтп, и 27000:30000 по udp

[console]/sbin/iptables -A INPUT -i eth2 -p tcp --dport 22 -s 192.168.0.555 -j ACCEPT[/console]
А здесь, как я понял, вместо 22 порта вписать свой порт для ssh и можно без ограничения по ip?
Извиняюсь, если вопросы глупые, но я немного в панике)

#175592

Конечно не в тему а машина случайно не как роутер стоит? на базе атома?

#175594
Kettler написал:
Конечно не в тему а машина случайно не как роутер стоит? на базе атома?

Нет, машина используется для игровых серверов. Не атом.

#175596

[console]/sbin/iptables -A OUTPUT -o eth2 -p tcp -m multiport --dport 21,22,80,137,138,139,443,445,3128,8000,8080 -j ACCEPT[/console]
Какой из этих портов не нужен, если я не использую ни самбу, ни какой-либо веб-сервер?

#175603

[console]# touch rules
# ./rules[/console]
Вставил правила, выставил права на запуск, запустил и файл уже выполняется минут 5. Так и должно быть?

upd: оказывается, повисла консоль

#175609
4fun написал:
Какой из этих портов не нужен, если я не использую ни самбу, ни какой-либо веб-сервер?

[console]cat /etc/services[/console]
А вообще, если не используете самби апач, то это 137,138,139,445 443, 80, 8080,8000 вам не нужны.
Вот ваши правила:
[console]
/sbin/iptables -A INPUT -i eth2 -p tcp --dport 21 -j ACCEPT
/sbin/iptables -A INPUT -i eth2 -p udp --dport 21 -j ACCEPT
/sbin/iptables -A INPUT -i eth2 -p udp --dport 27000:30000 -j ACCEPT
[/console]

4fun написал:
А здесь, как я понял, вместо 22 порта вписать свой порт для ssh и можно без ограничения по ip?

Да, можно и нужно, иначе не войдёте. А ограничение по адресу лучше оставить. Если удалённый не динамика.

4fun написал:
Извиняюсь, если вопросы глупые, но я немного в панике)

Нормальные вопросы, все мы учились по немногу и у всех бывает оврал.

#175611
4fun написал:
Вставил правила, выставил права на запуск, запустил и файл уже выполняется минут 5. Так и должно быть?

Нет, он отработать должен почти мгновенно.

#175615

Спасибо, попробую, как только восстановлю доступ к ssh)

#175617

Незачто, скорее всего он и отработал мгновенно и отрубил вам доступ.

#175625

Какой командой можно проверить, открыт ли тот или иной udp порт?
iptables сбросил посредством
[console]iptables -F
iptables -X[/console]
Но теперь к одному из игровых серверов, расположенных на одном из портов, кто-то может подключиться, а кто-то - нет, потому и хочу проверить, открыт ли он

#175626
4fun написал:
Какой командой можно проверить, открыт ли тот или иной udp порт?

[console]iptables -L -n[/console]

#175632

[console]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpts:27000:30000
LOG udp -- 0.0.0.0/0 0.0.0.0/0 udp dpts:23000:30001 STRING match "|07000080050000003b7464043d657c2e617c216f7026792b237127697b344307302c79612b71682771617c616c6f3e22791b40237321366b2c3820223e6c362b707635615e587466|" ALGO name kmp TO 65535limit: avg 1/hour burst 5 LOG flags 0 level 4 prefix ` New_Exploit_Ataka '
DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpts:23000:30001 STRING match "|07000080050000003b7464043d657c2e617c216f7026792b237127697b344307302c79612b71682771617c616c6f3e22791b40237321366b2c3820223e6c362b707635615e587466|" ALGO name kmp TO 65535

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain RH-Firewall-1-INPUT (0 references)
target prot opt source destination

Chain in-wan (0 references)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 state NEW recent: SET name: SSH side: source
LOG tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 recent: UPDATE seconds: 60 hit_count: 4 TTL-Match name: SSH side: source LOG flags 0 level 4 prefix `SSH_BRUTFORCE: '
REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 recent: UPDATE seconds: 60 hit_count: 4 TTL-Match name: SSH side: source reject-with icmp-port-unreachable[/console]
Есть мысли, почему, например, к 27034 кто-то может подкл, а я не могу, хотя к тому же 27020 могу. или это уже не в iptables проблема?

#175634

Сдаётся мне дело в криптах, которые посчитали что существует слишком много подключений и слишком часто с одного и того же адреса на один и тот же порт.

Войдите или зарегистрируйтесь, чтобы ответить.