Intereting Posts
Как подключиться к удалённым хостам и запустить команды? Два контейнера LXC с использованием двух разных физических сетевых интерфейсов root не может подключиться к symlinked socket другого пользователя Bash – Если путаница синтаксиса Какие платформы часто используют Linux, помимо x86? Почему я не могу создать файл в каталоге, где у меня есть доступ к записи в группе? Системное время ожидания> Время работы системы? Не удалось открыть файл конфигурации '/ dev / fd / 63', ошибка: нет такого файла или каталога для wpa_supplicant Как увидеть файлы монтирования в цель для iscsi? Почему оператор if if интерпретирует логическое обратное Как я должен обрабатывать shebang при написании моей собственной оболочки? Arch Linux makepkg не удалось сжать пакет Могу ли я изменить uuid для сетевого интерфейса в ifcfg-eth *, используя uuidgen? Экран: «Невозможно выполнить exec / my / path / to / zsh» с локальной оболочкой Считайте уникальные связанные значения в awk (или perl)

IP-таблицы для домашнего использования

Я пытался настроить правила для рабочего стола, который у меня есть в моей домашней сети, и хотя сначала эта конфигурация работала, я что-то изменил где-то, и теперь он не будет передавать какое-либо соединение. Этот скрипт запускается с запуском системы.

#!/bin/bash ### Variables ### LAN="eth0" WLAN="wlan0" iptables="/sbin/iptables" ip6tables="/sbin/ip6tables" ssh_port=50000 ### Initial set up ### clear # echo -e "\n" ### Flush ### $iptables -F $iptables -X $iptables -Z echo "Rules flushed; tables are empty now" && echo "" ### Basic rules ### $iptables -A INPUT -s 127.0.0.1 -j ACCEPT $iptables -A OUTPUT -s 127.0.0.1 -j ACCEPT $iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT echo "Basic rules written"&&echo"" ### Special rules ### # slsk $iptables -A INPUT -p tcp --dport 63922 -j ACCEPT $iptables -A INPUT -p tcp --dport 63923 -j ACCEPT $iptables -A INPUT -p tcp --dport 2416 -j ACCEPT # mpd $iptables -A INPUT -p tcp --dport 8800 -j ACCEPT $iptables -A INPUT -p udp --dport 8800 -j ACCEPT # allow pings $iptables -A INPUT -p icmp -m state --state NEW -j ACCEPT # ssh server $iptables -A INPUT -p tcp --dport $ssh_port -j LOG $iptables -A INPUT -p tcp --dport $ssh_port -j ACCEPT #$ip6tables -A INPUT -p tcp --dport $ssh_port -j LOG #$ip6tables -A INPUT -p tcp --dport $ssh_port -j ACCEPT echo "Special rules set" && echo "" #### Default policies ### $iptables -A INPUT -j DROP $iptables -A OUTPUT -j ACCEPT $iptables -A FORWARD -j DROP echo "Default policies set" && echo "" echo "Firewall set up finished" && echo "" 

Что-то не так? Как я могу их устранить?

— edit — В ответ на Александр Чен

Это выдержка из журнала после добавления правила журнала (ub – это имя моего компьютера):

12 мая 18:37:19 ub kernel: [30205.793422] iptables denied: IN = wlan0 OUT = MAC = e8: de: 27: 07: 1f: d6: 64: d9: 54: c2: d0: ec: 08: 00 SRC = 212.89.0.77 DST = 192.168.1.3 LEN = 175 TOS = 0x00 PREC = 0x00 TTL = 250 ID = 43075 DF PROTO = UDP SPT = 53 DPT = 27334 LEN = 155

 ### Basic rules ### [...] #### Default policies ### $iptables -A INPUT -j LOG --log-prefix "iptables denied: " --log-level 7 $iptables -A INPUT -j DROP $iptables -A OUTPUT -j ACCEPT $iptables -A FORWARD -j DROP echo "Default policies set" && echo "" 

Вот как у меня есть файл конфигурации прямо сейчас после повторной попытки с небольшим исправлением UDP. Прежде чем использовать правило журнала, оно все равно не позволит трафик, но после добавления его до того, как правило сбрасывается, похоже, работает нормально, хотя я не могу ничего пинговать из командной строки (и поэтому я думаю, что много чего собирается дать у меня несколько головных болей). Я собираюсь продолжить тестирование. Редактировать * Да, это не работает; сначала это, кажется, не работает, тогда это происходит, и, наконец, он снова уходит. Должен ли я публиковать весь журнал?

Сообщение об ошибке в ведении журнала ядра сообщает вам, что входящий пакет UDP на ваш порт 53 был удален.

Глядя на вашу конфигурацию, ничего не говорится о том, что брандмауэр принимает UDP. (У вас есть правило для приема установленных и связанных пакетов TCP-соединений, но ничего для UDP.)

Решение состоит в том, чтобы удалить ограничение на установленные и связанные пакеты для TCP, чтобы оно также применимо к UDP:

 $iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 

Похоже, что вы не разрешили соединения UDP, тем самым блокируя DNS на UDP-порту 53.

Если вы используете DHCP, вам также нужно будет разрешить DHCP на портах UDP 67-68.

Добавьте следующие две строки и подключите:

 $iptables -A INPUT -p udp --dport 67:68 -j ACCEPT $iptables -A INPUT -p udp --dport 53 -j ACCEPT 

На udp могут быть другие порты, которые вам нужно открыть, в зависимости от того, что еще работает.