Skip to content
Irrigation

Cybersecurity Protocols for IoT Agricultural Networks: When Hackers Tried to Flood Anna’s Farm

22 min read January 26, 2026 Water & Irrigation
High-quality visualization of cybersecurity protocols for iot agricultural networks: when hackers tried to flood anna's farm featuring advanced farming techniques, hydroponics, and sustainable agriculture.

Meta Description: Master cybersecurity for agricultural IoT networks. Learn encryption, authentication, network segmentation, and threat detection protocols to protect your smart farm from cyber attacks.

Table of Contents-

High-quality visualization of cybersecurity protocols for iot agricultural networks: when hackers tried to flood anna's farm featuring advanced farming techniques, hydroponics, and sustainable agriculture.

Introduction: The 3:47 AM Attack That Failed

The alert arrived at 3:47 AM: Anna Petrov’s CyberGuard AgriDefense system had detected and blocked 2,847 unauthorized connection attempts in the past 14 minutes—a coordinated distributed denial-of-service (DDoS) attack attempting to overwhelm her irrigation control network, disable her sensor communications, and potentially manipulate valve controls to flood 520 acres of premium organic crops worth ₹4.2 crore.

Traditional farm IoT systems would have crashed within seconds, leaving irrigation systems frozen, sensors offline, and zero visibility into farm operations. Instead, Anna’s सुरक्षित कृषि नेटवर्क (secure agricultural network) automatically isolated the attack traffic, maintained all critical operations, logged every malicious attempt for forensic analysis, and notified her security team—all while 2,847 sensors, 127 controllers, and 34 automated systems continued normal operations without interruption.

“This is the FarmShield Security Architecture in action,” Anna explained to visiting agricultural technology directors the next morning, displaying real-time attack visualizations on her security dashboard. Her farm operated on a military-grade, defense-in-depth cybersecurity framework with seven independent security layers—each designed assuming the others might fail—creating an IoT network that remained operational even under sustained cyber attack.

In the 14 months since implementing comprehensive cybersecurity protocols, Anna had transformed agriculture’s most dangerous vulnerability: unprotected IoT networks becoming entry points for devastating attacks. Her security system had blocked 47,284 intrusion attempts, prevented 3 sophisticated attacks that could have destroyed entire harvests, maintained 99.97% operational availability, and most remarkably—demonstrated that agricultural IoT networks could achieve bank-level security without sacrificing usability or affordability.


The Agricultural IoT Threat Landscape

Why Farms Are Prime Cyber Attack Targets

The Dangerous Reality:

Modern farms are no longer isolated operations—they’re highly connected digital infrastructure controlling millions of dollars in assets through thousands of networked devices. This makes them attractive targets for:

1. Ransomware Attacks

  • Encrypt farm control systems mid-harvest
  • Demand payment to restore operations
  • Target: Critical timing (harvest season = maximum pressure)

2. Infrastructure Sabotage

  • Manipulate irrigation to destroy crops
  • Override climate controls to kill livestock
  • Disable food safety systems
  • Goal: Economic damage, competitive advantage, terrorism

3. Data Theft

  • Steal proprietary growing techniques
  • Copy crop genetics information
  • Access financial records
  • Competitive intelligence theft

4. Supply Chain Attacks

  • Compromise farm systems to attack downstream food processors
  • Use farms as entry point to larger agricultural networks
  • Leverage trust relationships between farmers and buyers

5. Botnet Recruitment

  • Hijack thousands of farm IoT devices
  • Use for DDoS attacks against other targets
  • Farm systems become unwitting attack platforms

Anna’s Pre-Security Vulnerability Assessment

Before implementing cybersecurity protocols:

Critical Vulnerabilities Identified:

1. No Authentication (74 devices)

  • Default passwords on 52 sensors
  • No password on 18 controllers
  • 4 systems with “admin/admin” credentials
  • Risk: Anyone could connect and control

2. Unencrypted Communications (100% of traffic)

  • All sensor data transmitted in plaintext
  • Control commands visible on network
  • WiFi network: WPA2 with weak password “harvest2024”
  • Risk: Easy interception and manipulation

3. No Network Segmentation

  • All devices on single flat network
  • Compromised sensor = full network access
  • Guest WiFi shared with farm operations
  • Risk: Single breach compromises everything

4. Outdated Firmware (89% of devices)

  • ESP32 boards running firmware from 2021
  • Known vulnerabilities publicly documented
  • No update mechanism in place
  • Risk: Exploitable security holes

5. No Intrusion Detection

  • No logging of access attempts
  • No anomaly detection
  • No alerting system
  • Risk: Attacks go unnoticed for days/weeks

6. Physical Device Insecurity

  • Field sensors accessible to anyone
  • No tamper detection
  • USB ports exposed on controllers
  • Risk: Physical access = total compromise

The Disaster Scenario:

Security consultants demonstrated how easily they could:

  • Connect to unsecured MQTT broker (no password)
  • Subscribe to all sensor topics (see entire farm)
  • Publish fake sensor data (trigger incorrect irrigation)
  • Override irrigation controls (flood or drought crops)
  • Disable safety systems (temperature alarms)
  • Time required: 18 minutes from parking lot to full control

Estimated Damage from Successful Attack:

  • Crop destruction: ₹4.2 crore
  • Data theft value: ₹80 lakh
  • Recovery costs: ₹45 lakh
  • Reputation damage: Immeasurable
  • Total Risk: ₹5.45+ crore

This vulnerability assessment changed everything.


Understanding Agricultural IoT Security Fundamentals

The CIA Triad for Farm Networks

Confidentiality: Data visible only to authorized parties

  • Sensor readings (competitive intelligence)
  • Crop yields (business secrets)
  • Financial data (privacy)
  • Growing techniques (intellectual property)

Integrity: Data cannot be altered without detection

  • Sensor readings must be authentic
  • Control commands must be verified
  • Historical records must be tamper-proof
  • System configurations must be protected

Availability: Systems must remain operational

  • Irrigation during critical periods
  • Climate control for livestock
  • Harvest equipment during season
  • Food safety monitoring

Agricultural Translation:

Confidentiality Failure: Competitor steals your proprietary growing data Integrity Failure: Hacker manipulates moisture sensors, causing over-watering Availability Failure: Ransomware locks irrigation system during drought


Anna’s Seven-Layer Security Architecture

Layer 1: Device Authentication (Identity Verification)

Problem: Prevent unauthorized devices from joining network

Solution: Multi-Factor Device Authentication

Implementation:

1. Certificate-Based Authentication (PKI)

Every device gets unique digital certificate:

# Generate device certificate
openssl genrsa -out device-001.key 2048
openssl req -new -key device-001.key -out device-001.csr
openssl x509 -req -in device-001.csr -CA ca.crt -CAkey ca.key -out device-001.crt

# Device authenticates using certificate
# Server verifies certificate signed by trusted CA

Benefits:

  • Impossible to fake (cryptographic proof)
  • Unique per device (revocable if compromised)
  • No passwords to steal

2. Hardware Security Modules (HSM)

Private keys stored in secure chip:

  • Cannot be extracted even with physical access
  • Cryptographic operations performed in hardware
  • ATECC608A chip on ESP32 sensors (₹180 additional cost)

3. MAC Address Whitelisting

# Allow only registered devices
ALLOWED_DEVICES = {
    'AA:BB:CC:DD:EE:01': 'soil-sensor-field-1',
    'AA:BB:CC:DD:EE:02': 'irrigation-controller-zone-a',
    # ... 2,847 authorized devices
}

def authenticate_device(mac_address):
    if mac_address not in ALLOWED_DEVICES:
        log_intrusion_attempt(mac_address)
        block_device(mac_address)
        alert_security_team()
        return False
    return True

4. Time-Based One-Time Passwords (TOTP)

Devices generate rotating passwords:

  • New password every 30 seconds
  • Synchronized with server
  • Stolen password useless after 30 seconds

Anna’s Authentication Results:

  • Unauthorized device connections: 4,284 attempts blocked
  • Successful breaches: 0
  • False positives: 3 (resolved in 4 minutes)
  • Authentication overhead: 47ms average per connection

Layer 2: Encryption (Data Protection)

Problem: Prevent data interception and manipulation

Solution: End-to-End Encryption

Implementation:

1. Transport Layer Security (TLS 1.3)

All network communications encrypted:

// ESP32 sensor with TLS
#include <WiFiClientSecure.h>

const char* ca_cert = R"EOF(
-----BEGIN CERTIFICATE-----
MIIDdTCCAl2gAwIBAgIUXKRnVPvJt...
-----END CERTIFICATE-----
)EOF";

WiFiClientSecure espClient;
espClient.setCACert(ca_cert);
espClient.setInsecure(false); // Strict certificate validation

PubSubClient client("mqtt.annafarm.com", 8883, espClient);

Encryption Strength:

  • Algorithm: AES-256-GCM
  • Key length: 256 bits
  • Time to brute force: 3.31 × 10^56 years (effectively unbreakable)

2. Perfect Forward Secrecy

Each session uses unique encryption keys:

  • Compromise of one session doesn’t affect others
  • Recorded traffic remains encrypted even if long-term keys stolen
  • DHE or ECDHE key exchange

3. Data-at-Rest Encryption

Database storage encrypted:

# Encrypted database storage
from cryptography.fernet import Fernet

key = Fernet.generate_key()
cipher = Fernet(key)

sensor_data = {
    "timestamp": "2025-10-11T14:23:00Z",
    "field": "north-40",
    "moisture": 67.2,
    "temperature": 28.4
}

# Encrypt before storage
encrypted_data = cipher.encrypt(json.dumps(sensor_data).encode())
db.store(encrypted_data)

# Decrypt when reading
decrypted_data = cipher.decrypt(db.retrieve())
data = json.loads(decrypted_data.decode())

4. Secure Key Management

Keys stored in Hardware Security Module:

  • AWS KMS (cloud) or local HSM
  • Automatic key rotation every 90 days
  • Audit logging of all key usage
  • Multi-party control (requires 2 of 3 admins to access keys)

Anna’s Encryption Results:

  • Network traffic intercepted by attackers: 100%
  • Data readable by attackers: 0%
  • Performance overhead: 23ms average per message
  • Storage overhead: 8% increase (encryption metadata)

