Рубрики
CentOS

CentOS firewall

firewall:

-------------------------------------
systemctl status firewalld - проверим, запущен ли firewalld
firewall-cmd --state - проверим, запущен ли firewalld
systemctl stop firewalld - остановка firewalld
systemctl disable firewalld - запрет автостарта
systemctl start firewalld - запуск firewalld
systemctl enable firewalld - включение автостарта
-------------------------------------
firewall-cmd --get-zones - список всех допустимых зон по-умолчанию
firewall-cmd --get-active-zones - активные зоны
firewall-cmd --get-zone-of-interface=eth0 - узнать, к какой зоне он принадлежит eth0
firewall-cmd --zone=public --list-interfaces - узнать, какие интерфейсы принадлежат конкретной зоне public
firewall-cmd --zone=public --add-interface=eth1 - добавить к зоне сетевой интерфейс
firewall-cmd --zone=public --permanent --add-interface=eth1 -  добавить к зоне сетевой интерфейс и сохранить настройки
-------------------------------------
firewall-cmd --permanent --list-all - показать все правила 
firewall-cmd --permanent --zone=public --add-port=2234/tcp - разрешить порт 2234/tcp зона public
firewall-cmd --zone=public --add-port=5059-5061/udp - разрешить диапазон портов 5059-5061/udp
firewall-cmd --permanent --zone=public --add-service=http - разрешить порт http
firewall-cmd --permanent --zone=public --add-service=https  - разрешить порт https
firewall-cmd --permanent --add-port=3128/tcp  - разрешить порт 3128/tcp
firewall-cmd --permanent --add-port=514/tcp  - разрешить порт 514/tcp
firewall-cmd --permanent --add-port=514/udp - разрешить порт 514/udp
firewall-cmd --permanent --add-port=http/tcp - разрешить порт http/tcp
firewall-cmd --permanent --add-port=https/tcp - разрешить порт https/tcp
firewall-cmd --permanent --add-port=ssh/tcp - разрешить порт ssh/tcp
firewall-cmd --reload - перезагрузить и применить изменения
------------------------------------
firewall-cmd --permanent --zone=public --remove-service=dhcpv6-client - убрать разрешение dhcpv6-client
------------------------------------
firewall-cmd --panic-on - включить режим блокировки всех исходящих и входящих пакетов
firewall-cmd --panic-off - выключить режим блокировки всех исходящих и входящих пакетов
firewall-cmd --query-panic - проверка включен ли режим блокировки всех исходящих и входящих пакетов
------------------------------------
firewall-cmd --zone=external --query-masquerade - проверить статус маскарад (masquerade, он же nat)
firewall-cmd --zone=external --add-masquerade - включить маскарад (masquerade, он же nat)
------------------------------------
firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toaddr=192.168.0.200 - перенаправить входящие на 22 порт на другой хост
firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=222:toaddr=192.168.0.10 - перенаправить входящие на 22 порт на другой хост 192.168.0.10:222
------------------------------------

iptables:

------------------------------------
systemctl disable firewalld - выключаем авто запуск  firewalld
systemctl stop firewalld -  выключаем firewalld 
------------------------------------
yum install iptables-services - ставим iptables
systemctl start iptables - запускаем брандмауэр iptables
systemctl start ip6tables - запускаем брандмауэр iptables
systemctl enable iptables - авто запуск при включении iptables
systemctl enable ip6tables - авто запуск при включении iptables
------------------------------------
/etc/sysconfig/iptables - текущие правила находятся в файлах
/etc/sysconfig/ip6tables - текущие правила находятся в файлах
------------------------------------
mkdir /etc/iptables -создаем директорию
/sbin/iptables-save > /etc/iptables/iptables_v4 - сохранения правил iptables после перезагрузки
/sbin/ip6tables-save > /etc/sysconfig/iptables_v6  - сохранения правил iptables после перезагрузки
service iptables save  - сохранения правил iptables после перезагрузки
------------------------------------

Примеры правил iptables v4:

-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 10.0.0.0/23 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s 10.10.10.103/32 -p tcp -m state --state NEW -m tcp --dport 9102 -j ACCEPT
-A INPUT -s 10.10.10.103/32 -p tcp -m state --state NEW -m tcp --dport 139 -j ACCEPT
-A INPUT -s 10.10.10.105/32 -p tcp -m state --state NEW -m tcp --dport 445 -j ACCEPT
-A INPUT -s 10.10.10.120/32 -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT
-A INPUT -p udp -m multiport --dports 18080:18089 -m comment --comment "https videostream" -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p tcp -m multiport --dports 18080:18089 -m comment --comment "https videostream" -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 100/sec -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 4 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 12 -j ACCEPT

Примеры правил iptables v6:

-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p ipv6-icmp -j ACCEPT

Примеры ipset (Списки ip)

Пример правил:
iptables -A INPUT -p tcp -m set --match-set blacklist src -m comment --comment BLACKLIST -j DROP
iptables -A INPUT -p tcp -m set --match-set whitelist src -m comment --comment WHITELIST -j ACCEPT
iptables -A INPUT -p tcp -m set --match-set web src -m tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
iptables -A INPUT -p tcp -m set --match-set web src -m tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT


Пример списков:
/etc/iptables/blacklist.ipset 
-! create blacklist hash:net family inet hashsize 131072 maxelem 262144 counters timeout 7200
-! add blacklist 10.100.2.50/32
-! add blacklist 192.168.100.0/24

/etc/iptables/whitelist.ipset 
-! create whitelist hash:net family inet hashsize 131072 maxelem 262144 counters timeout 7200
-! add whitelist 10.101.2.50/32
-! add whitelist 10.168.5.0/24

/etc/iptables/web.ipset 
-! create web hash:net family inet hashsize 131072 maxelem 262144 counters timeout 7200
-! add web 10.100.20.50/32
-! add web 192.168.12.0/24