Allow anonymous upload for Vsftpd?
You have created a dir called pub/upload:
# mkdir /var/ftp/pub/upload
But then you configured uploads to go to pub/incoming:
anon_root=/var/ftp/pub/incoming
So it's a simple path mismatch, all the rest seems OK.