[Ratkaisu] Tiedoston lähettäminen IRC-tuttavalle ei onnistu Pidginissä

Lähtökohta
Olen asentanut firehol-paketin, asettanut /etc/default/firehol -tiedostossa olevan START_FIREHOL -parametrin arvoksi YES ja muokannut /etc/firehol/firehol.conf -tiedostoa niin, että lähtökohtaisesti useimmat verkkoyhteyteni porteista on suljettu.

Olen käynnistänyt Pidgin-pikaviestimen. Olen lisännyt Pidginiin IRC-protokollan välityksellä yhdistettävän tuttavan. Olen avannut keskustelun tuttavan kanssa, ja keskusteluyhteys toimii.

Haluan lähettää tuttavalle kuvatiedoston, joten valitsen keskusteluikkunan Keskustelu-valikosta Lähetä tiedosto... -kohteen, etsin avautuneesta tiedostonvalitsimesta lähetettävän tiedoston, valitsen sen ja painan Avaa-nappia. Tiedostonsiirtoikkuna avautuu, ja sen listalla valitsemani tiedoston mainitaan odottavan lähetyksen alkamista.

Ongelma
Tiedoston lähetys ei käynnisty. Mikäli tuttavani saa ilmoituksen tiedostonsiirtopyynnöstäni, sen hyväksymisellä ei ole vaikutusta yhteyden tässä päässä. Joillain yrityskerroilla tuttava ei saa edes ilmoitusta tiedostonsiirtopyynnöstäni.
Ongelman syy
FireHOL-palomuuri on tukkinut portit, joita Pidgin yrittää käyttää tiedoston siirtämiseen.
Ratkaisu
Avaan palomuurista yhden portin ja määrään sen jälkeen Pidginin käyttämään juuri sitä porttia tiedostonsiirtoihin.

  1. Avaan portin muokkaamalla /etc/firehol/firehol.conf -tiedostoa komentamalla sudo gedit /etc/firehol/firehol.conf avaamastani Päätteestä. Asetustiedoston avauduttua tekstieditorissa lisään siihen määrittelyn palvelulle, jonka nimeän pdcc:ksi:
    # Pidgin file transfer
    server_pdcc_ports="tcp/2048"
    client_pdcc_ports="any"

    Sen jälkeen määrittelen tämän portin interface any world -osion alla avattavaksi:

            # Let Pidgin file transfer through
    	server "pdcc" accept
    	client "pdcc" accept

    Muutosten jälkeen tiedoston keskiosa näyttää tässä tapauksessa seuraavalta, kun edellä lisäämäni rivit on korostettu lihavoinnilla:

    # Windows Live Messenger
    server_wlm_ports="tcp/1863 tcp/443"
    client_wlm_ports="any"
    
    # Pidgin's file transfer
    server_pdcc_ports="tcp/2048"
    client_pdcc_ports="any"
    
    interface any world
    
    	# Accept all client traffic on any interface
    	#client all accept
    
            # Let Windows Live Messenger through
    	server "wlm" accept
    	client "wlm" accept
    
    	# Let Pidgin's file transfer through
    	server "pdcc" accept
    	client "pdcc" accept
  2. Muutokset tehtyäni ja tallennettuani käynnistän FireHOL-palomuurin uudestaan sudo /etc/init.d/firehol restart -komennolla.
  3. Palomuurin käynnistyttyä uudestaan avaan Pidginin pääikkunan, ja otan Pidginin asetukset esille valitsemalla Työkalut-valikosta kohdan Asetukset. Avautuvasta ikkunasta otan esille Verkko-välilehden.
  4. Valitsen Portit-otsikon alla olevan Aseta kuunneltava porttialue -kohdan käyttöönotetuksi.
  5. Edelleen Portit-otsikon alla olevan porttialueen Ensimmäiseksi portiksi asetan edellä palomuurista avaamani portin 2048. Varmistan, että myös porttialueen Viimeinen portti on 2048.
  6. Suljen asetusikkunan sen Sulje-napista, jonka jälkeen sammutan Pidginin valitsemalla sen pääikkunan Tuttavat-valikosta kohdan Lopeta. Pidginin sulkeuduttua käynnistän sen uudestaan.

Tämän jälkeen tiedostojen siirtäminen IRC-protokollaa käyttävälle tuttavalleni onnistuu.

Huomautus
En ole varma, mutta epäilen, että mikäli tiedostonsiirtoon varattuja portteja on vain yksi kuten yllä olevan ratkaisun jälkeen on, tiedostoja voi siirtää Pidginissä vain yhden kerrallaan. Lisäksi tiedostojen siirtäminen ei onnistu, mikäli jokin toinen ohjelma käyttää sekin ratkaisussa valitsemaani porttia.
Mikäli näin on, ja mikäli minulla ilmenee tarvetta useammille yhtäaikaisille tiedostonsiirroille Pidginissä, tai tarvetta käyttää tiedostonsiirron tapahtuessa muita ohjelmia, jotka käyttävät samaa porttia, voin määrätä yhden portin sijasta haluamani kokoisen porttialueen avatuksi palomuurin asetuksissa. Sen jälkeen kerron Pidginille (ja mahdollisesti myös toiselle ohjelmalle) sen asetuksissa, että se voi käyttää tätä porttialuetta tiedostojen siirtämiseen.