Меня просят управлять несколькими веб-серверами, когда моим клиентам требуется что-то изменить.
Все, что я хочу сделать, это временно ограничить доступ HTTP
только HTTPS
для себя, в то время как все остальные соединения будут открыты для всех, пока я провожу тестирование.
У них нет iptables
доступа к sudo, но у меня есть доступ к sudo.
Работает много других служб, которые я не хочу прерывать. Я также не хочу отключаться от своего сеанса ssh, поскольку у меня нет доступа к консоли, чтобы отменить его.
Если я запущу только эти 2 команды, будут ли они ограничивать только HTTP
работу HTTPS
других портов?
iptables -I INPUT -p tcp -s 0.0.0.0/0 --match multiport --dport 80,443 -j DROP
iptables -I INPUT -p tcp -s 10.1.1.2 --match multiport --dport 80,443 -j ACCEPT
Редактировать: Изменен порядок правил.
решение1
iptables --list
Да, обрабатывается только то, что находится в , если DROP ALL
его нет, то все остальное разрешено.
Но если мы используем , -I (Insert)
то порядок правил должен быть Drop
первым, что означает, что он DROP
будет находиться в конце, а ACCEPT
правила будут обработаны первыми.
[root@hostname ~]# iptables -I INPUT -p tcp -s 0.0.0.0/0 --match multiport --dport 80,443 -j DROP
[root@hostname ~]# iptables -I INPUT -p tcp -s 10.1.1.2 --match multiport --dport 80,443 -j ACCEPT
Теперь бегиiptables --list
[root@hostname ~]# iptables --list
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 10.1.1.2 anywhere multiport dports http,https
DROP tcp -- anywhere anywhere multiport dports http,https