Для тех, кто наткнется на эту тему, используя один из новых MacBook Pro (2016 года и более поздние версии ), которым требуется драйвер applespi для работы клавиатуры и сенсорной панели, вот как это сделать., так как я не смог найти другой темы, объясняющей это для более новых компьютеров Mac.
Насколько я понимаю, драйвер эффективно заменяет роль модуля hid _apple, поэтому файлы для редактирования немного отличаются.
Во-первых, чтобы убедиться, что вы используете драйвер applespi, а не драйвер hid _, проверьте, какая из этих команд (с помощью терминала )что-то возвращает. Что бы ни случилось, вы узнаете, какой драйвер вы используете в настоящее время :
.
# If this returns "applespi", you are using applespi
ls /sys/module | grep applespi
# If this returns "hid_apple", you are using hid_apple
ls /sys/module | grep hid_apple
Для проверки настроек временно(настройки будут сброшены после перезагрузки):
echo 2 | sudo tee -a /sys/module/applespi/parameters/fnmode
Чтобы применить изменения навсегда(сохранить при перезагрузке):
# Add the option for the fn key
echo options applespi fnmode=2 | sudo tee -a /etc/modprobe.d/applespi.conf
# Update initramfs bootfile
sudo update-initramfs -u -k all
# Reboot to test (optional)
sudo reboot
Для старых MacBook Pro, использующих модуль hid _apple, используйте в командах «hid _apple», а не «applespi».
Если вы хотите, чтобы только 1 IP-адрес имел доступ к порту 22, но вы также хотите перенаправить какой-либо другой порт на локальный порт 22, вам все равно нужно открыть порт 22 для всех, поскольку INPUT
правило обрабатывается после правила nat REDIRECT
.
Одним из способов может быть:
iptables -t nat -A PREROUTING -s 1.1.1.1 --proto tcp --dport 22 -j ACCEPT
iptables -t nat -A PREROUTING --proto tcp --dport 22 -j REDIRECT --to-port 65535
iptables -t nat -A PREROUTING --proto tcp --dport 2222 -j REDIRECT --to-port 22
iptables -A INPUT --proto tcp --dport 22 -j ACCEPT
iptables -A INPUT --proto tcp --dport 65535 -j DROP
Поскольку таблица nat PREROUTING
обрабатывается первой, исходный адрес 1.1.1.1 для порта 22 принимается (, что означает, что NAT не выполняется ). Другие исходные адреса, пытающиеся достичь порта 22, попадут в следующее правило, перенаправляя входящие пакеты порта 22 на порт 65535 (, к сожалению, вы не можете использовать DROP
в таблице PREROUTING
nat ).
Затем подключения к порту 2222 перенаправляются на порт 22, все входящие пакеты на порт 22 принимаются, и, наконец, входящие подключения к порту 65535, которые являются «другими» подключениями к порту 22, сбрасываются.
Примечание. Я предполагаю, что у вас есть строка, подобная этой, как одно из ваших первых правил ввода.:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
В противном случае у вас может быть исходящее соединение с исходным портом 65535, и ответы на этот порт будут заблокированы. В качестве альтернативы можно добавить флаг TCP, соответствующий правилу 65535, который соответствует только пакетам SYN.Однако всегда полезно разрешать пакеты ESTABLISHED,RELATED
в начале цепочки INPUT для повышения эффективности.
Не стесняйтесь добавлять -i venet0
, если эти правила должны применяться только к пакетам, входящим на этот интерфейс.
У вас должен быть открыт порт 22, чтобы передавать на него трафик с порта 2222, если ssh и ваши настройки iptables находятся на одной машине, можно привязать ваш сокет ssh к вашему петлевому интерфейсу (127.0.0.1 ), что позволит вам оставить ssh на порту 22, и вы по-прежнему сможете передавать трафик с общедоступного интерфейса на петлю вашей локальной машины.