Правила Iptables для брандмауэра под управлением Ubuntu 16.04

Я пытаюсь установить правила iptables на моем сервере, чтобы использовать его как брандмауэр под управлением Ubuntu 16.04. У меня есть хорошие знания в Ubuntu. Я сделал поиск в справочном сайте Ubuntu и в Askubuntu. Я придумал следующие правила, которые можно сохранить в файле и выполнить как root (файл sudo sh):

#!/bin/bash WAN_IF="enp2s0" WAN_IP=$(/sbin/ip addr show dev "$WAN_IF" | perl -lne 'if(/inet (\S+)/){print$1;last}'); LAN_IF="enp4s9" LAN_IP=$(/sbin/ip addr show dev "$LAN_IF" | perl -lne 'if(/inet (\S+)/){print$1;last}'); ##### Internal network address (in CIDR notation) LAN_NET="192.168.17.0/24" echo echo "[WAN Interface: $WAN_IF] [WAN IP: $WAN_IP]" echo "[LAN Interface: $LAN_IF] [LAN IP: $LAN_IP] [Network: $LAN_NET]" echo echo -n "Enabling IP Forwarding...\n" ##### Enabling IP Forwarding echo 1 > /proc/sys/net/ipv4/ip_forward echo echo -n "Loading Firewall Rules...\n" echo -n "Enabling NAT Rewriting on IN/OUT Packets...\n" /sbin/iptables-restore <<-EOF; *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT DROP [0:0] ##### INPUT RULES -A INPUT -i lo -j ACCEPT -A INPUT -i $LAN_IF -j ACCEPT -A INPUT -i $WAN_IF -s $LAN_NET -j DROP -A INPUT -i $WAN_IF -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT ##### FORWARD RULES -A FORWARD -i $LAN_IF -o $WAN_IF -j ACCEPT -A FORWARD -i $WAN_IF -o $LAN_IF -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT ##### OUTPUT RULES -A OUTPUT -o lo -j ACCEPT -A OUTPUT -o $WAN_IF -d $LAN_NET -j DROP -A OUTPUT -o $LAN_IF -s $LAN_IP -d $LAN_NET -j ACCEPT -A OUTPUT -o $WAN_IF -s $WAN_IP -j ACCEPT ##### All Other Requests are DROPPED -A OUTPUT -j DROP -A INPUT -j DROP COMMIT ##### NAT Rewriting on IN/OUT Packets *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A POSTROUTING -o $WAN_IF -j MASQUERADE COMMIT EOF echo -n "Bloacking IP6...\n" /sbin/ip6tables-restore <<-EOF; *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT DROP [0:0] COMMIT EOF echo echo "Done!" echo

Мои вопросы:

У меня есть следующая сеть топология:

Интернет >>>>> [WAN & lt; & lt; & lt; & lt; & gt; & lt; & lt; & lt; & lt; & lt; & lt; Локальные пользователи

На моем сервере я хочу заблокировать весь входящий трафик на WAN (включая пинги и другие запросы на обнаружение и / или взлом), но разрешить интернет-трафик для SERVER и для локальных пользователей по локальной сети. Является ли приведенный выше код ОК с такими правилами? У меня есть некоторые службы на моем сервере SERVER (например, MYSQL и SSH), которыми я управляю напрямую из самого SERVER, я хочу заблокировать локальных пользователей в локальной сети и Интернете в WAN от доступа или подключения к службам и всего на моем сервере SERVER. Является ли приведенный выше код ОК с таким правилом? Есть ли замечания или недостатки безопасности, которые могут быть обложены вышеуказанными правилами? Безопасно ли открывать SSH-порт в Интернете по глобальной сети, если я использую следующее правило? (Примечание: я буду использовать только аутентификацию открытого ключа ssh, нет четких текстовых паролей.) [F2]

Спасибо большое, ребята.

3
задан 14 June 2017 в 06:25

0 ответов

Другие вопросы по тегам:

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