Как я могу предотвратить блокировку после изменения политики iptables по умолчанию?
Я работаю над экспериментом. Когда я (клиент) SSH в шлюз и запускаю sudo iptables --policy INPUT DROP
тогда шлюз не принимает никаких сообщений (или входных данных) от моего клиента.
От running sudo iptables --policy INPUT ACCEPT
на шлюзе, то клиент может снова написать.
У меня вопрос: как я могу восстановить ситуацию с клиента?
3 ответа
Есть две вещи, которые вы должны сделать, чтобы сохранить эту систему доступной перед изменением netfilter -rules:
- создать исключение в правилах брандмауэра для
ssh
с вашей машины - создать защиту
создать исключение
создать соответствующее правило с iptables
sudo iptables -A INPUT -p tcp --dport ssh --source-address yourextIPadd -j ACCEPT
(где yourextIPadd
это IP адрес вашей машины дома, видно снаружи)
или используя UFW
Если у вас есть UFW уже установлен, вы можете сказать UFW создать исключение
sudo ufw allow from yourextIPadd to any port 22
создать защиту
Перед выполнением команды для изменения политики по умолчанию для netfilter на DROP
вы можете сказать системе отменить эту команду через (скажем) 5 минут с помощью удобной команды at
sudo at -vM now +5 minutes
теперь вы находитесь в чем-то вроде редактора, где вы можете вводить команды, которые будут выполняться позже, вы закрываете / заканчиваете их, набирая CTRL D.
Тип
/sbin/iptables --policy INPUT ACCEPT
CTRL D
Вы увидите что-то вроде
sudo at -vM now +1 minute
Fri Aug 29 17:46:00 2014
warning: commands will be executed using /bin/sh
at> /sbin/iptables iptables --policy INPUT ACCEPT
at> <EOT>
job 5 at Fri Aug 29 17:46:00 2014
замечания
- тебе нужно позвонить
at
сsudo
(Это должно бытьroot's
за столом) - поэтому нет необходимости
sudo
в -v
говоритat
чтобы показать предполагаемое время выполнения, когда вы закончите-M
говоритat
не отправлять электронную почту об успехе / неудаче- для всесторонней помощи с
iptables
взгляните на IPTables Howto
Вы не можете... по крайней мере, использовать протокол соединения на основе IP. Потому что ваше правило отбрасывает весь входящий IP-трафик, поступающий на шлюз.
Кстати, все протоколы, которые я знаю, такие как ssh, vnc, rdp и т. Д., Используют IP.
Я наткнулся на этот вопрос, когда я изучал другие виды правил для iptables. и я думал, что добавлю свое собственное предложение.
для примера, следующее - это средство, гарантирующее, что вы не заблокируете СВОЙ локальный хост. отредактируйте свои IP-адреса в соответствии с топологией вашей сети. Я не знаю, что другие используют для своего диапазона IP. Мое предложение или совет с точки зрения безопасности при настройке локальной сети (домашней, но также деловой и т. д.) не используют 192.168.0.1, а вместо этого используют 10.0.0.0 ... Почему? просто. Все, что не является ПО УМОЛЧАНИЮ, немедленно повышает вашу безопасность, хотя бы чуть-чуть. Как только злоумышленник входит, он в значительной степени входит. И это только вопрос времени, прежде чем они выяснят вашу сетевую схему.
Надеюсь это поможет.
эта настройка также сохраняется после перезагрузки компьютера. до тех пор, пока вы гарантируете выполнение netfilter-persistent save.
# Set default policies for all three default chains
$ sudo iptables -P INPUT DROP
$ sudo iptables -P FORWARD DROP
$ sudo iptables-P OUTPUT ACCEPT
# Enable free use of loopback interfaces
$ sudo iptables -A INPUT -i lo -j ACCEPT
$ sudo iptables -A OUTPUT -o lo -j ACCEPT
#Dont lock yourself out
$ sudo iptables -I INPUT 1 -i eth0 -p tcp --syn -m state --state NEW -s 192.168.0.1 -d 192.168.0.2 -j ACCEPT
$ sudo iptables -I OUTPUT 1 -o eth0 -p tcp --syn -m state --state NEW -s 192.168.0.1 -d 192.168.0.2 -j ACCEPT
# Allow your local subnet
$ sudo iptables -A INPUT -p tcp ! --syn -m state --state NEW -s 192.168.0.1/24 -j DROP
# Accept inbound TCP packets
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -s 192.168.0.1/24 -j ACCEPT
# Accept inbound ICMP messages
$ sudo iptables -A INPUT -p ICMP --icmp-type 8 -s 192.168.0.1/24 -j ACCEPT
$ sudo iptables -A INPUT -p ICMP --icmp-type 11 -s 192.168.0.1/24 -j ACCEPT
# Accept outbound packets
$ sudo iptables -I OUTPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT
$ sudo iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
дальше, прежде чем делать что-то еще. Вы должны выполнить
$ sudo iptables-save >> iptables-rules-ipv4.sh
$ sudo netfilter-persistent save