Layer 3: Network Segmentation (Isolation)

Problem: Single breach shouldn’t compromise entire farm

Solution: Zero-Trust Micro-Segmentation

Implementation:

Anna’s Network Architecture:

┌─────────────────────────────────────────────────────────────┐
│                     DMZ (Demilitarized Zone)                │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐     │
│  │ Public Web   │  │  API Gateway │  │ VPN Endpoint │     │
│  │   Server     │  │   (Proxied)  │  │  (Filtered)  │     │
│  └──────────────┘  └──────────────┘  └──────────────┘     │
└─────────────────────────────────────────────────────────────┘
         │                    │                    │
         │ Firewall Rules     │                    │
         ↓                    ↓                    ↓
┌─────────────────────────────────────────────────────────────┐
│               Management Network (VLAN 10)                   │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐     │
│  │   Dashboard  │  │ MQTT Broker  │  │   Database   │     │
│  │   (Admin)    │  │  (Managed)   │  │  (Secured)   │     │
│  └──────────────┘  └──────────────┘  └──────────────┘     │
└─────────────────────────────────────────────────────────────┘
         │                    │                    │
         │ One-Way Firewall   │                    │
         ↓                    ↓                    ↓
┌─────────────────────────────────────────────────────────────┐
│            Sensor Network (VLAN 20 - Isolated)              │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐     │
│  │ Soil Sensors │  │   Weather    │  │  Water Flow  │     │
│  │  (Read Only) │  │   Stations   │  │   Meters     │     │
│  └──────────────┘  └──────────────┘  └──────────────┘     │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│           Control Network (VLAN 30 - Isolated)              │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐     │
│  │  Irrigation  │  │   Climate    │  │  Automated   │     │
│  │  Controllers │  │   Control    │  │   Valves     │     │
│  └──────────────┘  └──────────────┘  └──────────────┘     │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│             IoT Device Network (VLAN 40)                    │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐     │
│  │   Security   │  │    Drones    │  │   Robots     │     │
│  │   Cameras    │  │  (Monitored) │  │ (Isolated)   │     │
│  └──────────────┘  └──────────────┘  └──────────────┘     │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│              Guest Network (VLAN 99 - Isolated)             │
│  ┌──────────────┐  ┌──────────────┐                        │
│  │ Visitor WiFi │  │  Contractor  │  No farm access        │
│  │ (Internet)   │  │    Devices   │  Internet only         │
│  └──────────────┘  └──────────────┘                        │
└─────────────────────────────────────────────────────────────┘

Firewall Rules (Microsegmentation):

# Sensor Network → Management Network (Allowed)
ALLOW: VLAN 20 → VLAN 10 on port 8883 (MQTT publish only)
DENY:  VLAN 20 → * (everything else)

# Control Network → Management Network (Allowed)
ALLOW: VLAN 30 → VLAN 10 on port 8883 (MQTT subscribe + publish)
DENY:  VLAN 30 → * (everything else)

# Sensor Network → Control Network (Denied)
DENY:  VLAN 20 → VLAN 30 (sensors cannot control irrigation)

# Guest Network (Complete Isolation)
ALLOW: VLAN 99 → Internet
DENY:  VLAN 99 → VLAN 10, 20, 30, 40 (zero farm access)

# Management Network (Restricted Access)
ALLOW: VLAN 10 → * (admin access to all networks)
REQUIRE: Multi-factor authentication for VLAN 10 access

Benefits:

  • Compromised sensor cannot access control systems
  • Compromised guest device cannot see farm network
  • Lateral movement impossible
  • Attack surface reduced by 89%

Anna’s Segmentation Results:

  • Attack attempts to jump VLANs: 847 blocked
  • Successful lateral movements: 0
  • Network complexity increase: Manageable with proper documentation
  • Administrative overhead: +2 hours/week initially, +20 min/week ongoing

Layer 4: Access Control (Permission Management)

Problem: Not all users/devices need full access

Solution: Role-Based Access Control (RBAC) + Principle of Least Privilege

Implementation:

User Roles:

# Define roles and permissions
ROLES = {
    'farm_owner': {
        'permissions': ['read:all', 'write:all', 'admin:all'],
        'users': ['anna@annafarm.com']
    },
    'farm_manager': {
        'permissions': ['read:all', 'write:irrigation', 'write:sensors'],
        'users': ['erik@annafarm.com', 'priya@annafarm.com']
    },
    'agronomist': {
        'permissions': ['read:sensors', 'read:analytics', 'write:recommendations'],
        'users': ['dr.patel@consultant.com']
    },
    'maintenance_tech': {
        'permissions': ['read:equipment', 'write:maintenance_logs'],
        'users': ['tech1@annafarm.com', 'tech2@annafarm.com']
    },
    'auditor': {
        'permissions': ['read:compliance', 'read:audit_logs'],
        'users': ['auditor@certifier.org']
    },
    'guest': {
        'permissions': ['read:public_dashboard'],
        'users': ['visitor@example.com']
    }
}

# Device roles
DEVICE_ROLES = {
    'soil_sensor': {
        'can': ['publish:farm/+/soil/#', 'publish:+/status'],
        'cannot': ['subscribe:*', 'write:*']
    },
    'irrigation_controller': {
        'can': ['subscribe:farm/+/soil/#', 'publish:farm/+/irrigation/#', 'subscribe:farm/+/commands/#'],
        'cannot': ['publish:farm/+/soil/#']  # Can't fake sensor data
    },
    'dashboard': {
        'can': ['subscribe:farm/#'],  # Read everything
        'cannot': ['publish:farm/+/irrigation/#']  # Can't directly control (must go through command system)
    }
}

def check_permission(user, action, resource):
    user_role = get_user_role(user)
    permissions = ROLES[user_role]['permissions']
    
    required_permission = f"{action}:{resource}"
    
    for permission in permissions:
        if matches(permission, required_permission):
            log_access(user, action, resource, 'GRANTED')
            return True
    
    log_access(user, action, resource, 'DENIED')
    alert_security_team(f"Unauthorized access attempt by {user}")
    return False

Access Control Lists (MQTT ACL):

# /etc/mosquitto/acl

# Soil sensors - can only publish their own data
user soil_sensor_001
topic write farm/field-1/soil/moisture
topic write farm/field-1/soil/temperature
topic write devices/soil_sensor_001/status

# Irrigation controller - can read sensors, control valves
user irrigation_controller_zone_a
topic read farm/field-1/soil/#
topic read farm/field-1/weather/#
topic write farm/field-1/irrigation/valve-1/#
topic write farm/field-1/irrigation/valve-2/#

# Dashboard - read-only access to everything
user dashboard_webapp
topic read farm/#

# Admin - full access
user admin
topic readwrite #

# Guest - no farm data access
user guest_wifi
topic read public/#

Time-Based Access Control:

# Restrict access by time
def check_time_restriction(user, current_time):
    restrictions = {
        'maintenance_tech': {
            'allowed_hours': (6, 18),  # 6 AM to 6 PM only
            'allowed_days': [0, 1, 2, 3, 4]  # Monday-Friday only
        },
        'contractor': {
            'allowed_hours': (9, 17),
            'allowed_days': [0, 1, 2, 3, 4],
            'expiry_date': '2025-12-31'  # Temporary access
        }
    }
    
    if user in restrictions:
        rule = restrictions[user]
        
        if current_time.date() > rule.get('expiry_date'):
            return False
        
        if current_time.hour not in range(*rule['allowed_hours']):
            return False
        
        if current_time.weekday() not in rule['allowed_days']:
            return False
    
    return True

Anna’s Access Control Results:

  • Unauthorized access attempts: 2,847 blocked
  • Privilege escalation attempts: 23 detected and blocked
  • Over-privileged users before RBAC: 47 (everyone had admin)
  • Over-privileged users after RBAC: 1 (only farm owner)
  • Security incidents from insider threats: 0

Layer 5: Intrusion Detection & Prevention (Active Defense)

Problem: Detect attacks in progress and respond automatically

Solution: AI-Powered Intrusion Detection System (IDS) + Intrusion Prevention System (IPS)

Implementation:

1. Network Traffic Analysis

# Monitor all network traffic for anomalies
class IntrusionDetector:
    def __init__(self):
        self.baseline = self.learn_normal_behavior()
        self.alerts = []
    
    def learn_normal_behavior(self):
        # Machine learning on 30 days of normal traffic
        return {
            'avg_sensor_messages_per_minute': 47.3,
            'typical_message_size': 128,
            'expected_devices': 2847,
            'normal_connection_pattern': {...},
            'typical_mqtt_topics': ['farm/+/soil/#', ...]
        }
    
    def detect_anomalies(self, current_traffic):
        anomalies = []
        
        # 1. Volume anomaly
        if current_traffic['messages_per_minute'] > self.baseline['avg_sensor_messages_per_minute'] * 3:
            anomalies.append({
                'type': 'volume_spike',
                'severity': 'high',
                'description': 'Message volume 3x normal (possible DDoS)'
            })
        
        # 2. Unknown device
        for device in current_traffic['connected_devices']:
            if device not in self.baseline['expected_devices']:
                anomalies.append({
                    'type': 'unknown_device',
                    'severity': 'critical',
                    'device_id': device,
                    'description': 'Unauthorized device attempting connection'
                })
        
        # 3. Unusual message pattern
        if current_traffic['message_pattern'] != self.baseline['normal_connection_pattern']:
            anomalies.append({
                'type': 'pattern_anomaly',
                'severity': 'medium',
                'description': 'Abnormal communication pattern detected'
            })
        
        # 4. Payload anomaly
        for message in current_traffic['messages']:
            if message['size'] > self.baseline['typical_message_size'] * 10:
                anomalies.append({
                    'type': 'oversized_message',
                    'severity': 'high',
                    'description': 'Abnormally large message (possible buffer overflow attack)'
                })
        
        # 5. Topic abuse
        for topic in current_traffic['topics']:
            if topic not in self.baseline['typical_mqtt_topics']:
                anomalies.append({
                    'type': 'unknown_topic',
                    'severity': 'medium',
                    'topic': topic,
                    'description': 'Communication on unexpected MQTT topic'
                })
        
        return anomalies
    
    def respond_to_threat(self, anomaly):
        if anomaly['severity'] == 'critical':
            # Immediate action
            self.block_device(anomaly.get('device_id'))
            self.alert_security_team('URGENT', anomaly)
            self.trigger_incident_response()
        
        elif anomaly['severity'] == 'high':
            # Rate limit and monitor
            self.rate_limit_source(anomaly.get('source'))
            self.alert_security_team('HIGH', anomaly)
        
        elif anomaly['severity'] == 'medium':
            # Log and monitor
            self.log_suspicious_activity(anomaly)
            self.increase_monitoring(anomaly.get('source'))

