Environment:
 - OpenBSD 4.9, stock (base) apache with self-signed certificate
 - behind a SOHO NAT router (with relevant in-bound redirects)

Problem: non-local SSL connections never complete the handshake 
(verified while monitoring the interface with tcpdump, see below)

During troubleshooting I was able to eliminate a few suspects:
 - Regular un-encrypted HTTP (port 80) works every time;
 - https:// from the same LAN (i.e. no NAT) always works;
 - SSH always works (whether local or remote);
 - PF seems to have no bearing -- no difference in behavior whether 
enabled, enabled with "pass in quick" for the remote test host, or even 
altogether disabled.

Unfortunately, I cannot eliminate the NAT device and need to find a way 
to work with it.

All clues(ticks) are appreciated,
-Jacob.

Sanitized tcpdump -netttvv log:
Jul 11 17:26:39.589073 00:0f:b5:ww:ww:ww 00:01:03:zz:zz:zz 0800 74: 
a.b.c.d.37325 > 192.168.x.y.443: S [tcp sum ok] 
2560292710:2560292710(0) win 5840 <mss 1452,sackOK,timestamp 3005841692 
0,nop,wscale 0> (DF) (ttl 45, id 30330, len 60)
Jul 11 17:26:39.590087 00:01:03:zz:zz:zz 00:0f:b5:ww:ww:ww 0800 78: 
192.168.x.y.443 > a.b.c.d.37325: S [tcp sum ok] 
1786229842:1786229842(0) ack 2560292711 win 16384 <mss 
1460,nop,nop,sackOK,nop,wscale 3,nop,nop,timestamp 1751359378 
3005841692> (DF) (ttl 64, id 5701, len 64)
Jul 11 17:26:42.584962 00:0f:b5:ww:ww:ww 00:01:03:zz:zz:zz 0800 74: 
a.b.c.d.37325 > 192.168.x.y.443: S [tcp sum ok] 
2560292710:2560292710(0) win 5840 <mss 1452,sackOK,timestamp 3005841992 
0,nop,wscale 0> (DF) (ttl 45, id 30331, len 60)
Jul 11 17:26:42.585565 00:01:03:zz:zz:zz 00:0f:b5:ww:ww:ww 0800 78: 
192.168.x.y.443 > a.b.c.d.37325: S [tcp sum ok] 
1786229842:1786229842(0) ack 2560292711 win 16384 <mss 
1460,nop,nop,sackOK,nop,wscale 3,nop,nop,timestamp 1751359384 
3005841992> (DF) (ttl 64, id 52775, len 64)
Jul 11 17:26:42.589685 00:01:03:zz:zz:zz 00:0f:b5:ww:ww:ww 0800 78: 
192.168.x.y.443 > a.b.c.d.37325: S [tcp sum ok] 
1786229842:1786229842(0) ack 2560292711 win 16384 <mss 
1460,nop,nop,sackOK,nop,wscale 3,nop,nop,timestamp 1751359384 
3005841992> (DF) (ttl 64, id 3806, len 64)
Jul 11 17:26:48.584959 00:0f:b5:ww:ww:ww 00:01:03:zz:zz:zz 0800 74: 
a.b.c.d.37325 > 192.168.x.y.443: S [tcp sum ok] 
2560292710:2560292710(0) win 5840 <mss 1452,sackOK,timestamp 3005842592 
0,nop,wscale 0> (DF) (ttl 45, id 30332, len 60)
Jul 11 17:26:48.585435 00:01:03:zz:zz:zz 00:0f:b5:ww:ww:ww 0800 78: 
192.168.x.y.443 > a.b.c.d.37325: S [tcp sum ok] 
1786229842:1786229842(0) ack 2560292711 win 16384 <mss 
1460,nop,nop,sackOK,nop,wscale 3,nop,nop,timestamp 1751359396 
3005842592> (DF) (ttl 64, id 4014, len 64)
Jul 11 17:26:48.590024 00:01:03:zz:zz:zz 00:0f:b5:ww:ww:ww 0800 78: 
192.168.x.y.443 > a.b.c.d.37325: S [tcp sum ok] 
1786229842:1786229842(0) ack 2560292711 win 16384 <mss 
1460,nop,nop,sackOK,nop,wscale 3,nop,nop,timestamp 1751359396 
3005842592> (DF) (ttl 64, id 59349, len 64)
Jul 11 17:27:00.584563 00:0f:b5:ww:ww:ww 00:01:03:zz:zz:zz 0800 74: 
a.b.c.d.37325 > 192.168.x.y.443: S [tcp sum ok] 
2560292710:2560292710(0) win 5840 <mss 1452,sackOK,timestamp 3005843792 
0,nop,wscale 0> (DF) (ttl 45, id 30333, len 60)
Jul 11 17:27:00.584880 00:01:03:zz:zz:zz 00:0f:b5:ww:ww:ww 0800 78: 
192.168.x.y.443 > a.b.c.d.37325: S [tcp sum ok] 
1786229842:1786229842(0) ack 2560292711 win 16384 <mss 
1460,nop,nop,sackOK,nop,wscale 3,nop,nop,timestamp 1751359419 
3005843792> (DF) (ttl 64, id 4439, len 64)
Jul 11 17:27:00.590727 00:01:03:zz:zz:zz 00:0f:b5:ww:ww:ww 0800 78: 
192.168.x.y.443 > a.b.c.d.37325: S [tcp sum ok] 
1786229842:1786229842(0) ack 2560292711 win 16384 <mss 
1460,nop,nop,sackOK,nop,wscale 3,nop,nop,timestamp 1751359419 
3005843792> (DF) (ttl 64, id 17093, len 64)
Jul 11 17:27:24.585829 00:0f:b5:ww:ww:ww 00:01:03:zz:zz:zz 0800 74: 
a.b.c.d.37325 > 192.168.x.y.443: S [tcp sum ok] 
2560292710:2560292710(0) win 5840 <mss 1452,sackOK,timestamp 3005846192 
0,nop,wscale 0> (DF) (ttl 45, id 30334, len 60)
Jul 11 17:27:24.586302 00:01:03:zz:zz:zz 00:0f:b5:ww:ww:ww 0800 78: 
192.168.x.y.443 > a.b.c.d.37325: S [tcp sum ok] 
1786229842:1786229842(0) ack 2560292711 win 16384 <mss 
1460,nop,nop,sackOK,nop,wscale 3,nop,nop,timestamp 1751359467 
3005846192> (DF) (ttl 64, id 12052, len 64)
Jul 11 17:27:24.592057 00:01:03:zz:zz:zz 00:0f:b5:ww:ww:ww 0800 78: 
192.168.x.y.443 > a.b.c.d.37325: S [tcp sum ok] 
1786229842:1786229842(0) ack 2560292711 win 16384 <mss 
1460,nop,nop,sackOK,nop,wscale 3,nop,nop,timestamp 1751359467 
3005846192> (DF) (ttl 64, id 15080, len 64)

