Можно ли Ubuntu настроить в качестве сервера брандмауэра, если да как? , если нет почему?
Встроенный Брандмауэр Ubuntu называют Iptable
. По умолчанию iptable
позволяет весь трафик. Так, необходимо настроить на основе потребностей :)
Вот основные команды на Iptable
Ввод
sudo iptables -L
перечисляет Ваши текущие правила в iptables. Если Вы только что настроили свой сервер, у Вас не будет правил, и необходимо видеть
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Посмотрите целое как к на help.ubuntu.com
Простой iptables сценарий
#!/bin/bash
# flush all chains
iptables -F
# set the default policy for each of the pre-defined chains
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# allow establishment of connections initialised by my outgoing packets
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# drop everything else
iptables -A INPUT -i eth+ -p udp -j DROP
iptables -A INPUT -i eth+ -p tcp -m tcp --syn -j DROP
# accept anything on localhost
iptables -A INPUT -i lo -j ACCEPT
У меня есть сетевые интерфейсы на eth0 и eth1, таким образом, этот сценарий имеет правила, которые касаются обоих; если Ваши интерфейсы будут иметь различные имена, то необходимо будет отредактировать правила покрыть это. Это отбрасывает все поступление, за исключением соединений, которые были первоначально установлены моими исходящими пакетами (благодарит Luke! - см. комментарии); что означает, что это бесполезно для серверов.
Я поместил этот сценарий в/opt/scripts/iptables.script и сделал его исполняемым файлом. После того как Вы выполняете его, можно узнать, работало ли это путем отображения текущих правил iptables с:
sudo iptables -L -v
Я затем создал простой init сценарий для запущения/останавливания брандмауэра в /etc/init.d/firewall
:
#!/bin/bash
if [[ $1 == start ]] ; then
sudo /opt/scripts/iptables.script
else
sudo iptables -F
fi
Затем я symlinked это в мой /etc/rc.*
подходят каталоги с помощью инструмента обновления-rc.d, таким образом, брандмауэр запускается перед сетью:
update-rc.d firewall start 20 2 3 4 5 . stop 99 0 1 6 .
Надеюсь эта справка :)
Я предпочитаю ufw HELP , это обертка вокруг iptables, и ее легче настроить.