Просто пытаюсь создать простой скрипт, который настроит iptables на блокировку всего входящего и исходящего трафика, кроме ssh на порту 22 по умолчанию и udp на порту 8888.
Вот что у меня есть:
#!/bin/sh
#
# Flush all current rules from iptables
#
iptables -F
#
# Set default policies for INPUT, FORWARD and OUTPUT chains
#
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
#
# Allow SSH connections on tcp port 22
#
iptables -A INPUT -i eto0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eto0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
#
# Set access for localhost
#
iptables -A INPUT -i lo -j ACCEPT
#
# Accept connections on 8888 for vpn access from client
#
iptables -A INPUT -i eth0 -p udp --dport 8888 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --sport 8888 -m state --state ESTABLISHED -j ACCEPT
#
# Apply forwarding for OpenVPN Tunneling
#
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0./24 -o eth0 -j MASQUERADE
iptables -A FORWARD -j REJECT
#
# Enable forwarding
#
echo 1 > /proc/sys/net/ipv4/ip_forward
#
# List rules
#
iptables -L -v
Но когда я запускаю его, мой vps блокируется, и мне приходится перезапускать его, чтобы снова войти. Я действительно не вижу, где я ошибаюсь ... также vpn не будет работать после запуска этого межсетевого экрана.
Я также хотел заблокировать все пинги к общедоступному ip на всех портах, но понятия не имел, как это сделать.
поскольку вы заблокированы по причине «eto0! = eth0», и настройте политики в конце после того, как вы настроили все свои правила и разрешили весь исходящий трафик на всех интерфейсах.
для правил, связанных с пингом man iptables
и читайте дальше icmp
Кроме того, в будущем создайте правило разрешить все что-то вроде
/sbin/iptables -P INPUT ALLOW
и то же самое для OUTPUT и FORWARD, и поместите его в свой cron, чтобы он запускался каждые 5/10 минут, чтобы вы могли войти в систему, даже если что-то выйдет из-под контроля.