Скачать презентацию IPFW NAT ipfw add 1 Скачать презентацию IPFW NAT ipfw add 1

ipfw FreeBSD.pptx

  • Количество слайдов: 15

IPFW NAT IPFW NAT

 • ipfw add 1 deny tcp from any to any 135, 445 • • ipfw add 1 deny tcp from any to any 135, 445 • ipfw add 2 divert 8668 all from any to any via ext 0 • ipfw add 3 count icmp from any to any • ipfw add 4 allow all from any to any • # в 65535 по умолчанию deny any to any

 • • • Пример 1 Задача: • • • Пример 1 Задача: "раздавать интернет" для локальной сети, обеспечить проброс портов для внутренних адресов, разрешить прохождение трафика на отдельные порты самого роутера Конфигурация: Файл /etc/rc. conf gateway_enable="YES" ifconfig_em 0="inet 1. 2. 3. 4 netmask 255. 0 -rxcsum" ifconfig_fxp 0="inet 192. 168. 1. 1 netmask 255. 0" defaultrouter="1. 2. 3. 254" firewall_enable="YES" firewall_type="/etc/firewall" Файл /etc/sysctl. conf net. ip. fw. one_pass=1

 • • • • • • Файл /etc/firewall # разрешаем все через интерфейс • • • • • • Файл /etc/firewall # разрешаем все через интерфейс локальной сети add 1040 allow ip from any to any via fxp 0 # Запрет локальных и автоконфигурированных сетей на внешнем интерфейсе. add 1050 deny ip from any to 192. 168. 0. 0/16 in recv em 0 add 1060 deny ip from 192. 168. 0. 0/16 to any in recv em 0 add 1070 deny ip from any to 172. 16. 0. 0/12 in recv em 0 add 1080 deny ip from 172. 16. 0. 0/12 to any in recv em 0 add 1090 deny ip from any to 10. 0/8 in recv em 0 add 10100 deny ip from 10. 0/8 to any in recv em 0 add 10110 deny ip from any to 169. 254. 0. 0/16 in recv em 0 add 10120 deny ip from 169. 254. 0. 0/16 to any in recv em 0 # настройка ната. nat 1 config log if em 0 reset same_ports deny_in redirect_port tcp 1. 2. 3. 4: 6881 redirect_port udp 1. 2. 3. 4: 4444 redirect_port tcp 192. 168. 1. 24: 25 25 # заворачиваем все что проходит через внешний интерфейс в нат add 10130 nat 1 ip from any to any via em 0 add 65534 deny all from any to any

Пример 2 Задача: Пример 2 Задача: "раздавать интернет" для локальной сети, обеспечить проброс портов для внутренних адресов, разрешить прохождение трафика на отдельные порты самого роутера, а главное - используя шейпер Dummynet обеспечить честное распределение пропускной способности между клиентами локальной сети. Так же обеспечить проброс всего трафика для 1. 2. 3. 5 на 192. 168. 1. 36 используя redirect_addr Файл /etc/rc. conf • gateway_enable="YES" • ifconfig_em 0="inet 1. 2. 3. 4 netmask 255. 0 -rxcsum" • ifconfig_em 0_alias 0="inet 1. 2. 3. 5 netmask 255" • ifconfig_fxp 0="inet 192. 168. 1. 1 netmask 255. 0" • defaultrouter="1. 2. 3. 254" • firewall_enable="YES" • firewall_type="/etc/firewall" • • Файл /etc/sysctl. conf net. ip. fw. one_pass=0

 • • • • • • • • Файл /etc/firewall add 1040 allow • • • • • • • • Файл /etc/firewall add 1040 allow ip from any to any via fxp 0 pipe 1 config bw 10 Mbit/s queue 60 gred 0. 002/10/30/0. 1 queue 1 config pipe 1 queue 60 mask src-ip 0 xffff gred 0. 002/10/30/0. 1 pipe 2 config bw 10 Mbit/s queue 60 gred 0. 002/10/30/0. 1 queue 2 config pipe 2 queue 60 mask dst-ip 0 xffff gred 0. 002/10/30/0. 1 nat 1 config log if em 0 reset same_ports deny_in redirect_port tcp 1. 2. 3. 4: 6881 redirect_port udp 1. 2. 3. 4: 4444 redirect_port tcp 192. 168. 1. 24: 25 25 nat 2 config log same_ports redirect_addr 192. 168. 1. 36 1. 2. 3. 5 add 10130 skipto 10190 ip from 192. 168. 1. 36 to any out xmit em 0 add 10140 skipto 10210 ip from any to 1. 2. 3. 5 in recv em 0 add 10150 queue 1 ip from any to any out xmit em 0 add 10160 nat 1 ip from any to any via em 0 add 10170 queue 2 ip from any to any in recv em 0 add 10180 allow all from any to any add 10190 queue 1 ip from any to any out xmit em 0 add 10200 nat 2 ip from 192. 168. 1. 36 to any out xmit em 0 add 10210 nat 2 ip from any to 1. 2. 3. 5 in recv em 0 add 10220 queue 2 ip from any to any in recv em 0 add 10230 allow all from any to any add 65534 deny all from any to any

Пример 3 Задача: не меняя настройки фаервола у имеющегося роутера 192. 168. 1. 1 Пример 3 Задача: не меняя настройки фаервола у имеющегося роутера 192. 168. 1. 1 и TCP/IP настройки машины 192. 168. 1. 80, обеспечить доступ к веб-серверу, работающему на 192. 168. 1. 80, через подключение 5. 6. 7. 8 используя два экземпляра NAT Файл /etc/rc. conf • gateway_enable="YES" • ifconfig_em 1="inet 5. 6. 7. 8 netmask 255. 0 -rxcsum" • ifconfig_fxp 1="inet 192. 168. 1. 254 netmask 255. 0" • defaultrouter="5. 6. 7. 254" • firewall_enable="YES" • firewall_type="/etc/firewall" • • Файл /etc/sysctl. conf net. ip. fw. one_pass=1

 • • • • • Файл /etc/firewall nat 2 config log if fxp • • • • • Файл /etc/firewall nat 2 config log if fxp 1 same_ports reset deny_in add 1040 nat 2 ip from any to any via fxp 1 add 1050 deny ip from any to 192. 168. 0. 0/16 in recv em 1 add 1060 deny ip from 192. 168. 0. 0/16 to any in recv em 1 add 1070 deny ip from any to 172. 16. 0. 0/12 in recv em 1 add 1080 deny ip from 172. 16. 0. 0/12 to any in recv em 1 add 1090 deny ip from any to 10. 0/8 in recv em 1 add 10100 deny ip from 10. 0/8 to any in recv em 1 add 10110 deny ip from any to 169. 254. 0. 0/16 in recv em 1 add 10120 deny ip from 169. 254. 0. 0/16 to any in recv em 1 nat 1 config log if em 1 reset same_ports deny_in redirect_port tcp 192. 168. 1. 80: 80 80 add 10130 nat 1 ip from any to any via em 1 add 65534 deny all from any to any

 • Пример4 • • • • Файл /etc/rc. conf gateway_enable= • Пример4 • • • • Файл /etc/rc. conf gateway_enable="YES" ifconfig_em 0="inet 11. 22. 33. 44 netmask 255. 0 -rxcsum" ifconfig_em 1="inet 55. 66. 77. 88 netmask 255. 0 -rxcsum" ifconfig_fxp 0="inet 192. 168. 1. 1 netmask 255. 0" ifconfig_fxp 1="inet 10. 1. 1. 1 netmask 255. 0" defaultrouter="11. 22. 33. 254" setfib 1_enable="YES" setfib 1_defaultroute="55. 66. 77. 254" firewall_enable="YES" firewall_type="/etc/firewall" Файл /etc/sysctl. conf net. ip. fw. one_pass=0

 • Файл /etc/firewall • • • • • • • • add 1040 • Файл /etc/firewall • • • • • • • • add 1040 setfib 0 ip from any to any in recv fxp 0 add 1050 setfib 1 ip from any to any in recv fxp 1 add 1060 allow ip from any to any via fxp 0 add 1070 allow ip from any to any via fxp 1 pipe 1 config bw 10 Mbit/s queue 60 gred 0. 002/10/30/0. 1 queue 1 config pipe 1 queue 60 mask src-ip 0 xffff gred 0. 002/10/30/0. 1 pipe 2 config bw 10 Mbit/s queue 60 gred 0. 002/10/30/0. 1 queue 2 config pipe 2 queue 60 mask dst-ip 0 xffff gred 0. 002/10/30/0. 1 pipe 3 config bw 20 Mbit/s queue 60 gred 0. 002/10/30/0. 1 queue 3 config pipe 3 queue 60 mask src-ip 0 xffff gred 0. 002/10/30/0. 1 pipe 4 config bw 35 Mbit/s queue 60 gred 0. 002/10/30/0. 1 queue 4 config pipe 4 queue 60 mask dst-ip 0 xffff gred 0. 002/10/30/0. 1 nat 1 config log if em 0 same_ports reset deny_in nat 2 config log if em 1 same_ports reset deny_in add 10160 queue 1 ip from any to any out xmit em 0 add 10170 nat 1 ip from any to any via em 0 add 10180 queue 2 ip from any to any in recv em 0 add 10190 queue 3 ip from any to any out xmit em 1 add 10200 nat 2 ip from any to any via em 1 add 10210 queue 4 ip from any to any in recv em 1 add 10220 allow all from any to any add 65534 deny all from any to any

 • • • • • • • • • • Файл /usr/local/etc/rc. d/setfib • • • • • • • • • • Файл /usr/local/etc/rc. d/setfib 1 #!/bin/sh # PROVIDE: SETFIB 1 # REQUIRE: NETWORKING # BEFORE: DAEMON # # Add the following lines to /etc/rc. conf to enable setfib -1 at startup # setfib 1 (bool): Set to "NO" by default. # Set it to "YES" to enable setfib 1 # setfib 1_defaultroute (str): Set to "" by default # Set it to ip address of default gateway for use in fib 1. /etc/rc. subr name="setfib 1" rcvar=`set_rcvar` load_rc_config $name [ -z "$setfib 1_enable" ] && setfib 1_enable="NO" [ -z "$setfib 1_defaultroute" ] && setfib 1_defaultroute="" start_cmd="${name}_start" stop_cmd="${name}_stop" setfib 1_start() { if [ ${setfib 1_defaultroute} ] then setfib 1 route delete default setfib 1 route add default ${setfib 1_defaultroute} else echo "Can not set default route for fib 1!" fi } setfib 1_stop() { setfib 1 route delete default } run_rc_command "$1 «

 • Пример 5 • • • • Задача: обеспечить выход в интернет локальной • Пример 5 • • • • Задача: обеспечить выход в интернет локальной сети через обоих провайдеров используя балансировку трафика между подключениями. Все это через NAT и используя шейпер Dummynet обеспечить честное распределение пропускной способности между клиентами в локальной сети. Файл /etc/rc. conf gateway_enable="YES" ifconfig_em 0="inet 11. 22. 33. 44 netmask 255. 0 -rxcsum" ifconfig_em 1="inet 55. 66. 77. 88 netmask 255. 0 -rxcsum" ifconfig_fxp 0="inet 192. 168. 1. 1 netmask 255. 0" defaultrouter="11. 22. 33. 254" setfib 1_enable="YES" setfib 1_defaultroute="55. 66. 77. 254" firewall_enable="YES" firewall_type="/etc/firewall" Файл /etc/sysctl. conf net. ip. fw. one_pass=0

 • • • • • • • • • Файл /etc/firewall add 1010 • • • • • • • • • Файл /etc/firewall add 1010 prob 0. 5 skipto 1060 ip from any to any in recv fxp 0 add 1040 setfib 0 ip from any to any in recv fxp 0 keep-state add 1050 allow ip from any to any via fxp 0 add 1060 setfib 1 ip from any to any in recv fxp 0 keep-state add 1070 allow ip from any to any via fxp 0 pipe 1 config bw 10 Mbit/s queue 60 gred 0. 002/10/30/0. 1 queue 1 config pipe 1 queue 60 mask src-ip 0 xffff gred 0. 002/10/30/0. 1 pipe 2 config bw 10 Mbit/s queue 60 gred 0. 002/10/30/0. 1 queue 2 config pipe 2 queue 60 mask dst-ip 0 xffff gred 0. 002/10/30/0. 1 pipe 3 config bw 20 Mbit/s queue 60 gred 0. 002/10/30/0. 1 queue 3 config pipe 3 queue 60 mask src-ip 0 xffff gred 0. 002/10/30/0. 1 pipe 4 config bw 35 Mbit/s queue 60 gred 0. 002/10/30/0. 1 queue 4 config pipe 4 queue 60 mask dst-ip 0 xffff gred 0. 002/10/30/0. 1 nat 1 config log if em 0 same_ports reset deny_in redirect_port tcp 192. 168. 1. 5: 25 25 nat 2 config log if em 1 same_ports reset deny_in add 10160 queue 1 ip from any to any out xmit em 0 add 10170 nat 1 ip from any to any via em 0 add 10180 queue 2 ip from any to any in recv em 0 add 10190 queue 3 ip from any to any out xmit em 1 add 10200 nat 2 ip from any to any via em 1 add 10210 queue 4 ip from any to any in recv em 1 add 10220 allow all from any to any add 65534 deny all from any to any

 • • • Файл /usr/local/etc/rc. d/setfib 1 #!/bin/sh # PROVIDE: SETFIB 1 # • • • Файл /usr/local/etc/rc. d/setfib 1 #!/bin/sh # PROVIDE: SETFIB 1 # REQUIRE: NETWORKING # BEFORE: DAEMON # # Add the following lines to /etc/rc. conf to enable setfib -1 at startup # setfib 1 (bool): Set to "NO" by default. # Set it to "YES" to enable setfib 1 # setfib 1_defaultroute (str): Set to "" by default # Set it to ip address of default gateway for use in fib 1 • • • • • • • • . /etc/rc. subr name="setfib 1" rcvar=`set_rcvar` load_rc_config $name [ -z "$setfib 1_enable" ] && setfib 1_enable="NO" [ -z "$setfib 1_defaultroute" ] && setfib 1_defaultroute="" start_cmd="${name}_start" stop_cmd="${name}_stop" setfib 1_start() { if [ ${setfib 1_defaultroute} ] then setfib 1 route delete default setfib 1 route add default ${setfib 1_defaultroute} else echo "Can not set default route for fib 1!" fi } setfib 1_stop() { setfib 1 route delete default } run_rc_command "$1"