Защищённость ОТ сети

Противодействие хакерским угрозам

Модераторы: Olej, adminn, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Защищённость ОТ сети

Непрочитанное сообщение Olej » 22 янв 2017, 12:21

Здесь рядом есть тема Защищённость в глобальных сетях.
Но насколько диаметрально противоположны могут быть вопросы защищённости!

В предыдущей теме рассматривались (и ещё будут!) вопросы личной защищённости пользователя от посягательств различных служб, организаций и органов власти: анонимизация, сокрытие своего IP, закрытие своей информации ... и даже просто адресатов своих интересов.

А в этой теме меня интересует противоположные вопросы: как закрыть свой хост или LAN от любопытных посягательств придурков ("хакеров" ;-) ) из внешней сети?
Какие методы и инструменты противодействия? ... как пассивного ("не допустить внутрь") так и, возможно, активного ("нанести встречный удар").

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Защищённость ОТ сети

Непрочитанное сообщение Olej » 22 янв 2017, 12:29

Olej писал(а): А в этой теме меня интересует противоположные вопросы: как закрыть свой хост или LAN от любопытных посягательств придурков ("хакеров" ;-) ) из внешней сети?
Какие методы и инструменты противодействия? ... как пассивного ("не допустить внутрь") так и, возможно, активного ("нанести встречный удар").
Тут есть несколько разнородных вопросов:

1. как тестировать и диагностировать свои хост или LAN на доступность извне: ненужные открытые порты, протоколы и т.д. ... а). чтобы иметь объективную картину, б). чтобы чего-то не допустить по небрежности и в). так, чтобы это не требовало больших затрат труда и времени, чтобы можно было периодически проделывать?

2. какие меры и конфигурации предпринять, чтобы максимально затруднить доступ придурков внутрь?

3. какие меры маскировки предпринять, чтобы создать у придурков иллюзии и направить их по ложным целям?

В общем ... исследование увлекательное.
А всё, что попадётся мне интересное по любым этим вопросам, я буду сваливать сюда в тему без разбора.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Защищённость ОТ сети

Непрочитанное сообщение Olej » 22 янв 2017, 12:48

Протокол SSH (порт 22) ... это первое, что приходит на ум не квалифицированному придурку ...

Код: Выделить всё

[olej@dell ssh]$ cat /etc/services | grep ^ssh
ssh             22/tcp                          # The Secure Shell (SSH) Protocol
ssh             22/udp                          # The Secure Shell (SSH) Protocol
ssh             22/sctp                 # SSH
sshell          614/tcp                 # SSLshell
sshell          614/udp                 #       SSLshell
ssh-mgmt        17235/tcp               # SSH Tectia Manager
ssh-mgmt        17235/udp               # SSH Tectia Manager
И действительно, по нему ломятся время от времени придурки...

Тема обсуждаема: Бан за ошибки при вводе пасса на SSH
Предлагаемые решения:
1. конфигурировать демон sshd на другой порт (не стандартный 22)
2. вечный бан пользователя (по имени) после 3-х или 5-ти (по выбору) попыток ввода неверного пароля пользователя

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Защищённость ОТ сети

Непрочитанное сообщение Olej » 22 янв 2017, 13:01

Olej писал(а): 1. конфигурировать демон sshd на другой порт (не стандартный 22)
Достаточно разумное решение ... и не создающее дополнительных хлопот в работе (как кажется), что очень важно во всех механизмах обеспечения защиты.
Это делается в конфигурациях демона:

Код: Выделить всё

