Заблокировать доступ по IP?

Alex Emergy alex.emergy на gmail.com
Пт Сен 16 08:29:00 UTC 2011


Если долбится человек, а не бот, смена порта 100% не поможет.
Банально nmap -A -v <ip> все расскажет. Странно что не сработал hosts.deny.

Людмила если не можете осилить iptables - попробуйте shorewall. Это 
генератор правил для iptables на основе вполне вменяемых и понятных 
конфигов. Есть русскоязычная документация 
(http://www.shorewall.net/standalone_ru.html), все очень просто.

Пример настройки для бубунты:

Устанавливаем:

sudo apt-get install shorewall

Смотрим ман:
zcat /usr/share/doc/shorewall/README.Debian.gz|less
узнаем от туда, что дефолтные конфиги в 
(/usr/share/doc/shorewall/default-config/) и о том, что надо поправить 
файл /etc/default/shorewall.

Правим /etc/default/shorewall
Для того чтобы он запускался startup=0 меняем на startup=1

Основные конфиги:
# ls -1 /etc/shorewall/
interfaces    -    описание интерфейсов
Makefile
masq    -    раздача интернет в NAT
policy    -    политика файрвола
rules    -    правила файрвола
shorewall.conf    -    основной конфиг (зачастую в нём ничего не 
меняется, но если к примеру мы раздаём инет во внутреннюю сеть, то 
IP_FORWARDING должен быть Yes. Или к примеру используется телевидение на 
мультикасте то MULTICAST=Yes)
shorewall.conf.dpkg-dist
start
zones - зоны файрвола

Приступаем к настройке:

К примеру у нас есть 3 интефейса. Два физических и один pppoe или vpn, в 
общем: eth0, eth1 и ppp0.

eth0 - локалка провайдера
eth1 - внутренняя домашняя сеть
ppp0 - впн или pppoe. В общем интернет.

В первую очередь включаем IP_FORWARDING в shorewall.conf

Зоны:
cp /usr/share/doc/shorewall/default-config/zones /etc/shorewall/
vi /etc/shorewall/zones

# локалка
loc    ipv4
# внутренняя домашняя сеть
nat    ipv4
# интернет
net    ipv4

название зоны максимум 4 символа

Назначаем каждой зоне интерфейс:
cp /usr/share/doc/shorewall/default-config/interfaces /etc/shorewall/
vi /etc/shorewall//interfaces

loc    eth0
nat    eth1
net    ppp0

Политика файрвола:
cp /usr/share/doc/shorewall/default-config/policy /etc/shorewall/
vi /etc/shorewall/policy

# fw - это сам шаршрутизатор. Т.е. локальная машина.
# разрешаем fw ходить куда угодно
fw              all             ACCEPT
# разрешаем из домашней сети ходить в инет и локалку
nat            net            ACCEPT
nat            loc            ACCEPT
# все остальное дропаем
all             all            DROP

Правила файрвола:
cp /usr/share/doc/shorewall/default-config/rules /etc/shorewall/rules
vi /etc/shorewall/rules

# Разрешаем SSH на маршрутезатор
SSH/ACCEPT      all                     $FW
# запрещаем с ip 8.8.8.8
SSH/DROP          net:8.8.8.8        $FW

#разрешаем доступ по веб на маршрутизатор
Web/ACCEPT      all                     $FW

#Прокидываем порт 3389 на машину в домашней сети
DNAT            all                     nat:192.168.1.181     tcp     3389
#Тоже самое но с готовым макросом FTP
FTP/DNAT        all                     nat:192.168.1.181

#Разрешаем пинги
Ping/ACCEPT     all                     $FW

Макросы можно посмотреть в /usr/share/shorewall/macro.*
по сути это почти готовые правила к примеру макрос Web:
$ grep -vE '^$|^#' /usr/share/shorewall/macro.Web
PARAM    -    -    tcp    80    # HTTP (plaintext)
PARAM    -    -    tcp    443    # HTTPS (over SSL)

Раздача интернета:
vi /etc/shorewall/masq
ppp0    eth1
eth0    eth1

Если на интерфейсах разный размер MTU, следует включить фрагментацию
vi /etc/shorewall/start
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS 
--clamp-mss-to-pmtu
dmesg -n5

Вторая строчка избавляет от флуда в консоль об этом написано в 
README.Debian.gz (который мы читали вначале)

Осталось "перезагрузить демон". В реале нет никакого демона, просто 
генерируются правила и всё.
service shorewall restart

можно любоваться сгенерированными правилами iptables

iptables -L

Или даже сохранить их с помощью iptables-save и удалить shorewall)))


Удачи!

16.09.2011 09:26, Илья Телегин пишет:
> Смени порт SSH сервера - мне помогло от 80% таких вот мягко говоря уродов.
> 100% случая мне помогло настройка SSH сервера, а именно при не удачных
> 5 попытках банить IP адрес с помощью правил Firewall на 30 мин. Честно
> говоря я это делал под FreeBSD, но под Ubuntu точно это можно сделать.
>
> 16 сентября 2011 г. 1:29 пользователь Людмила Бандурина
> <bigdogs.ru на gmail.com>  написал:
>> Здравствуйте всем,
>> Подскажите, пожалуйста, как в Ubuntu заблокировать определенному IP доступ к
>> серверу по всем портам (включая открытые для всех 80 и 8080)?
>> Попробовала прописать в /etc/hosts.deny
>> ALL: 196.46.242.38
>> Не помогает :-( Продолжает брутить и по SSH, и во все админки, которые
>> доступны по http. Fail2Ban стоит, но оно начинает долбиться сразу после
>> снятия бана снова. Уже на протяжении месяца долбится... хоть пароли стоят
>> сложные, но при таком упорстве ведь ему может и повезти...
>>
>> --
>> С уважением, Людмила
>>
>> --
>> ubuntu-ru mailing list
>> ubuntu-ru на lists.ubuntu.com
>> https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru
>>
>>

-- 
С уважением,
Alex Emergy




Подробная информация о списке рассылки ubuntu-ru