Здравствуйте. После стоп-старт фаерволла, iptables заблочил все порты, которые раннее были открыты. Как можно вернуть старые правила? Заблочено все: ftp, ssh и т.д. То есть я даже от терминала отключиться не могу, т.к. потом не зайду. Видимо, слетели все правила.
Проблема с фаерволлом
[console]
servise iptables restart
[/console]
Вернёт его в исходное сотояние, которое было до ваших манипуляций. Если конечно не сдлали после них iptables save
Если такую промашку допустили то [console]
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
[/console]
Откроет вам всё и вся, но только с этим аккуратнее, особенно если сервант смотрит в мир.
[console]serviсe iptables restart[/console]
Не помогло. iptables save не делал. То есть у меня были открыты те порты, которые мне нужны, сделал стоп-старт фаерволла (надо было проверить кое-что) и все, все порты заблочены. Сервер, как вы выразились, смотрит в мир.
Тогда рулите политиками, как я описал во второй консоли.
Только вы должны быть уверены в том что делаете.
Команда iptables -L -n -v что показывает? приведите её вывод сюда.
[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
Да а чего там разбираться? всё просто, у вас уже "всё включено".
То есть все политики по умолчанию разрешают доступ. Так же открыт доступ к 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 потом закрыть.
Мою консольку сохраните в файл, например pravila.sh и сделайте исполнимым, а потом запустите ./pravila.sh
Да дело в том, что 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?
Извиняюсь, если вопросы глупые, но я немного в панике)
Конечно не в тему а машина случайно не как роутер стоит? на базе атома?
Конечно не в тему а машина случайно не как роутер стоит? на базе атома?
Нет, машина используется для игровых серверов. Не атом.
[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]
Какой из этих портов не нужен, если я не использую ни самбу, ни какой-либо веб-сервер?
[console]# touch rules
# ./rules[/console]
Вставил правила, выставил права на запуск, запустил и файл уже выполняется минут 5. Так и должно быть?
upd: оказывается, повисла консоль
Какой из этих портов не нужен, если я не использую ни самбу, ни какой-либо веб-сервер?
[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]
А здесь, как я понял, вместо 22 порта вписать свой порт для ssh и можно без ограничения по ip?
Да, можно и нужно, иначе не войдёте. А ограничение по адресу лучше оставить. Если удалённый не динамика.
Извиняюсь, если вопросы глупые, но я немного в панике)
Нормальные вопросы, все мы учились по немногу и у всех бывает оврал.
Вставил правила, выставил права на запуск, запустил и файл уже выполняется минут 5. Так и должно быть?
Нет, он отработать должен почти мгновенно.
Спасибо, попробую, как только восстановлю доступ к ssh)
Незачто, скорее всего он и отработал мгновенно и отрубил вам доступ.
Какой командой можно проверить, открыт ли тот или иной udp порт?
iptables сбросил посредством
[console]iptables -F
iptables -X[/console]
Но теперь к одному из игровых серверов, расположенных на одном из портов, кто-то может подключиться, а кто-то - нет, потому и хочу проверить, открыт ли он
Какой командой можно проверить, открыт ли тот или иной udp порт?
[console]iptables -L -n[/console]
[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 проблема?
Сдаётся мне дело в криптах, которые посчитали что существует слишком много подключений и слишком часто с одного и того же адреса на один и тот же порт.