Tcpdump ejecutándose por:
/usr/sbin/tcpdump -U -n -i eth0 icmp or tcp dst port 22 or tcp dst port
Cuando reviso los datos capturados, muestra:
132.132.211.221.40372 > 89.31.125.17.ssh: Flags [S], cksum 0xde63 (correct), seq 524121044, win 29200, length 0
146.136.44.207.4855 > 45.66.134.253.ssh: Flags [S], cksum 0x86a2 (correct), seq 1106964113, win 29200, length 0
46.228.217.79.64595 > 81.90.190.31.ssh: Flags [S], cksum 0xdf11 (correct), seq 4132328538, win 29200, length 0
109.89.72.226.19846 > 89.31.126.248.ssh: Flags [S], cksum 0xf42c (correct), seq 2627129631, win 29200, length 0
186.102.253.234.58270 > 45.146.123.96.ssh: Flags [S], cksum 0xc8a3 (correct), seq 3373229862, win 29200, length 0
139.204.89.135.64050 > 81.90.190.31.ssh: Flags [S], cksum 0x9afe (correct), seq 3997943153, win 29200, length 0
146.17.189.108.mbl-battd > 45.66.134.42.ssh: Flags [S], cksum 0xbf0e (correct), seq 1369840100, win 29200, length 0
Entonces, lo extraño es que todas estas direcciones, ¡ni SCR ni DST son mi dirección IP! ¿Significa que alguien está usando mi host como "relé" para atacar el SSH de otros?
Permítanme publicar la regla de iptables e iniciar sesión aquí como referencia:
-P FORWARD DROP
-A FORWARD -p tcp -m tcp --dport 22 -j LOG --log-prefix "[forward_ssh] "
-A OUTPUT -p tcp -m tcp --dport 22 -m state --state NEW -j LOG --log-uid --log-prefix "[out_ssh_new] "
-A OUTPUT -p tcp -m tcp --dport 22 -m state --state ESTABLISHED -j LOG --log-uid --log-prefix "[out_ssh_est] "
-A OUTPUT -p tcp -m tcp --dport 22 -j DROP
El registro se muestra a continuación, parece que mi IP (194.156.xxx.xxx) está atacando a otros...
Mar 15 08:56:35 oneserver kernel: [out_ssh_est] IN= OUT=eth0 SRC=194.156.xxx.xxx DST=2.59.135.116 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=443 DPT=22 WINDOW=64240 RES=0x00 ACK SYN URGP=0
Mar 15 09:21:02 oneserver kernel: [out_ssh_est] IN= OUT=eth0 SRC=194.156.xxx.xxx DST=162.248.88.193 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=443 DPT=22 WINDOW=64240 RES=0x00 ACK SYN URGP=0
Mar 15 10:52:45 oneserver kernel: [out_ssh_est] IN= OUT=eth0 SRC=194.156.xxx.xxx DST=172.106.16.136 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=443 DPT=22 WINDOW=64240 RES=0x00 ACK SYN URGP=0
Respuesta1
Tcpdump escuchará todos los paquetes que pasen por su interfaz de red. Un conmutador ethernet serviráes lo mejorpara pasar solo paquetes dirigidos a su MAC. Un concentrador sin conmutación, ni siquiera lo intentará, le mostrará todo.
Por lo tanto recibirás todos los paquetes en tu LAN. Normalmente no esperaríamos paquetes de un conjunto tan diverso de direcciones IP. Sin embargo, al buscar su dirección IP, descubrimos que se encuentra en un centro de datos que pertenece a Petersburg Internet Network ltd. ¿Enrutan el tráfico de Internet? ¿Podría este tráfico pasar por su máquina?
Encuentre un lugar más seguro para realizar su entrenamiento.
Respuesta2
Tcpdump pone su interfaz de red en modo "promiscuo". Si tiene un concentrador en la red, envía todos los paquetes a todas las interfaces. Luego, una interfaz verifica el número MAC y ve si el paquete es para esa interfaz. Si es así, lo reenvía al software receptor. Si no, descarta el paquete.
Sin embargo, en modo promiscuo, la interfaz puede recibir todos los paquetes. Por ejemplo, para mostrarlo con tcpdump.
Si tiene un conmutador en lugar de un concentrador, el conmutador debe filtrar los paquetes y enviarle sólo los que realmente son para usted. Para el tráfico multicast el escenario es más complicado y no lo explicaré aquí.
Los equipos de red no enrutan el tráfico según números IP sino según números MAC.
Echa un vistazo aquí para más información.
- https://en.wikipedia.org/wiki/Address_Resolution_Protocol
- https://www.informit.com/articles/article.aspx?p=130895&seqNum=5
- Cómo capturar todos los paquetes entrantes a la NIC, incluso aquellos paquetes que no me pertenecen
Después de su comentario aquí hay información adicional:
Te preguntas qué son los registros que produce iptables. Una cosa es que solo muestres los registros de una conexión establecida. Cuando se estableció la conexión, también debería haber registros al respecto. Eso significa que estas conexiones ya están establecidas y funcionando. Intente averiguar qué procesos utilizan estas conexiones con lsof
la utilidad. Cuando tenga el nombre del proceso, debería poder identificar si la conexión es legal o no.
Si sospecha que su computadora podría estar comprometida, le sugeriría algunas comprobaciones. Comprueba si tienes algo instalado que no reconoces. Para RedHat/CentOS/Fedora/Oracle Linux, que usan paquetes RPM/YUM, puede verificarlo fácilmente con algunos comandos:
rpm -qa
enumerará todos los paquetes instalados. A ver si hay algún sospechoso.rpm -Va
mostrará todos los archivos que han cambiado después de que se instalaron los paquetes. Vea qué archivos han cambiado.- También puedes comprobar el origen del paquete, aunque la información puede ser falsa.https://serverfault.com/questions/62026/how-to-know-from-what-yum-repository-a-package-ha-been-installed
Para otras distribuciones, descubra usted mismo cómo comprobar la integridad de la instalación.