Как я могу позволить только моему собственному IP входить в систему для моего сервера человечности? Вчера получил нежелательные неудавшиеся попытки входа в систему 1500 года.
При разрешении только моего собственного IP, могло быть самым безопасным от хакеров? Я использую Постфикс только для отправки, так, чтобы привычка позволила любые входящие соединения.
Если Вы не используете (или не хотят использовать), ufw
и вместо этого потребность iptables
ответ, вот суть того, как сделать это. Обратите внимание, что также необходимо адаптироваться к IPv4 и IPv6.
Во-первых, исследуйте Ваш 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
.
Во-первых, исследуйте Ваш 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-persistent
. apt-get install iptables-persistent
.
Установка спросит, хотите ли Вы сохранить свои текущие правила. Скажите это "да" и для IPv4 и для подсказок IPv6. ruleset мы просто 'добавили' к или создали, теперь будет постоянно доступно.
(Если Вы используете ufw
вместо iptables
, Вы не должны будете устанавливать этот пакет),
В то время как ufw
будет автоматически управлять ruleset, чтобы удостовериться, что это находится в правильном порядке, iptables
'системный администратор' способ сделать усовершенствованный брандмауэринг. UFW просто делает легкие правила и функции - сложные, к которым Вы имеете отношение iptables
или добавьте вручную к конфигурационным файлам для ufw
с iptables
синтаксис.
Можно использовать 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
- представьте сетевую маску