Защищённость ОТ сети
Модераторы: Olej, adminn, vikos
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Защищённость ОТ сети
Здесь рядом есть тема Защищённость в глобальных сетях.
Но насколько диаметрально противоположны могут быть вопросы защищённости!
В предыдущей теме рассматривались (и ещё будут!) вопросы личной защищённости пользователя от посягательств различных служб, организаций и органов власти: анонимизация, сокрытие своего IP, закрытие своей информации ... и даже просто адресатов своих интересов.
А в этой теме меня интересует противоположные вопросы: как закрыть свой хост или LAN от любопытных посягательств придурков ("хакеров" ) из внешней сети?
Какие методы и инструменты противодействия? ... как пассивного ("не допустить внутрь") так и, возможно, активного ("нанести встречный удар").
Но насколько диаметрально противоположны могут быть вопросы защищённости!
В предыдущей теме рассматривались (и ещё будут!) вопросы личной защищённости пользователя от посягательств различных служб, организаций и органов власти: анонимизация, сокрытие своего IP, закрытие своей информации ... и даже просто адресатов своих интересов.
А в этой теме меня интересует противоположные вопросы: как закрыть свой хост или LAN от любопытных посягательств придурков ("хакеров" ) из внешней сети?
Какие методы и инструменты противодействия? ... как пассивного ("не допустить внутрь") так и, возможно, активного ("нанести встречный удар").
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Защищённость ОТ сети
Тут есть несколько разнородных вопросов:Olej писал(а): А в этой теме меня интересует противоположные вопросы: как закрыть свой хост или LAN от любопытных посягательств придурков ("хакеров" ) из внешней сети?
Какие методы и инструменты противодействия? ... как пассивного ("не допустить внутрь") так и, возможно, активного ("нанести встречный удар").
1. как тестировать и диагностировать свои хост или LAN на доступность извне: ненужные открытые порты, протоколы и т.д. ... а). чтобы иметь объективную картину, б). чтобы чего-то не допустить по небрежности и в). так, чтобы это не требовало больших затрат труда и времени, чтобы можно было периодически проделывать?
2. какие меры и конфигурации предпринять, чтобы максимально затруднить доступ придурков внутрь?
3. какие меры маскировки предпринять, чтобы создать у придурков иллюзии и направить их по ложным целям?
В общем ... исследование увлекательное.
А всё, что попадётся мне интересное по любым этим вопросам, я буду сваливать сюда в тему без разбора.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Защищённость ОТ сети
Протокол SSH (порт 22) ... это первое, что приходит на ум не квалифицированному придурку ...
И действительно, по нему ломятся время от времени придурки...
Тема обсуждаема: Бан за ошибки при вводе пасса на SSH
Предлагаемые решения:
1. конфигурировать демон sshd на другой порт (не стандартный 22)
2. вечный бан пользователя (по имени) после 3-х или 5-ти (по выбору) попыток ввода неверного пароля пользователя
Код: Выделить всё
[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 писал(а): 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
Что очень правильно!
А вот с 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 писал(а):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: Защищённость ОТ сети
Создание и настройка входа через ssh
Предотвращение брутфорс-атак
...
- Целесообразно ограничить число «ожидающих» соединений, когда пароль еще не введен. Для этого, в файле /etc/openssh/sshd_config укажите строкуВ этом случае у вас будут разрешены только 2 «ожидающих» соединения, и каждое следующее будет сброшено с вероятностью 70 %Код: Выделить всё
MaxStartups 2:70:10
- Можно ограничить число попыток средствами iptables:Для оптимизации этого дела настроятельно рекомендуется завести цель LOGDROP.Код: Выделить всё
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
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Защищённость ОТ сети
Достаточно внятное описание многих (но не всех) параметров конфигурационных файлов ssh_config (secure shell клиента) и sshd_config (сервера):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 (теория и практика)
Здесь же простое (без деталей), но достаточное для оценивания безопасности, описание того, как работает протокол SSH.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Защищённость ОТ сети
В простейшем виде открытые порты на хосте контролируем из пределов LAN с помощью nmap:Olej писал(а): 1. как тестировать и диагностировать свои хост или LAN на доступность извне: ненужные открытые порты, протоколы и т.д. ... а). чтобы иметь объективную картину, б). чтобы чего-то не допустить по небрежности и в). так, чтобы это не требовало больших затрат труда и времени, чтобы можно было периодически проделывать?
Код: Выделить всё
[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
С другой стороны, изнутри доступность портов (прослушивающих, серверов) 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
И, для образца, доступные порты на роутере во внешнюю сеть моей 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: Защищённость ОТ сети
Но это только те протоколы и их порты, которые доступны из IP-сети сквозь файервол, работающий на этом хосте!Olej писал(а): В простейшем виде открытые порты на хосте контролируем из пределов LAN с помощью nmap:
Посмотреть правила 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
Код: Выделить всё
[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: Защищённость ОТ сети
Вообще ... полезно поутру, проснувшись и включить компьютер, пройтись быстренько по своей LAN ... "что там у нас с портами?" :Olej писал(а): Более детальные способы использования nmap (и ссылки на руководства) смотрим здесь.
Код: Выделить всё
[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
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя