Skip to content

Latest commit

 

History

History
191 lines (158 loc) · 6.77 KB

File metadata and controls

191 lines (158 loc) · 6.77 KB

Настройка сети

Для self-hosted необходим роутер. Имея виртуализацию на базе proxmox, было решено развернуть OpenWRT.

Конфигурация основного роутера с доступом в интернет

На основном роутере необходимо настроить в DHCP статический IP для нашей OpenWRT, а также в таблице маршрутизации прописать маршруты. Если основной роутер так же на OpenWRT, то это можно сделать добавив: /etc/config/dhcp

config host                  
        option ip '192.168.1.90'
        list mac 'BC:24:11:B6:27:9E'

/etc/config/network

config route
        option interface 'lan'
        option target '10.10.0.0/16'
        option gateway '192.168.1.90'

192.168.1.90 - адрес OpenWRT 10.10.0.0/16 - подсеть адресов в OpenWRT

Network конфиг

В данном конфиге необходимо прописать интерфейс нашей локальной сети (в нашем случае это сеть ДДТ), то есть wan 192.168.1.0/24. IP берётся через dhcp и предварительно забит в роутере в предыдущем шаге. /etc/config/network

config device                     
        option name 'br-wan'                   
        option type 'bridge'      
        list ports 'eth0'

config device                     
        option name 'br-team1'                 
        option type 'bridge'                   
        list ports 'eth1'                      
                                  
config device                                  
        option name 'br-team2'    
        option type 'bridge'  
        list ports 'eth6'     
                              
config device                 
        option name 'br-team3'
        option type 'bridge'  
        list ports 'eth9'     
                              
config device                 
        option name 'br-jury'  
        option type 'bridge'  
        list ports 'eth7'   
                              
config interface 'wan'        
        option device 'br-wan'
        option proto 'dhcp'   
                              
config interface 'team1'      
        option device 'br-team1'
        option proto 'static'   
        option ipaddr '10.10.1.1'
        option netmask '255.255.255.0'
                                      
config interface 'team2'              
        option device 'br-team2'      
        option proto 'static'         
        option ipaddr '10.10.2.1'     
        option netmask '255.255.255.0'
                                      
config interface 'team3'              
        option device 'br-team3'      
        option proto 'static'         
        option ipaddr '10.10.3.1'     
        option netmask '255.255.255.0'
                                      
config interface 'jury'                
        option device 'br-jury'        
        option proto 'static'         
        option ipaddr '10.10.10.1'    
        option netmask '255.255.255.0'

Firewall конфиг

Основные моменты:

  • Добавление всех виртуальных (игровых) сетей в зону lan и локальной сети в wan.
  • Разрешаем форвардинг в обе стороны, но при этом баним запросы из 10.10.0.0/16 в 192.168.1.0/24 дабы изнутри сети нельзя было получить доступ ко внешней сети.
  • По умолчанию блокируем весь трафик из wan, поэтому добавляем исключения для http, https, ssh
  • Включаем маскарад на wan и lan зонах

На основе этого изменим конфиг следующим образом:

/etc/config/firewall

config defaults
        option syn_flood '1'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'

config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        option masq '1'
        option mtu_fix '1'
        list network 'team1'
        list network 'team2'
        list network 'team3'
        list network 'jury'

config zone
        option name 'wan'
        list network 'wan'
        list network 'wan6'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'

config forwarding
        option src 'lan'
        option dest 'wan'

config forwarding
        option src 'wan'
        option dest 'lan'

config rule
        option name 'Block 10.10.0.0/16 to 192.168.1.0/24'
        option src 'lan'
        option dest 'wan'
        option dest_ip '192.168.1.0/24'
        option target 'REJECT'
        option proto 'all'

config rule                     
        option name 'Allow-HTTP' 
        option src 'wan'         
        option proto 'tcp'       
        option dest_port '80'    
        option target 'ACCEPT'   
        option family 'ipv4'     
                                 
config rule                      
        option name 'Allow-HTTPs'
        option src 'wan'       
        option proto 'tcp'     
        option dest_port '443'  
        option target 'ACCEPT'  
        option family 'ipv4'    
                                
config rule                     
        option name 'Allow-SSH'       
        option src 'wan'              
        option proto 'tcp'            
        option dest_port '22869'      
        option target 'ACCEPT'        
        option family 'ipv4'

DHCP конфиг

Необходимо на каждом интерфейсе включить DHCP и закрепить статический ip за mac'ом инстанса.

config dhcp 'team3'                                  
        option interface 'team3'                     
        option start '100'                           
        option limit '150'                           
        option leasetime '12h'

config host                         
        list mac 'BC:24:11:8B:A1:BC'
        option ip '10.10.3.2'       
        option name 'team3'

Автоматизированно это можно сделать следующим образом:

  1. Меняем в inventory.yml данные для роутера. Указываем mac адреса и ip всех инстансов.
  2. Запускаем ansible плейбук
cd ../setup
chmod +x ./start_ansible.sh
./start_ansible.sh router setup