Как удостовериться, что порт SSH только открыт для определенного IP-адреса?

KDE не помнит, как Вы хотите установку исходных данных, если они не соединены при запуске (AFAIK), но если Вы просто хотите xrandr зафиксируйте:

xrandr --output LVDS1 --auto --output HDMI1 --auto --left-of LVDS1

Это установит оба вывода на предпочтительный режим (тот с "+") и произведет ТВ слева от Вашего экрана ноутбука (изменение --left-of к чему Вам нужно: right-of, below, above, same-as).

42
05.04.2016, 09:36
4 ответа
[

]Если я правильно понял вопрос, вы хотите, чтобы ваш сервер был доступен только с определенного IP адреса на 22 порту, вы можете обновить Iptables для этого:[

] [
iptables -A INPUT -p tcp -s YourIP --dport 22 -j ACCEPT
] [

]В этом случае вы открываете ssh порт только для YourIP, если вам нужно открыть DNS для вашей внутренней сети:[

] [
iptables -A INPUT -p udp -s YourIP --dport 53 -j ACCEPT
iptables -A INPUT -p tcp -s YourIP --dport 53 -j ACCEPT
] [

]После того, как вы добавили их и открыли для этих IP, вам нужно закрыть дверь для остальных IP адресов[

] [
iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 22 -j DROP
iptables -A INPUT -p udp -s 0.0.0.0/0 --dport 53 -j DROP
iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 53 -j DROP
] [

](Убедитесь, что правила установлены в правильной позиции в вашем наборе правил. []iptables -A INPUT[] добавит правила в конец []INPUT[] в текущем виде. )[

] [

]или как сказал []joel[] вы можете добавить одно правило вместо него:[

] [
iptables -A INPUT -p tcp ! -s <permittedIP> -j DROP
] [

]или вы можете просто установить политику по умолчанию на брандмауэре с помощью [

] [
iptables -P INPUT DROP
] [

]Вкратце, как представлено в []этом вопросе на SO[]:[

] [
iptables -A INPUT -p tcp --dport 22 -s YourIP -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
]
49
27.01.2020, 19:35

Хотя я рекомендую использовать SSH-ключи, я дам вам объяснение.

Вам не обязательно использовать IPtables для того, что вы пытаетесь достичь, есть несколько способов. Это способ IPtables:

.
iptables -I INPUT -s [YOUR_HOME_IP] -p tcp -m tcp --dport [SSH_PORT] -j ACCEPT

[YOUR_HOME_IP] = Ваш домашний IP (довольно просто)

.

[SSH_PORT] = Порт, на котором вы запускаете SSH (по умолчанию 22)

iptables -I INPUT -p tcp -m tcp --dport [SSH_PORT] -j REJECT

Это гарантирует, что никто кроме вашего IP не сможет войти в SSH.

Есть другой способ, который заключается в добавлении чего-либо в sshd_config.

Добавьте следующее:

AllowUsers root@[YOUR_HOME_IP]
PermitRootLogin without-password

Это позволит вам войти в SSH в качестве пользователя root с вашего IP без запроса пароля.

Пожалуйста, имейте в виду, что cronjob с

iptables -X
iptables -F

может быть умным, так что вы не будете заблокированы с SSH вашего сервера (cronjob сбросит IP-таблицы, так что вы получите доступ снова). Если у вас все еще есть доступ, вы можете удалить cronjob и настроить ваши IPtables снова.

7
27.01.2020, 19:35

Просто sed -e 's/;/|/g' -e 's/|/;/' data.csv получает:

Question ipsun; option 1 | option 2 | option 3 | option 4 | ... | option n

Что похоже на то, что вы хотели.

-121--77319-

При вводе в оболочку некоторые символы распознаются как команды. Например, символ возврата каретки (символ, отправленный клавишей Enter ) вызывает выполнение команды оболочкой. Символ табуляции вызывает завершение оболочки. Когда вы вставляете что-то в окно терминала PuTTY, с точки зрения оболочки, это то же самое, как если бы вы ввели эти символы. Так что в момент вставки символа табуляции оболочка выполняет завершение, она не вставляет табуляцию.

