У меня есть vps, которые размещают некоторый сервис, только я использовал. Сегодня, я нашел кого-то сканирующего мой vps
netstat -ntu | awk '{print $5}' |sort | uniq -c | sort -n
И найденный некоторым результатом (я удалил свой IP снизу),
1 xxxxxxxxxxx:59564
1 xxxxxxxxxxx:59569
1 xxxxxxxxxxx:59570
1 xxxxxxxxxxx:59576
1 120.236.148.199:2226
1 127.0.0.1:41108
1 127.0.0.1:41148
1 127.0.0.1:41156
1 127.0.0.1:41158
1 127.0.0.1:41178
1 127.0.0.1:41180
1 183.61.236.54:3128
1 213.13.37.231:3128
1 218.244.149.184:8888
1 46.164.141.173:8080
1 58.96.172.205:8888
1 Address
1 servers)
2 ::1:9988
2 219.156.157.186:80
10 127.0.0.1:3306
11 127.0.0.1:3999
У меня есть некоторый веб-сервис только для меня, я хочу запретить весь IP, после того как они получают доступ к другим портам, но существуют некоторые проблемы.
Я устанавливаю прокси socks5 на 8 699, но это кажется открытым некоторый другой порт для обслуживания моего соединения:
tcp6 0 0 default.hostname:8699 my_vps_ip_here.bro:59570 ESTABLISHED
tcp6 0 0 default.hostname:8699 my_vps_ip_here.bro:59576 ESTABLISHED
tcp6 0 0 default.hostname:8699 my_vps_ip_here.bro:59564 ESTABLISHED
tcp6 0 0 default.hostname:8699 my_vps_ip_here.bro:59569 ESTABLISHED
netstat -ntu | awk '{print $5}' |sort | uniq -c | sort -n
не делает шоу, которые я соединяю 8699
, только шоу 59570, 59576, 59564, 59569
. Каково корректное правило для этого случая?
Что рекомендуемый путь состоит в том, чтобы автоматически запретить IP? Я только придумываю: сохраните проверку результатом netstat -ntu | awk '{print $5}' |sort | uniq -c | sort -n
каждую секунду, и добавьте плохой IP к iptables.
Я знаю iptables, и ufw может запретить IP, ufw походит больше на менеджера, но является там каким-либо лучшим выбором?
проверки psad на сканирования портов и могут реагировать соответственно, проверить эту ссылку на краткое описание о том, как настроить ее. Я просто погуглил его, также существуют многочисленные другие учебные руководства. Это доступно в репозиториях человечности, посмотрите здесь.
Также Fail2ban мог быть чем-то для Вас, видеть их Wiki для большего количества информации. Это по существу проверяет файлы журнала на Вас и может заблокировать IP-адреса автоматически. Это доступно в репозиториях человечности, посмотрите здесь.
**
Какой рекомендуемый способ автоматической блокировки IP?
**
iptables и ufw могут работать лучше с небольшой автоматизацией. fail2ban делает это, и я бы порекомендовал его как хороший выбор. Проведите предварительную проверку,
проверьте установленные соединения
судо lsof -i -n | egrep '
проверка странных пользователей и sudo-ers
getent group sudo | вырезать -d: -f4
grep -Po '^sudo.+:\K.*$' /etc/group
Постоянные баны
С помощью небольшой настройки вы можете запретить повторные попытки и восстановить действующий запрет.
установите fail2ban,
apt install fail2ban
теперь отредактируйте файл multiport.conf в fail2ban vim или nano,
nano /etc/fail2ban/action.d/iptables-multiport.conf
добавьте эти строки к 'actionstart' (наверное, с 4-й строки)
cat /etc/fail2ban/persistent.bans | awk '/^fail2ban-<name>/ {print $2}' \
| while read IP; do iptables -I fail2ban-<name> 1 -s $IP -j <blocktype>; done
так, чтобы он выглядел примерно так
[Definition]
# Option: actionstart
# Notes.: command executed once at the start of Fail2Ban.
# Values: CMD
#
actionstart = <iptables> -N f2b-<name>
<iptables> -A f2b-<name> -j <returntype>
<iptables> -I <chain> -p <protocol> -m multiport --dports <port> -j f2b-<name>
cat /etc/fail2ban/persistent.bans | awk '/^fail2ban-<name>/ {print $2}' \
| while read IP; do iptables -I fail2ban-<name> 1 -s $IP -j <blocktype>; done
добавьте эту строку в actionban сразу после строки actionban = ...
для постоянного бана по ips
echo "fail2ban-<name> <ip>" >> /etc/fail2ban/persistent.bans
теперь перезапустите fail2ban,
sudo service fail2ban restart
и дайте 'бан'
sudo fail2ban-client set sshd banip 112.0.0.0/8
sudo fail2ban-client set sshd banip 222.186.0.0/16
теперь проверьте наличие эффективных постоянных банов,
tail /var/log/fail2ban.log
вы должны увидеть что-то вроде,
NOTICE [sshd] Restore Ban 112.0.0.0/8
так повторных атак можно избежать, и теперь вы можете использовать iptables, чтобы разрешить только свой ip
PS: поскольку fail2ban постоянно блокирует злоумышленников, вы можете просто расслабиться и убедиться, что НЕТ УСТАНОВЛЕННЫХ подключений к службам, использующим,
sudo lsof -i -n | egrep '\<ssh\>'
sudo lsof -i -n | egrep '\<sshd\>'
( обратите внимание, что вам нужна специальная «тюрьма» для конкретной службы) и посмотрите постоянные баны
cat /etc/fail2ban/persistent.bans
Вывод:
fail2ban-sshd 112.0.0.0/8
fail2ban-sshd 218.92.0.0/16
fail2ban-sshd 218.92.0.138
Объяснение
actionstart: мы можем добавить некоторые команды действий, которые будут выполняться только во время запуска fail2ban. Итак, мы добавили /etc/fail2ban/persistent.bans
во время запуска
actionban: всякий раз, когда на ip накладывается бан, этот ip добавляется в файл persist.bans, который будет действовать во время фейл2бан работает. Вы можете позже отредактировать этот файл, если считаете, что IP-адрес не участвует в вредоносных атаках.
вы можете вручную заблокировать рассматриваемые IP-адреса, используя
sudo fail2ban-client set sshd banip 112.0.0.0/8
sudo fail2ban-client установить sshd banip 222.186.0.0/16