Предоставьте Доступ Сервера Ubuntu только от определенного IP

Как я могу позволить только моему собственному IP входить в систему для моего сервера человечности? Вчера получил нежелательные неудавшиеся попытки входа в систему 1500 года.

При разрешении только моего собственного IP, могло быть самым безопасным от хакеров? Я использую Постфикс только для отправки, так, чтобы привычка позволила любые входящие соединения.

4
задан 28 April 2015 в 16:10

2 ответа

Если Вы не используете (или не хотят использовать), ufw и вместо этого потребность iptables ответ, вот суть того, как сделать это. Обратите внимание, что также необходимо адаптироваться к IPv4 и IPv6.


IPv4

Во-первых, исследуйте Ваш iptables правила (iptables -L -n). Принятие стандартной установки, затем у Вас не будет правил.

iptables -A INPUT -s SOURCEIP/CIDR -p tcp --dport PORTNUM -j ACCEPT общий синтаксис состоит в том, чтобы добавить правило в конец INPUT таблица, конкретно указывая, что "Я хочу разрешить исходный IP adddress (и диапазон дюйм/с, если суффикс CIDR обеспечивается - это не необходимо), доступ к моему серверу, когда запросы прибывают в порт PORTNUM через TCP". Если Вы хотите только разрешить один IP-адрес, то опустите /CIDR часть с SOURCEIP.

Если у Вас будут какие-либо правила во Входной таблице для запрета доступа (в конце), то необходимо будет использовать iptables -I INPUT RULENUMBER (где RULENUMBER номер строки в INPUT таблица, где Вы хотите вставить это правило).

Удостоверьтесь, однако, что Вы также добавляете правила, такие как они:
iptables -A INPUT -i lo -j ACCEPT - Примите что-либо по localhost обратной петле (127.0.0.1, и т.д.)
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT - Примите трафик, связанный с уже установленными соединениями (требуемый удостовериться коммуникация назад к Вашему серверу и Вашим удаленным клиентским работам)

После того, как та конфигурация реализована, теперь необходимо добавить правило отклонить все другие соединения. Такое правило было бы этим, добавленным в конец INPUT таблица:
iptables -A INPUT -j REJECT --reject-with icmp-host-unreachable.


IPv6

Во-первых, исследуйте Ваш ip6tables правила (ip6tables -L -n). Принятие стандартной установки, затем у Вас не будет правил.

ip6tables -A INPUT -s SOURCEIP/CIDR -p tcp --dport PORTNUM -j ACCEPT общий синтаксис состоит в том, чтобы добавить правило в конец INPUT таблица, конкретно указывая, что "Я хочу разрешить исходный IP adddress (и диапазон дюйм/с, если суффикс CIDR обеспечивается - это не необходимо), доступ к моему серверу, когда запросы прибывают в порт PORTNUM через TCP". Если Вы хотите только разрешить один IP-адрес, то опустите /CIDR часть с SOURCEIP.

Если у Вас будут какие-либо правила во Входной таблице для запрета доступа (в конце), то необходимо будет использовать ip6tables -I INPUT RULENUMBER (где RULENUMBER номер строки в INPUT таблица, где Вы хотите вставить это правило).

Удостоверьтесь, однако, что Вы также добавляете правила, такие как они:
ip6tables -A INPUT -i lo -j ACCEPT - Примите что-либо по localhost обратной петле (127.0.0.1, и т.д.)
ip6tables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT - Примите трафик, связанный с уже установленными соединениями (требуемый удостовериться коммуникация назад к Вашему серверу и Вашим удаленным клиентским работам)

Дополнительно с IPv6, необходимо на самом деле принять в значительной степени каждый пакет ICMPv6, поскольку он намного более требуется, чем в IPv4. Это достигло бы этого:
ip6tables -A INPUT -p ipv6-icmp -j ACCPET

После того, как та конфигурация реализована, теперь необходимо добавить правило отклонить все другие соединения. Такое правило было бы этим, добавленным в конец INPUT таблица:
ip6tables -A INPUT -j REJECT --reject-with icmp6-addr-unreachable.


Сделайте эти правила персистентными ('iptables', только для решений нужно это),

Время, чтобы заставить правила постоянно придерживаться. Позволяет установке iptables-persistent. apt-get install iptables-persistent.

Установка спросит, хотите ли Вы сохранить свои текущие правила. Скажите это "да" и для IPv4 и для подсказок IPv6. ruleset мы просто 'добавили' к или создали, теперь будет постоянно доступно.

(Если Вы используете ufw вместо iptables, Вы не должны будете устанавливать этот пакет),


В то время как ufw будет автоматически управлять ruleset, чтобы удостовериться, что это находится в правильном порядке, iptables 'системный администратор' способ сделать усовершенствованный брандмауэринг. UFW просто делает легкие правила и функции - сложные, к которым Вы имеете отношение iptables или добавьте вручную к конфигурационным файлам для ufw с iptables синтаксис.

2
ответ дан 1 December 2019 в 09:23

Можно использовать ufw

Когда Вы включаете ufw с любыми правилами позволить некоторому трафику все находится в, отклоняют состояние.

sudo ufw enable

с этой командой Вы включите Ubuntu Firewall

Видеть использование состояния

sudo ufw status

Status: active

To                         Action      From
--                         ------      ----
69                         ALLOW       Anywhere
53                         ALLOW       Anywhere
22                         ALLOW       213.xxx.xxx.xxx
80/tcp                     ALLOW       194.247.xxx.xxx
21/tcp                     ALLOW       194.247.xxx.xxx
69 (v6)                    ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)

Это управляет, принимают любого на port 69, любой на port 53, ssh от 213.xxx.xxx.xxx, 80 и 21 от 194.247.xxx.xxx ... и отклоните любой другой входящий трафик

Полная команда для правила в ufw

sudo ufw [--dry-run] [delete] [insert NUM]  allow|deny|reject|limit  [in|out on INTERFACE] [log|log-all] [proto protocol] [from ADDRESS [port PORT]][to ADDRESS [port PORT]]

На основе этого шаблона правила Вы можете allow from xxx.xxx.xxx.xxx на port 80 с этим правилом

для определенного хоста

sudo ufw allow proto tcp from xxx.xxx.xxx.xxx to any port 80

если Вы хотите позволить кому-либо получать доступ к своему веб-серверу

sudo ufw allow proto tcp from any to any port 80

если Вы хотите предоставить доступ из определенной сети

sudo ufw allow proto tcp from xxx.xxx.xxx.xxx/yy to any port 80

где

xxx.xxx.xxx.xxx - представьте сетевой IP

yy - представьте сетевую маску

4
ответ дан 1 December 2019 в 09:23

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

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