¿Cómo puedo en mi servidor ubuntu, en Iptables solo permitir una dirección IP en un puerto específico?
Gracias
Un trazador de líneas:
iptables -I INPUT \! --src 1.2.3.4 -m tcp -p tcp --dport 777 -j DROP # if it's not 1.2.3.4, drop it
Una solución más elegante:
iptables -N xxx # create a new chain
iptables -A xxx --src 1.2.3.4 -j ACCEPT # allow 1.2.3.4
iptables -A xxx --src 1.2.3.5 -j ACCEPT # allow 1.2.3.5
iptables -A xxx --src 1.2.3.6 -j ACCEPT # allow 1.2.3.6
iptables -A xxx -j DROP # drop everyone else
iptables -I INPUT -m tcp -p tcp --dport 777 -j xxx # use chain xxx for packets coming to TCP port 777
INPUT
conOUTPUT
bloqueará algunos paquetes enviados usando algunas direcciones del servidor (y no enrutado / reenviado). Dudo que esto tenga sentido, a menos que tal vez desee bloquear programas que se unen a algunas interfaces específicas.--src 1.2.3.4/30
iptables -I xxx --src 7.8.9.10 -j ACCEPT
Aquí hay un ejemplo de uno de mis sistemas CentOS (las direcciones se han ofuscado):
fuente
service iptables save
.Yo uso shorewall para configurar la tabla IP. Use una regla como aceptar desde un host al puerto 123.
ACEPTAR neto: 192.0.2.1 $ FW tcp 1234
fuente