iptables или firewalld для закрытия всех портов кроме ssh?

У меня есть следующий вопрос: Как я могу закрыть все порты кроме порта 22. nmap показывает мне все используемые порты:

nmap localhost

Starting Nmap 7.01 ( https://nmap.org ) at 2017-02-20 20:06 CET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000050s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh

Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds

также netstate дисплеи открывают соединения:

sudo netstat -tulpen | grep -v '127.0.0.1'  | grep -v '::1:'
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      0          160309215   286/sshd        
tcp6       0      0 :::22                   :::*                    LISTEN      0          160309218   286/sshd  

но эти 999 действительно не закрываются, они не используются.

iptables -L дает:

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 

таким образом, каждый порт открыт теперь.

Так как это - внешний сервер, я должен сохранить порт 22 открытыми, так как я использую соединение SSH через порт 22 во время изменения настроек.

Каков мог бы быть лучший способ настроить это?

Я могу остановить iptables и лучше запустить firewalld и сделать там конфигурации? Или я могу временно остановить iptables, внести изменения и затем перезапустить iptables?

Или есть ли некоторые конфигурационные файлы, которые я могу отредактировать?

Я не действительно знаком с этими конфигурациями, но я должен сделать это тщательно и правильно.

Заранее спасибо за Вашу справку!

0
задан 20 February 2017 в 14:22

1 ответ

Для чего-то простого как это я использовал бы ufw. Это установлено по умолчанию, но давайте удостоверимся:

~$ which ufw должен возвратиться \usr\bin\ufw, если ufw установлен. Если ufw не установлен: ~$ sudo apt-get install ufw.

следующие шаги не возьмут влияние, пока Вы не включите или перезагружаете брандмауэр, таким образом, Вы не будете выгнаны.

~$ sudo ufw default deny incoming
~$ sudo ufw default allow outgoing
~$ sudo ufw allow in 22/tcp

Вы просто сказали брандмауэру (a) не впускать что-либо, (b) освобождать все и (c) впускать tcp на порте 22. Сделать эти правила эффективными:

~ $ sudo ufw disable
~ $ sudo ufw enable

Вас теперь предупредят:

Command may disrupt existing ssh connections. Proceed with operation (y|n)? 

, Если Вы уверены, что следовали этим инструкциям тщательно, ответьте на да. Наконец, давайте отобразим состояние брандмауэра с sudo ufw status verbose:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere                  
22/tcp (v6)                ALLOW IN    Anywhere (v6) 

прочитайте ufw страницу справочника для получения дополнительной информации.

1
ответ дан 3 November 2019 в 17:35

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

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