Самый простой способ скопировать файл без его преобразования - это использовать сопутствующую программу PuTTY PSCP или PSFTP для копирования файла. Это самый простой способ концептуально, но у него есть накладные расходы на запуск другой программы, аутентификацию, выбор каталога и т. д.

Если вы хотите что-то встроенное, вы можете вставить прямо в cat , а не в данном документе. Тогда вы будете вставляться в редактор линий терминала, а не в редактор линий оболочки. Поскольку редактор строк терминала очень примитивен, только несколько управляющих символов имеют там особое значение, не включая tab. Нажмите Ctrl + D в начале строки, чтобы завершить ввод.

[darkstar /]$ cat >text.txt
Paste
Ctrl+D
[darkstar /]$ 

Вы хотите передать произвольные данные на носитель, который интерпретирует управляющие символы, вы можете кодировать их в форму, которая использует только «укрощенные» символы. Base64 является единицей; он не использует никаких управляющих символов и игнорирует пробелы и новые строки. GNU coreutils, который является частью базовой установки в Linux и Cygwin, включает в себя команду base64 . На стороне отправителя запустите base64 < file-to-decode , например

  • В Windows: запустите base64 c :/path/to/test.txt с терминала Cygwin
  • Скопируйте выходные данные.
  • В оболочке в окне PuTTY введите 'base64 -d >/tmp/test.txt и нажмите Enter .
  • Вставьте выходные данные из base64 .
  • Нажмите Ctrl + D .
-121--102683-

Другие ответы используют в своих примерах iptables -I , что часто не является тем, что следует использовать.

iptables выполнит первое правило, которое соответствует, поэтому порядок правил очень важен. -I является командой «insert» и должна использоваться с параметром index, чтобы указать, куда в списке принадлежит данное правило. -A является командой «append», которая добавит правило в конец списка.

В некоторых искажениях (возможно, во всех) при использовании -I без параметра индекса правило добавляется к первому индексу, что делает его первым проверенным правилом. В этом сценарии, если последней выполняемой командой является iptables -I INPUT -s tcp 0,0,0,0/0 -j DROP , iptables отбрасывает весь трафик,независимо от наличия в цепочке правил ACCEPT .

Ниже приведен пример настройки правила, разрешающего только SSH с одного IP-адреса:

Запуск без правил:

#> iptables -nL
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

Добавьте новое правило «разрешить SSH из 1.2.3.4»:

# > iptables -A INPUT -p tcp -s 1.2.3.4 --dport 22 -j ACCEPT

Блокировать SSH со всех остальных IP-адресов:

# > iptables -A INPUT -p tcp -s 0.0.0.0/0 -dport 22 -j DROP

Теперь цепочка INPUT будет выглядеть следующим образом:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  1.2.3.4              0.0.0.0/0            tcp dpt:22
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22

Позже, если необходимо внести второй IP-адрес в белый список, можно использовать параметр -I , чтобы поместить его перед правилом черного списка.

# > iptables -I INPUT 2 -p tcp -s 4,3,2,1 -dport 22 -j ACCEPT

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  1.2.3.4              0.0.0.0/0            tcp dpt:22
ACCEPT     tcp  --  4.3.2.1              0.0.0.0/0            tcp dpt:22
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22

Обратите внимание, что с помощью -I INPUT 2 новое правило было добавлено в качестве номера правила 2, а правило DROP - в качестве номера 3.

5
27.01.2020, 19:35

Для этого я использую ufw(Несложный брандмауэр )и, следовательно, хотел внести свои настройки. Ufw использует iptables в фоновом режиме, но с гораздо более простым интерфейсом для таких простых задач.

Я просто должен был оформить:

sudo ufw allow from <your-ipv4-here> to any port 22
sudo ufw allow from <your-ipv6-here> to any port 22

Вот именно.

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

sudo ufw default deny incoming
sudo ufw default allow outgoing

Надеюсь, это кому-нибудь поможет.

1
11.07.2020, 08:29

Теги

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