[olej@dell ssh]$ ls -l /etc/ssh/
итого 332
-rw-r--r--  1 root root     300324 сен 30 16:29 moduli
-rw-r--r--  1 root root       2276 сен 30 16:29 ssh_config
-rw-------  1 root root       4308 сен 30 16:29 sshd_config
-rw-r-----. 1 root ssh_keys    227 июн 16  2016 ssh_host_ecdsa_key
-rw-r--r--. 1 root root        162 июн 16  2016 ssh_host_ecdsa_key.pub
-rw-r-----. 1 root ssh_keys    387 июн 16  2016 ssh_host_ed25519_key
-rw-r--r--. 1 root root         82 июн 16  2016 ssh_host_ed25519_key.pub
-rw-r-----. 1 root ssh_keys   1675 июн 16  2016 ssh_host_rsa_key
-rw-r--r--. 1 root root        382 июн 16  2016 ssh_host_rsa_key.pub
Обратите внимание, что нужный нам файл конфигурации sshd_config вы даже не прочитаете без прав root.
Что очень правильно!
А вот с root вы прочитаете там следующее:

Код: Выделить всё

# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
Как я понимаю, это и есть то, что нам надо.
А вот что за параметр?
Это ли не число попыток аутентификации, которое нас и интересует?

Код: Выделить всё

#MaxAuthTries 6
См.

Код: Выделить всё

[olej@dell 2016]$ man sshd_config
...
MaxAuthTries - Specifies the maximum number of authentication attempts permitted per connection.  Once the number of failures reaches half this value, additional failures are logged. The default is 6.
Задает максимальное число попыток аутентификации, разрешенных на подключение. Как только количество отказов достигает половины этой величины, дополнительные отказы будут регистрироваться.
Это не совсем то что надо (бан придурка навсегда), но тоже интересно и полезно.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Защищённость ОТ сети

Непрочитанное сообщение Olej » 22 янв 2017, 13:12

Olej писал(а):2. вечный бан пользователя (по имени) после 3-х или 5-ти (по выбору) попыток ввода неверного пароля пользователя
Из обсуждаемых инструментов:

Код: Выделить всё

[olej@dell ssh]$ dnf list fail*
Последняя проверка окончания срока действия метаданных: 11 days, 23:39:12 назад, Tue Jan 10 12:29:09 2017.
Доступные пакеты
fail2ban.noarch                                                   0.9.5-3.fc23                                         updates-testing
fail2ban-all.noarch                                               0.9.5-3.fc23                                         updates-testing
fail2ban-firewalld.noarch                                         0.9.5-3.fc23                                         updates-testing
fail2ban-hostsdeny.noarch                                         0.9.5-3.fc23                                         updates-testing
fail2ban-mail.noarch                                              0.9.5-3.fc23                                         updates-testing
fail2ban-sendmail.noarch                                          0.9.5-3.fc23                                         updates-testing
fail2ban-server.noarch                                            0.9.5-3.fc23                                         updates-testing
fail2ban-shorewall.noarch                                         0.9.5-3.fc23                                         updates-testing
fail2ban-systemd.noarch                                           0.9.5-3.fc23                                         updates-testing
[olej@dell ssh]$ dnf info fail2ban

Последняя проверка окончания срока действия метаданных: 11 days, 23:39:46 назад, Tue Jan 10 12:29:09 2017.
Доступные пакеты
Имя         : fail2ban
Архитектура : noarch
Эпоха       : 0
Версия      : 0.9.5
Релиз       : 3.fc23
Размер      : 14 k
Репозиторий : updates-testing
Краткое опи : Daemon to ban hosts that cause multiple authentication errors
URL         : http://fail2ban.sourceforge.net/
Лицензия    : GPLv2+
Описание    : Fail2Ban scans log files and bans IP addresses that makes too many password
            : failures. It updates firewall rules to reject the IP address. These rules can
            : be defined by the user. Fail2Ban can read multiple log files such as sshd or
            : Apache web server ones.
            : 
            : Fail2Ban is able to reduce the rate of incorrect authentications attempts
            : however it cannot eliminate the risk that weak authentication presents.
            : Configure services to use only two factor or public/private authentication
            : mechanisms if you really want to protect services.
            : 
            : This is a meta-package that will install the default configuration.  Other
            : sub-packages are available to install support for other actions and
            : configurations.

Внимание!:
- при отработке (тестировании) подобных инструментов нужно прежде тестирования выяснить способ снять бан с забаненного лога;
- тестирование работоспособности таких инструментов не нужно производить от своего имени пользователя ;-) - заведите для этих целей отдельно специального пользователя ... что-нибудь: moron, fool, stupid, freak ... и на нём репетируйте;

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Защищённость ОТ сети