Obligatory dmesg:

OpenBSD 4.9 (GENERIC) #671: Wed Mar  2 07:09:00 MST 2011
    dera...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: Intel Pentium III ("GenuineIntel" 686-class) 848 MHz
cpu0: 
FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PSE36,MMX,FXSR,
SSE
real mem  = 267915264 (255MB)
avail mem = 253403136 (241MB)
mainbus0 at root
bios0 at mainbus0: AT/286+ BIOS, date 01/21/04, BIOS32 rev. 0 @ 
0xffe90, SMBIOS rev. 2.3 @ 0xf6ef0 (60 entries)
bios0: vendor Dell Computer Corporation version "A23" date 01/21/2004
bios0: Dell Computer Corporation Latitude C800
apm0 at bios0: Power Management spec V1.2
apm0: battery life expectancy 100%
apm0: AC on, battery charge high, estimated 9:34 hours
acpi at bios0 function 0x0 not configured
pcibios0 at bios0: rev 2.1 @ 0xf0000/0x10000
pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xfbc20/192 (10 entries)
pcibios0: PCI Interrupt Router at 000:31:0 ("Intel 82371 ISA and IDE" 
rev 0x00)
pcibios0: PCI bus #4 is the last bus
bios0: ROM list: 0xc0000/0x10000
cpu0 at mainbus0: (uniprocessor)
pci0 at mainbus0 bus 0: configuration mode 1 (bios)
pchb0 at pci0 dev 0 function 0 "Intel 82815 Host" rev 0x02
intelagp0 at pchb0
agp0 at intelagp0: aperture at 0xe4000000, size 0x2400000
ppb0 at pci0 dev 1 function 0 "Intel 82815 AGP" rev 0x02
pci1 at ppb0 bus 1
vga1 at pci1 dev 0 function 0 "ATI Rage 128 Mobility" rev 0x00
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
ppb1 at pci0 dev 30 function 0 "Intel 82801BAM Hub-to-PCI" rev 0x03
pci2 at ppb1 bus 2
mem address conflict 0x10000000/0x1000
mem address conflict 0x10001000/0x1000
esa0 at pci2 dev 3 function 0 "ESS Maestro 3" rev 0x10: irq 5
ac97: codec id 0x83847609 (SigmaTel STAC9721/23)
ac97: codec features 18 bit DAC, 18 bit ADC, SigmaTel 3D
audio0 at esa0
xl0 at pci2 dev 6 function 0 "3Com 3c556 100Base-TX" rev 0x10: irq 10, 
address 00:01:03:zz:zz:zz
tqphy0 at xl0 phy 0: 78Q2120 10/100 PHY, rev. 11
"3Com V.90 Modem" rev 0x10 at pci2 dev 6 function 1 not configured
cbb0 at pci2 dev 15 function 0 "TI PCI4451 CardBus" rev 0x00: irq 10
cbb1 at pci2 dev 15 function 1 "TI PCI4451 CardBus" rev 0x00: irq 10
"TI PCI4451 FireWire" rev 0x00 at pci2 dev 15 function 2 not configured
cardslot0 at cbb0 slot 0 flags 0
cardbus0 at cardslot0: bus 3 device 0 cacheline 0x8, lattimer 0x20
pcmcia0 at cardslot0
cardslot1 at cbb1 slot 1 flags 0
cardbus1 at cardslot1: bus 4 device 0 cacheline 0x8, lattimer 0x20
pcmcia1 at cardslot1
ichpcib0 at pci0 dev 31 function 0 "Intel 82801BAM LPC" rev 0x03: 24-
bit timer at 3579545Hz
pciide0 at pci0 dev 31 function 1 "Intel 82801BAM IDE" rev 0x03: DMA, 
channel 0 wired to compatibility, channel 1 wired to compatibility
wd0 at pciide0 channel 0 drive 0: <IC25N020ATCS04-0>
wd0: 16-sector PIO, LBA, 19077MB, 39070080 sectors
atapiscsi0 at pciide0 channel 0 drive 1
scsibus0 at atapiscsi0: 2 targets
cd0 at scsibus0 targ 0 lun 0: <MATSHITA, UJDA330, 1.05> ATAPI 5/cdrom 
removable
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 5
cd0(pciide0:0:1): using PIO mode 4, DMA mode 2
pciide0: channel 1 ignored (disabled)
uhci0 at pci0 dev 31 function 2 "Intel 82801BA USB" rev 0x03: irq 10
isa0 at ichpcib0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
wsmouse0 at pms0 mux 0
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
lpt0 at isa0 port 0x378/4 irq 7
npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
usb0 at uhci0: USB revision 1.0
uhub0 at usb0 "Intel UHCI root hub" rev 1.00/1.00 addr 1
biomask ef4d netmask ef4d ttymask ffdf
mtrr: Pentium Pro MTRR support
com3 at pcmcia0 function 0 "MEGAHERTZ, XJ2288, V.34 PCMCIA MODEM" port 
0xe3f8/8: ns16550a, 16 byte fifo
com3: probed fifo depth: 0 bytes
vscsi0 at root
scsibus1 at vscsi0: 256 targets
softraid0 at root
root on wd0a swap on wd0b dump on wd0b

Reply via email to