1 (08.07.2011 12:05:40 отредактировано 4fun)

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

2

 Консоль:

servise iptables restart

Вернёт его в исходное сотояние, которое было до ваших манипуляций. Если конечно не сдлали после них iptables save
Если такую промашку допустили то
 Консоль:

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT

Откроет вам всё и вся, но только с этим аккуратнее, особенно если сервант смотрит в мир.

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

3

 Консоль:
serviсe iptables restart

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

4

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

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

5

 Консоль:
# 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

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

6

Да а чего там разбираться? всё просто, у вас уже "всё включено".
То есть все политики по умолчанию разрешают доступ. Так же открыт доступ к 22 порту, ssh то есть. Вы же подключенны по ssh?
Такое положение вещей не есть айс, так как к вам может зайти любой.
Собственно вам нужно назначить политики по умолчанию всё запрещающие и открыть только те порты, которые вм нужны.
Вот пример:

 Консоль:

#!/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
#

eth2 - это ваш сетевой интерфейс, соответсвенно если их два, то можно и нужно разграничить, например самба из внутреннего, апач из внешнего
192.168.0.555 - это IP адрес вашей рабочей машины, с которой вы рулите, что бы ни кто другой рулить не смог.
А вообще, если сервант смотрит в мир, то лучше ssh на другой порт повесить, и его (ЭТОТ ПОРТ) так эе нужно тут открыть, а 22 потом закрыть.

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

7

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

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

8

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

 Консоль:
/sbin/iptables -A INPUT -i eth2 -p tcp --dport 22 -s 192.168.0.555 -j ACCEPT

А здесь, как я понял, вместо 22 порта вписать свой порт для ssh и можно без ограничения по ip?
Извиняюсь, если вопросы глупые, но я немного в панике)

9

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

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

10

Kettler пишет:

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

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

11

 Консоль:
/sbin/iptables -A OUTPUT -o eth2 -p tcp -m multiport --dport 21,22,80,137,138,139,443,445,3128,8000,8080 -j ACCEPT

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

12 (08.07.2011 12:55:21 отредактировано 4fun)

 Консоль:
# touch rules
# ./rules

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

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

13

4fun пишет:

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

 Консоль:
cat /etc/services

А вообще, если не используете самби апач, то  это 137,138,139,445 443, 80, 8080,8000 вам не нужны.
Вот ваши правила:
 Консоль:

/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

4fun пишет:

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

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

4fun пишет:

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

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

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

14

4fun пишет:

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

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

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

15

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

16

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

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

17

Какой командой можно проверить, открыт ли тот или иной udp порт?
iptables сбросил посредством

 Консоль:
iptables -F
iptables -X

Но теперь к одному из игровых серверов, расположенных на одном из портов, кто-то может подключиться, а кто-то - нет, потому и хочу проверить, открыт ли он

18

4fun пишет:

Какой командой можно проверить, открыт ли тот или иной udp порт?

 Консоль:
iptables -L -n

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

19

 Консоль:
# 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


Есть мысли, почему, например, к 27034 кто-то может подкл, а я не могу, хотя к тому же 27020 могу. или это уже не в iptables проблема?

20

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

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

21

Хм, а где эти крипты посмотреть?

22

Вот хотя бы первая строчка

4fun пишет:

ALGO name kmp TO 65535limit: avg 1/hour burst 5 LOG flags 0 level 4 prefix ` New_Exploit_Ataka '

А как у Вас задаются правила?

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

23

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

24

У вас таких четыре строчки.  wink
Я бы на вашем месте всётаки поотключал пока все скрипты и сначала настроил необходимый мимнимум, а потму уже можно добавлять функционал.
Всётаки как Вы правила задаёте? скриптом? если да, то покажите его, если каждый раз командами, то эт оне есть айс, потому как неправильно введённая команда может что т оиспортить, а что бы востановить всё обратно вам понадобится вводить уже несколько откатанных команд, и если вы какую т оупустите, или даже введёте не втом порядке, то эффект может быть абслютно не таким, как вы его ожидали.
ННа время отладки я бы посоветовал вам взять за основу мою консольку и просто добавлять команды туда, а ненужные коментить знаком #, что бы если что переделать не составило труда. А потом, когда уже всё отлажено, то можно сделать iptables -save

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null