Я изучаю брандмауэры и списки доступа и пытаюсь решить, какой список доступа мне следует иметь в демилитаризованной зоне, особенно в отношении исходящего трафика. Есть определенный исходящий трафик, который я не хочу разрешать - очевидно, SMTP должно быть разрешено исходить только с почтового сервера и так далее. Тем не менее, я слышал, что фильтрация исходящей почты часто вызывает проблемы, если вы слишком строги, потому что есть много законных ресурсов, которые можно запросить, и их трудно узнать все.
Мой вопрос: если у меня есть ACL, который разрешает такие вещи, как SMTP, только с почтового сервера и так далее, какие правила я должен поставить в конце ACL, чтобы не нарушать все? Говоря
access-list tcp permit any any
access-list udp permit any any
access-list ip permit any any
кажется немного небезопасным. Есть ли диапазоны портов, которые я могу безопасно закрыть? Или разрешение - почти мой единственный вариант?
Спасибо!
Если вы хотите использовать свой маршрутизатор в качестве брандмауэра, я настоятельно рекомендую вам отказаться от «обычных» списков контроля доступа и настроить, в зависимости от вашей версии IOS, либо CBAC (Контроль доступа на основе контекста) или ZBF (Зональный брандмауэр с политикой). Если у вас есть последняя версия IOS (и «образ с поддержкой безопасности» или то, что раньше называлось образом «K9»), я настоятельно рекомендую вам взглянуть на ZBF.
Дело в том, что обычные ACL без гражданства. Я имею в виду, что вы можете столкнуться с проблемами, потому что, в зависимости от протокола исходящего трафика, маршрутизатор не может знать, какие порты он должен открыть для возвращающегося трафика. FTP - классический пример этого.
Как вы, возможно, знаете, клиент FTP согласовывает с сервером порты TCP, которые они собираются использовать для передачи данных внутри «канала управления» FTP. Если маршрутизатор / брандмауэр не проверяет этот трафик, он не может знать, какой порт открыть для передачи данных, и могут возникнуть проблемы. Есть много протоколов, которые подпадают под эту категорию (отличные примеры - голосовые и видео протоколы).
С CBAC, а еще лучше с ZBF, этого не происходит. Они есть сохранный. Под этим я подразумеваю, что маршрутизатор может проверять трафик (и потенциально обнаруживать, какие порты udp / tcp согласовываются), и из-за этого маршрутизатор «знает», какие порты открывать, от кого и с кем разрешить связь, и что еще более важно. с точки зрения безопасности, когда их динамически закрывать.
Ты можешь использовать gt
и lt
в списках контроля доступа cisco, так что вам может понадобиться что-то вроде предпоследней строки:
access-list foo permit tcp 192.168.1.0/24 gt 1024 any
access-list foo permit udp 192.168.1.0/24 gt 1024 any
Где 192.168.1.0/24 - ваша внутренняя сеть, и вы хотите разрешить для нее трафик с непривилегированных портов. Тогда последняя строка - это запретить любой любой.
В зависимости от операционных систем вы можете захотеть изменить 1024, чтобы оно соответствовало нижней части эфемерный порт диапазон предназначен для этих ОС.
(Синтаксис может быть отключен, давно не выполнял списки контроля доступа Cisco)
При этом я не думаю, что наличие разрешающего ACL по умолчанию для исходящего трафика - это ужасная вещь - устранение неполадок, которое может вызвать это, может не стоить дополнительной безопасности.