FIREWALL [IPTABLES]

Poté, co máme nastaveno routování je třeba správně nastavit firewall.
(rev. 2020)
Je několik možností jak to udělat. Existují různé grafické nástroje (system-config-securitylevel, firestarter.. atd.).
Nejlepší je ale rozumnět přímo konfiguračním souborům.
Zde je vzorový příklad nastavení firewallu s povoleným IP forwardingem, NATem (maškarádou) a s některými specifickými úpravami pro některé služby:
# Firewall configuration written by redhat-config-securitylevel
# Manual customization of this file is not recommended.
# --- table: nat
*nat
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
[0:0] -A POSTROUTING -o eth0 -s 192.168.1.0/24         -j MASQUERADE
COMMIT
#
# # --- table: filter
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT

-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
####### zevnitr ven
-A FORWARD -i eth1 -o eth0 -p icmp --icmp-type any -j ACCEPT
-A FORWARD -i eth1 -o eth0 -m tcp -p tcp --dport 7002:7003 -j ACCEPT
# vypnuti pozadavku zevnitr ven -A FORWARD -i eth1 -o eth0 -j REJECT --reject-with icmp-host-prohibited
###### zvenku dovnitr
-A FORWARD -i eth0 -o eth1 -j REJECT --reject-with icmp-host-prohibited
###### 
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -i eth1 -j ACCEPT

# pridano tun0 jako bezpecne zarizeni

-A RH-Firewall-1-INPUT -i tun0 -j ACCEPT

#######

-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# pro ftp
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT


# pro pasivni spojeni
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21000 -j ACCEPT

# pro ssh (normalne port 22)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 7557 -j ACCEPT

# pro smtp
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT

# pro https
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

# pro IMAPS
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT

# pro OpenVPN
-A RH-Firewall-1-INPUT -m udp -p udp --dport 1194 -j ACCEPT
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 1194 -j ACCEPT

#### pro bittorrent
#-A RH-Firewall-1-INPUT -m udp -p udp --dport 6881 -j ACCEPT
#-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 6881 -j ACCEPT 
#-A RH-Firewall-1-INPUT -m udp -p udp --dport 6969 -j ACCEPT
#-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 6969 -j ACCEPT

# pro ssh z IP adresy
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 212.XX.XX.XXX --dport 22 -j ACCEPT

# povoleni komunikace se serverem (sledovani aut) s pevnou IP adresou
# -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 217.XXX.XXX.XXX --dport 7002 -j ACCEPT
# -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 217.XXX.XXX.XXX --dport 7003 -j ACCEPT

# priklad povoleni OpenVPN portu pro virtuální adresu OpenVPN klienta 172.162.1.20:
#-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 172.162.1.20 --dport 1194 -j ACCEPT
# -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1194 -j ACCEPT

# # priklad povoleni OpenVPN portu pro virtuální adresu OpenVPN klienta 10.8.0.1
#-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 10.8.0.1 --dport 1194 -j ACCEPT
# -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1194 -j ACCEPT 

# poslední řádek :-)
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT