Нажмите F10 , чтобы открыть меню, и с помощью клавиш со стрелками перейдите к «Параметры» → «Настроить Emacs» → «Соответствие всех настроек…». Введите мышь
и введите .
Если ваша версия Emacs не имеет меню при работе в терминале, запустите M-x customize
. (Это означает: нажмите Alt + X , введите настроить
и нажмите Enter .) Перейдите в поле поиска, введите мышь
и нажмите Введите .
Поддержка мыши называется «режимом мыши Xterm». Вы можете найти это в руководстве . В мануале также дается способ его включения (для текущего сеанса) - M-x xterm-mouse-mode
.
В интерфейсе настройки для параметра, который вы хотите изменить, нажмите , введите в «Показать значение». Появится кнопка «Переключить», нажмите на ней , введите . Затем нажмите Введите в поле «Состояние» и выберите 0
для «Установить для текущего сеанса» или «1» для «Сохранить для будущих сеансов». (Вы можете выбрать 0
сейчас и вернуться туда и выбрать 1
позже, если вас устраивает настройка.)
Первая вещь:-I
означает вставку в начале, т.е. добавление . Используйте от -A
до и добавьте в конце. -A
может не работать должным образом, если вы также не просмотрите другие правила iptables, которые, возможно, уже были установлены ранее. Итак, давайте продолжим использовать -I
, но с увеличенным номером строки после выбора места для вставки и получения правил в обычном порядке.
Ваша проблема связана с обработкой правил с отслеживанием состояния . Поток conntrack — это NEW
с первым пакетом. Любой ответный пакет не будет новым, а перейдет в состояние ESTABLISHED
. Ваши правила допускают только состояния NEW
, поэтому ничего не может работать правильно.
Незнание всех остальных правил или настроек сети может привести к неоптимальным/дублирующимся правилам в этом ответе, но в любом случае это должно работать.
Сначала добавьте общие правила, которые разрешат ответ, а также соответствующие (например, :для udp
ошибок с icmp
или для вспомогательных модулей, таких как ftp
пакеты данных ), одно правило на направление. Эти правила не разрешают трафик в одиночку, потому что новый поток всегда NEW
(, а не ESTABLISHED
илиRELATED
)по определению. Таким образом, вам нужно будет заботиться только о NEW
состояниях(-m conntrack --ctstate
замененных -m state --state
, поэтому вам лучше использовать его, если он доступен, иначе просто замените все эти строки обратно на-m state --state
):
iptables -I FORWARD 1 -i br2 -o br0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD 2 -i br0 -o br2 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
Теперь вы можете иметь дело с (только )новыми потоками:
Обратите внимание, что предыдущее правило и следующее правило могут быть объединены только в одно правило со всеми тремя состояниями или вообще без проверки состояния, поскольку это всегда будет одно из этих трех состояний (хорошо, кроме НЕДЕЙСТВИТЕЛЬНОГО)
iptables -I FORWARD 3 -i br0 -o br2 -m conntrack --ctstate NEW -j ACCEPT
iptables -I FORWARD 4 -i br2 -o br0 -d 192.168.1.38 -p tcp --dport 1883 -m conntrack --ctstate NEW -j ACCEPT
iptables -I FORWARD 5 -i br2 -j DROP
Что касается вашего последнего вопроса, я сомневаюсь, что то, что вы написали, разрешит доступ в Интернет, потому что Интернет, вероятно, может быть недоступен на интерфейсе br0
. Он будет доступен на интерфейсе с общедоступным IP-адресом. Это должно работать, не зная, какой это интерфейс, просто не заявляя, что он (запускается после предыдущих команд, или соответствующим образом меняет порядок номеров.iptables-save
иiptables-restore
ваши друзья):
iptables -I FORWARD 5 -o br2 -d 192.168.7.5 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD 6 -i br2 -s 192.168.7.5 -m conntrack --ctstate NEW -j ACCEPT
Но недостающая информация, добавленная в вопросе, наверняка помогла бы:ip -br link
; ip -4 -br address
; ip route
;ip rule
(и, возможно,iptables-save
). Тогда правила, вероятно, можно было бы сделать более общими без снижения безопасности.
UPDATE:mac
соответствует MAC-адресу.
Вместо IP-адреса можно сопоставить MAC-адрес. Эта информация может использоваться только как источник и имеет смысл только в правильной сети. Поэтому -o br2
нельзя использовать для сопоставления с MAC.Давайте просто заменим правило 5 выше более общим (, которое по-прежнему подходит для безопасности ). Используя -R
на замените правила 5 и 6 выше, отрегулируйте (снова:iptables-save
удобно):
iptables -R FORWARD 5 -o br2 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -R FORWARD 6 -i br2 -m mac --mac-source 02:03:04:05:06:07 -m conntrack --ctstate NEW -j ACCEPT
И в итоге получается:
iptables -I FORWARD 1 -i br2 -o br0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD 2 -i br0 -o br2 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD 3 -i br0 -o br2 -m conntrack --ctstate NEW -j ACCEPT
iptables -I FORWARD 4 -d 192.168.1.38/32 -i br2 -o br0 -p tcp -m tcp --dport 1883 -m conntrack --ctstate NEW -j ACCEPT
iptables -I FORWARD 5 -o br2 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD 6 -i br2 -m mac --mac-source 02:03:04:05:06:07 -m conntrack --ctstate NEW -j ACCEPT
iptables -I FORWARD 7 -i br2 -j DROP
Пятый является надмножеством второго только потому, что, вероятно, в правило должен быть добавлен интерфейс WAN, но я этого не знаю.