То же самое в рубине и короче:
#!/usr/bin/env ruby
require 'resolv'
ip = Resolv.getaddress "mydomain.com"
`iptables -A INPUT -p tcp --dport 22 -s #{ip} -j ACCEPT` if `iptables --list` !~ /#{ip}/
Это протестировано на FreeBSD 10.0-RELEASE, но, вероятно, будет работать на FreeBSD 9.x.
Откройте настройки BIOS и перейдите в «Дополнительно → Консоль последовательного порта» Перенаправление »и убедитесь, что для параметра« Перенаправление консоли SOL »установлено значение« Включено »(вам не нужно включать COM1 или COM2 или внеполосное управление).
Откройте« Параметры перенаправления консоли SOL »и настройте следующим образом:
Тип терминала [VT-UTF8]
Бит в секунду [115200]
Биты данных [8]
Четность [Нет]
Стоповые биты [1]
Управление потоком [Нет]
Поддержка комбинированного ключа VT-UTF8 [Включено]
Режим записывающего устройства [отключен]
Разрешение 100x31 [Включено]
Разрешение перенаправления устаревшей ОС [80x24]
Putty KeyPad [VT100]
Перенаправление после BIOS POST [Всегда включать]
Вы можете оставить «Тип терминала» равным «VT100» (по умолчанию), если хотите. Вам нужно всего лишь изменить «Бит в секунду» на 115200, чтобы достичь указанной выше конфигурации.
Загрузите FreeBSD и добавьте следующие строки в /boot/loader.conf
:
] console = "comconsole vidconsole"
comconsole_speed = 115200
comconsole_port = "0x3E8"
0x3E8
- порт для COM3 («SOL» в настройках BIOS). Вы можете определить возможные значения, проверив dmesg
следующим образом:
$ dmesg | grep uart
uart0: <16550 или совместимый> порт 0x3f8-0x3ff irq 4 flags 0x10 на acpi0
uart0: консоль (115200, n, 8,1)
uart1: <16550 или совместимый> порт 0x2f8-0x2ff irq 3 на acpi0
uart2: <16550 или совместимый> порт 0x3e8-0x3ef irq 10 на acpi0
Если вы хотите получать приглашение на вход (и, таким образом, иметь возможность входить) через SOL, отредактируйте / etc / ttys
, изменив следующую строку:
ttyu2 "/ usr / libexec / getty std.9600 "безопасное соединение отключено
-
ttyu2 "/ usr / libexec / getty std.115200" vt100 в защищенном режиме
Мы меняем ttyu2
, потому что это соответствует COM3 (поскольку TTY имеют нулевой индекс, а COM - нет), что и использует наш SOL. Если вам не нужно входить в систему (потому что, например, вам просто нужно ввести пароль для GELI во время загрузки), вы можете оставить / etc / ttys
как есть.
Выше указан минимум, необходимый для того, чтобы это работало. Различные люди (см. «Ссылки» ниже) рекомендовали или заявляли, что им «нужно» множество других настроек, которые, по моему мнению, не были нужны, но не ухудшали функциональность SOL. Опять же, следующее не требуется и включено только для справки.
В /boot/loader.conf
:
boot_multicons = "yes"
boot_serial = "да"
hint.uart.0.flags = "0x00"
hint.uart.2.at = "isa"
hint.uart.2.flags = "0x10"
hint.uart.2.irq = "10"
hint.uart.2.port = "0x3E8"
В /boot.config
:
-P
или
-Dh
Несмотря на то, что, кажется, говорится в руководстве FreeBSD , вам не нужно компилировать собственное ядро.
Обратите внимание, что многие из них неверны, устарели, или чрезмерно усердно настраивал параметры, которые на самом деле не нужны.
Недостаточно репутации, чтобы прокомментировать ответ выше, поэтому:
Я запускаю FreeBSD 9.2, и конфигурация Эндрю, приведенная выше, включает SOL на COM 3 для меня на X8SIL-F / X8SIE-F, от BIOS до приглашения на вход. Он полностью основан на приведенном выше ответе, но протестирован на 9.2 с ядром GENERIC - спасибо, Эндрю!
Несколько примечаний:
Кажется, это порядок comconsole или vidconsole в строке " console = ... "в /boot/loader.conf
, который определяет, какая консоль станет собственно загрузочной, и, следовательно, где появятся сообщения консоли (и однопользовательское приглашение). Я не мог заставить /boot.config
повлиять на это, ни поиск клавиатуры, -P, ни двойной консоли, -D, см. boot (8)
, оказало какое-либо влияние - поэтому у меня нет /boot.config
.
Настройки BIOS X8SIL для COM3 были точными. Я только изменил тип терминала на VT-UTF8, как было предложено, хотя ANSI и VT100 тоже работают - я их протестировал.
Мне не нужно было устанавливать irq для uart2
в /boot/loader.conf
. О флагах см. uart (8)
.
В / dev / ttys
я установил для ttyu2
значение «небезопасный», потому что я не хотите, чтобы root входил через SOL (в однопользовательском режиме вы все равно получите root). Я предлагаю также сделать консоль небезопасной.
Недостаточно представителей для комментариев, но это спасло мой день.
Однако мне нужно было добавить их в /boot/device.hints
, так как без них FreeBSD не видит устройство uart2 для консоли SOL. У меня Supermicro X9SRi-3F, а консоль SOL работает на COM3. Это невозможно изменить, даже если вы отключите два других встроенных последовательных порта.
Мне пришлось добавить их, чтобы полностью разблокировать поддержку последовательной консоли во FreeBSD 12.2.
hint.uart.2.at="isa"
hint.uart.2.port="0x3E8"
hint.uart.2.flags="0x10"