Просмотрите правила iptables для сервера

Просмотрите правила iptables для сервера

Этот ящик работает под управлением Ubuntu 14.04b и почти не настроен.
Я подумал, что было бы неплохо установить хотя бы брандмауэр, и мой выбор пал на iptables.

IMHO, будет лучше загружать правила из файла, сгенерированного iptables, при запуске интерфейса pre-up, через /etc/network/interfaces, используя что-то вроде
pre-up iptables-restore < /etc/iptables.rules
iptables-saveat post-down, на случай, если мне придется что-то изменить).

Однако есть две вещи, которые меня раздражают:

  • Во-первых, я не уверен, что мой файл правильно выполнит эту работу (см. ниже).
  • Во-вторых, в последний раз, когда я использовал iptables, IPv6 вообще не существовал! Я обнаружил, что для этого есть ip6tables, но не могу определить, могу ли я использовать один и тот же файл правил для обоих... Это было бы здорово, но, к сожалению, это звучит слишком просто, чтобы быть правдой :/

Далее следует мой файл правил. Не будет ли кто-нибудь так любезен, чтобы указать мне на что-нибудь странное, нелогичное или ненужное?

Как вы видите, в коробке будет Apacheвеб сервер(с доменным именем, поэтомуДНСнеобходимо пройти),MySQL-сервер(с удаленным доступом),SFTP-сервер(кажется, FTP сейчас уже довольно устарел), будет действовать какпочтовый сервер(вероятно, postfix, а может быть, и список рассылки с majordomo, если он еще существует) идолжны быть абсолютно доступнычерезSSH(Я не могу позволить себе потерять SSH-доступ к этому серверу: это выделенная штука где-то в 400 км от меня, без консоли)

# Generated by iptables-save v1.4.21 on Wed Sep 28 15:08:21 2016
*raw
:PREROUTING ACCEPT [30261051:8737714396]
:OUTPUT ACCEPT [28933128:15186346449]
COMMIT
# Completed on Wed Sep 28 15:08:21 2016
# Generated by iptables-save v1.4.21 on Wed Sep 28 15:08:21 2016
*nat
:PREROUTING ACCEPT [8040256:1000464908]
:INPUT ACCEPT [8040256:1000464908]
:OUTPUT ACCEPT [357964:47801350]
:POSTROUTING ACCEPT [357964:47801350]
COMMIT
# Completed on Wed Sep 28 15:08:21 2016
# Generated by iptables-save v1.4.21 on Wed Sep 28 15:08:21 2016
*mangle
:PREROUTING ACCEPT [30261051:8737714396]
:INPUT ACCEPT [30261051:8737714396]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [28933128:15186346449]
:POSTROUTING ACCEPT [28933128:15186346449]
COMMIT
# Completed on Wed Sep 28 15:08:21 2016
# Generated by iptables-save v1.4.21 on Wed Sep 28 15:08:21 2016
*filter
:INPUT ACCEPT [10752:1386943]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [18529:5801236]
# Do not kill established connections
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

#INPUT rules
#SSH & SFTP
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
#HTTP server
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
#HTTPS
-A INPUT -i eth0 -p tcp -m tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
#Echo
-A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
#DNS
-A INPUT -i eth0 -p udp -m udp --sport 53 -j ACCEPT
#SMTP
-A INPUT -i eth0 -p tcp -m tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
#SQL in
-A INPUT -i eth0 -p tcp -m tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
#IMAP
-A INPUT -i eth0 -p tcp -m tcp --dport 143 -m state --state NEW,ESTABLISHED -j ACCEPT
#IMAP sur SSL
-A INPUT -i eth0 -p tcp -m tcp --dport 993 -m state --state NEW,ESTABLISHED -j ACCEPT
#POP3
-A INPUT -i eth0 -p tcp -m tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
#POP3 sur SSL
-A INPUT -i eth0 -p tcp -m tcp --dport 995 -m state --state NEW,ESTABLISHED -j ACCEPT
#Limit HTTP flood
-A INPUT -p tcp -m tcp --dport 80 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
#Loopback
-A INPUT -i lo -j ACCEPT

#OUTPUTS
#SSH & SFTP
-A OUTPUT -o eth0 -p tcp -m tcp --sport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
#HTTP
-A OUTPUT -o eth0 -p tcp -m tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
#HTTPS
-A OUTPUT -o eth0 -p tcp -m tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
#echo
-A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
#DNS
-A OUTPUT -o eth0 -p udp -m udp --dport 53 -j ACCEPT
#SMTP
-A OUTPUT -o eth0 -p tcp -m tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT
#SQL out
-A OUTPUT -o eth0 -p tcp -m tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT
#IMAP
-A OUTPUT -o eth0 -p tcp -m tcp --sport 143 -m state --state ESTABLISHED -j ACCEPT
#IMAP sur SSL
-A OUTPUT -o eth0 -p tcp -m tcp --sport 993 -m state --state ESTABLISHED -j ACCEPT
#POP3
-A OUTPUT -o eth0 -p tcp -m tcp --sport 110 -m state --state ESTABLISHED -j ACCEPT
#POP3 sur SSL
-A OUTPUT -o eth0 -p tcp -m tcp --sport 995 -m state --state ESTABLISHED -j ACCEPT
#Doublons by legacy script.
#Remove?
-A OUTPUT -p tcp -m tcp --dport 53
-A OUTPUT -p udp -m udp --dport 53
-A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
#Loopback
-A OUTPUT -o lo -j ACCEPT

#End of config. Make it happen!
COMMIT
# Completed on Wed Sep 28 15:08:21 2016

Спасибо за любую помощь!

решение1

Поскольку ваш iptablesфайл сохранения не ссылается ни на один IP, вы должны быть в порядке, используя его ip6tablesтакже. Лучше всего выдать atзадание на сброс правил брандмауэра через 2 минуты (или любое другое время, которое вы посчитаете подходящим):

# echo "service iptables stop" | at now + 2 minutes

затем примените правила iptables из вашего файла для IPv4 и IPv6:

# iptables-restore < iptables-save-file
# ip6tables-restore < iptables-save-file

если в этот момент что-то недоступно, подождите 2 минуты, пока atзадание деактивирует брандмауэр, и начните настраивать наборы правил вручную. Если они работают, запустите service iptables saveи service ip6tables saveнаслаждайтесь своим новым брандмауэром.

Я также должен отметить, что ваш существующий файл на самом деле никогда не отклоняет, не отклоняет и не сбрасывает какой-либо трафик — политика по умолчанию для всех цепочек — ACCEPT, и нет никаких конечных правил с целями DROPили REJECT, поэтому у вас получается то, что выглядит как довольно неэффективная конфигурация брандмауэра.

Связанный контент