Как это так вышло, что мы до сих пор не подкрутили сетевые настроечки Linux?! Срочно, срочно…
Править будем файл модифицируемых в процессе работы настроек ядра /etc/sysctl.conf.
Первым делом отключаем роутинг, добавляем строку:
# net.ipv4.ip_forward = 0
Отключаем ICMP- и IPv6-редиректы, чтобы нам не подменили роутер:
net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.all.secure_redirects = 0 net.ipv4.conf.default.secure_redirects = 0 net.ipv6.conf.all.accept_redirect = 0 net.ipv6.conf.default.accept_redirect = 0
И сами их не шлем, мы же приличные люди
net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0
Отключаем прием маршрутов из опций IP-протокола, чтобы нас не обманули
net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 net.ipv6.conf.all.accept_ra = 0 net.ipv6.conf.default.accept_ra = 0
Отключаем ответы на броадкаст и мультикаст ICMP-запросы, защита от атаки Smurf:
net.ipv4.icmp_echo_ignore_broadcasts = 1
Включаем поддержку SYN-cookies, чтобы валидные сессии в случае SYN-флуда продолжали работать:
net.ipv4.tcp_syncookies = 1
Отключаем реакцию на пакеты, нарушающие RFC-1122, чтобы не допустить переполнения логов:
net.ipv4.icmp_ignore_bogus_error_responses = 1
Включаем проверку обратного маршрута, чтобы защититься от спуфинга (не включаем, если в сети несимметричная маршрутизация):
net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1
А эта настройка позволит логировать пакеты с недоступным адресом отправителя, чтобы заметить попытки спуфинга. Включаем только если действительно интересно, иначе – бережем логи:
net.ipv4.conf.all.log_martians = 1 net.ipv4.conf.default.log_martians = 1
Если не используем IPv6, можно запросто его отключить и избавиться от кучи потенциальных проблем:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
Вона скока настроили! Применяем:
/sbin/sysctl -w net.ipv4.route.flush=1 /sbin/sysctl -w net.ipv6.route.flush=1</code> /sbin/sysctl -p
Теперь у нас приличные сетевые настройки =)
А что у нас на эту тему могут предложить Юниксы?
Solaris:
Отключаем роутинг:
routeadm -d ipv4-forwarding -d ipv4-routing</code> <code>routeadm -d ipv6-forwarding -d ipv6-routing</code> <code>routeadm -u
Отключаем редиректы:
ipadm set-prop -p _ignore_redirect=1 ipv4</code> <code>ipadm set-prop -p _ignore_redirect=1 ipv6</code> <code>ipadm set-prop -p send_redirects=off ipv4</code> <code>ipadm set-prop -p send_redirects=off ipv6
Отключаем маршруты из опций IP:
ipadm set-prop -p _rev_src_routes=0 tcp
Отключаем ответы на ICMP броадкаст и мультикаст запросы:
ipadm set-prop -p _respond_to_timestamp_broadcast=0 ip</code> <code>ipadm set-prop -p _respond_to_address_mask_broadcast=0 ip</code> <code>ipadm set-prop -p _respond_to_echo_broadcast=0 ip</code> <code>ipadm set-prop -p _respond_to_echo_multicast=0 ipv4</code> <code>ipadm set-prop -p _respond_to_echo_multicast=0 ipv6
AIX:
Отключаем роутинг:
no -p -o ipforwarding=0
Отключаем редиректы:
no -p -o ipignoreredirects=1
Отключаем маршруты из опций IP:
no -p -o ipsrcrouterecv=0
Отключаем ответы на ICMP броадкаст запросы:
no -p -o bcastping=0
Включаем защиту от внедрения поддельных TCP-пакетов:
no -p -o tcp_tcpsecure=7
HP-UX:
Отключаем роутинг:
ndd -set /dev/ip ip_forwarding 0
С редиректами тут паршиво, только с помощью фаервола:
Добавляем строку block in quick proto icmp from any to any icmp-type redir
в таблицу правил в файле /etc/opt/ipf/ipf.conf
ipf -Fa -A -f /etc/opt/ipf/ipf.conf
Отключаем маршруты из опций IP:
ndd -set /dev/ip ip_forward_src_routed 0
Отключаем ответы на ICMP броадкаст запросы:
ndd -set /dev/ip ip_respond_to_echo_broadcast 0</code> <code>ndd -set /dev/ip ip_respond_to_timestamp_broadcast 0