2. Signature-Based Detection

Known attack patterns:

ATTACK_SIGNATURES = {
    'sql_injection': r"(bSELECTb|bUNIONb|bDROPb|bINSERTb).*(bFROMb|bWHEREb)",
    'command_injection': r"(;|||`|$(|${).*(bcatb|blsb|brmb|bwgetb|bcurlb)",
    'path_traversal': r"..[/\]",
    'mqtt_flood': lambda msg_rate: msg_rate > 1000,  # >1000 msgs/sec from single device
    'port_scan': lambda ports_accessed: len(ports_accessed) > 20 in 60 seconds
}

def check_signatures(data):
    for attack_name, signature in ATTACK_SIGNATURES.items():
        if callable(signature):
            if signature(data):
                return attack_name
        else:
            if re.search(signature, str(data)):
                return attack_name
    return None

3. Behavioral Analysis

# Learn each device's normal behavior
class DeviceBehaviorProfile:
    def __init__(self, device_id):
        self.device_id = device_id
        self.profile = {
            'typical_publish_interval': 300,  # 5 minutes
            'typical_message_topics': ['farm/field-1/soil/moisture'],
            'typical_connection_time': '00:00:00',  # Always connected
            'typical_daily_messages': 288,  # 24h * 60min / 5min interval
            'typical_connection_location': 'field-1-gateway',
        }
    
    def detect_deviation(self, current_behavior):
        # Unusual publish frequency
        if current_behavior['publish_interval'] < self.profile['typical_publish_interval'] / 10:
            return 'flooding_attack'
        
        # Publishing to wrong topics
        if current_behavior['topics'] != self.profile['typical_message_topics']:
            return 'compromised_device'
        
        # Connecting from wrong location
        if current_behavior['connection_gateway'] != self.profile['typical_connection_location']:
            return 'device_relocation_or_clone'
        
        # Excessive messages
        if current_behavior['daily_messages'] > self.profile['typical_daily_messages'] * 5:
            return 'malware_infection'
        
        return None

4. Honeypot Deployment

Fake vulnerable systems to detect attackers:

# Deploy fake "vulnerable" MQTT broker
class HoneypotMQTTBroker:
    def __init__(self):
        self.port = 1883  # Unencrypted MQTT (intentionally vulnerable)
        self.allow_anonymous = True  # No authentication (trap)
    
    def log_connection(self, connection):
        # Anyone connecting to honeypot is potential attacker
        alert_security_team({
            'type': 'honeypot_trigger',
            'severity': 'critical',
            'ip_address': connection.ip,
            'attempted_topics': connection.topics,
            'attempted_credentials': connection.username,
            'description': 'Attacker detected probing for vulnerabilities'
        })
        
        # Blacklist attacker
        firewall.block(connection.ip)
        
        # Gather intelligence
        self.pretend_to_be_vulnerable(connection)  # Let attacker reveal methods

Anna’s IDS/IPS Results:

  • Attacks detected: 47,284
  • False positives: 147 (0.31%)
  • Average detection time: 2.3 seconds
  • Average response time: 0.8 seconds
  • Successful attacks after IDS deployment: 0

Layer 6: Security Monitoring & Logging (Visibility)

Problem: Can’t defend what you can’t see

Solution: Comprehensive Security Information and Event Management (SIEM)

Implementation:

1. Centralized Logging

All systems log to central server:

# Unified logging system
class SecurityLogger:
    def __init__(self):
        self.log_destinations = [
            ElasticsearchCluster(),  # Real-time search
            S3Archive(),  # Long-term storage
            SIEMPlatform()  # Security analysis
        ]
    
    def log_event(self, event):
        # Standardized log format
        log_entry = {
            'timestamp': datetime.utcnow().isoformat(),
            'event_type': event['type'],
            'severity': event['severity'],
            'source_ip': event.get('ip'),
            'source_device': event.get('device'),
            'user': event.get('user'),
            'action': event['action'],
            'result': event['result'],
            'details': event.get('details'),
            'farm_location': event.get('location')
        }
        
        # Send to all destinations
        for destination in self.log_destinations:
            destination.store(log_entry)
        
        # Real-time alerting for critical events
        if event['severity'] in ['critical', 'high']:
            self.trigger_alert(log_entry)

# Log everything
logger.log_event({
    'type': 'authentication',
    'severity': 'info',
    'ip': '192.168.1.47',
    'user': 'erik@annafarm.com',
    'action': 'login',
    'result': 'success'
})

logger.log_event({
    'type': 'access_denied',
    'severity': 'warning',
    'ip': '192.168.1.99',
    'user': 'maintenance_tech',
    'action': 'access_irrigation_controls',
    'result': 'denied',
    'details': 'Insufficient permissions'
})

logger.log_event({
    'type': 'intrusion_attempt',
    'severity': 'critical',
    'ip': '103.47.182.94',
    'device': 'unknown',
    'action': 'unauthorized_connection',
    'result': 'blocked',
    'details': 'Multiple failed authentication attempts from foreign IP'
})

2. Log Analysis & Correlation

Detect patterns across multiple logs:

# Correlate events to detect sophisticated attacks
class ThreatCorrelation:
    def analyze_patterns(self, logs):
        # Pattern 1: Credential stuffing
        failed_logins = [log for log in logs if log['type'] == 'authentication' and log['result'] == 'failed']
        if len(failed_logins) > 10 from same IP in 5 minutes:
            return 'brute_force_attack'
        
        # Pattern 2: Reconnaissance
        port_scans = [log for log in logs if log['type'] == 'connection' and log['result'] == 'failed']
        if len(port_scans) > 20 different ports from same IP in 1 minute:
            return 'port_scanning'
        
        # Pattern 3: Privilege escalation
        privilege_changes = [log for log in logs if 'privilege' in log['action']]
        if unusual_privilege_change_pattern(privilege_changes):
            return 'privilege_escalation_attempt'
        
        # Pattern 4: Data exfiltration
        data_transfers = [log for log in logs if log['type'] == 'data_transfer']
        if sum(transfer['bytes'] for transfer in data_transfers) > 10GB in 1 hour:
            return 'data_exfiltration'
        
        return None

3. Security Dashboard

Real-time visibility:

# Anna's Security Operations Center (SOC) Dashboard
dashboard_metrics = {
    'current_threat_level': 'LOW',
    'active_connections': 2847,
    'blocked_ips_today': 47,
    'authentication_failures_today': 12,
    'unusual_activity_alerts': 3,
    'system_health': 'OPTIMAL',
    
    'top_threats_24h': [
        {'type': 'port_scan', 'count': 18, 'source': 'Various IPs'},
        {'type': 'brute_force', 'count': 8, 'source': '103.47.182.94'},
        {'type': 'unauthorized_device', 'count': 4, 'source': 'Unknown'}
    ],
    
    'network_traffic': {
        'total_messages_today': 6_847_291,
        'average_latency': '23ms',
        'packet_loss': '0.02%',
        'encrypted_percentage': 100
    },
    
    'compliance_status': {
        'last_vulnerability_scan': '2025-10-08',
        'vulnerabilities_found': 0,
        'password_policy_compliance': '100%',
        'certificate_expiry': '89 days'
    }
}

4. Forensic Analysis Capability

Investigate incidents:

# Query logs for specific incident
curl -X POST "elasticsearch:9200/security-logs/_search" -d '{
  "query": {
    "bool": {
      "must": [
        {"match": {"severity": "critical"}},
        {"range": {"timestamp": {"gte": "2025-10-11T03:00:00Z", "lte": "2025-10-11T04:00:00Z"}}}
      ]
    }
  }
}'

# Results show complete attack timeline:
# 03:47:23 - First connection attempt from 103.47.182.94
# 03:47:24 - 2847 additional connections in 14 seconds (DDoS detected)
# 03:47:26 - Automatic blocking initiated
# 03:47:28 - All malicious traffic blocked
# 03:47:30 - Security team alerted
# 03:52:15 - Forensic analysis completed
# 04:18:47 - Incident report generated

Anna’s Monitoring Results:

  • Total events logged: 847 million/month
  • Storage: 2.4 TB (compressed)
  • Query speed: <200ms for any search
  • Retention: 13 months (compliance requirement)
  • Incident response time: Average 4.7 minutes from detection to containment

Layer 7: Physical Security (Device Protection)

Problem: Physical access = complete compromise

Solution: Multi-Layer Physical Protection

Implementation:

1. Tamper Detection

// Tamper-evident sensor enclosure
#define TAMPER_SWITCH_PIN 12

void setup() {
  pinMode(TAMPER_SWITCH_PIN, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(TAMPER_SWITCH_PIN), tamperDetected, FALLING);
}

void tamperDetected() {
  // Tamper switch triggered (enclosure opened)
  
  // 1. Immediate alert
  sendUrgentAlert("PHYSICAL_BREACH", "Device enclosure opened", getGPSLocation());
  
  // 2. Lock device
  disableAllFunctions();
  
  // 3. Activate camera
  capturePhoto();  // Take picture of whoever opened it
  
  // 4. Log event
  logTamperEvent();
  
  // 5. Erase sensitive data
  if (tamperContinuesFor(60)) {  // 1 minute grace period
    eraseEncryptionKeys();
    wipeMemory();
  }
}

2. Secure Enclosures

Physical protection:

  • IP67-rated weatherproof cases (₹850 each)
  • Lockable with security screws (₹45 each)
  • Tamper-evident seals (₹12 each)
  • GPS tracker inside enclosure (₹2,400 each for critical devices)
  • Hidden secondary communication channel (backup if main disabled)

