Я использую звездочку на своем сервере и хочу максимально защитить свою систему. В настоящее время он защищен с помощью fail2ban, и я хотел бы добавить еще немного защиты. В идеале я хотел бы заблокировать все и разрешить только:
и
Попробуйте этим.
Создают iptables.sh
и вставляют /root/
, Дают x разрешение
chmod +x /root/iptables.sh
Редактирование /etc/rc.local
к сценарию триггера на перезагрузке
sudo nano /etc/rc.local
, добавляют в конце Сценария
#!/bin/bash
#echo service iptables stop | at now + 3 min
#################################################
# clear existing chains
#################################################
/etc/init.d/iptables stop
iptables --flush
iptables --delete-chain
#################################################
# allow loopback
#################################################
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#################################################
# drop all ICMP
#################################################
iptables -A INPUT -p icmp --icmp-type any -j DROP
iptables -A OUTPUT -p icmp -j DROP
#################################################
# allow established connections
#################################################
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#################################################
# allow public
#################################################
# 33332
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 33332 -j ACCEPT
# 35060
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 35060 -j ACCEPT
# RTP 10000 up to 200000
iptables -A INPUT -p udp --match multiport --dports 10000:20000 -j ACCEPT
#################################################
# ssh
#################################################
iptables -N ATTACKED
iptables -N ATTK_CHECK
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --update --seconds 86400 --name BANNED --rsource -j DROP
iptables -A ATTACKED -m recent --update --seconds 600 --hitcount 3 -j LOG --log-prefix "IPTABLES (Rule ATTACKED): " --log-level 7
iptables -A ATTACKED -m recent --set --name BANNED --rsource -j DROP
iptables -A ATTK_CHECK -m recent --set --name ATTK –-rsource
iptables -A ATTK_CHECK -m recent --update --seconds 600 --hitcount 3 --name ATTK --rsource -j ATTACKED
iptables -A ATTK_CHECK -j ACCEPT
#################################################
# default policies
#################################################
iptables -P INPUT DROP
файла sh /root/iptables.sh
Я полагаю, что эти правила помогут
# Drop everything
iptables -P INPUT DROP
# Allow certain ports
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 33332 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 35060 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT
# Disable ICMP
iptables -I INPUT -i eth0 -p icmp -s 0/0 -d 0/0 -j DROP
И конечно должны сохранить правила. Iptables-персистентный хороший инструмент для этого:
sudo apt-get install iptables-persistent
После того, как это будет установлено, можно сохранить/перезагрузить правила iptables в любое время:
sudo /etc/init.d/iptables-persistent save
sudo /etc/init.d/iptables-persistent reload
блокирование SSH сделано в/etc/fail2ban/jail.conf или /etc/fail2ban/jail.local
bantime = 86400
findtime = 600
maxretry = 3
Удачи!
Я предложил бы установить разработчика брандмауэра как shorewall
или ufw
. Только позвольте входящий трафик на портах, требуемых для услуг, которые Вы хотите предоставить. Эти инструменты помогут гарантировать, чтобы Вы позволили критический трафик как DNS и определенные типы ICMP при блокировании вещей, которые должны быть заблокированы. Они должны также зарегистрировать соответствующий трафик.
fail2ban
действительно работает с Shorewall. Вы можете также ratelimit соединения относительно легко. Я успешно не использовал UFW, но я ожидаю, что он также работал бы с 'fail2ban.