# Практическая iptables Поменяли порт у SSH: ![](https://i.imgur.com/vmI0C2m.png) Смотрим, что порт прослушивается после перезагрузки: ![](https://i.imgur.com/CqtnCI0.png) И что при подключении 22 не доступен, однако 2200 доступен: ![](https://i.imgur.com/RqQqYDX.png) iptables установлен в ubuntu: ![](https://i.imgur.com/KVBJQag.png) :::info в пунктах 4-6 допущена ошибка, едйствие LOG должно быть применено ПЕРЕД DROP. ::: 4. Запретили пинг с записью в файл двумя способами: ![](https://i.imgur.com/vw0tHFb.png) ``` iptables - A INPUT -s 0/0 -p icmp -j LOG iptables - A INPUT -s 0/0 -p icmp -j DROP iptables - A INPUT -s 0/0 -p icmp --icmp-type echo-request -j LOG iptables - A INPUT -s 0/0 -p icmp --icmp-type echo-request -j DROP iptables -A INPUT -j ACCEPT iptables -A OUTPUT -j ACCEPT ``` 5. Запрещаем SSH на наш сервер по destination порту и делаем запись в лог файл: ![](https://i.imgur.com/5X3c2HF.png) ``` iptables -A INPUT -p tcp --dport 2200 -j LOG iptables -A INPUT -p tcp --dport 2200 -j DROP iptables -A INPUT -p udp --dport 2200 -j LOG iptables -A INPUT -p udp --dport 2200 -j DROP iptables -A INPUT -j ACCEPT iptables -A OUTPUT -j ACCEPT ``` 6. Запрещаем весь трафик и логируем: ![](https://i.imgur.com/F6raQK7.png) ``` iptables -A INPUT -j LOG iptables -A INPUT -j DROP iptables -A OUTPUT -j LOG iptables -A OUTPUT -j DROP ``` 7. Разрешаем доступ по SSH, после чего запрещаем весь трафик ![](https://i.imgur.com/xQzCDTv.png) ![](https://i.imgur.com/KiWyiqE.png) ``` iptables -A INPUT -p tcp --dport 2200 -j LOG iptables -A INPUT -p tcp --dport 2200 -j ACCEPT iptables -A INPUT -p udp --dport 2200 -j LOG iptables -A INPUT -p udp --dport 2200 -j ACCEPT iptables -A INPUT -j LOG iptables -A INPUT -j DROP iptables -A OUTPUT -j LOG iptables -A OUTPUT -j DROP ``` 8. Заблокировали соединения с одного хоста: ![](https://i.imgur.com/psEegyu.png) ``` iptables -A INPUT -s 192.168.1.1/24 -p tcp -j LOG iptables -A INPUT -s 192.168.1.1/24 -p udp -j LOG iptables -A INPUT -s 192.168.1.1/24 -p icmp -j LOG iptables -A INPUT -s 192.168.1.1/24 -p tcp -j DROP iptables -A INPUT -s 192.168.1.1/24 -p udp -j DROP iptables -A INPUT -s 192.168.1.1/24 -p icmp -j DROP iptables -A INPUT -j ACCEPT iptables -A OUTPUT -j ACCEPT ``` 9. Запрещаем весь трафик, кроме подключения по ssh с ip-адреса 192.168.232.137 ![](https://i.imgur.com/zdCdLt1.png) ``` iptables -A INPUT -s 192.168.232.137/24 -p tcp --dport 2200 -j LOG iptables -A INPUT -s 192.168.232.137/24 -p udp --dport 2200 -j LOG iptables -A INPUT -s 192.168.232.137/24 -p tcp --dport 2200 -j ACCEPT iptables -A INPUT -s 192.168.232.137/24 -p udp --dport 2200 -j ACCEPT iptables -A INPUT -j LOG iptables -A INPUT -j DROP iptables -A OUTPUT -j LOG iptables -A OUTPUT -j DROP ``` Проверяем: Подключились с используемого ip-адреса по ssh: ![](https://i.imgur.com/3tjsgQd.png) А теперь пробуем подключаться с другого хоста: ![](https://i.imgur.com/OkLuQH6.png) 10. Блокируем трафик от диапазона адресов 192.168.232.0/24 ![](https://i.imgur.com/uzH9lDz.png) ``` iptables -A INPUT -s 192.168.232.0/24 -p tcp -j LOG iptables -A INPUT -s 192.168.232.0/24 -p udp -j LOG iptables -A INPUT -s 192.168.232.0/24 -p icmp -j LOG iptables -A INPUT -s 192.168.232.0/24 -p icmp -j DROP iptables -A INPUT -s 192.168.232.0/24 -p tcp -j DROP iptables -A INPUT -s 192.168.232.0/24 -p udp -j DROP iptables -A INPUT -j ACCEPT iptables -A OUTPUT -j ACCEPT ``` 11. Блокируем диапазон портов от 255.255.0.0: ![](https://i.imgur.com/IuhbVo8.png) ``` iptables -A INPUT -s 255.255.0.0/16 -p tcp --dport 3000:4000 -j LOG iptables -A INPUT -s 255.255.0.0/16 -p tcp --dport 3000:4000 -j LOG iptables -A INPUT -s 255.255.0.0/16 -p udp --dport 3000:4000 -j DROP iptables -A INPUT -s 255.255.0.0/16 -p tcp --dport 3000:4000 -j DROP iptables -A INPUT -j ACCEPT iptables -A OUTPUT -j ACCEPT ``` 12. Проброс портов ![](https://i.imgur.com/pdNId4G.png) ``` iptables -A FORWARD -i ens33 -o ens33 -j ACCEPT iptables -t nat -A POSTROUTING -p tcp --dport 1000:5000 --dst 192.168.232.137 -j SNAT --to-source 192.168.232.156 iptables -t nat -A PREROUTING -p tcp --dport 1000:5000 -d 192.168.232.156/24 -j DNAT --to-destination 192.168.232.137 ```