Может ли кто-нибудь дать несколько простых шагов с примером конфигурации, как настроить простой брандмауэр на Ubuntu (только с помощью консоли)? Должен быть разрешен только доступ по ssh, http и https.
sudo ufw default deny
sudo ufw разрешить http
sudo ufw разрешить https
sudo ufw разрешить ssh
sudo ufw enable
Используйте этот скрипт.
Просто решите, хотите ли вы разрешить входящий ICMP (ping) или нет.
# Clear any existing firewall stuff before we start
iptables --flush
iptables -t nat --flush
iptables -t mangle --flush
# As the default policies, drop all incoming traffic but allow all
# outgoing traffic. This will allow us to make outgoing connections
# from any port, but will only allow incoming connections on the ports
# specified below.
iptables --policy INPUT DROP
iptables --policy OUTPUT ACCEPT
# Allow all incoming traffic if it is coming from the local loopback device
iptables -A INPUT -i lo -j ACCEPT
# Accept all incoming traffic associated with an established
# connection, or a "related" connection
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow incoming connections
# SSH
iptables -A INPUT -p tcp -i eth0 --dport 22 -m state --state NEW -j ACCEPT
# HTTP
iptables -A INPUT -p tcp -i eth0 --dport 80 -m state --state NEW -j ACCEPT
# HTTPS
iptables -A INPUT -p tcp -i eth0 --dport 443 -m state --state NEW -j ACCEPT
# Allow icmp input so that people can ping us
iptables -A INPUT -p icmp -j ACCEPT
# Reject all other incoming packets
iptables -A INPUT -j REJECT
Как отмечено в комментариях к другому ответу, вы не хотите терять соединение, прежде чем разрешите порт ssh. На странице руководства:
"УДАЛЕННОЕ УПРАВЛЕНИЕ
При запуске ufw enable или запуске ufw через свой сценарий инициализации ufw сбрасывает свои цепочки. Это необходимо для того, чтобы ufw мог поддерживать согласованное состояние, но мог разорвать существующие соединения (например, ssh). ufw поддерживает добавление правил перед включением брандмауэра, поэтому администраторы могут:
ufw allow proto tcp from any to any port 22
перед запуском 'ufw enable'. Правила все равно будут сброшены, но порт ssh будет открыт после включения брандмауэра. Обратите внимание, что как только ufw включен, ufw не будет сбрасывать цепочки при добавлении или удалении правил (но будет при изменении правила или изменении политики по умолчанию) ».
Итак, вот подход, который использует сценарий для его установки. Вы выйдете из системы, когда запустите этот скрипт, но, запустив его, вы сможете снова войти в систему через ssh.
Поместите в сценарий следующее и назовите его start-firewall.sh
#!/bin/sh
ufw allow ssh
ufw enable
ufw default deny
ufw allow http
ufw allow https
А затем сделайте его исполняемым и запустите, выполнив
$ chmod + x start-firewall.sh
$ sudo ./start-firewall.sh
Чтобы узнать больше, прочтите страница руководства.
Если вы знакомы со сценариями iptables
, вы получите полный контроль над всеми возможностями брандмауэра. Это далеко не так дружелюбно, как Firestarter, но это можно сделать на консоли с помощью nano
/vi
редакторы. Проверить это руководство ориентирован на Ubuntu.
Quicktables помог мне изучить правила iptables. Просто запустите скрипт, и он сгенерирует для вас скрипт iptables ... затем вы можете открыть его и просмотреть связанные команды, сгенерированные заданными вам вопросами. Это отличный учебный ресурс.
К сожалению, он больше не поддерживается.
Мне очень нравится использовать Firehol (пакет).
Чтобы создать правила настройки, которые вы хотите, вам необходимо отредактировать файл / etc / default / firehol и изменить START_FIREHOL = YES
И вы хотели бы, чтобы ваш /etc/firehol/firehol.conf выглядел так.
version 5
interface any IfAll
client any AnyClient accept
server "ssh http https" accept
# Accept everything from trusted networks
server anystateless AllInside accept src "10.3.27.0/24"
Одна из замечательных особенностей firehol - это команда «попробовать». Вы можете настроить файл конфигурации и выполнить «попытку firehol», если вы подключены через ssh, и что-то в том, что вы изменили, убило ваш доступ к сети, тогда firehol отменит изменения. Чтобы изменения действительно вступили в силу, вы должны сказать совершить.
я бы предпочел Shorewall. Его легко настроить, но в то же время он гибкий.
Может тебе стоит взглянуть на http://iptables-tutorial.frozentux.net/iptables-tutorial.html. Также вы можете найти дополнительную информацию о lartc.org
sudo apt-get install firestarter
Затем посмотрите в меню Система-> Администрирование.