3. Device Geofencing

# Alert if device moves from expected location
def check_device_location(device_id, current_gps):
    expected_location = DEVICE_LOCATIONS[device_id]
    
    distance = calculate_distance(current_gps, expected_location)
    
    if distance > 50:  # Moved more than 50 meters
        alert_security_team({
            'type': 'device_relocation',
            'severity': 'high',
            'device': device_id,
            'expected_location': expected_location,
            'current_location': current_gps,
            'distance_moved': f'{distance}m'
        })
        
        # Potential theft - disable device remotely
        send_kill_command(device_id)

4. Firmware Security

// Secure boot - verify firmware integrity before running
void checkFirmwareIntegrity() {
  // Calculate hash of current firmware
  String current_hash = sha256(firmware_binary);
  
  // Compare with signed hash from trusted source
  String expected_hash = readFromSecureMemory("firmware_hash");
  
  if (current_hash != expected_hash) {
    // Firmware has been tampered with!
    Serial.println("FIRMWARE INTEGRITY FAILURE");
    
    // Refuse to boot
    while(1) {
      digitalWrite(LED_RED, HIGH);
      delay(500);
      digitalWrite(LED_RED, LOW);
      delay(500);
    }
  }
  
  // Firmware verified - safe to boot
  Serial.println("Firmware integrity verified");
}

5. Secure OTA Updates

# Over-the-air firmware updates with security
class SecureOTAUpdater:
    def push_update(self, device_id, new_firmware):
        # 1. Sign firmware with private key
        signature = self.sign_firmware(new_firmware, PRIVATE_KEY)
        
        # 2. Encrypt firmware
        encrypted_firmware = self.encrypt(new_firmware, device_keys[device_id])
        
        # 3. Send to device
        self.send_to_device(device_id, {
            'firmware': encrypted_firmware,
            'signature': signature,
            'version': '2.4.1',
            'release_notes': '...'
        })
    
    def device_verifies_update(self, update_package):
        # Device side verification
        
        # 1. Verify signature
        if not verify_signature(update_package['firmware'], update_package['signature'], PUBLIC_KEY):
            log("Invalid signature - rejecting update")
            return False
        
        # 2. Decrypt firmware
        firmware = decrypt(update_package['firmware'], DEVICE_KEY)
        
        # 3. Verify version (must be newer)
        if update_package['version'] <= CURRENT_VERSION:
            log("Old version - rejecting update")
            return False
        
        # 4. Apply update
        flash_firmware(firmware)
        reboot()

Anna’s Physical Security Results:

  • Devices with physical security: 2,847 (100%)
  • Tamper attempts detected: 23 (field workers, animals, weather damage)
  • Successful device thefts: 0
  • Unauthorized firmware modifications: 0
  • Average tamper alert response time: 8 minutes

Security Operations: Ongoing Management

Daily Security Routine

Automated (No Human Intervention):

  • Continuous threat monitoring
  • Automatic blocking of malicious IPs
  • Real-time intrusion detection
  • Log collection and analysis
  • Certificate rotation checks
  • Backup verification

Weekly (15 minutes):

  • Review security dashboard
  • Check for critical alerts
  • Verify backup integrity
  • Review access logs for anomalies

Monthly (2 hours):

  • Vulnerability scanning
  • Access permission review
  • Firmware update deployment
  • Security policy review
  • Incident response drill

Quarterly (1 day):

  • Penetration testing
  • Security training for staff
  • Disaster recovery test
  • Third-party security audit
  • Update incident response playbook

Incident Response Playbook

Phase 1: Detection (Automated)

Alert received → Classify severity → Initial containment

Phase 2: Analysis (5-15 minutes)

1. Identify affected systems
2. Determine attack vector
3. Assess damage extent
4. Classify incident type

Phase 3: Containment (Immediate)

Critical: Block attacker, isolate affected systems
High: Rate limit, increase monitoring
Medium: Log and monitor

Phase 4: Eradication (30-120 minutes)

1. Remove attacker access
2. Patch vulnerabilities
3. Reset compromised credentials
4. Update firewall rules

Phase 5: Recovery (Hours to Days)

1. Restore from secure backups
2. Verify system integrity
3. Re-enable services gradually
4. Monitor for persistence

Phase 6: Lessons Learned (1 week after)

1. Document incident
2. Update security measures
3. Improve detection rules
4. Staff training on new threats

Cost-Benefit Analysis: Security Investment ROI

Anna’s Security Implementation Costs

Initial Investment (Year 1):

ComponentCost (INR)
Network equipment (VLANs, firewall)₹8,40,000
Certificates & PKI infrastructure₹1,20,000
HSM chips for devices (2,847 × ₹180)₹5,12,460
Intrusion detection system₹4,50,000
SIEM platform (1 year)₹6,00,000
Security consulting & audit₹12,00,000
Physical security upgrades₹2,42,000
Staff training₹1,80,000
Total Year 1₹41,44,460

Ongoing Annual Costs:

ComponentCost (INR)
SIEM platform license₹6,00,000
Security monitoring service₹3,60,000
Annual penetration testing₹2,40,000
Certificate renewals₹40,000
Security updates & patches₹1,20,000
Staff training₹60,000
Total Annual₹14,20,000

Total 3-Year Cost: ₹69,84,460

Risk Mitigation Value

Prevented Losses (Conservative Estimates):

1. Crop Destruction Attack

  • Probability without security: 15% per year
  • Estimated loss: ₹4.2 crore
  • Expected annual loss: ₹63 lakh
  • 3-year avoided loss: ₹1.89 crore

2. Data Theft

  • Probability without security: 40% per year
  • Estimated loss: ₹80 lakh (competitive intelligence)
  • Expected annual loss: ₹32 lakh
  • 3-year avoided loss: ₹96 lakh

3. Ransomware

  • Probability without security: 25% per year
  • Estimated loss: ₹1.2 crore (ransom + downtime + recovery)
  • Expected annual loss: ₹30 lakh
  • 3-year avoided loss: ₹90 lakh

4. Regulatory Fines

  • Probability without security: 30% per year
  • Estimated fine: ₹25 lakh (data protection violations)
  • Expected annual loss: ₹7.5 lakh
  • 3-year avoided loss: ₹22.5 lakh

5. Reputation Damage

  • Probability without security: 50% per year
  • Estimated loss: ₹60 lakh (customer loss, reduced pricing power)
  • Expected annual loss: ₹30 lakh
  • 3-year avoided loss: ₹90 lakh

Total 3-Year Risk Mitigation: ₹4.87 crore

Net ROI Calculation:

  • Total investment: ₹69.84 lakh
  • Total value: ₹4.87 crore
  • Net benefit: ₹4.17 crore
  • ROI: 597%

Intangible Benefits:

  • Customer trust & confidence
  • Insurance premium reduction (15-20%)
  • Competitive advantage
  • Peace of mind
  • Regulatory compliance
  • Industry leadership reputation

Real-World Attack Scenarios & Defenses

Scenario 1: The 3:47 AM DDoS Attack (Actual Event)

Attack:

  • Source: Distributed botnet (847 IP addresses)
  • Target: MQTT broker
  • Method: Connection flooding
  • Goal: Crash irrigation control system during critical period

Anna’s Defense:

Layer 1: Rate Limiting

# Each IP limited to 10 connections/minute
if connections_from_ip(source_ip) > 10 in last_minute:
    block_ip(source_ip, duration=3600)  # 1 hour block

Layer 2: Geographic Filtering

# Farm in India, block connections from high-risk countries
BLOCKED_COUNTRIES = ['CN', 'RU', 'KP', 'IR']  # Based on threat intelligence

if geolocate(source_ip) in BLOCKED_COUNTRIES:
    block_ip(source_ip)

Layer 3: Connection Authentication

# All connections require valid certificate
if not verify_certificate(connection):
    reject_connection()
    log_intrusion_attempt(source_ip)

Result:

  • All 2,847 malicious connections blocked within 0.8 seconds
  • Zero impact on legitimate farm operations
  • Attack traced to compromised IoT devices in 14 countries
  • IPs reported to ISPs and blacklisted

Scenario 2: Compromised Contractor Device

Attack:

  • Source: Maintenance contractor’s laptop infected with malware
  • Method: Laptop connected to guest WiFi, attempted lateral movement
  • Goal: Access farm network to steal data

Anna’s Defense:

Layer 1: Network Segmentation

# Guest WiFi completely isolated from farm network
FIREWALL_RULES = {
    'Guest WiFi (VLAN 99)': {
        'allow': ['Internet'],
        'deny': ['VLAN 10', 'VLAN 20', 'VLAN 30']  # All farm networks
    }
}

Layer 2: Intrusion Detection

# IDS detected port scanning from guest network
alert = {
    'type': 'port_scan',
    'source': 'guest-device-contractor-laptop',
    'ports_scanned': [22, 23, 80, 443, 8883, 1883, 3389],
    'action': 'Automatically throttled bandwidth, flagged for review'
}

Layer 3: Zero Trust

# Even if attacker reached farm network, every action requires authentication
# No trust based on network location alone
for action in ['read_sensor', 'control_irrigation', 'access_database']:
    require_authentication(user, action)
    verify_authorization(user, action)

Result:

  • Malware unable to escape guest network
  • Attack detected within 23 seconds
  • Contractor notified of infection
  • Zero data exposure
  • Laptop disinfected before returning to farm network

Scenario 3: Insider Threat (Disgruntled Employee)

Attack:

  • Source: Former farm manager with legitimate credentials
  • Method: Attempted to access system after termination
  • Goal: Sabotage irrigation system

Anna’s Defense:

Layer 1: Immediate Access Revocation

# Automated employee offboarding
def offboard_employee(employee):
    # Revoke all credentials
    revoke_credentials(employee.username)
    revoke_certificates(employee.certificates)
    revoke_vpn_access(employee)
    
    # Reset passwords for any shared accounts
    reset_shared_passwords()
    
    # Disable physical access (deactivate RFID badge)
    disable_badge(employee.badge_id)
    
    # Log offboarding
    log_event({
        'type': 'employee_offboarding',
        'employee': employee.name,
        'timestamp': datetime.now(),
        'action': 'All access revoked'
    })

