Linux-тағы Transmission: шығыс трафигін процестің иесі бойынша шектеу
Пир порты — бүкіл әңгіме емес. Firewall ережесін клиенттің тіркелгісіне байлаңыз, екі мекенжай отбасын да қамтыңыз және туннель өшкенде сынап көріңіз.
Transmission-ның кіріс портын блоктау — VPN саясаты емес. Торрент клиенті пирлерге және трекерлерге шығыс байланыстар ашады, атауларды шешеді және қашықтан басқару тыңдаушысын ұстай алады, және осы ағындардың әрқайсысы сіз жоспарламаған интерфейстен шығуы мүмкін. Бес тексеруді ретімен өтіп, шекара ретінде клиенттің параметрлерін емес, firewall ережесін алыңыз. Соңғы екі тексеру әдетте өткізіліп кетеді және туннель құлағанда кепілдіктің сақталатынын дәл солар шешеді.
Тасымалға ие процесті атаңыз
Жұмыс үстелі қолданбасы мен жүйелік демон әртүрлі тіркелгілерде жұмыс істейді, ал иесі бойынша ереже бағдарлама атауына емес, тіркелгіге жүреді. Ереже жазбас бұрын олардың қайсысы жұмыс істеп тұрғанын анықтаңыз. Жеке қызметтік тіркелгі саясатқа дәл субъект береді, ал жұмыс үстелі пайдаланушысы өз болмысын браузерлермен, редакторлармен және сессиядағы барлық нәрсемен бөліседі. UID-ді растаңыз, пакеттегі тіркелгі атауы қолданылатын атау деп болжамаңыз.
systemctl status transmission-daemon
ps -o user=,pid=,cmd= -C transmission-daemon
Тіркелгі әлі жоқ болса, оны осы мақсат үшін құрып, оған басқа ештеңе жүктемеңіз. Тіркелгі мен UID-ді ереженің түсіндірмесіне жазыңыз, өйткені субъектісіз ереже — ешкім қауіпсіз өңдей алмайтын ереже.
Тыңдау өрістерін маршруттан бөліңіз
Transmission 4.x пирлердің тыңдау мекенжайларын rpc-bind-address баптауынан бөлек құжаттайды, және бұл айырмашылық маңызды. RPC баптауы тек қашықтан басқару тыңдаушысын басқарады, сондықтан оны өзгерту пир трафигі үшін маршрут таңдамайды. Екі баптауды бір деп оқу — сырттай ұқыпты конфигурацияның әлі де ағуының ең жиі себебі. Сол құжаттама пирдің тыңдау мекенжайы жарамсыз болғандағы қосалқы жолды сипаттайды, яғни қолжетімсіз мекенжай — құжатталған қосалқы жағдай, кепілді бас тарту емес.
grep -E '"(peer-port|rpc-bind-address|bind-address-ipv4)"' /var/lib/transmission-daemon/.config/transmission-daemon/settings.json
Клиенттің басқару құралдарын өз мақсатында пайдаланыңыз, ал кепілдікті firewall-ға қойыңыз. Тыңдау баптауы әлі де пайдалы болуы мүмкін, бірақ ол трекерлермен байланыстың, жергілікті анықтаудың немесе өкілетті сұраудың барлығы туннельден шығатынын дәлелдемейді. Екеуі қайшы келсе, firewall шешеді.
Иесі бойынша сәйкестікті дұрыс тізбекке жазыңыз
Netfilter-дің иесі бойынша сәйкестік жөніндегі нұсқаулығы жергілікті жасалған пакеттердің сокет файлына ие пайдаланушыға немесе топқа қалай телінетінін түсіндіреді. Бұл теліну қайта бағытталған трафикке таралмайды, ал қосымша топтарды сәйкестендіру айқын опцияны талап етеді. Нақты қолданып жатқан кеңейтудің нұсқаулығын оқыңыз, тапқан бірінші мысалды емес.
iptables -A OUTPUT -m owner --uid-owner transmission -o tun0 -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner transmission -j REJECT
ip6tables -A OUTPUT -m owner --uid-owner transmission -o tun0 -j ACCEPT
ip6tables -A OUTPUT -m owner --uid-owner transmission -j REJECT
Рет сәйкестікке қарағанда кем емес маңызды. Тізбектің жоғары жағындағы кең рұқсат төмендегі дәл бас тартуды жояды, сондықтан ереже қосып үміттенудің орнына бүкіл тізбекті қарап шығыңыз. Хост IPv6 іске қосса, екі мекенжай отбасын да қосыңыз, өйткені тек v4 саясаты ешкім бақыламайтын жолды ашық қалдырады. Ережелерді клиент пен туннельдің қайта іске қосылуларында да орнатылған күйде ұстаңыз.
tun0 жоғалғанда не болатынын шешіңіз
Ақау саясаты — жаттығудың мәні. Туннель жоғалып, сол ілмек ережелерді алып тастаса, клиент оны басқа бір нәрсе тоқтатпайынша физикалық интерфейсті пайдалануға ерікті. Қауіпсіз дизайн ережелерді сақтап, олардың бас тартуына жол береді, шекараны туннельдің денсаулығынан тәуелсіз ететін де осы. Ережелерді де жоятын бөлшектеу ілмегі ақау саясатының тура қарама-қарсысы.
ip link show tun0
iptables -S OUTPUT
Оны әдейі сынаңыз: туннельді тоқтатыңыз, тастауға қауіпсіз тасымалды бастаңыз және бірдеңе шығып жатқанын бақылаңыз. Содан кейін туннельді қайтарып, болжалған жолдың қайта жұмыс істейтінін растаңыз.
Ереже көрмейтін жолдарды қамтыңыз
Атауларды шешуді жеке шешуші процесс атқаруы мүмкін, ал ат кеңістігі немесе арнайы шлюз, егер олардың бөлісу және жүктеу жолдары соған арналған болса, тағы бір шекара бере алады. DNS-ке қай компонент ие және ол сол шығыс ережесін ұстана ма, соны шешіңіз. Содан кейін RPC-ға қараңыз: егер rpc-whitelist қолданылса, мақұлданған басқару желісі шарттың бөлігі, ал кең RFC1918 ауқымы олай емес.
ss -tunp | grep -i transmission
Интерфейс есептегіштері бақылауды растай алады, бірақ байттарды қай процесс жасағанын дәлелдей алмайды. Тастауға рұқсат етілген тасымал жасаңыз: әуелі жұмыс істеп тұрған жолмен, содан кейін іске қосылуда туннельсіз, одан кейін үзіліс, қайта қосылу және жаңадан жасалған интерфейс арқылы. Жаңа әрекетті де, бұрыннан ашық байланысты да сынаңыз, өйткені ереже ескі сокетке қолданылмаған болуы мүмкін. Күнді, тіркелгіні және нәтижені сынақпен бірге жазып алыңыз.
Бүкіл тізбекті тазартатын мысалды қою бір тесікті бірнеше тесікке айырбастайды, сондықтан ережелерді жоюдың орнына қосыңыз. Бес тексерудің бәрі өткенде кепілдік айқын: клиент трафигі туннель арқылы шығады немесе мүлдем шықпайды, және оны міндеттейтін ереже туннельдің өз ақауын да бастан өткереді.