Network scan tool.

2016-06-07 Thread Luis Zárate
Hi,

With your deadline is too difficult (impossible), but if you are a crack in
django and celery and nmap this tool could be useful
https://pypi.python.org/pypi/python-nmap


El martes, 7 de junio de 2016, James Schneider 
escribió:
>
>
> On Tue, Jun 7, 2016 at 6:01 AM, Mahesh Kss  wrote:
>>
>> Hi all,
>>
>>
>> Need some of your thoughts for the below mentioned exercise. I am
planning to do it using Django. But I am not sure where i can place the
python script which monitors the network for connected hosts.
>>
>> Kindly share your thoughts and questions. I need to complete this as
soon as possible(max 2weeks from now).
>>
>>
>> Scanning tool:
>> > Create a python script to extract and maintain list of all host names
connected to a network. There should be a mechanism to determine newly
added host in network (by maintaining new and old host list).
>> (You may use virtual machines as client systems preferably Linux
systems).
>> > This list of hosts should be moved to database.
>> > There should be an admin user across the network to access systems
remotely.
>> > There should be a provision in python script to reset password for
newly added hosts.
>> > The python script should then scan all the discovered systems in
network for the following information:
>> system name, operating system details, CPU details, RAM details, hard
disk details.
>> On each system, list of all major softwares found along with
installation directory, version, license expiry date, etc.
>> > All the extracted information should be stored in database.
>> > There should be a mechanism to delete unreachable host names from host
list and database.
>> > Create a python web interface to display this information from DB
nicely using graphs, charts, etc.
>>
>
> Not to disillusion you, but IMHO writing such an application within two
weeks is highly, highly improbable. Since you have a tight deadline, I'm
assuming this is either for a customer, or for a class assignment. Either
way, the timeline is too aggressive to be feasible for a production-ready
application (or really even a working alpha application).
> You might want to consider integrating with an existing monitoring system
(such as Nagios, monit, etc.) or perhaps a configuration management system
such as Ansible, SaltStack, Puppet, or Chef for communicating with the
hosts and handling discovery. It's unlikely that you'll reinvent the wheel
and come up with something better than any of those purpose-built packages
that have been in development for years. Unless of course you are doing
this for your own learning purposes (but I think not given the timeline).
> Django actually has a very small part to play in this entire application.
You'll probably need Celery to process the commands for adding/removing
hosts from the backend and other management tasks.
> If it were me, and since you have all Linux hosts, I would start with
Ansible (and Cobbler for the DB integration). I have limited experience
with it (I'm still researching it for my own purposes), but it should be
able to handle all of the requirements except for the last couple, which
Django should be able to handle (probably in combination with Celery).
> http://docs.ansible.com/ansible/developing_api.html
> http://docs.ansible.com/ansible/intro_dynamic_inventory.html
>
http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html
>
> -James
>
> --
> You received this message because you are subscribed to the Google Groups
"Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
email to django-users+unsubscr...@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/CA%2Be%2BciU6KDfXSkYX99ATFDDm%3DWf%2BPifnH-3vSgkw7fBoQd7SgQ%40mail.gmail.com
.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
"La utopía sirve para caminar" Fernando Birri

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAG%2B5VyOjvDV2rsCcMQKv0jsG9qe58ovFDriTAPxx71Z08zGmWg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: Network scan tool.

2016-06-07 Thread James Schneider
On Tue, Jun 7, 2016 at 6:01 AM, Mahesh Kss  wrote:

>
> Hi all,
>
>
> Need some of your thoughts for the below mentioned exercise. I am planning
> to do it using Django. But I am not sure where i can place the python
> script which monitors the network for connected hosts.
>
> Kindly share your thoughts and questions. I need to complete this as soon
> as possible(max 2weeks from now).
>
>
> Scanning tool:
> > Create a python script to extract and maintain list of all host names
> connected to a network. There should be a mechanism to determine newly
> added host in network (by maintaining new and old host list).
> (You may use virtual machines as client systems preferably Linux systems).
> > This list of hosts should be moved to database.
> > There should be an admin user across the network to access systems
> remotely.
> > There should be a provision in python script to reset password for newly
> added hosts.
> > The python script should then scan all the discovered systems in network
> for the following information:
> system name, operating system details, CPU details, RAM details, hard disk
> details.
> On each system, list of all major softwares found along with installation
> directory, version, license expiry date, etc.
> > All the extracted information should be stored in database.
> > There should be a mechanism to delete unreachable host names from host
> list and database.
> > Create a python web interface to display this information from DB nicely
> using graphs, charts, etc.
>
>
Not to disillusion you, but IMHO writing such an application within two
weeks is highly, highly improbable. Since you have a tight deadline, I'm
assuming this is either for a customer, or for a class assignment. Either
way, the timeline is too aggressive to be feasible for a production-ready
application (or really even a working alpha application).

You might want to consider integrating with an existing monitoring system
(such as Nagios, monit, etc.) or perhaps a configuration management system
such as Ansible, SaltStack, Puppet, or Chef for communicating with the
hosts and handling discovery. It's unlikely that you'll reinvent the wheel
and come up with something better than any of those purpose-built packages
that have been in development for years. Unless of course you are doing
this for your own learning purposes (but I think not given the timeline).

Django actually has a very small part to play in this entire application.
You'll probably need Celery to process the commands for adding/removing
hosts from the backend and other management tasks.

If it were me, and since you have all Linux hosts, I would start with
Ansible (and Cobbler for the DB integration). I have limited experience
with it (I'm still researching it for my own purposes), but it should be
able to handle all of the requirements except for the last couple, which
Django should be able to handle (probably in combination with Celery).

http://docs.ansible.com/ansible/developing_api.html
http://docs.ansible.com/ansible/intro_dynamic_inventory.html
http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html

-James

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CA%2Be%2BciU6KDfXSkYX99ATFDDm%3DWf%2BPifnH-3vSgkw7fBoQd7SgQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: Network scan tool.

2016-06-07 Thread ludovic coues
There is two way to monitor the data.
Either passively, listening for each host saying hello on the network
or actively, probing for host at regular interval [1].

First way look like difficult as in requiring cooperation from diverse
host and relying on protocol like SNMP. Or you could listen for DHCP
message on the network.

The other way require to run a script at regular interval. For that
job, I would suggest Celery. Cron is the unix job for that tool but
celery is a python solution and integrate nicely with django.

Your project have quite an overlap with nagios. Especially for point
3, if you can interface with tools made to talk to nagios from client,
it will save you lot of trouble.

[1] If you want real time, there is an anecdote about diablo. The game
was turn-per-turn but the publisher wanted real time. Dev got twice
the money to turn it into real time. Dev simply reduced turn to 200ms.
Job done.

2016-06-07 15:01 GMT+02:00 Mahesh Kss :
>
> Hi all,
>
>
> Need some of your thoughts for the below mentioned exercise. I am planning
> to do it using Django. But I am not sure where i can place the python script
> which monitors the network for connected hosts.
>
> Kindly share your thoughts and questions. I need to complete this as soon as
> possible(max 2weeks from now).
>
>
> Scanning tool:
>> Create a python script to extract and maintain list of all host names
>> connected to a network. There should be a mechanism to determine newly added
>> host in network (by maintaining new and old host list).
> (You may use virtual machines as client systems preferably Linux systems).
>> This list of hosts should be moved to database.
>> There should be an admin user across the network to access systems
>> remotely.
>> There should be a provision in python script to reset password for newly
>> added hosts.
>> The python script should then scan all the discovered systems in network
>> for the following information:
> system name, operating system details, CPU details, RAM details, hard disk
> details.
> On each system, list of all major softwares found along with installation
> directory, version, license expiry date, etc.
>> All the extracted information should be stored in database.
>> There should be a mechanism to delete unreachable host names from host
>> list and database.
>> Create a python web interface to display this information from DB nicely
>> using graphs, charts, etc.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to django-users+unsubscr...@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/d9e679ed-47be-40c3-9bfc-e065206e0d95%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.



-- 

Cordialement, Coues Ludovic
+336 148 743 42

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAEuG%2BTYCixPVjkbiWSMR9b3ZxH-dR9Q-uV6Zs57RLU%3DHv8cJ-w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Network scan tool.

2016-06-07 Thread Mahesh Kss

Hi all,


Need some of your thoughts for the below mentioned exercise. I am planning 
to do it using Django. But I am not sure where i can place the python 
script which monitors the network for connected hosts.

Kindly share your thoughts and questions. I need to complete this as soon 
as possible(max 2weeks from now).


Scanning tool:
> Create a python script to extract and maintain list of all host names 
connected to a network. There should be a mechanism to determine newly 
added host in network (by maintaining new and old host list).
(You may use virtual machines as client systems preferably Linux systems).
> This list of hosts should be moved to database.
> There should be an admin user across the network to access systems 
remotely.
> There should be a provision in python script to reset password for newly 
added hosts.
> The python script should then scan all the discovered systems in network 
for the following information:
system name, operating system details, CPU details, RAM details, hard disk 
details.
On each system, list of all major softwares found along with installation 
directory, version, license expiry date, etc.
> All the extracted information should be stored in database.
> There should be a mechanism to delete unreachable host names from host 
list and database.
> Create a python web interface to display this information from DB nicely 
using graphs, charts, etc.

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/d9e679ed-47be-40c3-9bfc-e065206e0d95%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.