# Triggered same day as termination
offboard_employee(former_manager)

Layer 2: Anomaly Detection

# Failed login attempts from former employee's account
failed_attempts = [
    {'timestamp': '2025-10-11T10:23:14Z', 'result': 'denied'},
    {'timestamp': '2025-10-11T10:24:47Z', 'result': 'denied'},
    {'timestamp': '2025-10-11T10:26:32Z', 'result': 'denied'}
]

# Automatic alert after 3 failed attempts
alert_security_team({
    'type': 'suspicious_login',
    'severity': 'high',
    'user': 'former_manager',
    'ip_address': '...',
    'attempts': 3,
    'action': 'Possible unauthorized access attempt'
})

Layer 3: Legal Evidence

# Complete audit trail for legal proceedings
audit_log = {
    'employee': 'former_manager',
    'termination_date': '2025-10-10',
    'access_revocation': '2025-10-10T17:00:00Z',
    'unauthorized_access_attempts': [
        {'timestamp': '2025-10-11T10:23:14Z', 'method': 'VPN', 'result': 'blocked'},
        {'timestamp': '2025-10-11T10:24:47Z', 'method': 'Web portal', 'result': 'blocked'},
        {'timestamp': '2025-10-11T10:26:32Z', 'method': 'Mobile app', 'result': 'blocked'}
    ],
    'evidence_preserved': True,
    'law_enforcement_notified': '2025-10-11T11:00:00Z'
}

Result:

  • All access attempts blocked
  • Security team alerted within 2 minutes
  • Legal evidence preserved
  • Law enforcement notified
  • Civil and criminal charges filed
  • ₹12 lakh damages awarded to farm

Conclusion: Security as Competitive Advantage

At 4:18 AM, as Anna’s security team completed their post-incident analysis of the attempted DDoS attack, the CyberGuard AgriDefense dashboard displayed a remarkable statistic: in 14 months of operation, the system had blocked 47,284 malicious connection attempts, prevented 3 sophisticated attacks that could have caused ₹6+ crore in damages, maintained 99.97% operational availability even under active attack, and achieved all this while adding only 23ms average latency to normal farm operations—demonstrating that military-grade security and agricultural efficiency were not opposing goals, but complementary capabilities.

The Security Transformation Reality:

Agricultural IoT security isn’t optional infrastructure—it’s existential protection for digital farming operations. Every sensor, every controller, every automated system represents a potential attack surface that, if exploited, could destroy crops, steal intellectual property, compromise customer data, or sabotage entire harvests. Traditional farming trusted physical security; modern farming must trust cryptographic security.

The Investment Imperative:

Anna’s cybersecurity implementation required:

  • Capital: ₹41.44 lakh (initial security infrastructure)
  • Ongoing: ₹14.20 lakh/year (monitoring, updates, audits)
  • Time: 7 months (full security implementation)
  • Expertise: Security consultants + staff training

The protection delivered:

  • Risk Mitigation: ₹4.87 crore (3-year prevented losses)
  • Operational Continuity: 99.97% uptime under attack
  • Competitive Advantage: Bank-level security differentiates brand
  • Peace of Mind: Sleep soundly knowing crops are protected
  • ROI: 597% over 3 years

The Strategic Insight:

Cybersecurity transforms from cost center to revenue enabler. Anna’s certified secure IoT network commands premium prices for “cyber-safe certified organic” produce, enables partnerships with security-conscious institutional buyers, differentiates her brand in crowded markets, and provides unbreakable foundation for future digital agriculture innovation.

As Erik completed the morning security briefing—reviewing the blocked attack, analyzing threat patterns, and implementing additional protections—Anna reflected on the fundamental shift: “We’re no longer farmers who use technology. We’re digital infrastructure operators who happen to grow food. Security isn’t overhead—it’s our license to operate in the connected agriculture future.”

The cybersecurity revolution isn’t coming to agriculture. It’s already here, and farms without it are operating on borrowed time.


Technical Resources & Implementation Support

Recommended Security Tools

For Small Farms (<100 devices):

  • Pi-hole (Free): Network-wide ad/malware blocking
  • WireGuard (Free): Simple VPN
  • Let’s Encrypt (Free): TLS certificates
  • Fail2Ban (Free): Intrusion prevention
  • Cost: ₹20,000-50,000 (mostly hardware)

For Medium Farms (100-1,000 devices):

  • pfSense (Free): Professional firewall
  • Suricata (Free): IDS/IPS
  • Wazuh (Free): SIEM platform
  • HashiCorp Vault (Free tier): Secrets management
  • Cost: ₹2,00,000-8,00,000

For Large Farms (>1,000 devices):

  • Palo Alto Networks: Next-gen firewall
  • Splunk: Enterprise SIEM
  • CrowdStrike: Endpoint protection
  • Cloudflare: DDoS protection
  • Cost: ₹15,00,000-50,00,000/year

Security Certifications for Agricultural IoT

ISO 27001: Information Security Management IEC 62443: Industrial Cybersecurity NIST Cybersecurity Framework: Best practices guide CSA STAR: Cloud security certification

Agriculture Novel Support

Contact Information:

  • Cybersecurity Consulting: security@agriculturenovel.com
  • 24/7 SOC Support: +91-9876543210
  • Emergency Hotline: +91-9876543211
  • WhatsApp: Get instant cybersecurity help
  • Website: www.agriculturenovel.com/cybersecurity

Services Offered:

  • IoT security assessment & auditing
  • Penetration testing for agricultural networks
  • Security infrastructure design & implementation
  • 24/7 Security Operations Center (SOC)
  • Incident response & forensics
  • Staff cybersecurity training
  • Compliance consulting (ISO 27001, IEC 62443)

Security Packages:

  • Basic Package (₹3,50,000): Essential security for small farms
  • Professional Package (₹12,00,000): Complete security for medium farms
  • Enterprise Package (₹45,00,000+): Military-grade security for large operations

Tags: #CybersecurityAgriculture #IoTSecurity #AgricultureSecurity #NetworkSecurity #SmartFarmSecurity #IntrusionDetection #EncryptionAgriculture #SecureIoT #FarmCybersecurity #AgTechSecurity #DataProtection #ThreatDetection #SecurityMonitoring #AgricultureNovel #PrecisionAgriculture #CyberDefense #NetworkSegmentation #AccessControl #SecureFarming

Next in this wing

Leave a Reply

Crop Intelligence

Every crop, one table

Sowing window, duration, spacing, soil pH, water need, temperature, seed rate, yield and key pests — across 163 crops and plants, from cereals to medicinals. Indicative planning ranges for Indian conditions; varieties and regions vary.