Непрочитанное сообщение Olej » 22 янв 2017, 14:13

Создание и настройка входа через ssh
Предотвращение брутфорс-атак
...
- Целесообразно ограничить число «ожидающих» соединений, когда пароль еще не введен. Для этого, в файле /etc/openssh/sshd_config укажите строку

Код: Выделить всё

MaxStartups 2:70:10
В этом случае у вас будут разрешены только 2 «ожидающих» соединения, и каждое следующее будет сброшено с вероятностью 70 %

- Можно ограничить число попыток средствами iptables:

Код: Выделить всё

iptables -A INPUT -p TCP --syn --dport 22 -m recent --name ssh_rate_limit --set
iptables -A INPUT -p TCP --syn --dport 22 -m recent --name ssh_rate_limit --update --seconds 60 --hitcount 4 -j LOG
iptables -A INPUT -p TCP --syn --dport 22 -m recent --name ssh_rate_limit --update --seconds 60 --hitcount 4 -j DROP
Для оптимизации этого дела настроятельно рекомендуется завести цель LOGDROP.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Защищённость ОТ сети

Непрочитанное сообщение Olej » 22 янв 2017, 14:40

Olej писал(а): А вот с root вы прочитаете там следующее:

Код: Выделить всё

# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
Как я понимаю, это и есть то, что нам надо.
Достаточно внятное описание многих (но не всех) параметров конфигурационных файлов ssh_config (secure shell клиента) и sshd_config (сервера):
Настройка сервера SSH (теория и практика)
Здесь же простое (без деталей), но достаточное для оценивания безопасности, описание того, как работает протокол SSH.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Защищённость ОТ сети

Непрочитанное сообщение Olej » 22 янв 2017, 17:32

Olej писал(а): 1. как тестировать и диагностировать свои хост или LAN на доступность извне: ненужные открытые порты, протоколы и т.д. ... а). чтобы иметь объективную картину, б). чтобы чего-то не допустить по небрежности и в). так, чтобы это не требовало больших затрат труда и времени, чтобы можно было периодически проделывать?
В простейшем виде открытые порты на хосте контролируем из пределов LAN с помощью nmap:

Код: Выделить всё

[olej@dell ssh]$ nmap -p1-1024 localhost

