Я не могу использовать iptables, чтобы разрешить только мой mac-адрес для AWS EC2

В настоящее время я пытаюсь настроить iptables, чтобы разрешить подключение только определенных MAC-адресов к порту: 3690 (svn). Шаг 1. В Консоли управления EC2 > Группы безопасности (имя группы: по умолчанию) я открыл порт: 3690 для всей подсети. Шаг 2. На моем Linux-сервере (64-разрядная версия Amazon Linux AMI) я настроил iptables: 2.1 Разрешить мой mac-адрес (порт 3690) 2.2 Отключить от всех (порт 3690)

[ec2-user@ip-172-31-7-2 ~]$ sudo iptables -n -L -v --line-numbers
Chain INPUT (policy ACCEPT 1974 packets, 206K bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:3690 MAC 50:46:5D:C7:63:C1
2        5   272 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:3690

Но брандмауэр не может работать корректно. Я не могу подключиться к порту 3690 по mac-адресу. Если я удалю iptables, все клиенты смогут получить доступ к этому порту. Кто-нибудь может мне помочь???


person Wai Way    schedule 15.03.2014    source источник


Ответы (2)


Если клиент и сервер не находятся в одной и той же IP-подсети, то по определению между ними должен быть хотя бы один маршрутизатор, поэтому опять же по определению две системы не смогут обнаружить MAC-адреса друг друга.

MAC-адреса идентифицируют устройства на уровне 2 только в их локальной, физической сети... в то время как маршрутизаторы работают на уровне 3, удаляя входящий адрес уровня 2 и используя свой собственный адрес уровня 2 при отправке пакета следующему маршрутизатору или хосту в сети. путь к месту назначения. Входящий пакет от устройства в другой подсети всегда приходит с MAC-адресом маршрутизатора, который доставляет пакет.

То, что вы пытаетесь сделать, невозможно для машин в разных подсетях, и это также хорошо, потому что MAC-адреса абсолютно тривиальны для «подделки», что делает безопасность на основе MAC-адресов не чем иным, как безопасностью по неизвестности, что не имеет смысла. уровень безопасности.

Вероятно, вам даже не следует запускать прослушивание svnserve на машине, подключенной к Интернету. Механизм svn+ssh://, поддерживаемый subversion, не требует, чтобы сервер имел всегда открытый порт для прослушивания подключений... он работает с вашими существующими ключами ssh, которые, при условии, что вы небрежно настроили sshd для разрешения входа в систему только с паролем ( вместо ключей) являются феноменально более безопасным механизмом управления доступом, не говоря уже об автоматическом шифровании вашего трафика при его прохождении через Интернет.

http://svnbook.red-bean.com/en/1.7/svn.serverconfig.svnserve.html#svn.serverconfig.svnserve.sshauth

person Michael - sqlbot    schedule 15.03.2014

Хотя ответ Майкла великолепен, я хотел бы добавить «практическое» решение.

Dome9 может автоматизировать ваши брандмауэры и разрешить доступ по требованию к вашему серверу во время "маскировки". ' это из остального интернета. Это можно сделать, динамически управляя вашими группами безопасности AWS или управляя вашими iptables.

Отказ от ответственности - я гордый Dome9er ;)

person Froyke    schedule 22.03.2014