Eh bien, si vous voulez utiliser le protocole SNMP pour voir exactement ce que les ports sont à l'écoute, vous devriez être en mesure d'utiliser les OID suivants et marcher la table
"1.3.6.1.2.1.6.13.1.1" tcpConnState
"1.3.6.1.2.1.7.5.1.1" udpLocalAddress
marche UDP vous donnerait quelque chose comme ceci:
snmpwalk -cpublic 192.168.1.13 1.3.6.1.2.1.7.5.1.1
UDP-MIB::udpLocalAddress.0.0.0.0.68 = IpAddress: 0.0.0.0
UDP-MIB::udpLocalAddress.0.0.0.0.161 = IpAddress: 0.0.0.0
UDP-MIB::udpLocalAddress.0.0.0.0.32908 = IpAddress: 0.0.0.0
UDP-MIB::udpLocalAddress.0.0.0.0.33281 = IpAddress: 0.0.0.0
UDP-MIB::udpLocalAddress.0.0.0.0.33795 = IpAddress: 0.0.0.0
UDP-MIB::udpLocalAddress.0.0.0.0.34822 = IpAddress: 0.0.0.0
UDP-MIB::udpLocalAddress.0.0.0.0.44782 = IpAddress: 0.0.0.0
UDP-MIB::udpLocalAddress.192.168.1.13.9950 = IpAddress: 192.168.1.13
et TCP aime:
snmpwalk -cpublic 192.168.1.13 1.3.6.1.2.1.6.13.1.1
TCP-MIB::tcpConnState.0.0.0.0.21.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.0.0.0.0.23.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.0.0.0.0.80.0.0.0.0.0 = INTEGER: listen(2)
Marcher dans les tableaux vous montrent quels ports sont li stening, et pourrait vous fournir des informations. Maintenant, si vous voulez juste vérifier si des ports spécifiques que vous avez listés dans votre question écoutent, vous pouvez utiliser les OIDS suivants pour vérifier. Les OIDS ci-dessus supposent que le serveur est lié à l'adresse par défaut (0.0.0.0). Mais ils peuvent être liés uniquement à l'adresse IP du serveur (dépend de config). Dans ce cas, en supposant que votre adresse IP du serveur est 192.168.10.1 vous obtiendrez
1.3.6.1.2.1.7.5.1.1.192.168.10.1.53 for bind
si tout cela étant dit, je pense que si vous vouliez dire si http écoutait sur l'adresse par défaut sur l'hôte 192.168.10.1, en utilisant le python liaisons snmp net vous auriez quelque chose comme ça.
import netsnmp
oid = netsmp.Varbind('1.3.6.1.2.1.6.13.1.1.0.0.0.0.80.0.0.0.0.0')
result = netsnmp.snmp(oid,
Version = 2,
DestHost="192.168.10.1",
Community="public")
Je ne suis pas sûr à 100% si le varbind est nécessaire que je ne fais pas des trucs snmp en python, et quelques exemples que j'ai trouvé eu, et d'autres pas. Mais essayez de toute façon. dans la requête ci-dessus, si le serveur n'écoute pas, il renverra un tel OID, s'il est ouvert et le résultat de l'écoute devrait être Integer (2).
qu'est-ce que vous voulez exactement surveiller? Quels ports écoutent, qu'ils acceptent une connexion? – Doon
Je veux vérifier les ports standard, comme FTP, SSH, HTTP (S), BIND, MySQL – abiko
Vous pouvez essayer cette question sur serverfault - il pourrait y avoir des solutions en conserve qui répondraient mieux à vos besoins. – bstpierre