Назад | Перейти на главную страницу

Брандмауэр блокирует меня по ssh

Просто пытаюсь создать простой скрипт, который настроит 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 минут, чтобы вы могли войти в систему, даже если что-то выйдет из-под контроля.