Linux router: Porovnání verzí

Z Wiki UnArt Slavičín
Skočit na navigaciSkočit na vyhledávání
 
(Není zobrazeno 21 mezilehlých verzí od jednoho dalšího uživatele.)
Řádek 1: Řádek 1:
= VLAN =
apt install -y bash-completion htop mc traceroute nmap tcpdump elinks iftop fping screen conntrack


apt-get install vlan
= log2ram =


= Shorewall =
https://github.com/azlux/log2ram


apt-get install shorewall
= Nastavení CPU =


V souboru '''/etc/shorewall/shorewall.conf''' upravit následující hodnoty:
Nainstalovat cpufrequtils:
sudo apt-get install cpufrequtils


  LOG_MARTIANS=No
Upravit soubor /etc/default/cpufrequtils:
  sudo nano /etc/default/cpufrequtils


  IP_FORWARDING=On
Přidat do něj řádek:
  GOVERNOR="performance"


  ROUTE_FILTER=No
Restartovat cpufrequtils:
  systemctl restart cpufrequtils


Definice zón - soubor '''/etc/shorewall/zones''':
= IP forwarding =


# zóna pro firewall
Přidat do '''/etc/sysctl.conf''' řádky:
FW      firewall
# zóna pro internet
NET    ipv4
# zóna pro CZFREE síť
CZF    ipv4
# zóna pro lokální síť
LOC    ipv4


Definice výchozích politik - soubor '''/etc/shorewall/policy''':
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1


# z firewallu povol kamkoliv
Aktivovat:
FW      all    ACCEPT
  sysctl -p /etc/sysctl.conf
# z lokální sítě povol kamkoliv
LOC    all    ACCEPT
# z CZF sítě zakaž kamkoliv
CZF    all    DROP
# z internetu zakaž kamkoliv
NET    all    DROP
# všechno ostatní zakaž
  all    all    REJECT


Definice rozhraní a jejich přiřazení k zóně - soubor '''/etc/shorewall/interfaces''':
= Nastavení síťě =


# rozhraní pro internet
[[Síť v Debianu]]
NET    enp1s0  detect
# rozhraní pro CZF síť
CZF    enp2s1  detect
# rozhraní pro lokální síť
LOC    enp3s1  detect


Definice NATu - soubor '''/etc/shorewall/masq''':
= Conntrack =
 
enp1s0    10.143.0.0/16
 
Definice pravidel - soubor '''/etc/shorewall/rules''':


# povoleni pingu na router
Povolit moduly v '''/etc/modules''':
ACCEPT  all    FW      icmp
# povoleni SSH na router
ACCEPT  all    FW      tcp    ssh


= Conntrack =
nf_conntrack
nf_conntrack_ipv4
nf_conntrack_pptp
nf_nat
nf_nat_ipv4
nf_nat_pptp


Zjištění aktuální hodnoty '''nf_conntrack_max''':
Zjištění aktuální hodnoty '''nf_conntrack_max''':
Řádek 88: Řádek 71:
Hodnotu nf_conntrack_max zapíšeme do souboru '''/etc/sysctl.conf''':
Hodnotu nf_conntrack_max zapíšeme do souboru '''/etc/sysctl.conf''':


  net.netfilter.nf_conntrack_max=33554432
  net.netfilter.nf_conntrack_max = 33554432
  net.netfilter.nf_conntrack_tcp_timeout_established=7200
  net.netfilter.nf_conntrack_helper = 1


Hodnotu nf_conntrack_buckets do souboru '''/etc/modprobe.d/nf_conntrack.conf''':
Hodnotu nf_conntrack_buckets do souboru '''/etc/modprobe.d/nf_conntrack.conf''':
Řádek 95: Řádek 78:
  options nf_conntrack hashsize=4194304
  options nf_conntrack hashsize=4194304


Změníme za běhu:
Jednoduché zjištění veřejné IP adresy:


  echo 4194304 > /sys/module/nf_conntrack/parameters/hashsize
  conntrack -L --src-nat --src VNITŘNÍ_IP_ADRESA 2>/dev/null | awk -F "dst=" '{print $3}' | awk '{print $1}' | sort | uniq
sysctl -p


Zdroje:
Zdroje:


https://wiki.spoje.net/doku.php/howto/network/conntrack
https://wiki.spoje.net/doku.php/howto/network/conntrack

Aktuální verze z 22. 3. 2024, 08:01

apt install -y bash-completion htop mc traceroute nmap tcpdump elinks iftop fping screen conntrack

log2ram

https://github.com/azlux/log2ram

Nastavení CPU

Nainstalovat cpufrequtils:

sudo apt-get install cpufrequtils

Upravit soubor /etc/default/cpufrequtils:

sudo nano /etc/default/cpufrequtils

Přidat do něj řádek:

GOVERNOR="performance"

Restartovat cpufrequtils:

systemctl restart cpufrequtils

IP forwarding

Přidat do /etc/sysctl.conf řádky:

net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1

Aktivovat:

sysctl -p /etc/sysctl.conf

Nastavení síťě

Síť v Debianu

Conntrack

Povolit moduly v /etc/modules:

nf_conntrack
nf_conntrack_ipv4
nf_conntrack_pptp
nf_nat
nf_nat_ipv4
nf_nat_pptp

Zjištění aktuální hodnoty nf_conntrack_max:

cat /proc/sys/net/netfilter/nf_conntrack_max 
65536

Zjištění aktuální hodnoty nf_conntrack_buckets (hashsize):

cat /proc/sys/net/netfilter/nf_conntrack_buckets 
16384

Zjištění velikost hodnoty jednoho záznamu v tabulce conntrack:

cat /proc/slabinfo | awk '{if ($1 == "nf_conntrack") print $4}'
256

Výpočet:

nf_conntrack_max = velikost použitelné RAM v bytech / velikost jednoho záznamu
nf_conntrack_buckets = nf_conntrack_max / 8

Příklad výpočtu pro 8GB RAM a velikost záznamu 256:

nf_conntrack_max =  8 * 1073741824 / 256 = 33554432
nf_conntrack_buckets = 33554432 / 8 = 4194304

Hodnotu nf_conntrack_max zapíšeme do souboru /etc/sysctl.conf:

net.netfilter.nf_conntrack_max = 33554432
net.netfilter.nf_conntrack_helper = 1

Hodnotu nf_conntrack_buckets do souboru /etc/modprobe.d/nf_conntrack.conf:

options nf_conntrack hashsize=4194304

Jednoduché zjištění veřejné IP adresy:

conntrack -L --src-nat --src VNITŘNÍ_IP_ADRESA 2>/dev/null | awk -F "dst=" '{print $3}' | awk '{print $1}' | sort | uniq

Zdroje:

https://wiki.spoje.net/doku.php/howto/network/conntrack