User Tools

Site Tools


сервис_firewall

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
сервис_firewall [2020/06/22 12:11]
val [CentOS]
сервис_firewall [2022/07/26 06:29]
val [Linux (iptables)]
Line 8: Line 8:
 ==== Linux (iptables) ==== ==== Linux (iptables) ====
  
-  * [[https://​help.ubuntu.com/​community/​IptablesHowTo]] +  ​* [[https://​cryptoworld.su/​kak-perejti-s-iptables-na-nftables-polnaya-istrukciya/​|Как перейти с iptables на Nftables — полная инструкция]] 
-  * [[http://​ru.wikibooks.org/​wiki/​Iptables]] +  ​* [[https://​help.ubuntu.com/​community/​IptablesHowTo|ubuntu.com community ​IptablesHowTo]] 
-  * [[https://​ru.wikipedia.org/​wiki/​Netfilter]]+  * [[https://​ru.wikibooks.org/​wiki/​Iptables|Материал из Викиучебника iptables — утилита командной строки]] 
 +  * [[https://​ru.wikipedia.org/​wiki/​Netfilter|Материал из Википедии netfilter — межсетевой экран]]
  
 === Настройка фильтра === === Настройка фильтра ===
 <​code>​ <​code>​
-root@gate:~# cat firewall.sh+root@clientN:~# cat firewall.sh
 </​code><​code>​ </​code><​code>​
 iptables --flush iptables --flush
Line 21: Line 22:
 iptables -A INPUT -j DROP iptables -A INPUT -j DROP
 </​code><​code>​ </​code><​code>​
-root@gate:~# sh firewall.sh+root@clientN:~# sh firewall.sh
 </​code>​ </​code>​
  
 === Просмотр правил фильтра === === Просмотр правил фильтра ===
 <​code>​ <​code>​
-root@gate:~# iptables -t filter -n -L -v --line-numbers+# iptables -t filter -n -L -v --line-numbers
 или или
-root@gate:~# iptables -n -L -v --line-numbers+# iptables -n -L -v --line-numbers 
 +</​code>​ 
 +=== Удаление правил фильтра === 
 +<​code>​ 
 +iptables -t ТАБЛИЦА -D ЦЕПОЧКА НОМЕР_ПРАВИЛА
 </​code>​ </​code>​
- 
 === Работа с таблицей состояний === === Работа с таблицей состояний ===
  
Line 36: Line 40:
  
 <​code>​ <​code>​
-# cat /​proc/​net/​ip_conntrack 
- 
 # apt install conntrack # apt install conntrack
  
Line 43: Line 45:
 </​code>​ </​code>​
  
-=== Сохранение состояния iptables ​===+=== Управление состоянием iptables === 
 + 
 +== Вариант 1 == 
 + 
 +== Сохранение состояния iptables ==
 <​code>​ <​code>​
 root@gate:​~#​ iptables-save > /​etc/​iptables.rules root@gate:​~#​ iptables-save > /​etc/​iptables.rules
 </​code>​ </​code>​
  
-=== Восстановление состояния iptables ​===+== Восстановление состояния iptables ==
 <​code>​ <​code>​
 root@gate:​~#​ iptables-restore < /​etc/​iptables.rules root@gate:​~#​ iptables-restore < /​etc/​iptables.rules
 </​code>​ </​code>​
  
-=== Восстановление состояния iptables при загрузке ​=== +== Восстановление состояния iptables при загрузке ==
- +
-== Debian/​Ubuntu ​==+
 <​code>​ <​code>​
 root@gate:​~#​ cat /​etc/​network/​interfaces root@gate:​~#​ cat /​etc/​network/​interfaces
Line 64: Line 68:
   pre-up iptables-restore < /​etc/​iptables.rules   pre-up iptables-restore < /​etc/​iptables.rules
 ... ...
 +</​code>​
 +
 +== Вариант 2 ==
 +<​code>​
 +# apt install iptables-persistent
 +
 +# netfilter-persistent save
 </​code>​ </​code>​
  
Line 78: Line 89:
  
 # firewall-cmd --get-zones | tr " " "​\n"​ # firewall-cmd --get-zones | tr " " "​\n"​
 +
 +# firewall-cmd --get-active-zones
 +!!! даже, если пусто, похоже,​ в этом случае используется public
 +
 +# firewall-cmd --get-zone-of-interface=enp0s3
 +no zone   ​!!!похоже,​ в этом случае используется public
  
 # firewall-cmd --list-all # firewall-cmd --list-all
  
-client1# firewall-cmd --change-interface=enp0s3 --zone=drop+# firewall-cmd --change-interface=enp0s3 --zone=public
  
 # firewall-cmd --get-services | tr " " "​\n"​ # firewall-cmd --get-services | tr " " "​\n"​
Line 161: Line 178:
 iptables -A FORWARD -i eth1 -p udp -d 192.168.X.10 --dport 53 -j ACCEPT iptables -A FORWARD -i eth1 -p udp -d 192.168.X.10 --dport 53 -j ACCEPT
 #iptables -A FORWARD -i eth1 -p tcp -d 192.168.X.10 --dport 25 -j REJECT #iptables -A FORWARD -i eth1 -p tcp -d 192.168.X.10 --dport 25 -j REJECT
-iptables -A FORWARD -i eth1 -p tcp -d 192.168.X.10 --dport 25 -j ACCEPT+#iptables -A FORWARD -i eth1 -p tcp -d 192.168.X.10 --dport 25 -j ACCEPT 
 +#iptables -A FORWARD -i eth1 -p tcp -d 192.168.X.10 --dport 465 -j ACCEPT 
 +#iptables -A FORWARD -i eth1 -p tcp -d 192.168.X.10 --dport 587 -j ACCEPT 
 +#iptables -A FORWARD -i eth1 -p tcp -d 192.168.X.10 --dport 143 -j ACCEPT
 iptables -A FORWARD -i eth1 -p tcp -d 192.168.X.10 --dport 80 -j ACCEPT iptables -A FORWARD -i eth1 -p tcp -d 192.168.X.10 --dport 80 -j ACCEPT
-iptables -A FORWARD -i eth1 -p tcp -d 192.168.X.10 --dport ​143 -j ACCEPT +iptables -A FORWARD -i eth1 -p tcp -d 192.168.X.10 --dport ​5222 -j ACCEPT 
-#iptables -A FORWARD -i eth1 -p udp -d 192.168.X.10 --dport ​5006 -j ACCEPT+ 
 +#iptables -A FORWARD -i eth1 -p udp -d 192.168.X.10 --dport ​5060 -j ACCEPT
 #iptables -A FORWARD -i eth1 -p udp -d 192.168.X.10 --dport 4569 -j ACCEPT #iptables -A FORWARD -i eth1 -p udp -d 192.168.X.10 --dport 4569 -j ACCEPT
 #iptables -A FORWARD -i eth1 -p udp -d 192.168.X.10 --dport 10000:20000 -j ACCEPT #iptables -A FORWARD -i eth1 -p udp -d 192.168.X.10 --dport 10000:20000 -j ACCEPT
Line 181: Line 202:
 conntrack -F conntrack -F
 </​code><​code>​ </​code><​code>​
 +root@gate:​~#​ apt install conntrack
 +
 root@gate:​~#​ sh firewall.sh root@gate:​~#​ sh firewall.sh
  
Line 285: Line 308:
 </​code><​code>​ </​code><​code>​
 ... ...
-iptables -A FORWARD ​-j LOG --log-prefix "​iptables denied: " --log-level 7 +iptables -A ... -j LOG --log-prefix "​iptables denied: " --log-level 7 
- +iptables -A ... -j DROP
-iptables -A FORWARD ​-j DROP+
 </​code><​code>​ </​code><​code>​
 root@gate:​~#​ sh firewall.sh root@gate:​~#​ sh firewall.sh
Line 381: Line 403:
 </​code><​code>​ </​code><​code>​
 iptables --flush iptables --flush
- 
-#### for brute force #### 
-iptables -I FORWARD -p tcp --dport 22 -i eth1 -m conntrack --ctstate NEW -m recent --set 
-iptables -I FORWARD -p tcp --dport 22 -i eth1 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 4 -j DROP 
 ... ...
 +iptables -A FORWARD -p tcp --dport 80 -i eth1 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 4 -j LOG
 +iptables -A FORWARD -p tcp --dport 80 -i eth1 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
 +iptables -A FORWARD -p tcp --dport 80 -i eth1 -m conntrack --ctstate NEW -m recent --set
 +...
 +</​code><​code>​
 +root@gate:​~#​ tail -f /​var/​log/​syslog
 +
 +root@gate:​~#​ cat /​proc/​net/​xt_recent/​DEFAULT
 +
 +root@gate:​~#​ echo -10.5.7.1 >/​proc/​net/​xt_recent/​DEFAULT
 +
 +root@gate:​~#​ echo / >/​proc/​net/​xt_recent/​DEFAULT
 </​code>​ </​code>​
 +
 ==== FreeBSD (pf) ==== ==== FreeBSD (pf) ====
  
Line 406: Line 437:
  
 # pfctl -t fail2ban -T add 172.16.1.254 # pfctl -t fail2ban -T add 172.16.1.254
 +# pfctl -k 172.16.1.254
  
 # pfctl -t fail2ban -T flush # pfctl -t fail2ban -T flush
Line 423: Line 455:
 <​code>​ <​code>​
 [gate:~] # pfctl -vs state [gate:~] # pfctl -vs state
 +
 +[gate:~] # pfctl -k 0.0.0.0/0 -k 172.16.1.254
  
 [gate:~] # pfctl -F states [gate:~] # pfctl -F states
сервис_firewall.txt · Last modified: 2024/05/07 16:18 by val