Большинство доменов любого значимого размера имеют машину, предназначенную исключительно для почты, поэтому mail.example.com
.
Мне также нужно создать соответствующий CNAME?
Нет, вам нужна запись A для mail.main.dom
. Записи MX всегда должны указывать на A. Распространенной ошибкой является указание записи MX на CNAME.
С синтаксисом Bind:
main.dom. IN MX 10 mail.main.dom.
mail.main.dom. IN A 1.2.3.4
Или, если вы хотите обслуживать все на одной машине:
main.dom. IN A 1.2.3.4
main.dom. IN MX 10 main.dom.
www.main.dom. IN CNAME main.dom.
Дополнительные примечания:
send a syn back but forget the connection?
Это означает генерировать SYN/ACK, но не отслеживать соединение.
Не совсем так.
Первым делом :Почему?
Если SYN относится к закрытому порту, то либо:
отбросить пакет и избежать дальнейшей обработки.
Если вы собираетесь что-то ответить, а злоумышленник получит ответ, подтверждающий, что вы там, то :просто ответьте RST. Вполне возможный и распространенный ответ iptables:
Вы можете отправить обратно RST с помощью iptables -p tcp [...] -j REJECT --reject -с сбросом tcp -.
Если SYN направлен на открытый порт, то либо:
разрешить серверу (службе )обрабатывать запрос по своему усмотрению.
Помогите серверу с SYNPROXY.
Предотвращение SYN-флуда с помощью SYNPROXY
Который на самом деле пытается защитить сервер от SYN -ACK Flood DDoS-атаки. Это не то же самое, о чем вы спрашиваете, и быть не может. Не может быть двух объектов (server и iptables ), одновременно отвечающих с помощью SYN/ACK на один и тот же пакет. Это либо одно, либо другое.
Но SYNPROXY умен. Как это работает (и еще немного):
При использовании SYNPROXY клиенты прозрачно подключаются к SYNPROXY. Таким образом, 3 -способа рукопожатия TCP сначала происходят между клиентом и SYNPROXY :
.Клиенты отправляют TCP SYN на сервер A
На брандмауэре,когда этот пакет приходит, он помечается как UNTRACKED
НЕОТСЛЕЖИВАЕМЫЙ TCP SYN-пакет затем передается SYNPROXY
SYNPROXY получает это и отвечает (как сервер A )с TCP SYN+ACK (UNTRACKED)
Клиент отвечает TCP ACK (, отмеченным как INVALID или UNTRACKED в iptables ), который также передается SYNPROXY
Как только клиент подключается к SYNPROXY, SYNPROXY автоматически инициирует трехстороннее -TCP-подтверждение с реальным сервером, подделывая пакет SYN, чтобы реальный сервер увидел, что первоначальный клиент пытается подключиться:
SYNPROXY отправляет TCP SYN на реальный сервер A. Это НОВОЕ соединение в iptables, которое происходит в цепочке OUTPUT. Исходный IP-адрес пакета — это IP-адрес клиента
Реальный сервер А отвечает SYN+ACK клиенту
SYNPROXY получает это и отвечает серверу ACK. Теперь соединение помечено как УСТАНОВЛЕННОЕ
Как только соединение установлено, SYNPROXY покидает поток трафика между клиентом и сервером
Таким образом, SYNPROXY можно использовать для любого вида TCP-трафика. Его можно использовать как для незашифрованного, так и для зашифрованного трафика, так как он не мешает самому контенту.
Вы не можете установить SYNPROXY на порт без сервера (это не сработает ).
Итак, для закрытых портов нужен сервер, пусть фейковый сервер, но сервер в любом случае.
Python -Scapy -Показать все ваши порты как открытые
Связанные:
Можно сделать несколько не очень приятных вещей; может быть вставлен пакет RST, который, если задействованные хосты не имеют необычных и настраиваемых конфигураций брандмауэра, RST приведет к закрытию соединения. Другим методом было бы принять соединение, но затем каким-то образом удалить запись о состоянии; это может выглядеть примерно так
...
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp --syn -m tcp --dport 22 -j ACCEPT
...
возможно также с ведением журнала (для работы через сканер журналов, такой какsec.pl
)или какой-либо другой модуль, который с установленным conntrack-tools
запускает команду, аналогичную
conntrack -D -s 192.0.2.42
после того, как 192.0.2.42 подключился через ssh, удалить запись в таблице состояний для этого IP.