163 crops shown
Agronomic reference for common Indian crops
Group Season Sowing Spacing Soil pH Temp °C Seed / ha Yield / ha Watch for
Rice Cereal Kharif Jun–Jul 120–150 20 × 15 cm 5.5–6.5 1200–1800 22–32 40–50 kg 4–6 t Stem borer, blast, BPH
Wheat Cereal Rabi Nov–Dec 120–150 22 cm rows 6.0–7.5 400–650 15–25 100–125 kg 4–5 t Yellow rust, aphid, termite
Maize Cereal Kharif · Rabi Jun–Jul, Oct–Nov 90–110 60 × 20 cm 5.5–7.5 500–800 21–30 18–20 kg 5–8 t Fall armyworm, stem borer
Barley Cereal Rabi Nov–Dec 110–130 22 cm rows 6.5–8.0 300–450 12–25 75–100 kg 3–4 t Aphid, yellow rust
Oats Cereal Rabi Oct–Nov 100–120 22 cm rows 5.5–7.0 350–500 15–25 80–100 kg 2.5–3.5 t Rust, aphid
Buckwheat Cereal Rabi Sep–Oct 75–90 30 × 10 cm 5.0–7.0 300–450 15–25 40–50 kg 1–1.5 t Aphid, leaf spot
Grain Amaranth Cereal Kharif · Rabi Jun–Jul, Oct 90–110 45 × 20 cm 5.5–7.5 300–450 20–30 2–3 kg 1–1.5 t Stem weevil, leaf webber
Sorghum (Jowar) Millet Kharif · Rabi Jun–Jul, Sep–Oct 100–120 45 × 15 cm 6.0–7.5 400–600 26–32 10–12 kg 2.5–4 t Shoot fly, midge, downy mildew
Pearl Millet (Bajra) Millet Kharif Jun–Jul 75–90 45 × 15 cm 6.5–7.8 350–500 25–35 4–5 kg 2–3 t Downy mildew, ergot
Finger Millet (Ragi) Millet Kharif Jun–Jul 100–120 30 × 10 cm 5.0–7.5 400–600 20–30 10–12 kg 2–3 t Blast, stem borer
Foxtail Millet Millet Kharif Jun–Jul 70–90 25 × 10 cm 5.5–7.0 250–400 20–30 8–10 kg 1.5–2 t Blast, shoot fly
Kodo Millet Millet Kharif Jun–Jul 100–120 25 × 10 cm 5.5–7.5 300–450 25–32 10–12 kg 1–1.5 t Head smut, shoot fly
Little Millet Millet Kharif Jun–Jul 70–90 25 × 10 cm 5.5–7.5 250–400 22–32 8–10 kg 0.8–1.2 t Shoot fly, grain smut
Barnyard Millet Millet Kharif Jun–Jul 75–90 25 × 10 cm 5.5–7.0 250–400 22–30 10–12 kg 1–1.5 t Grain smut, shoot fly
Proso Millet Millet Kharif · Zaid Jun–Jul, Feb 60–75 25 × 10 cm 5.5–7.5 200–350 20–30 10–12 kg 1–1.5 t Shoot fly, head smut
Chickpea (Gram) Pulse Rabi Oct–Nov 95–120 30 × 10 cm 6.0–8.0 250–400 15–25 75–100 kg 1.5–2.5 t Pod borer, wilt
Pigeon Pea (Tur) Pulse Kharif Jun–Jul 150–180 60 × 20 cm 6.0–7.5 400–600 20–30 12–15 kg 1.5–2 t Pod borer, wilt, sterility mosaic
Green Gram (Moong) Pulse Kharif · Zaid Jun–Jul, Mar–Apr 60–75 30 × 10 cm 6.2–7.2 250–350 25–35 15–20 kg 0.8–1.2 t Yellow mosaic, thrips
Black Gram (Urad) Pulse Kharif Jun–Jul 70–90 30 × 10 cm 6.0–7.5 250–400 25–35 15–20 kg 0.8–1.2 t Yellow mosaic, powdery mildew
Lentil (Masur) Pulse Rabi Oct–Nov 100–120 25 × 5 cm 6.0–7.5 200–350 15–25 30–40 kg 1–1.5 t Rust, wilt, aphid
Cowpea Pulse Kharif · Zaid Jun–Jul, Feb–Mar 70–90 45 × 15 cm 5.5–7.5 250–400 25–35 20–25 kg 1–1.5 t Aphid, pod borer
Field Pea Pulse Rabi Oct–Nov 100–130 30 × 10 cm 6.0–7.5 250–400 13–23 75–100 kg 1.5–2.5 t Powdery mildew, pod borer
Horse Gram Pulse Kharif · Rabi Aug–Sep 110–130 30 × 10 cm 5.0–7.5 200–300 20–30 25–30 kg 0.6–1 t Leaf spot, pod borer
Moth Bean Pulse Kharif Jul 70–90 30 × 10 cm 6.0–8.0 150–300 25–35 10–12 kg 0.5–0.8 t Yellow mosaic, jassid
Rajma (Kidney Bean) Pulse Rabi Oct–Nov 110–130 40 × 15 cm 5.5–6.5 300–450 15–25 80–100 kg 1.5–2 t Anthracnose, bean fly
Faba Bean Pulse Rabi Oct–Nov 120–150 45 × 15 cm 6.0–7.5 350–500 12–22 100–120 kg 2–3 t Chocolate spot, aphid
Lablab (Sem) Pulse Kharif Jun–Jul 110–140 60 × 30 cm 5.5–7.5 300–450 20–30 15–20 kg 1–1.5 t Pod borer, aphid
Cluster Bean (Guar) Pulse Kharif Jun–Jul 90–110 45 × 20 cm 7.0–8.5 250–400 25–35 15–20 kg 1–1.5 t Bacterial blight, jassid
Groundnut Oilseed Kharif Jun–Jul 100–130 30 × 10 cm 6.0–7.0 500–700 25–30 100–120 kg 2–2.5 t Leaf miner, tikka leaf spot
Mustard Oilseed Rabi Oct–Nov 110–140 30 × 10 cm 6.0–7.5 250–400 10–25 4–5 kg 1.5–2 t Aphid, white rust, alternaria
Rapeseed (Toria) Oilseed Rabi Sep–Oct 85–100 30 × 10 cm 6.0–7.5 200–350 10–25 4–5 kg 1–1.5 t Aphid, alternaria blight
Soybean Oilseed Kharif Jun–Jul 90–110 45 × 5 cm 6.0–7.5 450–700 20–30 65–75 kg 2–2.5 t Girdle beetle, yellow mosaic
Sunflower Oilseed Rabi · Zaid Oct–Nov, Jan–Feb 90–110 60 × 30 cm 6.5–8.0 400–600 20–28 8–10 kg 1.5–2 t Head borer, necrosis, downy mildew
Sesame (Til) Oilseed Kharif · Zaid Jun–Jul, Feb–Mar 80–95 30 × 15 cm 5.5–8.0 300–450 25–32 4–5 kg 0.6–1 t Phyllody, leaf webber
Castor Oilseed Kharif Jun–Aug 150–180 90 × 60 cm 5.5–7.5 500–700 20–30 5–8 kg 1.5–2.5 t Semilooper, capsule borer, wilt
Safflower Oilseed Rabi Oct–Nov 120–140 45 × 20 cm 6.0–8.0 250–400 15–25 10–15 kg 1–1.5 t Aphid, wilt, alternaria
Linseed Oilseed Rabi Oct–Nov 110–130 25 × 5 cm 6.0–7.5 250–400 15–25 25–30 kg 1–1.5 t Bud fly, rust, wilt
Niger Oilseed Kharif Jul–Aug 90–110 30 × 10 cm 5.5–7.0 300–450 18–28 5–6 kg 0.4–0.6 t Leaf spot, capsule fly
Cotton Fibre Kharif May–Jun 160–200 90 × 60 cm 6.0–8.0 700–1200 21–30 1.5–2.5 kg (Bt) 2–3 t seed cotton Pink bollworm, whitefly, jassid
Jute Fibre Kharif Mar–May 110–140 25 × 7 cm 6.0–7.5 500–750 24–35 5–8 kg 2.5–3 t fibre Stem rot, semilooper
Mesta (Kenaf) Fibre Kharif Apr–Jun 120–150 30 × 10 cm 6.0–7.5 450–700 22–32 12–15 kg 2–2.5 t fibre Stem rot, spiral borer
Sunn Hemp Fibre Kharif Jun–Jul 100–120 30 × 10 cm 5.5–7.5 350–500 22–32 25–30 kg 1.5–2 t fibre Hairy caterpillar, wilt
Sugarcane Plantation Perennial Oct–Nov, Feb–Mar 300–365 90–120 cm rows 6.5–7.5 1500–2500 20–35 35–40 k setts 80–100 t Early shoot borer, red rot, woolly aphid
Tea Plantation Perennial Jun–Aug (planting) 3–4 yr to pluck 1.2 × 0.75 m 4.5–5.5 2000–2500 18–30 13 k plants 2–3 t made tea Red spider mite, blister blight
Coffee Plantation Perennial Jun–Jul (planting) 3–4 yr to bear 2.5 × 2.5 m 6.0–6.5 1500–2000 15–28 1,600 plants 1–1.5 t clean White stem borer, leaf rust
Rubber Plantation Perennial Jun–Jul (planting) 6–7 yr to tap 4.9 × 4.9 m 4.5–6.0 2000–3000 25–34 420 plants 1.5–2 t dry rubber Abnormal leaf fall, pink disease
Coconut Plantation Perennial Jun–Jul (planting) 5–6 yr to bear 7.5 × 7.5 m 5.5–7.5 1300–2300 20–32 175 palms 80–120 nuts/palm Rhinoceros beetle, red palm weevil, root wilt
Arecanut Plantation Perennial Jun–Jul (planting) 5–7 yr to bear 2.7 × 2.7 m 5.5–7.0 1500–2500 20–32 1,350 palms 2–3 t dry kernel Koleroga, yellow leaf disease
Cashew Plantation Perennial Jun–Jul (planting) 3–4 yr to bear 7.5 × 7.5 m 5.5–7.0 800–1200 20–35 175 plants 1–1.5 t nuts Tea mosquito bug, stem borer
Cocoa Plantation Perennial Jun–Jul (planting) 3–4 yr to bear 2.7 × 2.7 m 5.5–7.0 1500–2000 20–30 1,100 plants 1–1.5 t dry bean Black pod, tea mosquito bug
Oil Palm Plantation Perennial Jun–Sep (planting) 3–4 yr to bear 9 m triangular 5.0–7.0 2000–2500 24–32 143 palms 20–25 t FFB Rhinoceros beetle, bud rot
Tobacco Plantation Rabi Sep–Oct 110–130 90 × 60 cm 5.5–6.5 400–600 20–30 250–300 g 1.5–2.5 t cured Aphid, budworm, black shank
Tomato Vegetable Year-round Jun–Jul, Oct–Nov, Jan–Feb 110–140 60 × 45 cm 6.0–7.0 400–600 20–27 250–400 g 25–40 t Fruit borer, leaf curl virus, early blight
Onion Vegetable Rabi · Kharif Oct–Nov, Jun–Jul 120–150 15 × 10 cm 6.0–7.5 350–550 13–25 8–10 kg 25–35 t Thrips, purple blotch, basal rot
Potato Vegetable Rabi Oct–Nov 90–120 60 × 20 cm 5.5–6.5 450–650 15–22 2.5–3 t tubers 25–35 t Late blight, aphid, tuber moth
Brinjal Vegetable Year-round Jun–Jul, Oct–Nov, Feb–Mar 120–150 60 × 60 cm 5.5–6.8 400–600 22–30 400–500 g 25–35 t Shoot & fruit borer, wilt
Okra (Bhindi) Vegetable Kharif · Zaid Jun–Jul, Feb–Mar 55–70 45 × 30 cm 6.0–6.8 350–500 24–32 8–10 kg 10–15 t Yellow vein mosaic, shoot borer, jassid
Chilli Vegetable Kharif · Rabi Jun–Jul, Oct–Nov 150–180 60 × 45 cm 6.0–7.0 500–700 20–30 1–1.5 kg 2–3 t dry Thrips, leaf curl, anthracnose
Capsicum Vegetable Rabi Sep–Oct 110–130 45 × 30 cm 6.0–6.8 400–600 18–27 750 g–1 kg 20–30 t Thrips, mites, anthracnose
Cabbage Vegetable Rabi Sep–Oct 90–120 45 × 45 cm 6.0–6.5 350–500 15–21 400–500 g 25–35 t Diamondback moth, black rot
Cauliflower Vegetable Rabi Sep–Oct 90–120 45 × 45 cm 6.0–7.0 350–500 15–20 400–500 g 20–30 t Diamondback moth, downy mildew
Broccoli Vegetable Rabi Sep–Oct 90–110 45 × 45 cm 6.0–7.0 350–500 15–20 400–500 g 12–18 t Aphid, diamondback moth
Knol-khol Vegetable Rabi Sep–Oct 60–80 30 × 20 cm 6.0–7.0 300–450 15–22 1–1.5 kg 20–25 t Aphid, black rot
Cucumber Vegetable Zaid · Kharif Feb–Mar, Jun–Jul 50–70 150 × 60 cm 6.0–7.0 350–500 20–30 2–3 kg 15–20 t Downy mildew, fruit fly, red pumpkin beetle
Bottle Gourd Vegetable Zaid · Kharif Feb–Mar, Jun–Jul 60–80 250 × 60 cm 6.0–7.0 400–550 22–32 3–5 kg 20–25 t Fruit fly, downy mildew
Bitter Gourd Vegetable Zaid · Kharif Feb–Mar, Jun–Jul 55–75 150 × 60 cm 6.0–6.7 350–500 24–32 4–5 kg 12–18 t Fruit fly, mosaic virus
Ridge Gourd Vegetable Zaid · Kharif Feb–Mar, Jun–Jul 55–75 200 × 60 cm 6.0–7.0 350–500 24–32 3–4 kg 12–16 t Fruit fly, powdery mildew
Sponge Gourd Vegetable Zaid · Kharif Feb–Mar, Jun–Jul 55–75 200 × 60 cm 6.0–7.0 350–500 24–32 3–4 kg 12–16 t Fruit fly, downy mildew
Ash Gourd Vegetable Kharif Jun–Jul 90–120 250 × 90 cm 6.0–7.0 400–600 24–32 4–6 kg 25–35 t Fruit fly, mosaic
Pumpkin Vegetable Zaid · Kharif Feb–Mar, Jun–Jul 90–120 250 × 60 cm 6.0–7.0 400–600 20–30 4–6 kg 20–30 t Red pumpkin beetle, powdery mildew
Watermelon Vegetable Zaid Jan–Mar 80–100 200 × 60 cm 6.0–7.0 400–600 24–32 2.5–3.5 kg 25–35 t Fruit fly, anthracnose, wilt
Muskmelon Vegetable Zaid Jan–Mar 75–95 150 × 60 cm 6.0–7.0 350–550 24–32 2–2.5 kg 15–25 t Fruit fly, downy mildew
French Bean Vegetable Rabi · Zaid Oct–Nov, Feb 60–80 45 × 15 cm 5.5–6.5 300–450 16–24 60–80 kg 8–12 t Anthracnose, bean fly
Garden Pea Vegetable Rabi Oct–Nov 90–110 30 × 10 cm 6.0–7.5 300–450 13–22 80–100 kg 8–12 t Powdery mildew, pod borer
Radish Vegetable Rabi · Year-round Sep–Jan 40–60 30 × 10 cm 6.0–7.0 250–400 15–25 10–12 kg 20–30 t Aphid, white rust
Carrot Vegetable Rabi Aug–Nov 90–110 30 × 8 cm 6.0–7.0 350–500 15–22 5–6 kg 20–30 t Leaf blight, aphid, nematode
Beetroot Vegetable Rabi Sep–Nov 80–100 30 × 10 cm 6.0–7.5 300–450 15–24 7–8 kg 20–30 t Leaf spot, aphid
Turnip Vegetable Rabi Sep–Nov 55–75 30 × 10 cm 6.0–7.0 250–400 13–22 4–5 kg 20–25 t Aphid, white rust
Spinach (Palak) Vegetable Rabi · Year-round Sep–Feb 35–50 25 × 5 cm 6.0–7.5 200–350 15–25 25–30 kg 12–18 t Leaf spot, aphid
Fenugreek (Methi) Vegetable Rabi Oct–Nov 40–60 25 × 5 cm 6.0–7.5 200–350 15–25 25–30 kg 8–12 t Powdery mildew, aphid
Amaranth (Leafy) Vegetable Year-round Feb–Sep 30–45 20 × 10 cm 6.0–7.5 200–350 22–32 2–3 kg 10–15 t Leaf webber, stem weevil
Lettuce Vegetable Rabi Sep–Nov 60–80 30 × 30 cm 6.0–7.0 250–400 13–20 400–500 g 15–20 t Aphid, downy mildew
Celery Vegetable Rabi Sep–Oct 110–130 40 × 25 cm 6.0–7.0 400–600 15–22 2–3 kg 20–25 t Leaf spot, aphid
Sweet Potato Vegetable Kharif · Rabi Jun–Jul, Oct–Nov 100–130 60 × 20 cm 5.5–6.8 400–600 21–30 35–40 k vines 20–25 t Weevil, leaf curl
Colocasia (Arbi) Vegetable Kharif Jun–Jul 150–180 60 × 45 cm 5.5–7.0 800–1200 21–32 2–2.5 t corms 15–20 t Leaf blight, aphid
Elephant Foot Yam Vegetable Kharif Apr–May 210–240 90 × 90 cm 5.5–7.0 800–1200 25–35 10–12 t corms 30–40 t Collar rot, mosaic
Drumstick (Moringa) Vegetable Perennial Jun–Jul 180–240 2.5 × 2.5 m 6.0–7.5 500–800 25–35 600 g 25–30 t pods Hairy caterpillar, fruit fly
Banana Fruit Perennial Jun–Jul, Feb–Mar 300–365 1.8 × 1.8 m 6.0–7.5 1200–2000 20–35 3,000 suckers 50–70 t Sigatoka, panama wilt, weevil
Mango Fruit Perennial Jul–Aug (planting) 4–5 yr to bear 10 × 10 m 5.5–7.5 700–1000 24–30 100 grafts 8–12 t Hopper, powdery mildew, fruit fly
Papaya Fruit Year-round Feb–Mar, Jun–Jul 270–300 1.8 × 1.8 m 6.0–7.0 1000–1500 22–32 250–300 g 40–60 t Ring spot virus, mealybug
Guava Fruit Perennial Jul–Aug (planting) 2–3 yr to bear 6 × 6 m 6.0–7.5 800–1000 23–30 270 plants 20–25 t Fruit fly, wilt, anthracnose
Sweet Orange Fruit Perennial Jul–Aug (planting) 4–5 yr to bear 6 × 6 m 6.0–7.5 900–1200 20–32 270 plants 20–25 t Citrus canker, leaf miner, psylla
Mandarin (Kinnow) Fruit Perennial Jul–Aug (planting) 4–5 yr to bear 6 × 6 m 6.0–7.5 900–1200 18–30 270 plants 20–30 t Citrus canker, greening, leaf miner
Lemon Fruit Perennial Jul–Aug (planting) 3–4 yr to bear 5 × 5 m 6.0–7.5 800–1100 20–32 400 plants 15–20 t Canker, leaf miner, gummosis
Grapes Fruit Perennial Jan–Feb (planting) 2–3 yr to bear 3 × 2 m 6.5–7.5 600–900 15–35 1,650 vines 20–30 t Downy mildew, powdery mildew, thrips
Pomegranate Fruit Perennial Jul–Aug (planting) 2–3 yr to bear 5 × 5 m 6.5–7.5 600–900 20–35 400 plants 15–20 t Bacterial blight, fruit borer
Apple Fruit Perennial Dec–Jan (planting) 4–6 yr to bear 5 × 5 m 5.5–6.5 800–1200 10–24 400 plants 15–20 t Scab, codling moth, woolly aphid
Pear Fruit Perennial Dec–Jan (planting) 4–6 yr to bear 6 × 6 m 6.0–7.0 800–1100 10–25 270 plants 15–20 t Scab, leaf blight
Peach Fruit Perennial Dec–Jan (planting) 3–4 yr to bear 5 × 5 m 6.0–7.0 700–1000 12–26 400 plants 10–15 t Leaf curl, fruit fly
Plum Fruit Perennial Dec–Jan (planting) 3–4 yr to bear 5 × 5 m 6.0–7.0 700–1000 12–26 400 plants 10–15 t Brown rot, aphid
Litchi Fruit Perennial Jun–Sep (planting) 5–7 yr to bear 8 × 8 m 5.5–7.0 1200–1600 20–35 156 plants 8–12 t Fruit borer, mite, fruit cracking
Sapota (Chikoo) Fruit Perennial Jun–Jul (planting) 4–5 yr to bear 8 × 8 m 6.0–8.0 900–1300 20–32 156 plants 15–20 t Bud borer, leaf spot
Custard Apple Fruit Perennial Jun–Jul (planting) 3–4 yr to bear 5 × 5 m 6.5–7.5 600–800 23–32 400 plants 8–10 t Mealybug, anthracnose
Jackfruit Fruit Perennial Jun–Jul (planting) 5–7 yr to bear 10 × 10 m 6.0–7.5 1000–1500 22–35 100 plants 15–20 t Fruit rot, shoot borer
Pineapple Fruit Perennial Jul–Sep 450–540 60 × 30 cm 5.0–6.0 1000–1500 22–32 43 k suckers 50–60 t Mealybug, heart rot
Ber (Indian Jujube) Fruit Perennial Jul–Aug (planting) 2–3 yr to bear 6 × 6 m 6.0–8.5 400–600 20–35 270 plants 15–20 t Fruit fly, powdery mildew
Amla Fruit Perennial Jul–Aug (planting) 4–5 yr to bear 8 × 8 m 6.0–8.0 600–900 20–35 156 plants 10–15 t Rust, bark eating caterpillar
Fig Fruit Perennial Jun–Jul (planting) 2–3 yr to bear 5 × 5 m 6.0–7.5 600–800 20–32 400 plants 10–15 t Rust, stem borer
Date Palm Fruit Perennial Feb–Mar (planting) 5–7 yr to bear 8 × 8 m 7.0–8.5 1200–1800 25–40 156 palms 10–15 t Graphiola leaf spot, borer
Strawberry Fruit Rabi Sep–Oct 90–120 30 × 30 cm 5.5–6.5 400–600 15–25 55 k runners 10–15 t Grey mould, mite, leaf spot
Kiwi Fruit Perennial Dec–Jan (planting) 4–5 yr to bear 4 × 5 m 5.5–7.0 900–1200 10–25 500 vines 12–18 t Root rot, leaf spot
Avocado Fruit Perennial Jun–Jul (planting) 4–5 yr to bear 8 × 8 m 5.5–6.5 1000–1400 20–30 156 plants 8–12 t Anthracnose, root rot
Dragon Fruit Fruit Perennial Jun–Jul (planting) 18–24 mo to bear 3 × 3 m 5.5–7.0 600–900 20–35 1,100 posts 10–15 t Stem canker, mealybug
Almond Nut Perennial Dec–Jan (planting) 4–5 yr to bear 6 × 6 m 6.0–7.5 700–1000 10–28 270 plants 1.5–2 t Leaf blight, hairy caterpillar
Walnut Nut Perennial Dec–Jan (planting) 6–8 yr to bear 10 × 10 m 6.0–7.5 800–1200 10–25 100 plants 2–3 t Anthracnose, walnut blight
Pecan Nut Perennial Dec–Jan (planting) 6–8 yr to bear 10 × 10 m 6.0–7.0 900–1300 15–30 100 plants 1.5–2.5 t Scab, aphid, shuck decline
Pistachio Nut Perennial Jan–Feb (planting) 6–8 yr to bear 6 × 6 m 7.0–8.0 600–900 15–35 270 plants 1.5–2 t Alternaria blight, twig borer
Hazelnut Nut Perennial Dec–Jan (planting) 4–5 yr to bear 5 × 5 m 6.0–7.0 700–1000 10–24 400 plants 1.5–2 t Blight, filbert weevil
Turmeric Spice Kharif May–Jun 240–270 30 × 20 cm 5.5–7.5 1200–1500 20–30 2–2.5 t rhizome 25–30 t fresh Rhizome rot, leaf spot, shoot borer
Ginger Spice Kharif Apr–May 210–240 25 × 20 cm 5.5–6.5 1300–1800 20–30 1.5–2 t rhizome 15–20 t fresh Soft rot, bacterial wilt
Coriander Spice Rabi Oct–Nov 90–110 30 × 15 cm 6.0–8.0 250–400 15–25 10–15 kg 1–1.5 t Powdery mildew, aphid, wilt
Cumin Spice Rabi Nov–Dec 100–120 30 × 10 cm 6.8–8.3 250–350 15–25 12–15 kg 0.6–0.8 t Wilt, blight, aphid
Fennel Spice Rabi Oct–Nov 140–160 45 × 20 cm 6.5–8.0 350–500 15–25 8–10 kg 1.5–2 t Aphid, blight, wilt
Fenugreek (Seed) Spice Rabi Oct–Nov 120–140 25 × 10 cm 6.0–7.5 250–400 15–25 20–25 kg 1.2–1.8 t Powdery mildew, root rot
Garlic Spice Rabi Oct–Nov 130–160 15 × 10 cm 6.0–7.0 350–500 12–24 500–600 kg cloves 8–12 t Thrips, purple blotch, basal rot
Black Pepper Spice Perennial Jun–Jul (planting) 3–4 yr to bear 3 × 3 m 5.5–6.5 2000–3000 20–32 1,100 vines 2–3 t dry Quick wilt, pollu beetle
Cardamom (Small) Spice Perennial Jun–Jul (planting) 2–3 yr to bear 2 × 2 m 5.0–6.5 1500–2500 15–28 2,500 plants 150–250 kg dry Katte virus, thrips, rot
Cardamom (Large) Spice Perennial Jun–Jul (planting) 3 yr to bear 1.5 × 1.5 m 5.0–6.5 2000–3000 10–25 4,400 plants 200–300 kg dry Chirke, foorkey virus
Clove Spice Perennial Jun–Jul (planting) 6–8 yr to bear 6 × 6 m 5.5–7.0 1500–2500 20–30 270 plants 1–2 kg/tree Leaf rot, seedling wilt
Cinnamon Spice Perennial Jun–Jul (planting) 3–4 yr to harvest 2 × 2 m 5.0–7.0 1500–2500 20–30 2,500 plants 150–200 kg quill Leaf spot, stripe canker
Nutmeg Spice Perennial Jun–Jul (planting) 6–8 yr to bear 8 × 8 m 5.5–7.0 1500–2500 20–32 156 plants 500–1000 fruits/tree Fruit rot, die-back
Ajwain Spice Rabi Oct–Nov 140–160 45 × 20 cm 6.5–8.0 250–400 15–25 3–4 kg 0.8–1.2 t Powdery mildew, aphid
Dill Spice Rabi Oct–Nov 110–130 30 × 15 cm 6.0–7.5 250–400 15–25 8–10 kg 0.8–1 t Aphid, powdery mildew
Tamarind Spice Perennial Jun–Jul (planting) 6–8 yr to bear 10 × 10 m 6.0–8.0 700–1000 22–35 100 plants 150–200 kg/tree Fruit borer, scale
Vanilla Spice Perennial Jun–Jul (planting) 3 yr to bear 2 × 1.5 m 6.0–7.0 1500–2500 21–32 1,600 vines 300–500 kg green Bean rot, stem rot
Marigold Flower Year-round Jun, Sep, Jan 60–90 45 × 30 cm 6.0–7.5 350–500 18–30 1–1.5 kg 15–20 t Leaf spot, thrips, red spider mite
Rose Flower Perennial Sep–Oct (planting) 90–120 to flower 60 × 45 cm 6.0–7.0 600–900 15–28 37 k plants 8–10 lakh blooms Black spot, powdery mildew, thrips
Jasmine Flower Perennial Jun–Jul (planting) 1–2 yr to bear 1.5 × 1.5 m 6.5–7.5 700–1000 20–32 4,400 plants 8–12 t Bud worm, leaf webber, gall mite
Chrysanthemum Flower Rabi Jun–Jul 110–130 30 × 30 cm 6.0–7.0 400–600 15–25 1.1 lakh cuttings 15–20 t Leaf spot, aphid, thrips
Tuberose Flower Kharif Mar–Apr 90–120 30 × 20 cm 6.5–7.5 500–700 20–30 2–2.5 lakh bulbs 15–20 t spikes Aphid, thrips, stem rot
Gladiolus Flower Rabi Sep–Nov 90–120 30 × 20 cm 6.0–7.0 400–600 15–25 2–2.5 lakh corms 2–2.5 lakh spikes Fusarium wilt, thrips
Gerbera Flower Protected Year-round 90–100 to flower 30 × 30 cm 5.5–6.5 Drip fertigation 18–26 60 k plants 200–250 stems/m² Powdery mildew, whitefly, mite
Carnation Flower Protected Year-round 120–150 to flower 15 × 15 cm 6.0–7.0 Drip fertigation 13–22 2.5 lakh plants 250–300 stems/m² Fusarium wilt, thrips, mite
Orchid Flower Protected Year-round 18–24 mo to bear 30 × 30 cm 5.5–6.5 Misting 20–30 40 k plants 4–6 spikes/plant Black rot, scale, thrips
Anthurium Flower Protected Year-round 12–18 mo to bear 30 × 30 cm 5.5–6.5 Misting 18–28 60 k plants 6–8 blooms/plant Bacterial blight, mite
Aloe Vera Medicinal Perennial Jun–Jul 240–300 60 × 45 cm 6.0–8.0 400–600 20–35 25 k suckers 30–40 t leaf Leaf spot, mealybug
Ashwagandha Medicinal Kharif Jun–Jul 150–180 30 × 10 cm 6.5–8.0 300–450 20–32 10–12 kg 0.6–0.8 t root Leaf spot, aphid
Tulsi (Holy Basil) Medicinal Kharif Apr–May 90–110 45 × 45 cm 6.0–7.5 400–600 20–32 300–400 g 10–12 t herb Leaf roller, powdery mildew
Lemongrass Medicinal Perennial Jun–Jul 90 per cut 60 × 45 cm 5.5–7.5 800–1200 20–32 35 k slips 15–20 t herb Leaf blight, rust
Mentha (Menthol Mint) Medicinal Zaid Jan–Feb 110–130 45 × 30 cm 6.0–7.5 600–900 20–30 400–500 kg suckers 100–150 kg oil Leaf spot, hairy caterpillar
Stevia Medicinal Perennial Feb–Mar 90 per cut 45 × 30 cm 6.0–7.5 600–900 18–30 90 k plants 3–4 t dry leaf Leaf spot, wilt
Isabgol (Psyllium) Medicinal Rabi Nov–Dec 110–130 30 × 10 cm 7.0–8.5 250–350 15–25 4–5 kg 0.8–1.2 t Downy mildew, aphid
Senna Medicinal Kharif · Rabi Jul, Oct 110–130 45 × 30 cm 7.0–8.5 250–400 20–35 15–20 kg 1–1.5 t leaf Leaf spot, pod borer
Safed Musli Medicinal Kharif Jun–Jul 180–210 30 × 20 cm 6.0–7.5 600–900 20–32 5–6 q roots 2–2.5 t fresh root Root rot, leaf spot
Vetiver (Khus) Medicinal Perennial Jun–Jul 540–600 60 × 45 cm 5.5–8.0 800–1200 20–35 35 k slips 20–25 kg oil Root borer, leaf blight
Patchouli Medicinal Perennial Jun–Jul 150 per cut 60 × 60 cm 5.5–7.0 1500–2000 22–30 28 k cuttings 40–60 kg oil Leaf blight, wilt, nematode
Berseem Fodder Rabi Oct–Nov 50 per cut Broadcast 6.5–7.5 500–700 15–25 20–25 kg 80–100 t green Root rot, stem rot
Lucerne (Alfalfa) Fodder Perennial Oct–Nov 45 per cut 30 cm rows 6.5–7.5 600–900 15–30 12–15 kg 80–100 t green Wilt, aphid
Napier (Hybrid) Fodder Perennial Jun–Jul 60 per cut 90 × 60 cm 5.5–7.5 1000–1500 25–35 20 k slips 200–250 t green Leaf blight, stem borer
Fodder Maize Fodder Kharif · Zaid Jun–Jul, Feb 60–70 30 × 15 cm 6.0–7.5 400–600 21–30 50–60 kg 40–50 t green Stem borer, leaf blight
Fodder Sorghum Fodder Kharif Jun–Jul 60–75 30 × 10 cm 6.0–7.5 350–500 25–32 35–40 kg 40–50 t green Shoot fly, anthracnose
Fodder Cowpea Fodder Kharif Jun–Jul 55–70 30 × 10 cm 5.5–7.5 300–450 25–35 35–40 kg 25–30 t green Aphid, leaf spot
Oats (Fodder) Fodder Rabi Oct–Nov 60–70 25 cm rows 5.5–7.0 350–500 15–25 80–100 kg 35–45 t green Rust, aphid

Figures are planning ranges, not prescriptions. Confirm against your local KVK or state agricultural university before committing an acre to them.

Discover more from Agriculture Novel

Subscribe now to keep reading and get access to the full archive.

Continue reading