iptables Debian 8.5 Ubuntu 14.04

i am starting to build a web server for a project at work and i am going from the bottom to the top. After reading a lot - watching some you tube videos etc , i came up to a script - or better a procedure to apply some starter iptables rules for a Debian 8.5 or Ubuntu 14.04 lts server.

I would love to show you the code here and get some recommendations and replies from you if i am doing something wrong or what do i have to add more so i can make the firewall act better.

My questions are:

1: Is script and procedure ok?

2: Since i am blocking by default everything on OUTPUT chain but i am leaving some ports on ACCEPT will i have any problem regarding updating my server?

3: What other implementations do i have to apply so the iptables perform better like dropping port scanners etc?

Thanks a lot for your time .

Here is the code we create with the name firewall.sh :

#!/bin/sh

#We flush all the previous rules we had in iptables
iptables -F

#Policies - We need to DROP everything
iptables -P OUTPUT DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP

#Established Connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#Loopback Authorization
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#Ping Enable
iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT

#SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT

#HTTP
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

We need to make this script to run when server reboots:

sudo mv firewall.sh /etc/init.d
cd /etc/init.d
sudo mv firewall.sh firewall
sudo chmod +x firewall
sudo update-rc.d firewall defaults
-2
задан 9 September 2016 в 16:43
1 ответ

Скрипт подходит для добавления правил ... Я бы не стал вызывать его каждый раз, когда вы запускаете систему. Если вы хотите, чтобы эти правила сохранялись после перезагрузки, я бы рекомендовал использовать iptables-persistent. Вы можете установить это, выполнив следующую команду:

sudo apt-get install iptables-persistent

Для установленных соединений вы можете просто использовать это:

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED, СВЯЗАННЫЕ -j ACCEPT

Кроме того, у вас есть возможность добавить несколько портов для протокола tcp в одной строке, если хотите, однако то, как вы это делаете сейчас, будет работать нормально. Например:

sudo iptables -A INPUT -p tcp -m multiport --dports 80,443,8080: 8082,26900 -j ACCEPT sudo iptables -A OUTPUT -p tcp -m multiport --sports 80,443,8080: 8082,26900 -j ACCEPT

Я бы также посмотрел на открытие порта 53 для DNS, так как ваш внешний вид может не соответствовать обновлению пакетов в зависимости от настроек вашего репо . Я использую это:

sudo iptables -A INPUT -p udp --dport 53 --dport 1024: 65535 -j ACCEPT sudo iptables -A OUTPUT -p udp --sport 53 --dport 1024: 65535 -j ACCEPT

0
ответ дан 5 December 2019 в 21:40

Теги

Похожие вопросы