¿Cómo descargo los paquetes salientes a un host / puerto específico?

6

Quiero probar algo localmente. Para eso, me gustaría poder eliminar los paquetes salientes enviados a un host / puerto específico. Intenté jugar con las reglas pf utilizando Murus (la versión no gratuita), pero no he tenido éxito.

Me siento cómodo en la terminal, pero no estoy seguro de dónde hacer cambios y cómo aplicarlos. Estoy familiarizado con iptables en linux.

¿Puedo obtener alguna orientación sobre cómo lograr esto?

    
pregunta Ovesh 08.03.2016 - 09:42

2 respuestas

8

Para bloquear permanentemente el tráfico saliente a dominios y / o puertos específicos, debe crear un nuevo archivo de anclaje y agregarlo a pf.conf.

  1. Cree un archivo de anclaje org.user.block.out en /private/etc/pf.anchors

    sudo touch /private/etc/pf.anchors/org.user.block.out
    

    con el siguiente contenido y una línea vacía al final

    mybadtcphosts = "{ www.domain.com, domain.com, 135.0.9.17, 10.0.0.17 }"
    mybadtcpports = "{ 443, 80 }"
    mybadudphosts = "{ www.domain3.com, domain3.com, 27.134.89.124, 192.168.5.37 }"
    mybadudpports = "{ 53, 5353 }"
    
    block drop out proto tcp from any to $mybadtcphosts port $mybadtcpports
    block drop out proto udp from any to $mybadudphosts port $mybadudpports
    

    Los nombres de dominio / direcciones IP adicionales en los hosts de mybad * son solo un ejemplo de cómo agregar dominios adicionales. Lo mismo ocurre con los puertos 80/5353 en puertos mybad *.

    Una solución simple pero menos flexible es:

    block drop out proto tcp from any to domain.com port 80
    
  2. Modifique el archivo /private/etc/pf.conf pero mantenga una línea vacía al final

    archivo original:

    scrub-anchor "com.apple/*"
    nat-anchor "com.apple/*"
    rdr-anchor "com.apple/*"
    dummynet-anchor "com.apple/*"
    anchor "com.apple/*"
    load anchor "com.apple" from "/etc/pf.anchors/com.apple"
    

    a

    scrub-anchor "com.apple/*"
    nat-anchor "com.apple/*"
    rdr-anchor "com.apple/*"
    dummynet-anchor "com.apple/*"
    anchor "com.apple/*"
    anchor "org.user.block.out"
    load anchor "com.apple" from "/etc/pf.anchors/com.apple"
    load anchor "org.user.block.out" from "/etc/pf.anchors/org.user.block.out"
    
  3. Analice y pruebe su archivo de anclaje para asegurarse de que no haya errores:

    sudo pfctl -vnf /etc/pf.anchors/org.user.block.out
    
  4. Ahora modifique /System/Library/LaunchDaemons/com.apple.pfctl.plist desde

    <array>
        <string>pfctl</string>
        <string>-f</string>
        <string>/etc/pf.conf</string>
    </array>
    

    a

    <array>
        <string>pfctl</string>
        <string>-e</string>
        <string>-f</string>
        <string>/etc/pf.conf</string>
    </array>
    

    Tienes que deshabilitar la protección de integridad del sistema si se instala El Capitán para lograr esto. Después de editar el archivo, vuelva a habilitar SIP. Después de reiniciar, su pf Mac estará habilitado (esa es la opción -e).

    Alternativamente, puede crear su propio demonio de lanzamiento similar a la respuesta aquí: Uso del Servidor 5.0.15 para compartir Internet SIN compartir Internet .

Después de una actualización o actualización del sistema, algunos de los archivos originales anteriores pueden haber sido reemplazados y usted debe volver a aplicar todos los cambios.

Murus:

Abre Murus. Haga clic en el engranaje en el panel de configuración para crear una regla personalizada:

Ingresetodoslosdetallesnecesarios:

PresioneelbotónazulAgregarregladePFpersonalizadaeiniciePFenlaesquinasuperiorderechaconlaflechahacialaderecha(oelbotón"jugar").

    
respondido por el klanomath 10.03.2016 - 22:51
9

Podrías usar el firewall PF:

Agregue esta línea a /etc/pf.conf para colocar todos los paquetes en el ip: puerto

block drop out quick proto tcp  to 192.168.1.103 port 80

Después de cambiar pf.conf, debes volver a cargarlo con

sudo pfctl -f /etc/pf.conf

Eventualmente tendrás que habilitarlo con

sudo pfctl -e
    
respondido por el hetOrakel 10.03.2016 - 22:27

Lea otras preguntas en las etiquetas