Starting Nmap 7.12 ( https://nmap.org ) at 2017-01-22 16:20 EET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000098s latency).
rDNS record for 127.0.0.1: dell.localdomain
Not shown: 1021 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
199/tcp open  smux
631/tcp open  ipp

Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds
Более детальные способы использования nmap (и ссылки на руководства) смотрим здесь.

С другой стороны, изнутри доступность портов (прослушивающих, серверов) TCP на хосте смотрим так:

Код: Выделить всё

[olej@dell 2016]$ netstat -v -l -t -4 -n
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:631             0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:199           0.0.0.0:*               LISTEN     
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
Здесь видим хорошее соответствие: 22, 199, 631

И, для образца, доступные порты на роутере во внешнюю сеть моей LAN:

Код: Выделить всё

[olej@dell ssh]$ nmap -p1-1024 192.168.1.3

Starting Nmap 7.12 ( https://nmap.org ) at 2017-01-22 16:34 EET
Nmap scan report for 192.168.1.3
Host is up (0.0073s latency).
Not shown: 1022 closed ports
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in 0.26 seconds

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Защищённость ОТ сети

Непрочитанное сообщение Olej » 22 янв 2017, 17:48

Olej писал(а): В простейшем виде открытые порты на хосте контролируем из пределов LAN с помощью nmap:
Но это только те протоколы и их порты, которые доступны из IP-сети сквозь файервол, работающий на этом хосте!
Посмотреть правила iptables файервола можем так (сейчас здесь ничего интересного, но мы можем его наполнять смыслами-запретами позже):

Код: Выделить всё

[olej@dell ssh]$ sudo iptables -L -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     udp  --  virbr0 any     anywhere             anywhere             udp dpt:domain
    0     0 ACCEPT     tcp  --  virbr0 any     anywhere             anywhere             tcp dpt:domain
    0     0 ACCEPT     udp  --  virbr0 any     anywhere             anywhere             udp dpt:bootps
    0     0 ACCEPT     tcp  --  virbr0 any     anywhere             anywhere             tcp dpt:bootps
 791K  698M ACCEPT     all  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED
   13  1040 ACCEPT     icmp --  any    any     anywhere             anywhere            
12109  551K ACCEPT     all  --  lo     any     anywhere             anywhere            
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             state NEW tcp dpt:ssh
 2109  183K REJECT     all  --  any    any     anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  any    virbr0  anywhere             192.168.122.0/24     ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  virbr0 any     192.168.122.0/24     anywhere            
    0     0 ACCEPT     all  --  virbr0 virbr0  anywhere             anywhere            
    0     0 REJECT     all  --  any    virbr0  anywhere             anywhere             reject-with icmp-port-unreachable
    0     0 REJECT     all  --  virbr0 any     anywhere             anywhere             reject-with icmp-port-unreachable
    0     0 REJECT     all  --  any    any     anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 771K packets, 279M bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     udp  --  any    virbr0  anywhere             anywhere             udp dpt:bootpc
При этом не забываем проверять, что iptables у нас запущен (файервол активен):

Код: Выделить всё

[olej@dell ssh]$ sudo systemctl status iptables
[sudo] пароль для olej: 
● iptables.service - IPv4 firewall with iptables
   Loaded: loaded (/usr/lib/systemd/system/iptables.service; enabled; vendor preset: disabled)
   Active: active (exited) since Пт 2017-01-20 02:56:06 EET; 2 days ago
  Process: 889 ExecStart=/usr/libexec/iptables/iptables.init start (code=exited, status=0/SUCCESS)
 Main PID: 889 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/iptables.service

янв 20 02:56:03 dell.localdomain systemd[1]: Starting IPv4 firewall with iptables...
янв 20 02:56:06 dell.localdomain iptables.init[889]: iptables: Applying firewall rules: [  OK  ]
янв 20 02:56:06 dell.localdomain systemd[1]: Started IPv4 firewall with iptables.
И лучше бы, чтобы он у нас всегда был активен, даже если на сейчас и не осуществляет какой-то активной фильтрации.

Более чем достаточные источники по настройке правил iptables показаны здесь: правила iptables.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Защищённость ОТ сети

Непрочитанное сообщение Olej » 23 янв 2017, 12:25

Olej писал(а): Более детальные способы использования nmap (и ссылки на руководства) смотрим здесь.
Вообще ... полезно поутру, проснувшись и включить компьютер, пройтись быстренько по своей LAN ... "что там у нас с портами?" ;-) :

Код: Выделить всё

[olej@dell 13]$ nmap -n 192.168.1.0/24

Starting Nmap 7.12 ( https://nmap.org ) at 2017-01-23 11:19 EET
Nmap scan report for 192.168.1.3
Host is up (0.024s latency).
Not shown: 996 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
80/tcp    open  http
1900/tcp  open  upnp
49152/tcp open  unknown

Nmap scan report for 192.168.1.4
Host is up (0.00044s latency).
Not shown: 955 filtered ports, 43 closed ports
PORT     STATE SERVICE
80/tcp   open  http
1900/tcp open  upnp

Nmap scan report for 192.168.1.100
Host is up (0.0026s latency).
All 1000 scanned ports on 192.168.1.100 are closed

Nmap scan report for 192.168.1.101
Host is up (0.000034s latency).
Not shown: 998 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
631/tcp open  ipp

Nmap scan report for 192.168.1.103
Host is up (0.039s latency).
All 1000 scanned ports on 192.168.1.103 are closed

Nmap done: 256 IP addresses (5 hosts up) scanned in 6.20 seconds

Ответить

Вернуться в «Безопасность»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость