<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7975531</id><updated>2012-02-13T22:40:25.713+01:00</updated><category term='ssh fidelizacion rsa psk login sin contraseña'/><category term='S'/><category term='Unix/Linux'/><title type='text'>YoseMan</title><subtitle type='html'>Administrando sistemas</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://yoseman.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>44</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7975531.post-8545693977083544339</id><published>2012-01-31T12:00:00.000+01:00</published><updated>2012-01-31T18:25:21.088+01:00</updated><title type='text'>Disco (vmdk) compartido entre VMs con VSphere 4</title><content type='html'>(MicroChuleta)&lt;br /&gt;&lt;br /&gt;Pasos para compartir un disco (en este caso para Oracle RAC) virtual entre varias máquinas virtuales:&lt;br /&gt;&lt;br /&gt;Crear un disco virtual desde una &lt;i&gt;Service Console&lt;/i&gt; de la siguiente forma:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;span style="font-size: xx-small;"&gt;vmkfstools -c 2g -d eagerzeroedthick -a lsilogic /vmfs/volumes/XXXXX/ORACLE_SHARED_LUN_1.vmdk&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: xx-small;"&gt;vmkfstools -w /vmfs/volumes/XXXXX/hd.vmdk&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&amp;nbsp;Agregar el disco a la primera VM en una nueva controladora SCSI cuyo modo de funcionamiento se cambiará a "Bus Sharing":&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img alt="" height="313" src="data:image/png;base64,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BRAAARAAARBQCEChFSRIAAEQAAEQAAEfEIBC+6AT4AIIgAAIgAAIKASg0AoSJIAACIAACICADwhAoX3QCXABBEAABEAABBQCUGgFCRJAAARAAARAwAcEoNA+6AS4AAIgAAIgAAIKASi0ggQJIAACIAACIOADAlBoH3QCXAABEAABEAABhQAUWkGCBBAAARAAARDwAQEotA86AS6AAAiAAAiAgEIACq0gQQIIgAAIgAAI+IAAFNoHnQAXQAAEQAAEQEAhAIVWkCABBEAABEAABHxAAArtg06ACyAAAiAAAiCgEIBCK0iQAAIgAAIgAAI+IACF9kEnwAUQAAEQAAEQUAhAoRUkSAABEAABEAABHxCAQvugE+ACCIAACIAACCgEoNAKEiSAAAiAAAiAgA8IQKF90AlwAQRAAARAAAQUAlBoBQkSQAAEQAAEQMAHBKDQPugEuAACIAACIAACCgEotIIECSAAAiAAAiDgAwJQaB90AlwAARAAARAAAYUAFFpBggQQAAEQAAEQ8AEBKLQPOgEugAAIgAAIgIBCAAqtIEECCIAACIAACPiAABTaB50AF0AABEAABEBAIQCFVpAgAQRAAARAAAR8QAAK7YNOgAsgAAIgAAIgoBCAQitIkAACIAACIAACPiAAhfZBJ8AFEAABEAABEFAIQKEVJEgAARAAARAAAR8QgEL7oBPgAgiAAAiAAAgoBKDQChIkgAAIgAAIgIAPCEChfdAJcAEEQAAEQAAEFAJQaAUJEkAABEAABEDABwSg0D7oBLgAAiAAAiAAAgoBKLSCBAkgAAIgAAIg4AMCUGgfdAJcAAEQAAEQAAGFABRaQYIEEAABEAABEPABASi0DzoBLoAACIAACICAQgAKrSBBAgiAAAiAAAj4gAAU2gedABdAAARAAARAQCEAhVaQIAEEQAAEQAAEfEAACu2DToALIAACIAACIKAQgEIrSJAAAiAAAiAAAj4gAIX2QSfABRAAARAAARBQCEChFSRIAAEQAAEQAAEfEIBC+6AT4AIIgAAIgAAIKASg0AoSJIAACIAACICADwhAoX3QCXABBEAABEAABBQCUGgFCRJAAARAAARAwAcEoNA+6AS4AAIgAAIgAAIKASi0ggQJIAACIAACIOADAlBoH3QCXAABEAABEAABhQAUWkGCBBAAARAAARDwAQEotA86AS6AAAiAAAiAgEIACq0gQQIIgAAIgAAI+IAAFNoHnQAXQAAEQAAEQEAhAIVWkCABBEAABEAABHxAAArtg06ACyAAAiAAAiCgEIBCK0iQAAIgAAIgAAI+IACF9kEnwAUQAAEQAAEQUAhAoRUkSAABEAABEAABHxCAQvugE+ACCIAACIAACCgEoNAKEiSAAAiAAAiAgA8IQKF90AlwAQRAAARAAAQUAlBoBQkSQAAEQAAEQMAHBKDQPugEuAACIAACIAACCgEotIIECSAAAiAAAiDgAwJQaB90AlwAARAAARAAAYUAFFpBggQQAAEQAAEQ8AEBKLQPOgEugAAIgAAIgIBCAAqtIEECCIAACIAACPiAABTaB50AF0AABEAABEBAIQCFVpAgAQRAAARAAAR8QAAK7YNOgAsgAAIgAAIgoBCAQitIkAACIAACIAACPiAAhfZBJ8AFEAABEAABEFAIQKEVJEgAARAAARAAAR8QgEL7oBPgAgiAAAiAAAgoBKDQChIkgAAIgAAIgIAPCEChfdAJcAEEQAAEQAAEFAJQaAUJEkAABEAABEDABwSg0D7oBLgAAiAAAiAAAgoBKLSCBAkgAAIgAAIg4AMCUGgfdAJcAAEQAAEQAAGFABRaQYIEEAABEAABEPABASi0DzoBLoAACIAACICAQgAKrSBBAgiAAAiAAAj4gAAU2gedABdAAARAAARAQCEAhVaQIAEEQAAEQAAEfEAACu2DToALIAACIAACIKAQgEIrSJAAAiAAAiAAAj4gAIX2QSfABRAAARAAARBQCEChFSRIAAEQAAEQAAEfEIBC+6AT4AIIgAAIgAAIKASg0AoSJIAACIAACICADwhAoX3QCXABBEAABEAABBQCUGgFCRJAAARAAARAwAcEoNA+6AS4AAIgAAIgAAIKASi0ggQJIAACIAACIOADAlBoH3QCXAABEAABEAABhQAUWkGCBBAAARAAARDwAQEotA86AS6AAAiAAAiAgEIACq0gQQIIgAAIgAAI+IDAtT7wAS7EJYFHH3309OnTcek6nO4fgc2bN/fPAEqDAAiERAAKHRImZLIRWLRoEZgkJwF0fXL2O1o9IASg0AOCPe4rPXv2bNy3AQ3oEwF0fZ+woRAI9IUAnkP3hRrKgAAIgAAIgEC0CUCho00Y9kEABEAABECgLwSg0H2hhjIgAAIgAAIgEG0CUOhoE4Z9EAABEAABEOgLASh0X6ihDAiAAAiAAAhEm0Avc7mx5jXaHQD7IAACIAACIOBIwEuhsfDRERkSQQAEQAAEQCAGBLwUGgsfY9ABqAIEQAAEQAAEHAngObQjFiSCAAiAAAiAwAATgEIPcAegehAAARAAARBwJOA1yj1y5EjHMkgEARAAARAAARCIIIEX/9ihWvNS6O7u7hEjRqhlkAICIAACIAACIBBBArve6FSteSk05cZkMRUZUkAABEAABEAgBgTwHDoGkFEFCIAACIAACIRNAAodNjIUAAEQAAEQAIEYEIBCxwAyqgABEAABEACBsAn08hw6bHsoAAIgAAIDSiDB5rempKTQpF1Hoom33MatpdT85OlWa1+HrdAJhsnxe28kevzb8C6IuyAAAiDQfwJFRUXeRnp6erwzxMvd/7+98w9towzj+Lt0XWtXWURlbl03yYpl/UepI8VNFNF0atXRjRSdMCOz2tJRimvBwGadbgsyf4TiaHUbBmEoBtbBLKPNQNh/iyPW/TFW3AqdVjoqrrWlpGZtfd67/Ljmrt0luSR3yfegJXnz3vs+z+c53u/7vO/lQoOtUUxN3c57hjXaRcIKnbpxRmlBPUSjeAQ7QSB/COB7KAaKtfrBNt/CmqRC5xsmA13rMBUEQCDfCGBAztWI406xXI0s/AIBEAABEDA2ASi0seMH60EABEAABHKVABQ6VyMLv0AABEAABIxNAApt7PjBehAAAZ0SGLtw+PCFMZ0aB7NSIzDcXVvbPZxaG2rONpRCZwqKGnCoAwIgkEcESG4bY8epQXWuryi4r7RIR4MsDaFmc0xZEhpRE6qsDk+Gavna6Ivj4aPNl6FONepGHxdPXOyNeyloFBU0AwIgkG0Cg6fiMuBy+2c/Cod7z9hPP08WZtvA5Pq3Oqp6m7TL/miw1rXo8TmJnXnpSSjC4WV9xpJofSh0cpcazgIBEAAB7QmI+fKVrZ2vWeIy4LngFH2x6febI+seLisquh3Lq6NiPngqkmmf+jViGS/Tz3p3ZWtHlbNrsU4JubVwiAk2zzrDqTb/iF4Odzc5/X5ntTQF5/5Zmgfq+qLnaR+LFFsc7u9lroDbFmnG5uavY+6KXgo5YTf5LByRGUcs9eYl8YhSNEzt6fpWaEUonGZbW+SC0vX8TW0UUA8EQEAXBASB/Zq9d/q77w88u6YwND07H7XrD2/7G3v30ecnRnfttBbMz699qZPq8ay649Gz/deLTCTtJ1iL54yQaR94pthEj8kaPf8RL/v09UrdrHfb3F5ml4ycvrbqoQ4xxwzUCwm2zR1wMS7jJMy99YGBZoulucdltboCExP0ZnGobG46t4c1ScRNF7EkI0ig/VUVcfYK04pITh2ZrPidQ3Vilu3wHCcCJDOx1NttkyPKkItJPrFEe+v47MwZa9bqYiwMhU9/CFdT946eyOf+a5V0pRB3muXY2+omYlMk7Q1DiyAAAnlBgNSZtPSkp3VNSaGQLMfEWfCfVrk/t2+kF3+d6/jyvPXD5x8cu9B56OyfIpzysn/ujPjZ7v1Pl7CZyckQY1PB+Vtn29u37T/dsp2XTVOZTg5bq+s4KbE4og7fuMY8HrMnYpvjJmkYV+TaanM1ifKATOEUvOCi18wHZHOfV1cDsrVys9xcEpRqp18st1byG76srlYx0d5caaW3Qu7dE029FRBVyltNR4lucmhhdhY+Ai6BEb9u7OK6A9H0D9F1Ez6s9TvEi8ZW52DXbmTgjrp0sEebIAACOiLwxDsnPdt/a3S8+f4PQ9LcWWKiuMq9+oFHRm6N3xn4+JDfekRIot17NpkKGKNnS5tWsmAwKsXl9gN7Rr/6dnB2ckY/8sz9IQGu7+3qj7gmHX4j+mqpqEogOOJ6Zx/loXrKl8gHf29/nEBweaaFAUFtRK1R46cSIjXnpVhHNwqt6EeWoCjagkIQAIFcJxDa8tZJz5n2Yr7WvfT92oNXLm9Yv26liZU/te2xwtDU5NClSyPzobtlT1qZ99yVRZDWvfpJ6/wXnRf/1hs6S3MHcwp5JJex+I1pvj7JV3m9VU7JbWXSNCnmj7Bf28R6SPD0pM6CgbRYwJzVsRV9X5vwOpLj8VVwxcBYdtQLq/zhQxmR4pkaF+pmlVvuF4di7/I1Lxd0X5/HWh9Qswgjbx8lIAACICAjEJpZ/dzB0y+WXv/mg4sbDr7wULQC34f2Cu9qWjz1G4vmdpbtbW/gJRtqaspXFKxk619+d/fhQ3v3iZV27RJPffztll8anUfmjxysXSvrLYsFtB1Ne65kAN91phVts2gLX9eu6BJugKZVXpu3z1zdVkHaS5LuMNvNHv55bCuaElIhcc6iH8t2TavvARZzjjm8ExYbqzKLm6pWh4Ov1yoc4VV+kQmdFI8ouuWqcK6WRfwHv+j3y3xXx5nkt7/oB81qNq1S7Ef89UmNH9TOt5lZTzTs0beLdgtcAboZgarR/+gWAue9nIIruqCykGbRXi+/S19lfVQDARDQAwHtxqjCklJTMLrgbSoqvb+Y1rKFIzQjLFwXltCmNX8/Fwox09wMVZZUCwWDpkLGC4WKpuDUEqvnS2JbfhSi3FX89UmNB+QlzUnXB6Kb1Poy4612YU2XF+rbVQzr5ZH/uAhLhPjo3WJ95NA0zxmQeBd9K959IPmEVxvupl196SxOPRfUBAEQAAHVBEIz05K687PTk7Nx55JQT8YVxVULn6FQUbUZqJi/BPS9D52/cYHnIAACIAAC+U5AHzl0QlGIS7gTOheVQQAEQAAEQMAgBAyo0AYhCzNBAARAIAMEGhoaMtALusgKASh0VrCjUxAAgTQSyB/Roq9gp5GjzprOn7BGwUOhdXYNwhwQAIHUCOSVaKWGykhn53ZYhTvVx+XxSEah83AiIweHEhAAAX0SWOYbO/o0OGmr8sdTQpTDzpI8Hzt2bOsrjfIrIWGFzu2JjBwQSkAABEAABEAgTQREeV6q8YQVOocnMksxQjkIgAAIgAAIaE4gKs8tLS30xBJ5+/g+tJwJSkAABEAABEAgvQSk8iw+MU3eHxRazgQlIAACIAACIJBGAnHyTPvQip1BoRWxoBAEQAAEQAAE0kJApTxT31DotAQAjYIACIAACICAnICiPNM+tLwmlUChFbGgEARAAARAAAQ0JrCUPGMfWmPQaA4EQAAEQAAE1BNYRp6xD60eI2qCAAiAAAiAgJYEkpBn6h6r3FrGAG2BAAiAAAiAQByBe8oz9qFxzYAACIAACIBApgkkLc9kKHLoTEcL/YEACIAACOQJgVTkmRDxXy5bWFjwXR0XXoaPhQVWs2lVnhCEmyAAAiAAAiCQXQL01E8uwhIhPnq3OPxc7gX6gP/FDsVnhGbXAfQOAiAAAiAAArlKIE6Ib6/4F6vcuRpr+AUCIAACIGBsAlBoY8cP1oMACIAACOQqASh0rkYWfoEACIAACBibABTa2PGD9SAAAiAAArlKAAqdq5GFXyAAAiAAAsYmwO/l3jI4amwnYD0IgAAIgAAIgAAIgAAIgAAIgAAIZIDA/4VJ2z6LgcUHAAAAAElFTkSuQmCC" style="margin-left: auto; margin-right: auto;" width="400" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img alt="" height="311" src="data:image/png;base64,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" style="margin-left: auto; margin-right: auto;" width="400" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img alt="" height="312" src="data:image/png;base64,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" style="margin-left: auto; margin-right: auto;" width="400" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img alt="" height="311" src="data:image/png;base64,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wT0QAAEQAIGgE0CqDvoVgPhBAARAAAQynABSdYY3ENwDARAAARAIOgHsVx30KyAV8W/atCkVaqETBEAABIJJAKk6mO2ewqiXLVuWQu1QDQIgAALBI4BUHbw2T3HEPT09KbYA9SAAAiAQLAKYqw5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBFAqg5WeyNaEAABEAABzxFAqvZck8FhEAABEACBYBGIxAx3zZo1+/fvjykG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" style="margin-left: auto; margin-right: auto;" width="400" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Usar una nueva controladora SCSI&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Antes de arrancar la VM, convertir la nueva controladora SCSI de la que depende el disco compartido en &lt;i&gt;&lt;b&gt;Virtual &lt;/b&gt;&lt;/i&gt;o&lt;i&gt;&lt;b&gt; Phisical&lt;/b&gt;&lt;/i&gt; (según si nuestra arquitectura de VSphere tiene o no múltiples hosts ESX).&lt;br /&gt;&lt;br /&gt;Repetir el proceso en el resto de VMs. Recordar que el disco compartido siempre debe ir a una nueva controladora SCSI con el "Bus Sharing" activado. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;Thanks to: http://professionalvmware.com/2008/12/share-and-share-alike-sharing-vmdks-between-virtual-machines/&lt;/span&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-8545693977083544339?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/8545693977083544339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/8545693977083544339'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2012/01/disco-vmdk-compartido-entre-vms-con.html' title='Disco (vmdk) compartido entre VMs con VSphere 4'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-4480178106905784959</id><published>2011-12-02T14:55:00.001+01:00</published><updated>2011-12-27T21:52:09.681+01:00</updated><title type='text'>ZFS</title><content type='html'>&lt;br /&gt;ZFS ha sido originalmente un desarrollo de la otrora &lt;i&gt;SUN Microsystems&lt;/i&gt;. Ahora está bajo el control de Oracle. Las últimas características están solo disponibles en las últimas versiones de su sistema operativo Solaris, aunque hay implementaciones libres en la mayoría de sistemas operativos Unix Open-source.&lt;br /&gt;&lt;br /&gt;Algunos fabricantes de sistemas de almacenamiento como NetAPP tienen sistemas de ficheros similares para sus cabinas de discos. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;En ZFS hay &lt;b&gt;dos conceptos fundamentales&lt;/b&gt;, los ZPool y los Z Filesystem:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;ZPool:&lt;/b&gt; Agrupación de (usualmente) discos duros o particiones que conforma un volumen con todos ellos siguiendo un esquema de RAID.&lt;/li&gt;&lt;/ul&gt;Los ZPool conforman pueden conformar diferentes tipos de RAID, entre ellos:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;raidz: Similar a un raid-5&lt;/i&gt;&lt;br /&gt;&lt;i&gt;raidz2: Similar a un raid-6&lt;/i&gt;&lt;/blockquote&gt;El concepto detrás de estos volúmenes es crear un nivel de abstracción entre los dispositivos físicos y los filesystems, permitiendo gran flexibilidad. En el mundo Linux, sería similar a usar MD (raid software) + LVM.&lt;br /&gt;El ZPool se encarga del matenimiento de la información a nivel de raid. Toda la administración a este nivel se hace a través del comando "zpool".&lt;br /&gt;Los diferentes niveles RAID que ofrecen los ZPool (raidz, raidz-2, etc) son conceptualmente iguales a los clásicos (raid-5, raid-6) salvo porque aseguran no adolecer de un problema conocido como "write-hole".&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Z Filesystem:&amp;nbsp;&lt;/b&gt; Sobre la capa de abstracción de los ZPool, se crean los filesystems o ZFS's. Puede haber varios en cada ZPool y aquí es donde aparecen las características más interesantes de ZFS. Deduplicación, snapshots, compresión, detección de corrupciones, exportación directa por CIFS, NFS, iSCSI, cuotas,&amp;nbsp; etc, etc, etc... Toda la administración a este nivel se hace a través del comando "zfs".&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;i&gt;&lt;b&gt;Ejemplos sobre FreeBSD 8.2&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;Discos disponibles (sin particionar):&lt;br /&gt;/dev/ad2 (2GB)&lt;br /&gt;/dev/ad4 (2GB)&lt;br /&gt;/dev/ad6 (2GB)&lt;br /&gt;/dev/ad8 (2GB)&lt;br /&gt;/dev/ad10 (2GB)&lt;br /&gt;/dev/ad12 (2GB) &lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;ZPOOL MANAGEMENT&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Creación de un zpool raid-0 (stripping) con dos discos:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;&amp;nbsp;zpool create &lt;nombre-zpool&gt; /dev/ad2 /dev/ad4&lt;/nombre-zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;Creación de un zpool raid-1 (mirror)&amp;nbsp; con dos discos:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zpool create &lt;nombre-zpool&gt; mirror /dev/ad2 /dev/ad4&lt;/nombre-zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;Creación de un zpool raidz-2 con 4 discos, doble paridad y un disco de spare:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zpool create &lt;nombre-zpool&gt; raidz2 /dev/ad2 /dev/ad4 /dev/ad6 /dev/ad8 /dev/ad10 spare /dev/ad12 &lt;/nombre-zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;Destrucción de un zpool y liberación de los discos físicos que lo formaban:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zpool destroy &lt;nombre-zpool&gt;&lt;/nombre-zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;Añadir un disco más a un zpool:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zpool add &lt;nombre-zpool&gt; /dev/ad12&lt;/nombre-zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;Añadir (en caliente) un disco de spare a un zpool:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zpool add &lt;nombre-zpool&gt; spare /dev/ad6&lt;/nombre-zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;Comprobar los checksums de todo el zpool en busca de errores:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zpool scrub &lt;nombre-zpool&gt;&lt;/nombre-zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;Poner un disco off-line (solo permite hacerlo si el raid no se rompe):&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zpool offline &lt;nombre-zpool&gt; &lt;disco&gt;&lt;/disco&gt;&lt;/nombre-zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;Poner un disco on-line:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zpool online &lt;nombre-zpool&gt; &lt;disco&gt;&lt;/disco&gt;&lt;/nombre-zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;Reemplazar un disco de un zpool por otro:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zpoll replace &lt;nombre-zpool&gt; &lt;disco-viejo&gt; &lt;disco-nuevo&gt;&lt;/disco-nuevo&gt;&lt;/disco-viejo&gt;&lt;/nombre-zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Histórico de modificaciones en el ZPool:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zpool history &lt;nombre-zpool&gt;&lt;/nombre-zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;Información sobre los ZPool:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zpool list&lt;/i&gt;&lt;br /&gt;&lt;i&gt;zpool status&lt;/i&gt;&lt;/blockquote&gt;Comprobar el rendimiento del zpool en tiempo real:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zpool iostat&lt;/i&gt; &lt;/blockquote&gt;Los ZPool son automáticamente montados en el sistema de archivos. En dicho punto de montaje se puede escribir, pero no es recomendable ya que en teoría, no hay sistema de archivos creado sobre el ZPool.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;ZFS MANAGEMENT&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Crear (y montar) un sistema de archivos ZFS sobre un ZPool ya creado:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zfs create &lt;zpool&gt;/&lt;filesystem&gt;&lt;/filesystem&gt;&lt;/zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;Eliminar (previo desmontaje) de un sistema de archivos ZFS:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zfs destroy &lt;zpool&gt;/&lt;filesystem&gt;&lt;/filesystem&gt;&lt;/zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;Ver estado de los ZFS:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zfs list&lt;/i&gt;&lt;br /&gt;&lt;i&gt;df&lt;/i&gt;&lt;/blockquote&gt;Ver parámetros de un ZFS:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zfs get &lt;zpool&gt;/&lt;filesystem&gt;&lt;/filesystem&gt;&lt;/zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;Activar compresión (gzip por defecto) en el filesystem:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zfs set compression=on &lt;zpool&gt;/&lt;filesystem&gt;&lt;/filesystem&gt;&lt;/zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;Almacenar varias copias de cada archivo. Esto establece un nivel de redundancia a mayores sobre lo que ya ofrece el ZPoll. El espacio que ocupa el archivo se multiplica:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zfs set copies=3 &lt;zpool&gt;/&lt;filesystem&gt;&lt;/filesystem&gt;&lt;/zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;Crear un snapshot de un ZFS:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zfs snapshot&amp;nbsp; &lt;zpool&gt;/&lt;filesystem&gt;@&lt;nombre-snapshot&gt;&lt;/nombre-snapshot&gt;&lt;/filesystem&gt;&lt;/zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;Se pueden crear snapshot de ZPool&amp;nbsp; completo:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zfs snapshot &lt;zpool&gt;@&lt;nombre-snapshot&gt;&lt;/nombre-snapshot&gt;&lt;/zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;Ver una lista de snapshots:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zfs list -t snapshot&lt;/i&gt;&lt;br /&gt;&lt;i&gt;zfs list -t snapshot -o name,creation&lt;/i&gt;&lt;/blockquote&gt;Hacer visibles los snapshots: &lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zfs set snapdir=visible &lt;zpool&gt;/&lt;filesystem&gt;&lt;/filesystem&gt;&lt;/zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;Ver el contenido de un snapshot:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;ls &lt;zfs_path&gt;/.zfs&lt;/zfs_path&gt;&lt;/i&gt;&lt;/blockquote&gt;Destruir/borrar un snapshot:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zfs destroy &lt;zpool&gt;/&lt;filesystem&gt;@&lt;nombre-snapshot&gt; &lt;/nombre-snapshot&gt;&lt;/filesystem&gt;&lt;/zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;Renombrar un ZFS o snapshot:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zfs rename &lt;zpool&gt;/&lt;old-filesystem&gt; &lt;zpool&gt;/&lt;new-filesystem&gt;&lt;/new-filesystem&gt;&lt;/zpool&gt;&lt;/old-filesystem&gt;&lt;/zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zfs rename &lt;zpool&gt;/&lt;filesystem&gt;@&lt;old-snapshot&gt; &lt;zpool&gt;/&lt;filesystem&gt;@&lt;new-snapshot&gt;&lt;/new-snapshot&gt;&lt;/filesystem&gt;&lt;/zpool&gt;&lt;/old-snapshot&gt;&lt;/filesystem&gt;&lt;/zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;Volver a un snapshot anterior:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zfs rollback &lt;zpool&gt;/&lt;filesystem&gt;@&lt;nombre-snapshot&gt; &lt;/nombre-snapshot&gt;&lt;/filesystem&gt;&lt;/zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;Esto hace volver al sistema de ficheros al snapshot pedido. Este comando solo funciona para volver al último snapshot disponible. Si se desea volver a uno más antiguo, se debe usar el &lt;b&gt;parámetro -r&lt;/b&gt;, que eliminará los posteriores.&lt;br /&gt;&lt;br /&gt;Crear un nuevo ZFS a partir de un snapshot (clonados):&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;zfs clone &lt;zpool&gt;/&lt;filesystem&gt;@&lt;nombre-snapshot&gt; &lt;zpool&gt;/&lt;new-filesystem&gt;&lt;/new-filesystem&gt;&lt;/zpool&gt;&lt;/nombre-snapshot&gt;&lt;/filesystem&gt;&lt;/zpool&gt;&lt;/i&gt;&lt;/blockquote&gt;(Los clones de ZFS completos no están soportados)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Referencias interesantes:&lt;/b&gt;&lt;br /&gt;Video muy sobre como se opera sobre ZFS para crear snapshots.&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=sRe0wyx68Rs"&gt;http://www.youtube.com/watch?v=sRe0wyx68Rs&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Niveles RAID en ZFS. &lt;br /&gt;&lt;a href="http://www.zfsbuild.com/2010/05/26/zfs-raid-levels/"&gt;http://www.zfsbuild.com/2010/05/26/zfs-raid-levels/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Explicación de lo que es el write-hole.&lt;br /&gt;&lt;a href="http://www.raid-recovery-guide.com/raid5-write-hole.aspx"&gt;http://www.raid-recovery-guide.com/raid5-write-hole.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Guia de administración de ZFS.&lt;br /&gt;&lt;a href="http://docs.huihoo.com/opensolaris/solaris-zfs-administration-guide/html/index.html"&gt;http://docs.huihoo.com/opensolaris/solaris-zfs-administration-guide/html/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-4480178106905784959?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/4480178106905784959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/4480178106905784959'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2011/12/zfs-ha-sido-originalmente-un-desarrollo.html' title='ZFS'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-4096998865053414117</id><published>2011-10-24T13:48:00.000+02:00</published><updated>2011-10-24T13:48:05.036+02:00</updated><title type='text'>Apuntes sobre FreeBSD. Guia de supervivencia</title><content type='html'>&lt;b&gt;MANEJANDO "PORTS"&amp;nbsp; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Descargar lista comprimida de "ports" disponibles (en "/var/db/portsnap"):&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&amp;nbsp;#&amp;gt; portsnap fetch&lt;/i&gt;&lt;/blockquote&gt;(La lista de servidores a la que se trata de conectar está en el archivo "/var/db/portsnap/serverlist") &lt;br /&gt;&lt;br /&gt;Descomprimir lista de "ports" anteriormente descargada:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&amp;nbsp;#&amp;gt; portsnap extract&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;Actualizar lista de "ports" de "/usr/ports":&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&amp;nbsp;#&amp;gt; portsnap update&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;Buscar un determinado "port" (vg.- "vim"):&lt;br /&gt;Método 1: &lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&amp;nbsp;#&amp;gt; whereis vim&lt;/i&gt;&lt;/blockquote&gt;&amp;nbsp;Método 2:&lt;br /&gt;&lt;blockquote&gt;&amp;nbsp;&lt;i&gt;#&amp;gt;cd /usr/ports&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;#&amp;gt; make search name="vim"&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Compilar/Instalar un "port" (vg.- "/usr/ports/editors/emacs")&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&amp;nbsp;#&amp;gt; cd /usr/ports/editors/emacs&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;#&amp;gt; make install; make clean&lt;/i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ó "make install clean") &lt;/blockquote&gt;&amp;nbsp;(Los archivos fuente son descargados a "/usr/ports/distfiles/" y eliminados con el comando "make clean").&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Eliminar un "port" instalado (vg.- "emacs")&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&amp;nbsp;#&amp;gt; pkg_delete emacs&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;Ver estado de actualización de los "ports" instalados:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&amp;nbsp;#&amp;gt; pkg_version -v&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;MANEJANDO "PACKAGES" &lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Actualizando la lista de software disponible en los repositorios de Internet:&lt;br /&gt;&lt;br /&gt;Busqueda de un "package":&lt;br /&gt;&amp;nbsp;(ver búsqueda de "ports") &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lista de paquetes instalados y sus versiones:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&amp;nbsp;#&amp;gt; pkg_info &lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;Instalación de un paquete desde Internet (vg.- "vim"):&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;#&amp;gt; pkg_add -r vim&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;Instalación de un paquete descargado a local (vg.- "nano"):&lt;br /&gt;&lt;blockquote&gt;&amp;nbsp;&lt;i&gt;#&amp;gt; wget ftp://ftp.freebsd.org/pub........nano-2.0.9-1.tbz&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;#&amp;gt; pkg_add nano-2.0.9-1.tbz&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;Eliminar un paquete (vg.- "vim"):&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&amp;nbsp;#&amp;gt; pkg_delete vim&lt;/i&gt;&lt;/blockquote&gt;Reinstalación de un paquete (vg.- "vim");&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&amp;nbsp;#&amp;gt; pkg_add --force -r vim&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;Más sobre los "packages":&lt;/b&gt;&lt;br /&gt;&amp;nbsp;Los archivos descargados están en:&amp;nbsp; "/var/db/pkg"&lt;br /&gt;&amp;nbsp;El repositorio del que se descargan los "packages" puede ser modificado con la variable de entorno "PKG_PATH" &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Instalación de "BASH SHELL"&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&amp;nbsp;#&amp;gt; pkg_add -r bash&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;#&amp;gt; chsh -s /usr/local/bin/bash&lt;/i&gt;&lt;/blockquote&gt;&lt;b&gt;Instalación de servidor X + GNOME&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&amp;nbsp;#&amp;gt; pkg_add -r xorg-minimal&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;#&amp;gt; pkg_add -r gnome2&lt;/i&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-4096998865053414117?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/4096998865053414117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/4096998865053414117'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2011/10/apuntes-sobre-freebsd-guia-de.html' title='Apuntes sobre FreeBSD. Guia de supervivencia'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-1655185008350587787</id><published>2011-10-23T23:37:00.000+02:00</published><updated>2011-10-23T23:38:14.269+02:00</updated><title type='text'>Debian 6 / Ubuntu 11.04 en ASUS UL30VT</title><content type='html'>&amp;nbsp;Esta receta es válida para la configuración de Ubuntu 11.04 (amd64) en un ASUS UL40VT.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;NOTA&lt;/b&gt;: El contenido no es original. Todo ha sido recopilado desde los siguientes lugares:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;http://wiki.debian.org/InstallingDebianOn/Asus/UL30VT&lt;/li&gt;&lt;li&gt;http://mig5.net/content/crunchbang-10-statler-asus-ul30vt &lt;/li&gt;&lt;li&gt;http://wiki.daviddarts.com/Ubuntu_Lucid_on_the_Asus_UL30VT&lt;/li&gt;&lt;li&gt;http://www.thinkwiki.org/wiki/How_to_reduce_power_consumption&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-AIewLTiwLGc/Tm5pk2plG6I/AAAAAAAAACk/uaQGZhtr84M/s1600/ul30vt.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="178" src="http://2.bp.blogspot.com/-AIewLTiwLGc/Tm5pk2plG6I/AAAAAAAAACk/uaQGZhtr84M/s200/ul30vt.PNG" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;ASUS UL30VT&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;b&gt;Cosas que funcionan &lt;i&gt;out of the box&lt;/i&gt;: &lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Webcam: Probado con "&lt;a href="http://projects.gnome.org/cheese//index"&gt;cheese&lt;/a&gt;".&lt;/li&gt;&lt;li&gt;Control de volumen.&lt;/li&gt;&lt;li&gt;Suspensión.&lt;/li&gt;&lt;li&gt;Salida VGA con Fn+F8.&lt;/li&gt;&lt;li&gt;Wifi (solo en Ubuntu) &lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Cosas que no he conseguido hacer funcionar&lt;/b&gt;&lt;br /&gt;Desactivar Touchpad (Fn + F9)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;WIFI&lt;/b&gt;&lt;br /&gt;En Ubuntu es suficiente hacer la instalación habilitando los controladores de terceros para que funcione.&lt;br /&gt;En debian se debe instalar el FW a mano:&lt;br /&gt;#apt-get install firmware-iwlwifi&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;Grub&lt;/b&gt;&lt;br /&gt;Para que el sistema use correctamente algunos valores de ACPI relacionados con la pantalla, se deben pasar algunos parámetros extra al kernel.&lt;br /&gt;&lt;i&gt; Editar "/etc/default/grub"&lt;/i&gt;&lt;br /&gt;&lt;span style="font-family: inherit; font-size: x-small;"&gt;[...]&lt;/span&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;pre class="text geshifilter-text" style="font-family: monospace;"&gt;GRUB_CMDLINE_LINUX_DEFAULT="acpi_backlight=vendor i915.powersave=0 vga=792 quiet splash"&lt;/pre&gt;&lt;span style="font-size: x-small;"&gt;[...]&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;i&gt;Reinstalar Grub:&lt;/i&gt;&lt;br /&gt;&lt;pre class="text geshifilter-text" style="font-family: monospace;"&gt;#update-grub &lt;/pre&gt;&lt;pre class="text geshifilter-text" style="font-family: monospace;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;b&gt;Control de brillo (Fn + F5/F6) con la tarjeta Intel:&lt;/b&gt;&lt;br /&gt;Por defecto, las teclas de control de brillo no funcionan. Se soluciona modificando los scripts :&lt;br /&gt;&lt;br /&gt;&lt;i&gt;/etc/acpi/asus-brn-up.sh&lt;/i&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;#!/bin/sh&lt;br /&gt;test -f /usr/share/acpi-support/key-constants || exit 0&lt;br /&gt;&lt;br /&gt;. /usr/share/acpi-support/key-constants&lt;br /&gt;&lt;br /&gt;# DeviceConfig&lt;br /&gt;&lt;br /&gt;if [ "$model" != "701" ] ; then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # On an Eee PC (ASUSTeK model 701) the keys in the range handled by this&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # script have entirely different meanings. They are handled in separate&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # scripts.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; acpi_fakekey $KEY_BRIGHTNESSUP&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# added per http://forum.notebookreview.com/showpost.php?p=5665108&amp;amp;postcount=1235&lt;br /&gt;#brightness=`echo $3 | sed 's/0000001//'`&lt;br /&gt;#setpci -s 00:02.0 F4.B=${brightness}f&lt;br /&gt;&lt;br /&gt;# added per mailing list post&lt;br /&gt;# in /etc/asus_brn_up.sh&lt;br /&gt;brightness=$((0x`setpci -s 00:02.0 F4.B`+16));&lt;br /&gt;if [ $brightness -gt $((0xff)) ] ; then&lt;br /&gt;&amp;nbsp; brightness=$((0xff));&lt;br /&gt;fi&lt;br /&gt;setpci -s 00:02.0 F4.B=`printf '%x' $brightness`;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;i&gt;/etc/acpi/asus-brn-down.sh&lt;/i&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;test -f /usr/share/acpi-support/key-constants || exit 0 &lt;br /&gt;. /usr/share/acpi-support/key-constants&lt;br /&gt;acpi_fakekey $KEY_BRIGHTNESSDOWN&lt;br /&gt;&lt;br /&gt;# added per http://forum.notebookreview.com/showpost.php?p=5665108&amp;amp;postcount=1235&lt;br /&gt;#brightness=`echo $3 | sed 's/0000002//'`&lt;br /&gt;#setpci -s 00:02.0 F4.B=${brightness}f&lt;br /&gt;&lt;br /&gt;# added per mailing-list post&lt;br /&gt;brightness=$((0x`setpci -s 00:02.0 F4.B`-16));&lt;br /&gt;if [ $brightness -lt 0 ] ; then&lt;br /&gt;&amp;nbsp;&amp;nbsp; brightness=1;&lt;br /&gt;fi&lt;br /&gt;setpci -s 00:02.0 F4.B=`printf '%x' $brightness`;&lt;/span&gt;&lt;/blockquote&gt;&lt;b&gt;Doble Tarjeta gráfica&lt;/b&gt;&lt;br /&gt;Este portatil incluye dos tarjetas gráficas. Una de ellas, Intel, no dispone de memoria dedicada. La otra, Nvidia, sí. Ambas funcionan, pero no hay una forma sencilla de intercambiar el uso de una u otra. En este caso se ha optado por usar la controladora integrada Intel de menor consumo energético y desactivar la Nvidia.&lt;br /&gt;Hay varias formas de hacer esto, pero la mejor que he encontrado en cuando a estabilidad es un módulo del kernel llamado "acpi-call". Se descarga/instala de la siguiente forma:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&amp;nbsp; git clone http://github.com/mkottman/acpi_call.git&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp; cd acpi_call&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp; make&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp; sudo insmod acpi_call.ko&amp;nbsp;&lt;/i&gt; &lt;/blockquote&gt;&lt;br /&gt;Además, hay que ejecutar el script "test_off.sh", en el mismo directorio, para que la tarjeta se desactive.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;TouchPadd; scrolling con dos dedos:&lt;/b&gt;&lt;br /&gt;Configurar desde "Sistema - Preferencias - Mouse&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ahorro de energía&lt;/b&gt;&lt;br /&gt;Con los siguientes cambios, powertop indica un consumo, sin carga, de unos 7Watios. Suficiente para unas 6 horas de autonomía.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-nZV3tKH4iFc/TqSFfrMuyXI/AAAAAAAAAC0/SQv3rKek-yM/s1600/powertop.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="201" src="http://4.bp.blogspot.com/-nZV3tKH4iFc/TqSFfrMuyXI/AAAAAAAAAC0/SQv3rKek-yM/s320/powertop.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Salida de powertop&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Se añaden las siguientes lineas a "/etc/rc.local" para aplicar las políticas de ahorro de energía:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;#Desactivar BlueTooth&lt;br /&gt;/sbin/rfkill block bluetooth&lt;br /&gt;#Otros parámetros de ahorro de energia&lt;br /&gt;ethtool -s eth0 wol d&lt;br /&gt;iwconfig wlan0 power timeout 500ms&lt;br /&gt;echo 1 &amp;gt; /sys/module/snd_hda_intel/parameters/power_save&lt;br /&gt;echo 0 &amp;gt; /proc/sys/vm/swappiness&lt;br /&gt;echo 60000 &amp;gt; /proc/sys/vm/dirty_expire_centisecs&lt;br /&gt;echo 60000 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;echo 60 &amp;gt; /proc/sys/vm/dirty_background_ratio&lt;br /&gt;echo 95 &amp;gt; /proc/sys/vm/dirty_ratio&lt;br /&gt;echo 50 &amp;gt; /proc/sys/vm/vfs_cache_pressure&lt;/i&gt;&lt;br /&gt;&lt;i&gt;#Ahorro de energía en la controladora SATA&lt;br /&gt;echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;/i&gt;&lt;br /&gt;&lt;i&gt;#Política del powerstep del procesador&lt;br /&gt;cpufreq-selector -c 0 -g ondemand&lt;br /&gt;cpufreq-selector -c 1 -g ondemand&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;#Cargar módulo acpi_call y desactivar tarjeta NVidia&lt;br /&gt;insmod /opt/acpi_call/acpi_call.ko&lt;br /&gt;sh /opt/acpi_call/test_off.sh&amp;amp;&lt;br /&gt;#Bajar brillo de la pantalla&lt;br /&gt;setpci -s 00:02.0 F4.B=20&amp;amp;&lt;/i&gt;&lt;/blockquote&gt;&lt;b&gt;NOTA&lt;/b&gt;: Después de suspender el equipo y salir del estado de reposo, algunas de las políticas de bajo consumo se anulan. Para reactivarlas de forma automatizada se edita el archivo:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;/etc/pm/sleep.d/10_filename&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;#!/bin/bash&lt;br /&gt;. /usr/lib/pm-utils/functions&lt;br /&gt;case "$1" in&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hibernate|suspend) ;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; thaw|resume)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Tareas a realizar al salir de suspensión&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Asegurarse que la tarjeta NVidia sigue desactivada&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sh /home/josem/acpi_call/test_off.sh&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Bajar brillo de la pantalla&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; setpci -s 00:02.0 F4.B=20&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Ahorro de energía en la interfaz SATA&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *) ;;&lt;br /&gt;esac&lt;br /&gt;exit $?&lt;/i&gt;&lt;/blockquote&gt;De esta forma se ejecutarán las tareas del archivo cada vez que el equipo entre y salga de la suspensión.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-1655185008350587787?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/1655185008350587787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/1655185008350587787'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2011/10/debian-6-ubuntu-1104-en-asus-ul30vt.html' title='Debian 6 / Ubuntu 11.04 en ASUS UL30VT'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-AIewLTiwLGc/Tm5pk2plG6I/AAAAAAAAACk/uaQGZhtr84M/s72-c/ul30vt.PNG' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-5178463087262969163</id><published>2011-10-05T23:25:00.003+02:00</published><updated>2011-10-05T23:31:37.100+02:00</updated><title type='text'>Debian 6: Instalar MS Office 2007 usando Wine</title><content type='html'>Lista de pasos para hacer funcionar MS Office 2007 sobre Wine en Debian 6 (64bits).&lt;br /&gt;&lt;br /&gt;No es facil, por no decir imposible, ejecutar el instalador de MS Office con los paquetes de &lt;i&gt;wine&lt;/i&gt; que vienen en la versión 6 de Debian. Esto es debido a que pertenecen a la versión 1.0.1. Se recomienda al menos una versión 1.1.x para tener éxito.&lt;br /&gt;&lt;br /&gt;Se van a utilizar paquetes .deb descargados del repositorio &lt;i&gt;www.lamaresh.net&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Las personas que mantienen este dominio están haciendo un excelente trabajo empaquetando y manteniendo paquetes de versiones más actuales para Debian.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Pasos:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Añadir el repositorio (ver instrucciones más detalladas en www.lamaresh.net).&lt;/li&gt;&lt;/ul&gt;Añadir la linea:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;deb http://www.lamaresh.net/apt squeeze main&lt;/i&gt;&lt;/span&gt;&lt;/blockquote&gt;al archivo &lt;i&gt;/etc/apt/sources.list &lt;/i&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;apt-get update&lt;/i&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Instalar wine (asegurarse que descarga los paquetes del nuevo repositorio)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;apt-get install wine&lt;/i&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;Descargar script &lt;i&gt;"winetricks"&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;svn checkout http://winetricks.googlecode.com/svn/trunk/ winetricks-read-only &lt;/i&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Instalar dependencias windows/wine con la ayuda de &lt;i&gt;"winetricks"&lt;/i&gt; &lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;sh ./winetricks-read-only/src/winetricks msxml3 dotnet20 gdiplus riched20 riched30 vcrun2005sp1 corefonts tahoma&lt;/span&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Ejecutar instalador de Office&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;wine $OFFICE/setup.exe &lt;/i&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-R3x2YieI8ls/TozK7iLKPJI/AAAAAAAAACo/rZ6CNKTz8GA/s1600/wine_office.png" imageanchor="1"&gt;&lt;img border="0" height="226" src="http://2.bp.blogspot.com/-R3x2YieI8ls/TozK7iLKPJI/AAAAAAAAACo/rZ6CNKTz8GA/s400/wine_office.png" width="400" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;i&gt;&lt;b&gt;NOTA CURIOSA:&lt;/b&gt;&lt;/i&gt; El instalador y la posterior ejecución de las aplicaciones fallan menos si se utiliza la emulación de Windows XP. Se puede comprobar esto ejecutando el comando &lt;i&gt;winecfg&amp;nbsp;&lt;/i&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Znz8iiI6Nnw/TozMqbKZbGI/AAAAAAAAACs/lA0R2L9Gv8o/s1600/Pantallazo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-Znz8iiI6Nnw/TozMqbKZbGI/AAAAAAAAACs/lA0R2L9Gv8o/s320/Pantallazo.png" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-5178463087262969163?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/5178463087262969163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/5178463087262969163'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2011/10/debian-6-instalar-ms-office-2007-usando.html' title='Debian 6: Instalar MS Office 2007 usando Wine'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-R3x2YieI8ls/TozK7iLKPJI/AAAAAAAAACo/rZ6CNKTz8GA/s72-c/wine_office.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-7037068920210883714</id><published>2011-09-29T23:43:00.002+02:00</published><updated>2011-10-05T22:34:47.616+02:00</updated><title type='text'>Firefox 7 + Plugin Java + Plugin flash en Debian 6 (squeeze) 64bits</title><content type='html'>&lt;b&gt;Objetivos:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Solucionar los múltiples problemas que impiden ejecutar versiones oficiales de firefox en Debian/Ubuntu de 64bits.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Instalar plugins de java y flash player sobre la instalación anterior.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Como el paquete firefox que se descarga desde las páginas oficiales de Mozilla solamente está compilado para sistemas de 32bits, no suele funcionar directamente en sistemas de 64bits.&lt;br /&gt;&lt;br /&gt;Lista de simples pasos para hacer funcionar una versión actual de Firefox (nativa 32 bits para Linux) sobre Debian Squeeze 64bits.&lt;br /&gt;Suponer que hemos descargado el paquete&lt;i&gt; .bz2&lt;/i&gt; oficial (&lt;i&gt;firefox-7.0.tar.bz2&lt;/i&gt;) y que al intentar ejecutarlo desde la consola, obtenemos &lt;b&gt;errores del estilo&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;x-bin: 1: Syntax error: "(" unexpected&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;Couldn't load XPCOM.&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;/firefox3/firefox-bin: error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;./firefox3/firefox-bin: error while loading shared libraries: libxul.so: wrong ELF class: ELFCLASS64&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Algunos de estos errores son evidencias claras de una incompatibilidad 32/64 bits del programa ejecutable. Otros son simplemente problemas con las dependencias de algunas librerías. Sea como fuere, la mayoría &lt;b&gt;se solucionan instalando&lt;/b&gt; los siguientes paquetes:&lt;/div&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;apt-get install ia32-libs&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;apt-get install ia32-libs-gtk&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;apt-get install libgtk2.0-0&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;apt-get install xulrunner-1.9.1&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;apt-get install libnss3-1d&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;apt-get install python-xpcom&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;apt-get install lib32nss-mdns&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;Plugin Java (Oracle Java)&lt;/b&gt;&lt;br /&gt;No hay forma de hacer que el navegador de 32bits use el plugin y la JVM de 64bits, de forma que para usar Java en Firefox, es necesario usar java de 32bits:&lt;br /&gt;&lt;br /&gt;Descargar paquete&lt;i&gt;&amp;nbsp;jre-6u27-linux-i586.bin&lt;/i&gt;&lt;br /&gt;Ejecutar: &lt;br /&gt;&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;sh&amp;nbsp;jre-6u27-linux-i586.bin&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;mv&amp;nbsp;jre1.6.0_27 /opt&lt;/i&gt;&lt;/li&gt;&lt;li&gt;Crear el enlace al plugin según los siguientes pasos (específicamente estos pasos)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;mkdir $HOME/.mozilla/plugins&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;cd $HOME/.mozilla&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;ln -s /opt/jre1.6.0_27/lib/i386/libnpjp2.so plugins/libnpjp2.so&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;b&gt;AVISO: &lt;/b&gt;Por alguna razón, si el enlace simbólico del último paso no se crea desde "$HOME/.mozilla), el plugin no encuentra la JVM para ejecutar java en firefox. Este problema se detecta porque el navegador se cierra inmediatamente cuando se intenta ver una página con Applets Java.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Flash player Plugin (Adobe).&amp;nbsp;&lt;/b&gt;&lt;br /&gt;De forma análoga, se debe usar el plugin de 32 bits con un navegador de 32 bits (funciona también con la nueva versión 11 para 32bits).&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Descargar el instalador en formato&lt;i&gt; .tar.gz: &amp;nbsp;install_flash_player_10_linux.tar.gz&lt;/i&gt;&lt;/li&gt;&lt;li&gt;Descomprimir el &lt;i&gt;.tar.gz&lt;/i&gt;&lt;/li&gt;&lt;li&gt;Copiar el archivo&lt;i&gt;&amp;nbsp;libflashplayer.so&lt;/i&gt; a &lt;i&gt;$HOME/.mozilla/plugins/&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-7037068920210883714?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/7037068920210883714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/7037068920210883714'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2011/09/firefox-7-plugin-java-plugin-flash-en.html' title='Firefox 7 + Plugin Java + Plugin flash en Debian 6 (squeeze) 64bits'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-3803424274748355531</id><published>2011-02-21T16:42:00.001+01:00</published><updated>2011-02-21T16:46:20.324+01:00</updated><title type='text'>OCFS2 sobre DRBD (Debian 6)</title><content type='html'>&lt;span style="font-size: xx-small;"&gt;&lt;i&gt;&lt;b&gt;Amplicación al post anterior:&lt;a href="http://yoseman.blogspot.com/2011/02/drbd-replicacion-de-discos-via-red-en.html"&gt;http://yoseman.blogspot.com/2011/02/drbd-replicacion-de-discos-via-red-en.html&lt;/a&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Se dispone de una infraestructura &lt;i&gt;DRBD&lt;/i&gt; operativa funcionando con &lt;i&gt;ext3&lt;/i&gt;. Ya que este filesystem no soporta acceso concurrente, se desea sustituir por &lt;b&gt;&lt;i&gt;OCFS2&lt;/i&gt;&lt;/b&gt; para permitir el montaje en varios nodos a la vez.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Suponiendo:&lt;/b&gt;&lt;br /&gt;Un recurso DRBD con dos nodos, &lt;i&gt;&lt;b&gt;nodo01&lt;/b&gt;&lt;/i&gt; y &lt;i&gt;&lt;b&gt;nodo02&lt;/b&gt;&lt;/i&gt;.&lt;br /&gt;Dispositivo DRBD en ambos nodos:&lt;b&gt; &lt;i&gt;/dev/drbd0 &lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Procedimiento:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Desmontar el dispositivo DRBD en el nodo que pudiera estar montado:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;nodo0X&amp;gt; umount /mnt/mountpoint&lt;/span&gt;&lt;/blockquote&gt;Instalar herramientas OCFS2 (ambos nodos):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;nodo0X&amp;gt; apt-get install ocfs2-tools ocfs2console&lt;/pre&gt;&lt;/blockquote&gt;Cargar módulos OCFS2 del kernel en ambos nodos:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt; nodo0X&amp;gt; modprobe ocfs2&lt;/span&gt;&lt;/blockquote&gt;Configurar el cluster OCFS2. Editar el archivo "/etc/ocfs2/cluster.conf" en ambos nodos:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;#/etc/ocfs2/cluster.conf&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;#Primer nodo ("drbd1")&lt;br /&gt;node:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; ip_port = 7777&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Puerto para comunicarse&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip_address = 192.168.1.21&amp;nbsp;&amp;nbsp; #IP de comunicación&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; number = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Número de nodo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name = drbd1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Hostname del nodo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cluster = ocfs2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Nombre del cluster OCFS2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;#Segundo nodo ("drbd2")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;node:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; ip_port = 7777&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip_address =  192.168.1.22&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; number =1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name =  drbd2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cluster = ocfs2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;#Información del cluster de nombre "ocfs2" &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;cluster:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; node_count = 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Número de nodos que accederán al cluster&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name = ocfs2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Nombre del cluster&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Añadir al archivo de configuración de &lt;i&gt;DRBD&lt;/i&gt; (&lt;i&gt;/etc/drbd.conf&lt;/i&gt;) la siguiente linea para permitir varios nodos primarios en DRBD. Esto permitirá el montaje del dispositivo en varias máquinas a la vez.&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;net{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; allow-two-primaries; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;}&lt;/span&gt;&lt;/blockquote&gt;Añadir al archivo de configuración de &lt;i&gt;DRBD&lt;/i&gt; (&lt;i&gt;/etc/drbd.conf&lt;/i&gt;) las siguientes lineas en el&amp;nbsp; para que el sistema maneje correctamente los Splitted Brain.&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;net { &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; after-sb-0pri discard-zero-changes;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; after-sb-1pri discard-secondary;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; after-sb-2pri disconnect;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: x-small;"&gt;} &lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;pre class="programlisting"&gt;Recargar DRBD para aplicar los cambios&lt;/pre&gt;&lt;pre class="programlisting"&gt;&lt;/pre&gt;Poner ambos nodos como "primary"&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;nodo01&amp;gt; drbdsetup /dev/drbd0 primary&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;nodo02&amp;gt; drbdsetup /dev/drbd0 primary&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Crear el filesystem OCFS2 desde uno cualquiera de los nodos:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;nodo01&amp;gt; mkfs.ocfs2 /dev/drbd0&lt;/span&gt;&lt;/blockquote&gt;&lt;i&gt;OCFS2&lt;/i&gt; forma un cluster propio entre los nodos que pueden montar el FS compartido. &lt;i&gt;OCFS2&lt;/i&gt; tiene dos scripts de inicio. Uno es &lt;i&gt;"/etc/init.d/ocfs2"&lt;/i&gt; y el otro es &lt;i&gt;"/etc/init.d/o2cb"&lt;/i&gt;. Este segundo se encarga de mantener los servicios en cluster.&lt;br /&gt;Se puede reconfigurar (opcionalmente) los parámetros de &lt;i&gt;OCFS2&lt;/i&gt; relativos a timeout y arranque automático del cluster &lt;i&gt;OCFS2&lt;/i&gt;. Para ello, se debe ejecutar en ambos nodos:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;/etc/init.d/o2cb configure&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;ó&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;dpkg-reconfigure ocfs2-tools&lt;/span&gt;&lt;/blockquote&gt;Reiniciar los servicios de &lt;i&gt;OCFS2&lt;/i&gt; en ambos nodos:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;nodo01&amp;gt; /etc/init.d/o2cb restart&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;nodo01&amp;gt; /etc/init.d/ocfs2 restart&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;nodo02&amp;gt; /etc/init.d/o2cb restart&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;nodo02&amp;gt;  /etc/init.d/ocfs2 restart&lt;/span&gt;&lt;/blockquote&gt;Montar el filesystem &lt;i&gt;OCFS2&lt;/i&gt; en ambos nodos:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;nodo01&amp;gt; mount /dev/drbd0 /mnt/punto_montaje&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;nodo02&amp;gt; mount /dev/drbd0 /mnt/punto_montaje&lt;/span&gt;&lt;/blockquote&gt;El acceso concurrente a los ficheros de &lt;i&gt;DRBD&lt;/i&gt; es seguro en términos de consistencia de datos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-3803424274748355531?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/3803424274748355531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/3803424274748355531'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2011/02/ocfs2-sobre-drbd-debian-6.html' title='OCFS2 sobre DRBD (Debian 6)'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-7170452152780158454</id><published>2011-02-21T10:58:00.001+01:00</published><updated>2011-02-21T10:59:41.033+01:00</updated><title type='text'>DRBD. Replicación de discos vía red en Debian</title><content type='html'>&lt;b&gt;Instalación y configuración inicial.&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;DRBD se define a sí mismo con un sistema de RAID1 sobre IP. Los espejos se crean sobre discos de máquinas remotas y el bus SCSI o SATA se convierte en conexiónes IP.&lt;br /&gt;&lt;br /&gt;Se dispone de dos máquinas, con un dispositivo de bloques (habitualmente un disco duro) que se desea replicar de forma continua entre ambos. Uno de ellos será el original (Master) y el otro la réplica (Espejo). En este caso se va a replicar la partición "/dev/sda3", que debe tener el mismo tamaño en ambos nodos. &lt;br /&gt;&lt;br /&gt;Se parte de dos máquinas Debian 6 con conexión directa IP y configuración:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;Master (drbd1)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;hostname: nodo01.prueba.com&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Dirección IP: 192.168.1.21&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;Replica/espejo (drbd2)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;hostname: nodo02.prueba.com&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Dirección IP: 192.168.1.22&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Ambos nodos deben ser accesibles desde el otro por estas direcciones IP (un &lt;i&gt;ping&lt;/i&gt; es una buena prueba rápida). El ancho de banda de la linea que los une definirá el rendimiento de la replicación.&lt;br /&gt;&lt;br /&gt;Archivo "/etc/hosts"&lt;br /&gt;Debe existir en ambos nodos e incluir una linea por cada nodo con su dirección IP de contacto:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;[...]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;192.168.1.21&amp;nbsp;&amp;nbsp; nodo01.prueba.com node01&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;192.168.1.22 &amp;nbsp; nodo02.prueba.com node02&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;[...]&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Instalar paquete "drbd8-utils" en ambos nodos:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;#&amp;gt; apt-get install drbd8-utils&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Cargar el módulo "drbd" del kernel en ambos nodos:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;#&amp;gt; modprobe drbd&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;La partición de disco a replicar debe:&lt;br /&gt;&amp;nbsp;- Existir como tal antes de iniciar el servicio (vg.- /dev/sda3) en ambos nodos.&lt;br /&gt;&amp;nbsp;- No estar formateada con ningún sistema de archivos en ninguno de los nodos. Por lo tanto, ningún fichero del sistema debe residir en ella.&lt;br /&gt;&amp;nbsp;- Ser idéntica en ambos nodos en tamaño.&lt;br /&gt;&lt;br /&gt;Editar el archivo de configuración "/etc/drbd.conf"&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;# You can find an example in&amp;nbsp; /usr/share/doc/drbd.../drbd.conf.example&lt;br /&gt;&lt;br /&gt;#include "drbd.d/global_common.conf";&lt;br /&gt;#include "drbd.d/*.res";&lt;br /&gt;&lt;br /&gt;global {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; usage-count no;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;common {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Velocidad de sincronización. Velocidad de la red dedicada.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; syncer {rate 100M; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;resource r1 {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Protocolo de sincronización:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #&amp;nbsp;&amp;nbsp;&amp;nbsp; A: La sincronización se da por terminada cuando es enviada al buffer TCP local&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #&amp;nbsp;&amp;nbsp;&amp;nbsp; B: La sincronización se da por terminada cuando ha llegado al buffer remoto&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #&amp;nbsp;&amp;nbsp;&amp;nbsp; C: La sincronización se da por termianda cuando ha sido escrita también en el disco espejo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protocol C;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; startup {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; wfc-timeout 15;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Tiempo seg. de espera por lo recursos remotos en el arranque del servicio&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; degr-wfc-timeout 60;&amp;nbsp; #Tiempo seg. de espera por un recurso perdido hasta que el cluster se marca como degradado&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; net {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; cram-hmac-alg sha1;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Algoritmo CRAM para la clave &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; shared-secret "secret"; #Clave de autentificación&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #allow-two-primaries;&amp;nbsp;&amp;nbsp; #Solo si hay cluster filesystem encima&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; on nodo01 {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; device /dev/drbd0;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Dispositivo RAID DRBD&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; disk /dev/sda3;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #Dispositivo local miembro de DRBD&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; address 192.168.1.21:7788;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Interfaz de comunicación&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; meta-disk internal;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Integrado en "/dev/sda3"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; on nodo02 {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; device /dev/drbd0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; disk /dev/sda3;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; address 192.168.1.22:7788;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; meta-disk internal;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;} #Fin resource r1&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Iniciar el servicio "drbd" en ambos nodos:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;#&amp;gt; /etc/init.d/drbd start&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Inicializar el recurso DRBD (genera los metadatos). Se debe ejecutar el siguiente comando en ambos nodos:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;#&amp;gt; drbdadm create-md r1&lt;/span&gt;&lt;/blockquote&gt;"Levantar" el recurso en ambos nodos, ejecutando:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;#&amp;gt; drbdadm up r1&lt;/span&gt;&lt;/blockquote&gt;Desde este momento podemos ver el estado del "raid" en el archivo "/proc/drbd":&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;#&amp;gt; watch cat /proc/drbd&lt;/span&gt;&lt;/blockquote&gt;Ahora se debe establecer cual de los nodos es el &lt;i&gt;master&lt;/i&gt; y cual el que debe ser &lt;i&gt;espejo&lt;/i&gt;. En este caso, &lt;i&gt;nodo01&lt;/i&gt; será master y nodo02 será espejo. Para ello, ejecutar en el master:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;#&amp;gt; drbdsetup /dev/drbd0 primary -o&lt;/span&gt;&lt;/blockquote&gt;Esto sincronizará el nodo espejo (nodo02)&amp;nbsp; con el master (nodo01). Se puede ver el estado de la sincronización en "/proc/drbd".&lt;br /&gt;&lt;br /&gt;Ahora se puede crear un filesystem en el raid. Para ello, en cualquiera de los nodos, ejecutar:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;#&amp;gt; mkfs.ext3 /dev/drbd0&lt;/span&gt;&lt;/blockquote&gt;El nuevo sistema de archivos en raid DRBD solo puede (debe) ser montado en un nodo a la vez. De lo contrario, y salvo que el sistema de archivos sea un cluster-filesystem, se corrompería. Por defecto, el filesystem solamente puede ser montado en el nodos principales (primary).&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;#&amp;gt; mount /dev/drbd1 /mnt/mountpoint&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;Administración básica&lt;/b&gt;&lt;br /&gt;DRBD permite varios nodos principales (opción "allow-two-primaries" en  /etc/drbd.conf), pero salvo que el filesystem que se cree encima de DRBD  sea un sistema de archivos en cluster (vg.- OCFS2, GFS, etc...). Por lo  tanto, y si hemos utilizado ext3 como en este caso, para montar el raid  en el nodo espejo, previamente debemos hacer que sea primario (pasando  el Master a secundario).&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Montar el raid DRBD en el nodo espejo (nodo02):&lt;/i&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &lt;b&gt;nodo01&lt;/b&gt;&amp;gt; umount /mnt/mountpoint&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &lt;b&gt;nodo01&lt;/b&gt;&amp;gt; drbdsetup /dev/drbd0 secondary&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &lt;b&gt;nodo02&lt;/b&gt;&amp;gt; drbdsetup /dev/drbd0 primary&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &lt;b&gt;nodo02&lt;/b&gt;&amp;gt; mount /mnt/mountpoint&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;OJO!!. Ahora el nodo Maestro es "nodo02". &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-7170452152780158454?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/7170452152780158454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/7170452152780158454'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2011/02/drbd-replicacion-de-discos-via-red-en.html' title='DRBD. Replicación de discos vía red en Debian'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-8041590764707989660</id><published>2011-02-20T23:19:00.002+01:00</published><updated>2011-02-20T23:20:44.529+01:00</updated><title type='text'>Router CISCO 827H; recuperar contraseña</title><content type='html'>&lt;b&gt;1. Acceder en modo de recuperación.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;- Conectar por consola (minicom) (9600 8N1).&lt;br /&gt;&amp;nbsp;- Durante el arranque, enviar BREAK (Control-a + f) para entrar en modo "&lt;i&gt;rommon&lt;/i&gt;" (recuperación de emergencia).&lt;br /&gt;&amp;nbsp;- Ejecutar:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;rommon 2&amp;gt; confreg 0x2142&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;You must reset or power cycle for new config to take effect&lt;/span&gt;&lt;/blockquote&gt;&amp;nbsp;- Resetear el router:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;rommon 3&amp;gt; reset&lt;/span&gt;&lt;/blockquote&gt;- Esperar... Zzz...&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;- Would you like to enter the initial configuration dialog? [yes/no]: no&lt;/span&gt;&lt;/blockquote&gt;- El router arranca y podemos entrar en modo privilegiado sin contraseña ejecutando el comando "&lt;i&gt;enable&lt;/i&gt;":&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;Router&amp;gt; enable&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;Router#&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;2.&lt;/b&gt; Hemos hecho que el router arranque en modo privilegiado sin contraseña. Pero también hemos hecho que el router no tenga configuración de ningún tipo. &lt;br /&gt;&lt;br /&gt;Si queremos que vuelva a realizar sus funciones como router, con la misma configuración que tenía, debemos cargarla. Si recargamos esa configuración, volveremos a tener el password perdido, de modo que hay que cambiar también el password.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;- Ejecutar UNO de los siguientes comandos (el efecto es el mismo en ambos):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;Router# configure memory&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;ó&lt;/i&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;Router# &lt;/span&gt;&lt;span class="content" style="font-size: x-small;"&gt;copy startup-config running-config&lt;/span&gt;&lt;/blockquote&gt;-&amp;nbsp; Cambiar el password:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;redc021987222310# configure terminal&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;redc021987222310(config)# enable secret NEWPASSWORD&lt;b&gt;&lt;newpassword&gt;&lt;/newpassword&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;redc021987222310(config)# config-register 0x2102&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;redc021987222310(config)# end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;redc021987222310(config)# write memory&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;- Reiniciar el router (si queremos).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-8041590764707989660?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/8041590764707989660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/8041590764707989660'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2011/02/router-cisco-827h-recuperar-contrasena.html' title='Router CISCO 827H; recuperar contraseña'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-5852191316872878242</id><published>2011-02-09T19:19:00.002+01:00</published><updated>2011-02-09T19:20:16.240+01:00</updated><title type='text'>Conectar a target iSCSI desde Ubuntu 10.04</title><content type='html'>&lt;b&gt;Instalar software necesario&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;#&amp;gt; sudo apt-get install open-iscsi&lt;/blockquote&gt;&lt;br /&gt;Si se desea que el servicio arranque con el sistema, editar el archivo"/etc/iscsi/iscsid.conf" y asegurarse de la existencia de la linea_&lt;br /&gt;&lt;blockquote&gt;[...]&lt;br /&gt;node.startup = automatic&lt;br /&gt;[...]&lt;/blockquote&gt;Iniciar el servicio "open-iscsi"&lt;br /&gt;&lt;blockquote&gt;/etc/init.d/open-iscsi start&lt;/blockquote&gt;&amp;nbsp;&lt;b&gt;Descubrir los target&lt;/b&gt; que están en la IP 192.168.23.101 &lt;br /&gt;&lt;blockquote&gt;#&amp;gt; sudo iscsiadm -m discovery -t st -p 193.146.17.15&amp;nbsp;&lt;/blockquote&gt;&lt;br /&gt;Devolverá algo como&lt;br /&gt;&lt;blockquote&gt;192.168.23.101:3260,1 iqn.2011-02:fileserver.target2 &lt;/blockquote&gt;&lt;br /&gt;que es la identificación del target (o targets) en caso de que los encuentre.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Las LUN que ofrece el target se pueden ver con&lt;br /&gt;&lt;blockquote&gt;sudo iscsiadm -m node&lt;/blockquote&gt;&lt;br /&gt;Los resultados de los descubrimientos están disponibles en&lt;br /&gt;&lt;blockquote&gt;/etc/iscsi/nodes&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;Conectar la LUN del target usando un chap&lt;/b&gt; (4 COMANDOS):&lt;br /&gt;&lt;blockquote&gt;#&amp;gt;sudo&amp;nbsp; iscsiadm -m node --targetname "iqn.2011-02:fileserver.target2 " --portal "192.168.23.101" --op=update --name node.session.auth.authmethod --value=CHAP&lt;br /&gt;&lt;br /&gt;#&amp;gt;sudo iscsiadm -m node --targetname "iqn.2011-02:fileserver.target2" --portal "192.168.23.101" --op=update --name node.session.auth.username --value=&lt;i&gt;USERNAME&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;#&amp;gt;sudo iscsiadm -m node --targetname "iqn.2011-02:fileserver.target2" --portal "192.168.23.101" --op=update --name node.session.auth.password --value=&lt;i&gt;PASSWORD&lt;/i&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;#&amp;gt;sudo iscsiadm -m node --targetname "iqn.2011-02:fileserver.target2" --portal "192.168.23.101" --login&lt;/blockquote&gt;&lt;br /&gt;Si la conexión es correcta, la LUN debería ser visible con "fdisk -l". Solo hay que formatear (mkfs) y montar (mount). &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;Desconectar la LUN &lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;#&amp;gt; iscsiadm -m node --targetname  "iqn.2011-02:fileserver.target2" --portal "192.168.23.101" --logout&lt;/blockquote&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-5852191316872878242?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/5852191316872878242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/5852191316872878242'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2011/02/conectar-target-iscsi-desde-ubuntu-1004.html' title='Conectar a target iSCSI desde Ubuntu 10.04'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-6846925574654822593</id><published>2011-01-27T09:26:00.000+01:00</published><updated>2011-01-27T09:26:51.269+01:00</updated><title type='text'>Gestor de listas de correo: Debian, Postfix y MailMan</title><content type='html'>Se pretende configurar un sistema de gestión de listas de correo con MailMan. Además debe disponer de acceso seguro SSL a la web de gestión (Apache2 + mod_ssl) de MailMan y detección de Spam (SpamAssassin).&lt;br /&gt;&lt;br /&gt;Partiendo de una instalación "limpia" de Debian 5 64bits.&lt;br /&gt;&lt;br /&gt;Se dispone de un dominio principal de la organización, llamado&lt;b&gt; "prueba.com"&lt;/b&gt;. Para no interferir con el servidor de correo principal esta máquina se llamara &lt;b&gt;"lists.prueba.com"&lt;/b&gt; y gestionará las listas como&lt;br /&gt;&lt;br /&gt;&lt;b&gt;"nombrelista@lists.prueba.com" &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Pasos previos:&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;#apt-get install ntp&lt;/blockquote&gt;&lt;br /&gt;Es importante que el servidor esté siempre sincronizado para que la hora de los mensajes sea correcta.&lt;br /&gt;&lt;br /&gt;Instalar Apache2:&lt;br /&gt;&lt;blockquote&gt;#apt-get install apache2&lt;/blockquote&gt;&lt;br /&gt;Instalar postfix:&lt;br /&gt;&lt;blockquote&gt;#apt-get install postfix&lt;/blockquote&gt;&lt;br /&gt;Configurar como &lt;i&gt;"Internet Site",&lt;/i&gt; nombre del host "lists", nombre de dominio "prueba.com".&lt;br /&gt;&lt;br /&gt;Testear que el servicio de correo funciona, enviándo un mensaje de prueba a una dirección de correo real.&lt;br /&gt;&lt;blockquote&gt;#echo "mensaje de prueba" | /usr/sbin/sendmail&amp;nbsp; direccionreal@dominio.com&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;Instalar "Mailman" y el paquete de ayuda a la configuración de listas:&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;#apt-get install mailman listadmin&lt;/blockquote&gt;&lt;br /&gt;Iniciar todos los servicios necesarios&lt;br /&gt;&lt;blockquote&gt;#/etc/init.d/apache2 start&lt;br /&gt;#/etc/init.d/postfix start&lt;br /&gt;#/etc/init.d/mailman start&lt;/blockquote&gt;&lt;br /&gt;Generar la lista principal de "Mailman". Es necesaria para que la aplicación funcione:&lt;br /&gt;&lt;blockquote&gt;#newlist mailman&lt;/blockquote&gt;&lt;br /&gt;El "&lt;i&gt;Gestor de la lista&lt;/i&gt;" debe ser una dirección de correo real, ya que ahí van a llegar las peticiones de alta, moderación, etc.&lt;br /&gt;La &lt;i&gt;"clave inicial"&lt;/i&gt; será la contraseña de administración de la lista.&lt;br /&gt;La lista inicial "mailman" es ficticia y solamente se utiliza para el funcionamiento interno de Mailman.&lt;br /&gt;&lt;br /&gt;Una vez generado la lista inicial, o cualquier lista futura, se deben seguir los pasos indicados y añadir al archivo &lt;i&gt;"/etc/aliases"&lt;/i&gt; las lineas que aparecen:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;## lista de distribuci�n mailman&lt;br /&gt;mailman:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "|/var/lib/mailman/mail/mailman post mailman"&lt;br /&gt;mailman-admin:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "|/var/lib/mailman/mail/mailman admin mailman"&lt;br /&gt;mailman-bounces:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "|/var/lib/mailman/mail/mailman bounces mailman"&lt;br /&gt;mailman-confirm:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "|/var/lib/mailman/mail/mailman confirm mailman"&lt;br /&gt;mailman-join:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "|/var/lib/mailman/mail/mailman join mailman"&lt;br /&gt;mailman-leave:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "|/var/lib/mailman/mail/mailman leave mailman"&lt;br /&gt;mailman-owner:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "|/var/lib/mailman/mail/mailman owner mailman"&lt;br /&gt;mailman-request:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "|/var/lib/mailman/mail/mailman request mailman"&lt;br /&gt;mailman-subscribe:&amp;nbsp;&amp;nbsp;&amp;nbsp; "|/var/lib/mailman/mail/mailman subscribe mailman"&lt;br /&gt;mailman-unsubscribe:&amp;nbsp; "|/var/lib/mailman/mail/mailman unsubscribe mailman"&lt;/blockquote&gt;&lt;br /&gt;Y posteriormente se debe ejecutar el comando:&lt;br /&gt;&lt;blockquote&gt;#newaliases&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;que se encarga de leer el nuevo estado del archivo. &lt;br /&gt;&lt;br /&gt;Desde este momento el servicio de listas de correo es operativo. Ya se pueden generar otras listas de correo y es posible acceder al gestor web de Mailman desde:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;http://lists.prueba.com/cgi-bin/mailman/listinfo/&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Archivos de lista.&lt;br /&gt;Por defecto Mailman guarda una copia de cada mensaje que gestiona y genera unos archivos HTML de consulta de todo el tráfico. Para que la visualización de esta bitácora funcione, deben añadirse las siguientes lineas al archivo&lt;i&gt; "/etc/apache2/apache2.conf"&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&amp;nbsp; Alias /pipermail/ /var/lib/mailman/archives/public/&lt;br /&gt;&amp;nbsp; Alias /images/mailman/ /usr/share/images/mailman/&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;y reiniciar Apache2:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#/etc/init.d/apache2 restart&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Acceso seguro SSL al gestor web de Mailman.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Por defecto el Apache estará escuchando el puerto 80 y las conexiones al gestor web de Mailman no están cifradas. Ya que en estas conexiones pueden enviarse contraseñas, es una buena práctica modificar el servidor web para que escuche por el puerto 443/SSL.&lt;br /&gt;Hacer esto de forma aislada provoca que el gestor web de Mailman falle a la hora de mostrar algunas páginas o de ejecutar ciertos script cgi. El efecto más conocido es cuando tratamos de hacer la moderación de un correo o de aprobar una invitación de alta o revocación.&lt;br /&gt;&lt;br /&gt;Esto se soluciona cambiando el esquema de mailman:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Para servicio:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#/etc/init.d/mailman&amp;nbsp;&amp;nbsp; stop&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Editar&amp;nbsp; "&lt;i&gt;/usr/lib/mailman/Mailman/mm_cfg.py&lt;/i&gt;" y cambiar la linea&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT_URL_PATTERN = 'http://%s/cgi-bin/mailman/'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; por &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT_URL_PATTERN = 'https://%s/cgi-bin/mailman/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Esto hace que la web de todas las listas nuevas funcione correctamente. Si hay listas creadas previamente seguirán fallando. Para propagar el cambio a las listas&amp;nbsp; ya creadas, ejecutar:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #/usr/lib/mailman/bin/withlist -l -a -r fix_url&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Iniciar servicio:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#/etc/init.d/mailman start&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Filtrado de SPAM con SpamAssassin.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Filtro Spam:&lt;br /&gt;&lt;blockquote&gt;&lt;blockquote&gt;&lt;blockquote&gt;&amp;nbsp; #apt-get install spamassassin&lt;/blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; #mkdir /var/lib/spamassassin&lt;br /&gt;&lt;blockquote&gt;&amp;nbsp; # useradd -r -d /var/lib/spamassassin -s /sbin/nologin -c 'SpamAssassin' spamassassin&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; Editar &lt;i&gt;"/etc/default/spamassassin"&lt;/i&gt;&lt;br /&gt;&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENABLED=1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SAHOME="/var/lib/spamassassin/"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OPTIONS="--create-prefs --max-children 5 --username spamassassin --helper-home-dir ${SAHOME} -s ${SAHOME}spamd.log"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CRON=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; [...]&lt;/blockquote&gt;&lt;br /&gt;&amp;nbsp; Editar&lt;i&gt; "/etc/spamassassin/local.cf"&lt;/i&gt;&lt;br /&gt;&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; use_bayes 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; bayes_auto_learn 1&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Comprobar que existen los manejadores de spamassassin para mailman. deben existir los archivos siguientes:&lt;br /&gt;&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /usr/lib/mailman/Mailman/Handlers/SpamAssassin.py&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /usr/lib/mailman/Mailman/Handlers/spamd.py&lt;/blockquote&gt;&lt;br /&gt;&amp;nbsp;Activar el filtrado en mailman. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Editar&lt;i&gt; "/usr/lib/mailman/Mailman/mm_cfg.py"&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Descomentar la linea&lt;br /&gt;&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GLOBAL_PIPELINE.insert(1, 'SpamAssassin')&lt;/blockquote&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Definir las variables que dicen cuando descartar un mensaje, etc:&lt;br /&gt;&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPAMASSASSIN_DISCARD_SCORE = 7.5&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPAMASSASSIN_HOLD_SCORE = 5&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPAMASSASSIN_MEMBER_BONUS = 2&lt;/blockquote&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Explicación de las variables:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;i&gt;&amp;nbsp;&amp;nbsp; SPAMASSASSIN_DISCARD_SCORE: &lt;/i&gt;If a message receives a score above this limit, the message will be discarded without moderation. The default value for this variable is 10.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;i&gt; SPAMASSASSIN_HOLD_SCORE: &lt;/i&gt;If a message receives a score above this limit, the message will be held for moderation. The default value for this variable is 5.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;i&gt; SPAMASSASSIN_MEMBER_BONUS:&lt;/i&gt; If the message was sent by a member of the list, an adjustment can be performed on the score. This makes it less likely that a message claiming to come from a list member will be held for moderation. The default value for this variable is 2. &lt;br /&gt;&lt;br /&gt;&amp;nbsp; Reiniciar "mailman"&lt;br /&gt;&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #/etc/init.d/mailman restart&amp;nbsp;&amp;nbsp;&lt;/blockquote&gt;&lt;br /&gt;Esta solución esta sacada de:&lt;i&gt;&amp;nbsp; http://wiki.list.org/display/DOC/4.27+Securing+Mailman%27s+web+GUI+by+using+Secure+HTTP-SSL&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Manuel de Mailman:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;http://www.gnu.org/software/mailman/docs.html&lt;/i&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-6846925574654822593?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/6846925574654822593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/6846925574654822593'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2011/01/gestor-de-listas-de-correo-debian.html' title='Gestor de listas de correo: Debian, Postfix y MailMan'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-1275413090996924140</id><published>2011-01-10T22:06:00.004+01:00</published><updated>2011-01-10T22:10:40.121+01:00</updated><title type='text'>Debian: Enviar SMS directamente vía modem GSM ZTE MF110</title><content type='html'>&lt;b&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Objetivo&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Enviar mensajes SMS directamente desde linea de comandos con un modem conectado localmente a la máquina.&lt;br /&gt;La máquina forma parte de un sistema de monitorización que debe enviar alarmas a diferentes teléfonos móviles.&lt;br /&gt;Actualmente no existen en el mercado modems GSM genéricos de conexión serie, así que es necesario utilizar lo más parecido: Un stick usb 3G.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Hardware disponible&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;HSUPA USB Stick&amp;nbsp; ZTE MF110 &lt;/i&gt;(Procedente de &lt;i&gt;Movistar&lt;/i&gt;)&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_LP5pR8IvzU8/TStqxkjwwzI/AAAAAAAAAB4/bOTeJlBrlrE/s1600/zte.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_LP5pR8IvzU8/TStqxkjwwzI/AAAAAAAAAB4/bOTeJlBrlrE/s1600/zte.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Plataforma software&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Debian 6 &lt;i&gt;Squeeze&lt;/i&gt; (a día de hoy aún está en fase "&lt;i&gt;testing&lt;/i&gt;") 32 bits sobre hardware Intel x86.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Configuración&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Instalar los paquetes &lt;i&gt;"usb-modeswitch"&lt;/i&gt; y &lt;i&gt;"usb-modeswitch-data"&lt;/i&gt;. &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;#&amp;gt; apt-get install usb-modeswitch&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;#&amp;gt; apt-get install usb-modeswitch-data&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;El sistema (con &lt;i&gt;kernel 2.6.32-5-686&lt;/i&gt;) detecta correctamente el modem. La salida en "&lt;i&gt;/var/log/messages&lt;/i&gt;" es la siguiente al conectar el dispositivo:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;Jan 10 21:31:40 toaster kernel: [ 2454.908197] usb 1-2: new high speed USB device using ehci_hcd and address 6&lt;br /&gt;Jan 10 21:31:40 toaster kernel: [ 2455.042732] usb 1-2: New USB device found, idVendor=19d2, idProduct=0083&lt;br /&gt;Jan 10 21:31:40 toaster kernel: [ 2455.042741] usb 1-2: New USB device strings: Mfr=3, Product=2, SerialNumber=4&lt;br /&gt;Jan 10 21:31:40 toaster kernel: [ 2455.042749] usb 1-2: Product: ZTE WCDMA Technologies MSM&lt;br /&gt;Jan 10 21:31:40 toaster kernel: [ 2455.042755] usb 1-2: Manufacturer: ZTE,Incorporated&lt;br /&gt;Jan 10 21:31:40 toaster kernel: [ 2455.042760] usb 1-2: SerialNumber: P671A2TMED010000&lt;br /&gt;Jan 10 21:31:40 toaster kernel: [ 2455.042969] usb 1-2: configuration #1 chosen from 1 choice&lt;br /&gt;Jan 10 21:31:40 toaster kernel: [ 2455.052740] scsi6 : SCSI emulation for USB Mass Storage devices&lt;br /&gt;Jan 10 21:31:40 toaster usb_modeswitch: switching 19d2:0083 (ZTE,Incorporated: ZTE WCDMA Technologies MSM)&lt;br /&gt;Jan 10 21:31:42 toaster kernel: [ 2456.887025] usb 1-2: USB disconnect, address 6&lt;br /&gt;Jan 10 21:31:47 toaster kernel: [ 2462.268204] usb 1-2: new high speed USB device using ehci_hcd and address 7&lt;br /&gt;Jan 10 21:31:47 toaster kernel: [ 2462.404488] usb 1-2: New USB device found, idVendor=19d2, idProduct=0124&lt;br /&gt;Jan 10 21:31:47 toaster kernel: [ 2462.404498] usb 1-2: New USB device strings: Mfr=3, Product=2, SerialNumber=4&lt;br /&gt;Jan 10 21:31:47 toaster kernel: [ 2462.404506] usb 1-2: Product: ZTE WCDMA Technologies MSM&lt;br /&gt;Jan 10 21:31:47 toaster kernel: [ 2462.404512] usb 1-2: Manufacturer: ZTE,Incorporated&lt;br /&gt;Jan 10 21:31:47 toaster kernel: [ 2462.404518] usb 1-2: SerialNumber: P671A2TMED010000&lt;br /&gt;Jan 10 21:31:47 toaster kernel: [ 2462.404732] usb 1-2: configuration #1 chosen from 1 choice&lt;br /&gt;Jan 10 21:31:47 toaster kernel: [ 2462.408779] option 1-2:1.0: GSM modem (1-port) converter detected&lt;br /&gt;Jan 10 21:31:47 toaster kernel: [ 2462.408926] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0&lt;br /&gt;Jan 10 21:31:47 toaster kernel: [ 2462.409079] option 1-2:1.1: GSM modem (1-port) converter detected&lt;br /&gt;Jan 10 21:31:47 toaster kernel: [ 2462.409198] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1&lt;br /&gt;Jan 10 21:31:47 toaster kernel: [ 2462.409347] option 1-2:1.2: GSM modem (1-port) converter detected&lt;br /&gt;Jan 10 21:31:47 toaster kernel: [ 2462.409459] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB2&lt;br /&gt;Jan 10 21:31:47 toaster kernel: [ 2462.409605] option 1-2:1.3: GSM modem (1-port) converter detected&lt;br /&gt;Jan 10 21:31:47 toaster kernel: [ 2462.409715] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB3&lt;br /&gt;Jan 10 21:31:47 toaster kernel: [ 2462.409861] option 1-2:1.4: GSM modem (1-port) converter detected&lt;br /&gt;Jan 10 21:31:47 toaster kernel: [ 2462.410020] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB4&lt;br /&gt;Jan 10 21:31:47 toaster kernel: [ 2462.410189] option 1-2:1.5: GSM modem (1-port) converter detected&lt;br /&gt;Jan 10 21:31:47 toaster kernel: [ 2462.410355] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB5&lt;br /&gt;Jan 10 21:31:47 toaster kernel: [ 2462.411910] scsi7 : SCSI emulation for USB Mass Storage devices&lt;br /&gt;Jan 10 21:31:48 toaster usb_modeswitch: switched to 19d2:0124 (ZTE,Incorporated: ZTE WCDMA Technologies MSM)&lt;br /&gt;Jan 10 21:31:52 toaster kernel: [ 2467.417410] scsi 7:0:0:0: Direct-Access&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ZTE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MMC Storage&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.31 PQ: 0 ANSI: 2&lt;br /&gt;Jan 10 21:31:52 toaster kernel: [ 2467.419437] sd 7:0:0:0: Attached scsi generic sg2 type 0&lt;br /&gt;Jan 10 21:31:52 toaster kernel: [ 2467.423863] sd 7:0:0:0: [sdb] Attached SCSI removable disk&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;El modem incluye un lector de tarjetas de memoria &lt;i&gt;SD&lt;/i&gt;, que es detectado en "&lt;i&gt;/dev/sdb&lt;/i&gt;".&lt;br /&gt;&lt;br /&gt;El sistema ha añadido 6 nuevos dispositivos:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;/dev/ttyUSB0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;/dev/ttyUSB1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;/dev/ttyUSB2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;/dev/ttyUSB3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;/dev/ttyUSB4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;/dev/ttyUSB5&lt;/span&gt;&lt;/blockquote&gt;&amp;nbsp;Para acceder al modem GSM se debe utilizar (normalmente):&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;/dev/ttyUSB4&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Si no funciona, probar los otros.Normalmente solamente uno de ellos es accesible.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Enviar SMS&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Se puede utilizar cualquier programa cliente de entre los disponibles en los repositorios de Debian. Aquí se ha utilizado "&lt;i&gt;gsm-utils&lt;/i&gt;":&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;#&amp;gt; apt-get install gsm-utils&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;A partir de este momento se dispone de una serie de utilidades para comunicar con el modem GSM, enviar SMS, etc. Para enviar SMS se utiliza el comando "&lt;i&gt;&lt;b&gt;gsmsendsms&lt;/b&gt;&lt;/i&gt;". Recibe como parámetros el número de teléfono de destino, el texto del mensaje y el nombre del dispositivo.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;vg.-&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;#&amp;gt; gsmsendsms&amp;nbsp; -d&amp;nbsp; /dev/ttyUSB4&amp;nbsp; 6XXXXXXXX&amp;nbsp; "Este es un mensaje de prueba..."&lt;/span&gt;&lt;/blockquote&gt;(El mensaje es enviado inmediatamente) &lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Nota:&lt;/b&gt;&lt;/u&gt; El modem necesita unos segundos después de conectarse al equipo para encontrar cobertura y registrarse en la red GSM. Cuando el dispositivo está listo parpadea en verde.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-1275413090996924140?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/1275413090996924140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/1275413090996924140'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2011/01/debian-enviar-sms-directamente-via.html' title='Debian: Enviar SMS directamente vía modem GSM ZTE MF110'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LP5pR8IvzU8/TStqxkjwwzI/AAAAAAAAAB4/bOTeJlBrlrE/s72-c/zte.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-3597817817977065451</id><published>2010-04-25T22:10:00.000+02:00</published><updated>2010-04-25T22:10:00.567+02:00</updated><title type='text'>(Debian lenny + KDE3) Lugares en que puede aparecer la opción "-nolisten tcp"</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;b&gt;/etc/kde3/kdm/kdmrc&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote style="font-family: Arial,Helvetica,sans-serif;"&gt;[...] &lt;br /&gt;&lt;span id="main" style="visibility: visible;"&gt;&lt;span id="search" style="visibility: visible;"&gt;ServerArgsLocal=-&lt;i&gt;nolisten&lt;/i&gt; tcp&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;[...]&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;b&gt;/etc/X11/xinit/xserverrc&lt;/b&gt;&lt;/div&gt;&lt;blockquote style="font-family: Arial,Helvetica,sans-serif;"&gt;[...]&lt;br /&gt;exec /usr/bin/X11/X -nolisten tcp&lt;br /&gt;[...]&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-3597817817977065451?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/3597817817977065451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/3597817817977065451'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2010/04/debian-lenny-kde3-lugares-en-que-puede.html' title='(Debian lenny + KDE3) Lugares en que puede aparecer la opción &quot;-nolisten tcp&quot;'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-3234256800837105533</id><published>2010-04-04T22:08:00.003+02:00</published><updated>2010-04-05T21:38:37.912+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unix/Linux'/><title type='text'>(BORRADOR) Servidor de Correo: postfix</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;b&gt;¡¡AVISO. Esta entrada es un borrador y puede contener errores técnicos y tipográficos!!&lt;/b&gt; &lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;b&gt;INSTALACIÓN O.S.&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debian lenny i386 'netinstall'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IP: 192.168.1.12&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hostname: mail.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ntp:&amp;nbsp; Muy importante para el sistema de correo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Instalación del sistema base &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel 2.6&lt;br /&gt;&lt;br /&gt;&lt;b&gt;CONFIGURACIÓNES PREVIAS A NIVEL O.S.&lt;/b&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; apt-get install openssh-server&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install ntp&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Comprobar sincronización horaria&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ps aux | grep ntp&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; date&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Comprobar archivo hosts&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mail:~# cat /etc/hosts&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 127.0.0.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; localhost&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.12&amp;nbsp;&amp;nbsp;&amp;nbsp; mail.trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mail&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Comprobar conectividad a/desde Internet&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Repositorios obligatorios ('/etc/apt/sources.list')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; deb http://ftp.fr.debian.org/debian/ lenny main non-free contrib&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; deb-src http://ftp.fr.debian.org/debian/ lenny main non-free contrib&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; deb http://security.debian.org/ lenny/updates main contrib non-free&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; deb-src http://security.debian.org/ lenny/updates main contrib non-free&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Aplicar actualizaciones de seguridad:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get update&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; apt-gte upgrade&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;MYSQL SERVER (5.0)&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install mysql-server mysql-client&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Usuario: root, contraseña: root&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Asegurarse que el servicio arranca con el sistema&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; update-rc.d mysql defaults&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tunning MySQL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/mysql stop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Sustituir el archivo "/etc/mysql/my.cnf" por el contenido de "/usr/share/doc/mysql-server-5.0/examples/my-medium.cnf.gz". Deja más memoria para caché y mejora rendimiento. Es una configuración de ejemplo hecha por los mantenedores de Debian que funciona muy bien.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Editar "/etc/mysql/my.cnf" para activar el motor "InnoDB":&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Uncomment the following if you are using InnoDB tables&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; innodb_data_home_dir = /var/lib/mysql/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; innodb_data_file_path = ibdata1:10M:autoextend&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; innodb_log_group_home_dir = /var/lib/mysql/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; innodb_log_arch_dir = /var/lib/mysql/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # You can set .._buffer_pool_size up to 50 - 80 %&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # of RAM but beware of setting memory usage too high&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; innodb_buffer_pool_size = 16M&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Estos valores se deben ajustar de acuerdo a las características de la máquina&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; innodb_additional_mem_pool_size = 2M&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Set .._log_file_size to 25 % of buffer pool size&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Estos valores se deben ajustar de acuerdo a las características de la máquina&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; innodb_log_file_size = 5M&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; innodb_log_buffer_size = 8M&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; innodb_flush_log_at_trx_commit = 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; innodb_lock_wait_timeout = 50&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Editar "/etc/mysql/my.cnf" para activar el 'log' de consultas. Esto se vuelve a dejar igual al terminar, pero en configuración es muy util para saber qué se está consultando en la base de datos:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # * Logging and Replication&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Both location gets rotated by the cronjob.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Be aware that this log type is a performance killer.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; log&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = /var/log/mysql/mysql.log&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Archivo de log&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Error logging goes to syslog. This is a Debian improvement :)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Here you can see queries with especially long duration&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Archivo de log&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; log_slow_queries&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = /var/log/mysql/mysql-slow.log&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; long_query_time = 2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; log-queries-not-using-indexes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&lt;br /&gt;&lt;b&gt;APACHE2 + PHP5&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install apache2 php5 php5-mysql php5-imap&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Por alguna razón, no carga correctamente el módulo php en la instalación. Se soluciona reiniciando 'apache'.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/apache2 restart&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Es muy buena idea habilitar las conexiones SSL. Ver anexo a final.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Comprobar que los scripts "php" se ejecutan correctamente.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;POSTFIXADMIN (2.3)&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Descargar la versión 2.3 de la web pfadmin:&amp;nbsp; http://postfixadmin.sourceforge.net/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; wget http://downloads.sourceforge.net/[...]/postfixadmin_2.3.tar.gz[...] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Descomprimir&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tar xvfz postfixadmin_2.3.tar.gz&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mover a un lugar visible por el servidor web&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mv postfixadmin-2.3 /var/www/postfixadmin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cambiar propietario:grupo de los archivos a 'www-data'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; chown -R www-data:www-data /var/www/postfixadmin/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Seguir las instrucciones de '/var/www/postfixadmin/INSTALL.TXT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Conectarse al gestor MySQL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql -u root -p&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Crear una base de datos MySQL de nombre 'postfix' para el usuario 'postfix'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; create database postfix;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; create user 'postfix'@'localhost' IDENTIFIED BY 'postfix';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; grant all privileges on `postfix`.* to 'postfix'@'localhost';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; flush privileges;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Editar archivo de configuración '/var/www/postfixadmin/config.inc.php'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['configured'] = true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Este es el password de setup. Está 'hasheado'. Se puede obtener cargando el "setup.php" de pfadmin, generándolo y pegando aquí el resultado&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['setup_password'] = 'a4dbfc3f2c8a1cfa40ff7ec75098aa5f:c9f36703be092127f59806137efc3e3039b4ddd5';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['postfix_admin_url'] = 'http://192.168.1.12/postfixadmin';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['default_language'] = 'es';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['database_type'] = 'mysql';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['database_host'] = 'localhost';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['database_user'] = 'postfix';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['database_password'] = 'postfix';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['database_name'] = 'postfix';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['database_prefix'] = '';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['encrypt'] = 'md5crypt';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['domain_path'] = 'YES';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['domain_in_mailbox'] = 'NO';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['emailcheck_resolve_domain']='NO';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Editar el archivo de configuración '/var/www/postfixadmin/config.inc.php' para asignar correctamente todas las direcciones de correo de administración:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['admin_email'] = 'josem@trustnone.es';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'abuse' =&amp;gt; 'josem@trustnone.es',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'hostmaster' =&amp;gt; 'josem@trustnone.es',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'postmaster' =&amp;gt; 'josem@trustnone.es',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'webmaster' =&amp;gt; 'josem@trustnone.es'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Visitar:&amp;nbsp; http://192.168.1.12/postfixadmin/setup.php&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Generar el hash del setup password para ponerlo en en archivo config.inc.php&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Comprobar que todo está OK&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Visitar (de nuevo):&amp;nbsp; http://192.168.1.12/postfixadmin/setup.php&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Generar un administrador del sistema de correo. Es buena idea que sea un email que luego exista realmente&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Borrar 'setup.php'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Visitar: http://192.168.1.12/postfixadmin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Acceder con el administrador creado antes y generar el primero dominio y usuario/s, coincidiendo con los del administrador de setup del paso anterior.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Comprobar que los registros se han añadido a las tablas de MySQL.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;POSTFIX&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Desinstalar el MTA que por defecto instala Debian; Exim4&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get remove --purge exim4 exim4-config exim4-daemon-light &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; El paquete postfix que incluye lenny no está preparado para soportar 'quotas' de usuario. Hay que parchearlo y compilarlo para que lo soporte&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Parcheo/Compilación&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Instalar el paquete original de postfix de lenny (solo se usará para hacer la configuración inicial, además de para saber que versión es y conseguir el parche específico&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install postfix postfix-mysql&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;Internet Site&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;System mail name: mail.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Parar el demonio&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/postfix stop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Comprobar la versión que dispone lenny (2.5.5).&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; postconf -d&amp;nbsp; | grep -i mail_version&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Paquetes de desarrollo necesarios para la compilación y otras dependencias específicas para compilar postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install dpkg-dev&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install debhelper po-debconf lsb-release libdb-dev libldap2-dev libpcre3-dev libmysqlclient15-dev libssl-dev libsasl2-dev libpq-dev libcdb-dev hardening-wrapper&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Descarga de los fuentes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; cd /usr/src&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get source postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Descargar el parche correspondiente a la versión de postfix (2.5.5) de 'http://vda.sourceforge.net&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; wget http://vda.sourceforge.net/VDA/postfix-2.5.5-vda-ng.patch.gz&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Descomprimir y parchear (desde /usr/src/)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; gunzip postfix-2.5.5-vda-ng.patch.gz&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; cd postfix-2.5.5&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; patch -p1 &amp;lt; ../postfix-2.5.5-vda-ng.patch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Compilar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dpkg-buildpackage&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Los paquetes .deb resultantes están en '/usr/src'.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Instalar 'postfix' y 'postfix-mysql'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; cd /usr/src&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dpkg -i postfix_2.5.5-1.1_i386.deb postfix-mysql_2.5.5-1.1_i386.deb&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Comprobar que 'uid' y 'gid' tienen en el sistema el usuario y grupo postfix. Esto se utilizará para que postfix le otorgue estos permisos a los mailboxes.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; id postfix&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uid=104(postfix) gid=107(postfix)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Comprobar que la configuración actual de postfix es similar a la siguiente.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/main.cf&amp;nbsp; (ARCHIVO COMPLETO)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #CONFIGURACION GLOBAL GENERICA&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtpd_banner = $myhostname ESMTP $mail_name -POSTFIX-&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; biff = no&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; append_dot_mydomain = no&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; readme_directory = no&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myhostname = mail.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mydomain = trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; alias_maps = hash:/etc/aliases&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; alias_database = hash:/etc/aliases&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myorigin = /etc/mailname&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mydestination = mail.trustnone.es, localhost.trustnone.es, , localhost&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; relayhost =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailbox_size_limit = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; recipient_delimiter = +&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; inet_interfaces = all&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Configuración virtual-mysql para postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/main.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #MYSQL VIRTUAL DOMAINS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_alias_maps = mysql:/etc/postfix/mysql/virtual_alias_maps.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_gid_maps = static:107&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_mailbox_base = /home/vmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_mailbox_domains = mysql:/etc/postfix/mysql/virtual_domains_maps.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_mailbox_maps = mysql:/etc/postfix/mysql/virtual_mailbox_maps.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_minimum_uid = 104&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_transport = virtual&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_uid_maps = static:104&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mkdir /etc/postfix/mysql&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/mysql/virtual_alias_maps.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; user = postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; password = postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; hosts = 127.0.0.1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dbname = postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; table = alias&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; select_field = goto&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; where_field = address&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/mysql/virtual_domains_maps.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; user = postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; password = postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; hosts = 127.0.0.1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dbname = postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; table = domain&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; select_field = domain&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; where_field = domain&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; additional_conditions = and backupmx = '0' and active = '1'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/mysql/virtual_mailbox_maps.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; user = postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; password = postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; hosts = 127.0.0.1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dbname = postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; table = mailbox&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; select_field = maildir&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; where_field = username&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Crear directorio para los buzones y darle permisos &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mkdir /home/vmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; chown postfix:postfix /home/vmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; chmod 700 /home/vmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Reiniciar postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/postfix restart&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Comprobar configuración hasta aquí. Se debería poder conectar vía SMTP (puerto tcp:25) sin autentificación y enviar correos a los mailboxes de los dominios locales. También hacia el exterior, pero posíblemente ningún otro servidor SMTP quiera 'hablar' con este aún. Además, postfix deberá crear automáticamente el mailbox del usuario. ¡¡OJO!!, el sistema ahora es un 'OpenRelay'.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;COURIER POP,IMAP&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Instalación de paquetes necesarios&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install courier-base courier-authlib-mysql courier-pop courier-imap&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Create directories for web-based administration? -&amp;gt; No&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Editar archivos de configuración&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/courier/authdaemonrc&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; authmodulelist="authmysql"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; authmodulelistorig="authuserdb authpam authpgsql authldap authmysql authcustom authpipe"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; daemons=5&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; authdaemonvar=/var/run/courier/authdaemon&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; DEBUG_LOGIN=1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULTOPTIONS=""&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LOGGEROPTS=""&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/courier/authmysqlrc&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MYSQL_SERVER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 127.0.0.1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MYSQL_USERNAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MYSQL_PASSWORD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MYSQL_PORT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3306&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MYSQL_OPT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MYSQL_DATABASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MYSQL_USER_TABLE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mailbox&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MYSQL_CRYPT_PWFIELD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; password&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MYSQL_UID_FIELD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 104&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MYSQL_GID_FIELD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 107&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MYSQL_LOGIN_FIELD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; username&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MYSQL_HOME_FIELD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '/home/vmail'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MYSQL_NAME_FIELD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MYSQL_MAILDIR_FIELD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; maildir&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/courier/pop3d&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; PIDFILE=/var/run/courier/pop3d.pid&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MAXDAEMONS=40&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MAXPERIP=4&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; POP3AUTH=""&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; POP3AUTH_ORIG="PLAIN LOGIN CRAM-MD5 CRAM-SHA1 CRAM-SHA256"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; POP3AUTH_TLS=""&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; POP3AUTH_TLS_ORIG="LOGIN PLAIN"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; POP3_PROXY=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; PORT=110&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ADDRESS=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; TCPDOPTS="-nodnslookup -noidentlookup"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LOGGEROPTS="-name=pop3d"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; POP3DSTART=YES&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MAILDIRPATH=Maildir&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/courier/imapd&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ADDRESS=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; PORT=143&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MAXDAEMONS=40&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MAXPERIP=20&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; PIDFILE=/var/run/courier/imapd.pid&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; TCPDOPTS="-nodnslookup -noidentlookup"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LOGGEROPTS="-name=imapd"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_KEYWORDS=1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_ACL=1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_CAPABILITY_ORIG="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256 IDLE"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_PROXY=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_PROXY_FOREIGN=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_IDLE_TIMEOUT=60&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_MAILBOX_SANITY_CHECK=1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_CAPABILITY_TLS="$IMAP_CAPABILITY AUTH=PLAIN"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_CAPABILITY_TLS_ORIG="$IMAP_CAPABILITY_ORIG AUTH=PLAIN"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_DISABLETHREADSORT=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_CHECK_ALL_FOLDERS=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_OBSOLETE_CLIENT=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_UMASK=022&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_ULIMITD=65536&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_USELOCKS=1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_SHAREDINDEXFILE=/etc/courier/shared/index&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_ENHANCEDIDLE=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_TRASHFOLDERNAME=Trash&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_EMPTYTRASH=Trash:7&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAP_MOVE_EXPUNGE_TO_TRASH=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; SENDMAIL=/usr/sbin/sendmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; HEADERFROM=X-IMAP-Sender&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IMAPDSTART=YES&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MAILDIRPATH=Maildir&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Reiniciar los servicios del 'courier'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/courier-authdaemon restart&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/courier-imap restart&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/courier-pop restart&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Asegurarse que los servicios arrancan al inicio&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; update-rc.d courier-authdaemon defaults&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; update-rc.d courier-pop defaults&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; update-rc.d courier-imap defaults&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Comprobar que se puede conectar tanto vía IMAP (tcp:143) como POP3 (tcp:110) y obtener el correo del mailbox.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;COURIER POPS, IMAPS (Servicios seguros de conexión a los servicios POP e IMAP)&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; La transmisión de datos se realiza cifrada mediante SSL. Para esto son necesarios certificados, pero 'apt' los creará automáticamente (uno para SPOP y otro para IMAPS). Después pueden ser sustituidos por otros firmados/autofirmados.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Instalación de paquetes para POPS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install courier-ssl courier-pop-ssl&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Instalación de paquetes para IMAPS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install courier-imap-ssl&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Asegurarse que los servicios seguros arrancan al inicio del sistema&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; update-rc.d courier-pop-ssl defaults&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; update-rc.d courier-imap-ssl defaults&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; El servicio IMAPS escucha por el puerto tcp:993&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; El servico POPS escucha por el puerto tcp:995&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SASL-AUTH Autentificación SMTP&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Instalación de paquetes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install libsasl2-2 sasl2-bin libsasl2-modules libsasl2-modules-sql&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Configuración de 'saslauth' para que postfix pueda ver el servicio. Postfix corre en una jaula 'chroot' que cuelga de '/var/spool/postfix'.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/saslauthd stop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rm -fr /var/run/saslauthd&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mkdir -p /var/spool/postfix/var/run/saslauthd&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; chgrp sasl /var/spool/postfix/var/run/saslauthd&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ln -s /var/spool/postfix/var/run/saslauthd /var/run&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; adduser postfix sasl&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Editar los archivos de configuración&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/default/saslauthd&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; START=yes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; NAME="saslauthd"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MECHANISMS="pam"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MECH_OPTIONS=""&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; THREADS=5&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/sasl/smtpd.conf&amp;nbsp;&amp;nbsp;&amp;nbsp; (Este archivo ha de ser creado Y PERMISOS)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pwcheck_method: saslauthd&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mech_list: login plain cram-md5 digest-md5&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; auxprop_plugin: sql&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; sql_engine:mysql&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; sql_hostnames: 127.0.0.1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; sql_user: postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; sql_database: postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; sql_passwd: postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; sql_select: select password from mailbox where username = '%u@%r'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; log_level: 10&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/main.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #SASL auth&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtpd_sasl_auth_enable = yes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtpd_sasl_local_domain =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtpd_sasl_security_options = noanonymous&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; broken_sasl_auth_clients = yes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Instalar la extensión 'mysql' de 'pam'. La autentificación pasa por 'pam'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install libpam-mysql&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Editar '/etc/pam.d/smtp'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; auth required pam_mysql.so user=postfix passwd=postfix host=127.0.0.1 db=postfix table=mailbox usercolumn=username passwdcolumn=password crypt=1 md5=1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; account sufficient pam_mysql.so user=postfix passwd=postfix host=127.0.0.1 db=postfix table=mailbox usercolumn=username passwdcolumn=password cryp=1 md5=1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Reiniciar servicios&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/saslauthd restart&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/postfix restart&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Comprobar que 'saslauth' arranca al inicio del sistema&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; update-rc.d saslauthd defaults&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; El nombre de usuario para la autentificación es la dirección completa de correo electrónico&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;POSTFIX TLS - SMTPD.&lt;/b&gt; Permite que las conexiones de clientes 'smtp' con el servidor estén cifradas. Permitirá conectarse con o sin TLS, a elección del cliente.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Utiliza un certificado. Se puede generar uno firmado/autofirmado o utilizar alguno de los que ya están en el sistema, con el 'snakeoil'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Editar /etc/postfix/main.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #TLS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtpd_use_tls=yes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Reiniciar 'postfix'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/postfix restart&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;b&gt;QUOTAs&lt;/b&gt;. Previamente se ha parcheado/recompilado 'postfix' para que soporte quotas&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Instalar 'maildrop'. Se encarga de actualizar el archivo 'maildirsize' desde la BD&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install maildrop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Configurar 'postfixadmin' para que gestione las quotas en la base de datos&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /var/www/postfixadmin/config.inc.php&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['quota_multiplier'] = '1024000';&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Medida por defecto (1MB)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['maxquota'] = '10';&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Maximo 10 MB&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['quota'] = 'YES';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Configurar quotas a los usuarios en 'postfixadmin' (0 = ilimitado). Confirmar que los datos se actualizan en la tabla ('mailbox')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Configurar postfix para que lea las quotas de la DB&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/mysql/virtual_mailbox_quota.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; user = postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; password = postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dbname = postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; hosts = 127.0.0.1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; query = SELECT quota FROM mailbox WHERE username='%s'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/main.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #QUOTA&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql/virtual_mailbox_quota.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_mailbox_limit_override = yes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_maildir_limit_message = "The user you are trying to reach is over quota."&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_overquota_bounce = yes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_create_maildirsize = yes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_mailbox_extended = yes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_maildir_extended = yes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Ahora 'postfix' lee las quotas en la base de datos y las actualiza en el archivo 'maildirsize' del buzón.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;TUNNING POSTFIX:&lt;/b&gt; Algunas opciones de configuración a tener en cuenta&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/main.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #TUNNING&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #Tamaño máximo de mensaje con 'envoltorios' (10MB)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; message_size_limit = 10240000&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #Timeout&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #Número máximo de procesos postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; default_process_limit = 20&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #Tiempos de reintento (reprocesado de cola)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; queue_run_delay = 300s&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #Validez de mensajes en cola (Tiempo máximo que se intenta entregar un msg)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; maximal_queue_lifetime = 2d&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; bounce_queue_lifetime = 2d&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #Ratios de envío&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #Número máximo de conexiones simultaneas de un cliente smtp&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtpd_client_connection_count_limit = 50&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #Número máximo de conexiones de un cliente por unidad de tiempo (60s)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtpd_client_connection_rate_limit = 150&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #Número máximo de mensajes de un cliente por unidad de tiempo (60s)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtpd_client_message_rate_limit = 100&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #Número máximo de destinatarios que puede contener un mensaje&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtpd_recipient_limit = 1000&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;VACATION - AUTORESPONDER&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; No es muy recomendable, porque reponderá a los correos de SPAM, confirmando que somos una dirección válida, aunque para correo del trabajo empresas es muy util.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; La característica viene incluida en 'postfixadmin'. Se puede seguir la guia INSTALL &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Instalación de software necesario:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install libdbi-perl libdbd-mysql-perl libmail-sendmail-perl libemail-valid-perl libmime-perl libmime-charset-perl libmime-encwords-perl libmail-sender-perl&amp;nbsp; liblog-log4perl-perl&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Creación del usuario/grupo vacation&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; addgroup --gid 65501 vacation&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; useradd -c "Virtual Vacation" -d /var/spool/vacation -u 65501 -g 65501 -s /sbin/false vacation&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Localización/configuración del script "vacation.pl". Este script es el que hace "la magia"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mkdir /var/spool//vacation&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; cp /var/www/postfixadmin/VIRTUAL_VACATION/vacation.pl /var/spool/vacation/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; chown -R vacation:vacation /var/spool/vacation/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; chmod 755 /var/spool/vacation&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; chmod 711 /var/spool/vacation/vacation.pl&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; chmod -x /var/spool/vacation/vacation.pl&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /var/spool/vacation/vacation.pl&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # db_type - uncomment one of these&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #our $db_type = 'Pg';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; our $db_type = 'mysql';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # connection details&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; our $db_username = 'postfix';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; our $db_password = 'postfix';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; our $db_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 'postfix';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; our $vacation_domain = 'autoreply.trustnone.es';&amp;nbsp;&amp;nbsp;&amp;nbsp; "RECORDAR ESTO"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/transport&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; (El archivo debe ser creado)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; autoreply.trustnone.es&amp;nbsp; vacation:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; postmap /etc/postfix/transport&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/master.cf:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; vacation&amp;nbsp;&amp;nbsp;&amp;nbsp; unix&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pipe&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; flags=Rq user=vacation argv=/var/spool/vacation/vacation.pl -f ${sender} -- ${recipient}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/main.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #VACATION&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; transport_maps = hash:/etc/postfix/transport&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; vacation_destination_recipient_limit = 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /var/www/postfixadmin/config.inc.php&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['vacation'] = 'YES';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['vacation_domain'] = 'autoreply.trustnone.es';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['vacation_control'] ='YES';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['vacation_control_admin'] = 'YES';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&lt;br /&gt;&lt;b&gt;LISTAS NEGRAS DE REMITENTES - BLACK LISTs ( de INTERNET)&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Internet dispone de algunos listados de IPs y remitentes "malignos" que podemos utilizar para bloquearlos en nuestro servidor. Se presupone que el uso de estas listas negras puede evitar hasta un 70% de SPAM.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Los más interesantes son "spamcop" y "spamhaus". Para que postfix compruebe en ellos si la IP del remitente es "oscura", se edita la entrada "smtpd_recipient_restrictions" de esta forma:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/main.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtpd_recipient_restrictions = permit_sasl_authenticated,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; permit_mynetworks,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reject_unauth_destination,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reject_rbl_client zen.spamhaus.org,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Linea de blacklist&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reject_rbl_client bl.spamcop.net&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Linea de blacklist&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Las lineas de listas negras deben ir al final o lo más al final posible. Siempre después de "permit_sasl_authenticated"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;b&gt;LISTAS NEGRAS DE REMITENTES - BLACK LISTs (LOCALES)&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Si deseamos bloquear ciertos remitentes que no aparecen en las listas negras de SPAM.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Crear un archivo de texto con los remitentes/IPs que se desea bloquear&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/black_list_senders&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; spammer@domain.tld&amp;nbsp;&amp;nbsp;&amp;nbsp; REJECT&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Entre ambos campos debe ir un tabulador&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 80.50.22.0&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; REJECT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mapear el archivo:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; postmap&amp;nbsp; /etc/postfix/black_list_senders&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Añadir la restricción a la entrada "smtpd_recipient_restrictions" de esta forma:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/main.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtpd_recipient_restrictions = permit_sasl_authenticated,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; check_sender_access&amp;nbsp;&amp;nbsp;&amp;nbsp; hash:/etc/postfix/black_list_senders&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- La entrada debe ir lo más al final posible&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cada vez que un nuevo "remitente" se añade al archivo "black_list_senders" se debe ejecutar el mapeo del archivo para que postfix lo tenga en cuenta:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; postmap&amp;nbsp; /etc/postfix/black_list_senders&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;b&gt;COMPROBACIÓN DEL REGISTRO 'SPF' DEL SERVIDOR REMOTO&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Postfix no implementa nativamente la comprobación SPF, pero se pueden utilizar plugins hechos por terceros.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Descargar de "http://openspf.org" el "appliance":&amp;nbsp; postfix-policyd.spf-perl. Existen otros escritos para otros MTA y en otros lenguajes.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; wget http://www.openspf.org/blobs/postfix-policyd-spf-perl-2.007.tar.gz&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Descomprimir/desempaquetar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tar xvfz postfix-policyd-spf-perl-2.007.tar.gz&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Copiar "./postfix-policyd-spf-perl-2.007/postfix-policyd-spf-perl" en "/usr/lib/postfix"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; cp postfix-policyd-spf-perl-2.007/postfix-policyd-spf-perl&amp;nbsp; /usr/lib/postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Añadir el nuevo servicio a "/etc/postfix/master.cf"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/master.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; policy&amp;nbsp; unix&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spawn&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; user=nobody argv=/usr/local/lib/policyd-spf-perl&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Añadir la política a la entrada "smtpd_recipient_restrictions" de esta forma:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/main.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtpd_recipient_restrictions = permit_sasl_authenticated,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; reject_unauth_destination,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; check_policy_service unix:private/policy&amp;nbsp; &amp;lt;- Debe ir después de "reject_unauth_destination"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Añadir un límite al tiempo de espera para la política&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/main.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; policy_time_limit = 3600,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&lt;br /&gt;&lt;b&gt;COMPROBACIÓN DE LA RESOLUCIÓN INVERSA DEL SERVIDOR REMOTO&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; En la actualidad la mayoría de servidores de correo en Internet hacen esta comprobación, que permite retener un gran número de correos SPAM&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Se activa añadiendo una nueva linea a la entrada "smtpd_recipient_restrictions" de esta forma:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtpd_recipient_restrictions = permit_sasl_authenticated,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; permit_mynetworks,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reject_unauth_destination,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; reject_unknown_reverse_client_hostname,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Linea de comprobación de rDNS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reject_rbl_client zen.spamhaus.org,&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reject_rbl_client bl.spamcop.net&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;b&gt;AMAVISD-NEW + SPAMASSASSIN + CLAMAV&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ¿Qué queremos que suceda con el spam y los virus?&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Los correos con virus no deberían llegar a ningún mailbox. Deben pasar a la carpeta de cuarentena y el 'postmaster' o el destinatario original recibir una notificación&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Los correos considerados SPAM deben ir a parar a un 'folder' especial llamdo 'SPAM'. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Instalación de software:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2&amp;nbsp; libnet-ph-perl libnet-snpp-perl libnet-telnet-perl nomarch lzop rar unrar lha arj ripole cabextract pax tnef&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; El servicio AMAVISD-NEW escucha en el puerto 'tcp:10024'. Comprobarlo: "netstat -an | grep 10024" y asegurarse de que se inicia con el arranque del sistema&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Añadir el usuario 'clamav' al grupo 'amavis'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; adduser clamav amavis&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Enlazar 'postfix' con 'amavisd'.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Crear los servicios en 'master.cf' añadiendo las entradas:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/master.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # AV scan filter (used by content_filter)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; scan&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unix&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; smtp&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; -o smtp_send_xforward_command=yes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # For injecting mail back into postfix from the filter&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 127.0.0.1:10025 inet&amp;nbsp; n -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; smtpd&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; -o content_filter=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; -o smtpd_helo_restrictions=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; -o smtpd_client_restrictions=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; -o smtpd_sender_restrictions=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; -o smtpd_recipient_restrictions=permit_mynetworks,reject&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; -o mynetworks_style=host&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; -o smtpd_authorized_xforward_hosts=127.0.0.0/8&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Especificar en 'main.cf' que los correos se envíen primero a 'amavis'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/main.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; content_filter = scan:127.0.0.1:10024&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; receive_override_options = no_address_mappings&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Reiniciar 'postfix'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/postfix restart&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ahora los correos ya pasan por "amavis", pero por defecto no hace ningún test sobre el mensaje&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Activar filtro antivirus&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/amavis/conf.d/15-content_filter_mode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Eliminar los comentarios de las siguientes lineas.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; @bypass_virus_checks_maps = (&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Activar filtro de SPAM&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/amavis/conf.d/15-content_filter_mode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Eliminar los comentarios de las siguientes lineas.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; @bypass_spam_checks_maps = (&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Para que SpamAssassin reescriba el "subject" de los correos, debe reconocer los dominios locales como tales. Para ello hay que definir la variable '@local_domains_maps' para que contenga todos los dominios locales que el servidor maneja. Como son varios y pueden variar, definimos la variable como '@local_domains_maps = (1)' en el archivo:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/amavis/conf.d/20-debian_defaults&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; @local_domains_maps = (1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Si queremos que los correos detectados como SPAM sean marcados en el subject, definir las variables:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/amavis/conf.d/20-debian_defaults&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $sa_spam_subject_tag = '*SPAM*&amp;gt; ';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $sa_tag_level_deflt&amp;nbsp; = 2.0;&amp;nbsp; # add spam info headers if at, or above that level&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $sa_tag2_level_deflt = 6.31; # add 'spam detected' headers at that level&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Indicar a "Amavis" que el correo llegue al destino (aunque marcado), ya que por defecto lo devuelve&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/amavis/conf.d/20-debian_defaults&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #$final_spam_destiny&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = D_BOUNCE;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Esto es lo que había originalmente. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $final_spam_destiny&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = D_PASS;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Este el el comportamiento que queremos&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Poner los correos con virus en un directorio de cuarentena y notificar al administrador del sistema que se ha recibido un virus&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/amavis/conf.d/20-debian_defaults&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $mailfrom_notify_admin = 'AMAVIS\@trustnone.es';&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Remitentes de los correos de notificación que envia AMAVIS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $mailfrom_notify_recip = 'AMAVIS\@trustnone.es';&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Remitentes de los correos de notificación que envia AMAVIS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $mailfrom_notify_spamadmin = 'AMAVIS\@trustnone.es';&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Remitentes de los correos de notificación que envia AMAVIS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $QUARANTINEDIR = "$MYHOME/virusmails";&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Directorio de cuarentena: "/var/lib/amavis/virusmails". Debería ser algo separado que se pueda controlar.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $virus_admin = 'josem\@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- A quien se envían las notificaciones de que se ha recibido VIRUS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $final_virus_destiny&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = D_DISCARD;&amp;nbsp; # (data not lost, see virus quarantine)&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- El correo no llegará al destinatario&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $X_HEADER_LINE = "Scanned with ClamAV-AmavisNew at $mydomain";&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Linea que aparecerá en el encabezamiento del correo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ¡OJO!. Los correos en cuarentena no se eliminan automaticamente. Se debe escribir un script que se ejecute automáticamente y controle que el directorio de cuarentena no bloquee el FS.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Reiniciar todos los servicios&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/clamav-daemon restart&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/amavis restart&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mensaje de prueba SPAM&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Se puede enviar un correo que contenga la cadena:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Una regla específica de SPAMASSASSIN debería reconocerla para marcar el correo como SPAM a modo de prueba&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mensaje de prueba VIRUS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Se puede descargar un archivo de prueba desde:&amp;nbsp; http://www.eicar.org/anti_virus_test_file.htm&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; El archivo se puede adjuntar a un correo para comprobar que el sistema lo detecta como VIRUS y lo pone en cuarentena, además de avisar al administrador.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Actualizació nde la base de datos de SpamAssassin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Para actualizar desde Internet&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; sa-update&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/amavis restart&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; No se ejecuta automáticamente, de forma que se debe añadir una linea al 'crontab'&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Actualización de la base de datos de Virus para ClamAV&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Clamav utiliza el servicio "freshclam" que se encarga de actualizar la base de datos de virus desde Internet (cada hora). Comprobar que está ejecutándose y que arranca al inicio.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; El archivo de configuración de "freshclam" donde se configura esto es:&amp;nbsp; "/etc/clamav/freshclam.conf"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; El servicio deja un log en "/var/log/clamav/freshclam.log"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; El proceso es automático&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SQUIRRELMAIL&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Descargar el paquete de squirrelmail (Last Release is 1.4.19)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; wget http://squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fprdownloads.sourceforge.net%2Fsquirrelmail%2Fsquirrelmail-1.4.19.tar.gz&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tar xvfz squirrelmail-1.4.19.tar.gz&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mv squirrelmail-1.4.19 /var/www/squirrelmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; chown -R www-data:www-data /var/www/squirrelmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ejecutar el script de configuración&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; cd /var/www/squirrelmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ./configure&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Comprobar la configuración:&amp;nbsp; https://IPMAILSERVER/squirrelmail/src/configtest.php&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Acceder al webmail: http://IPMAILSERVER/squirrelmail&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Plugins y herramientas insteresantes; descargables desde la web de 'squirrelmail' y fáciles de instalar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; compatibility: Necesario para instalar otros módulos&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; check_quota:&amp;nbsp; Muestra la cuota de buzón asignada/ocupada&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; html_mail:&amp;nbsp; Permite escribir mensajes en HTML con 'fckeditor'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; calendar: Incluido en SQM&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; jsclock: Hora mediante un JavaScript&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; timeout_user:&amp;nbsp; Desconecta la sesión después de un tiempo (configurable) de inactividad.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Idiomas internacionales (es_ES). Ojo; para que funcione la traducción hay que cambiar todo a utf-8. Ver este enlace:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; http://www.ubuntu-es.org/?q=node/33800&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;b&gt;ROUNDCUBEMAIL&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Descargar paquete de RoundCubeMail (Last Release is 0.3.1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; wget http://downloads.sourceforge.net/project/roundcubemail/roundcubemail/0.3.1/roundcubemail-0.3.1.tar.gz?use_mirror=surfnet &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tar xvfz roundcubemail-0.3.1.tar.gz&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mv roundcubemail-0.3.1 /var/www/roundcubemail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Crear una base de datos en MySQL para la aplicación&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mysql -u root -p&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; create database roundcubemail;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; create user 'roundcubemail'@'localhost' IDENTIFIED BY 'roundcubemail';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; grant all privileges on `roundcubemail`.* to 'roundcubemail'@'localhost';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; flush privileges;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ejecutar el instalador&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; https://IPMAILSERVER/roundcubemail/installer/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;b&gt;APENDICE I: Configurar SSL en Debian Lenny&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Activar módulo 'ssl' de apache2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; a2enmod ssl&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/apache2 restart&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Activar 'default-ssl' site&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; a2ensite default-ssl&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/apache2 reload&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; En este momento el servidor escucha tanto por el puerto http:80 como por el https:443&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Para hacer que las peticiones 'http:80' se redirijan a 'https:443'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; a2enmod rewrite&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/apache2/sites-available/default&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;virtualhost *:80=""&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ServerAdmin webmaster@localhost&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DocumentRoot /var/www/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;directory&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Options FollowSymLinks&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; AllowOverride None&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; RewriteEngine On&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; RewriteCond %{SERVER_PORT} !^443$&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; RewriteRule ^(.*) https://192.168.1.11&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/directory&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;directory var="" www=""&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Options Indexes FollowSymLinks MultiViews&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; AllowOverride None&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Order allow,deny&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; allow from all&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/directory&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&lt;br /&gt;&lt;b&gt; APENDICE II: Archivos de Log más importantes:&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /var/log/mail.info&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; Log general de todo el sistema de correo. Por defecto, todos los mensajes llegarán aquí&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /var/log/mail.err&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; Errores en postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /var/log/mail.warn&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; Avisos&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /var/log/clamav/clamav.log&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; Log del antivirus&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /var/log/clamav/freshclam.log&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; Log del actualizador del antivirus&lt;br /&gt;&lt;br /&gt;&lt;b&gt; APENDICE III: "Maildrop y filtros maildroprc"&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Se desea que los correos marcados como Spam por Amavis lleguen a una carpeta IMAP especial llamada SPAM, que además deberá crearse automáticamente en caso de que no exista.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Instalar "Maildrop" en caso de que no estuviera instalado.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install maildrop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Crear un usuario y un grupo "vmail" que será el que ahora posea los "maildirs". Especificar 'uid' y 'gid' cualquiera libre y recordarlo.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; groupadd vmail -g 6060&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; useradd vmail -u 6060 -g 6060&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Comprobar que el usuario 'vmail' pertenece al grupo 'vmail'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; id vmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Editar el servicio 'maildrop' en 'master.cf'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/master.cf&amp;nbsp;&amp;nbsp;&amp;nbsp; (ORIGINAL)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #maildrop&amp;nbsp; unix&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pipe&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #&amp;nbsp; flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/master.cf&amp;nbsp; (MODIFICADO)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; maildrop&amp;nbsp; unix&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pipe&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; flags=ODRhu user=vmail argv=/usr/bin/maildrop&amp;nbsp; -w 90 -d ${user}@${nexthop} ${extension} ${recipient} ${user} ${nexthop}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; El directorio socket de "saslauth" debe ser 777&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; chmod 777 /var/run/courier/authdaemon/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Reconfigurar postfix para que la entrega final de los correos la realice 'maildrop' en lugar de 'virtual'. Se modifican varias cosas del archivo 'main.cf' original&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/main.cf&amp;nbsp;&amp;nbsp;&amp;nbsp; (ORIGINAL)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #MYSQL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_transport = virtual&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_alias_maps = mysql:/etc/postfix/mysql/virtual_alias_maps.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_mailbox_domains = mysql:/etc/postfix/mysql/virtual_domains_maps.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_mailbox_maps = mysql:/etc/postfix/mysql/virtual_mailbox_maps.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_uid_maps = static:104&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_gid_maps = static:107&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_minimum_uid = 104&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_mailbox_base = /home/vmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/main.cf&amp;nbsp;&amp;nbsp;&amp;nbsp; (MODIFICADO)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #MYSQL VIRTUAL DOMAINS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_alias_maps = mysql:/etc/postfix/mysql/virtual_alias_maps.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_gid_maps = static:6060&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_mailbox_base = /home/vmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_mailbox_domains = mysql:/etc/postfix/mysql/virtual_domains_maps.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_mailbox_maps = mysql:/etc/postfix/mysql/virtual_mailbox_maps.cf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_minimum_uid = 6060&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_transport = maildrop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_uid_maps = static:6060&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; maildrop_destination_recipient_limit = 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; maildrop_destination_concurrency_limit = 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Reconfigurar permisos de los buzones:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; chown -R vmail:vmail /home/vmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; chmod -R 700 /home/vmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Reconfigurar 'saslauthdaemon'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/courier/authmysqlrc&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MYSQL_UID_FIELD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6060&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Originalmente estaban en 104&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MYSQL_GID_FIELD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6060&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Originalmente estaban en 107&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Reiniciar todos los servicios. La experiencia dice que aquí sería buena idea un reinicio completo de la máquina&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Comprobar que se puede acceder vía imap/smtp a los buzones y que los filtros de spam y correo funcionan (deberían funcionar)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Editar el archivo de configuración de maildrop: Es el que decide su modo de funcionamiento y donde se especifican las reglas de filtrado&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/maildroprc&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; HOME_DIR="/home/vmail"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; logfile "/var/log/maildroprc.log"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; EXTENSION="$1"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; RECIPIENT=tolower("$2")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; USER="$3"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; HOST="$4"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; SENDER="$5"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #Si es Spam, ponerlo en el folder de "SPAM"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (/^X-Spam-Flag: YES*/)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; log "Filtro Maildrop Activado /home/vmail/$DEFAULT/.SPAM"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; to "/home/vmail/$DEFAULT/.SPAM"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Quotas (¡OJO!, con esto no es necesario el parcheo del paquete postfix):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Si "maildrop" está compilado para soportar cuotas, hará uso de ellas si hay un archivo "maildirsize"&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Para comprobar si maildrop tiene soporte de quotas:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt; maildrop -v&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Maildir quota extension enabled.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; NOTA: Los archivos de quota especifican esta con entradas tipo 1000000S , que significa 1000000 bytes o&amp;nbsp; 1000C , que significa 1000 mensajes.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Se puede probar a añadir una cuota a un maildir ya creado con la orden de ejemplo (maildirmake -q 100000S /home/vmail/DOMAIN/MAILDIR). Los archivos 'maildirsize' deben pertenecer a 'vmail:vmail' y tener permisos 700. Crear uno y probar que funciona.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Crear el archivo de 'log' para que 'maildrop' pueda escribir&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; touch /var/log/maildroprc.log&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; chown vmail:vmail /var/log/maildroprc.log&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Creacion de mailboxes desde postfixadmin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Instalar 'sudo'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install sudo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ./config.inc.php&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['mailbox_postcreation_script']='sudo -u vmail sh /usr/local/bin/postfixadmin-mailbox-postcreation.sh';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['mailbox_postedit_script']='sudo -u vmail /usr/local/bin/postfixadmin-mailbox-postedit.sh';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/sudoers&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; www-data ALL=(vmail) NOPASSWD: ALL&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ¿?¿?¿??¿?¿?¿?¿¿?¿?¿?&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; cp /var/www/postfixadmin/ADDITIONS/postfixadmin-mailbox-postcreation.sh /usr/local/bin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /usr/local/bin/postfixadmin-mailbox-postcreation.sh&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; basedir=/home/vmail/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; maildirmake -f SPAM "$maildir"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; maildirmake -f Trash "$maildir"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; maildirmake -f Sent "$maildir"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; maildirmake -f Drafts "$maildir"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; maildirmake -q $4S "$maildir"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo "INBOX.Trash" &amp;gt;&amp;gt; $maildir/courierimapsubscribed&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo "INBOX.SPAM" &amp;gt;&amp;gt; $maildir/courierimapsubscribed&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo "INBOX.Sent" &amp;gt;&amp;gt; $maildir/courierimapsubscribed&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo "INBOX.Drafts" &amp;gt;&amp;gt; $maildir/courierimapsubscribed&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; exit 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /usr/local/bin/postfixadmin-mailbox-postedit.sh&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Script completo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; #!/bin/sh&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; basedir=/home/vmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; maildir="${basedir}/$3"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; maildirmake -q $4S "$maildir"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; exit 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; chmod +x /usr/local/bin/postfixadmin-mailbox-post*&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; NOTA: Es responsabilidad de los programas que acceden por imap modificar el archivo 'maildirsize' cuando crean o borran algo. De esta forma, cuando la bandeja esta llena y cerca del límite, al eliminar algo el archivo de cuota debe modificarse automáticamente para indicar los cambios.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Automatizar el envio de los buzones eliminados a un lugar de cuarentena antes de eliminarlo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Editar '/var/www/postfixadmin/config.php.inc&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['mailbox_postdeletion_script']='sudo -u vmail /usr/local/bin/postfixadmin-mailbox-postdeletion.sh';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $CONF['domain_postdeletion_script']='sudo -u vmail /usr/local/bin/postfixadmin-domain-postdeletion.sh';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; No es necesario generar los scripts, ya que vienen de muestra con 'postfixadmin'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; cp /var/www/postfixadmin/ADDITIONS/postfixadmin-mailbox-postdeletion.sh&amp;nbsp;&amp;nbsp;&amp;nbsp; /usr/local/bin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; cp /var/www/postfixadmin/ADDITIONS/postfixadmin-domain-postdeletion.sh&amp;nbsp;&amp;nbsp;&amp;nbsp; /usr/local/bin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; chmod +x /usr/local/bin/postfixadmin-mailbox-postdeletion.sh&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; chmod +x /usr/local/bin/postfixadmin-domain-postdeletion.sh&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Editar&amp;nbsp;&amp;nbsp; /usr/local/bin/postfixadmin-mailbox-postdeletion.sh&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Change this to where you keep your virtual mail users' maildirs.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; basedir=/home/vmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Change this to where you would like deleted maildirs to reside.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; trashbase=/home/vmail/RETIRADOS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Editar&amp;nbsp;&amp;nbsp; /usr/local/bin/postfixadmin-domain-postdeletion.sh&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Change this to where you keep your virtual mail users' maildirs.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; basedir=/home/vmail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Change this to where you would like deleted maildirs to reside.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; trashbase=/home/vmail/RETIRADOS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mkdir RETIRADOS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; chown vmail:vmail /home/vmail/RETIRADOS/&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Suponiendo que queremos enviarlos a este path&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; chmod 700 /home/vmail/RETIRADOS/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt; APENDICE IV:&amp;nbsp; Estadísticas de correo &lt;/b&gt;&lt;br /&gt;&lt;b&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; -MAILGRAPH-&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install mailgraph&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Por defecto utilizar los logs estandar de correo (/var/log/mail.log, etc) para saber lo que ha ocurrido con los correos.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Las estadísticas se pueden ver vía navegador desde:&amp;nbsp;&amp;nbsp; http://IPSERVIDOR/cgi-bin/mailgraph.cgi&lt;br /&gt;&lt;br /&gt;&lt;b&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; -ISOQLOG-&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install isoqlog&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Tipo servidor -&amp;gt; Postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Salida -&amp;gt;&amp;nbsp; /var/www/isoqlog&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Dominios -&amp;gt; todos los que maneje postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Añadir linea de ejecución con 'isoqlog' a 'cron'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; crontab -e&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; */10 * * * * /usr/bin/isoqlog&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Las estadísticas se pueden ver vía navegador desde:&amp;nbsp; http://IPSERVIDOR/isoqlog&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Se pueden añadir dominios a posteriori en el archivo '/etc/isoqlog/isoqlog.domains'&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt; APENDICE V: Bloquear la actualización de un paquete&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Util para evitar que una actualización actualice un paquete que hemos retocado a mano sin darnos cuenta.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Obtener una lista etiquetada de los paquetes instalados en el sistema y exportarla a un archivo:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dpkg --get-selections \* &amp;gt;&amp;nbsp; /root/lista_packages.list&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Editar el archivo modificando la etiqueta de los paquetes que se desea mantener a "hold":&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /root/lista_packages.list&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- ORIGINAL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; portmap&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; install&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; postfix&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; install&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; postfix-mysql&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; install&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; procps&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; install&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; psmisc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; install&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /root/lista_packages.list&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- MODIFICADO PARA RETENER 'postfix' y 'postfix-mysql'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; portmap&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; install&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; postfix&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hold&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; postfix-mysql&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hold&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; procps&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; install&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; psmisc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; install&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Recargar el listado de paquetes con sus nuevos estados&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dpkg --set-selections &amp;lt; /root/lista_packages.list&lt;br /&gt;&lt;br /&gt;&lt;b&gt; APENDICE VI:&amp;nbsp; Creando un alias de 'root'&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vi /etc/aliases&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailer-daemon: postmaster&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; postmaster: root&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nobody: root&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; hostmaster: root&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; usenet: root&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; news: root&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; webmaster: root&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; www: root&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ftp: root&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; abuse: root&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; noc: root&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; security: root&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; clamav: root&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; root: admin@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- Para que los correos enviados a root se dirijan a una cuenta real en postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ejecutar 'newaliases'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /usr/bin/newaliases&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;b&gt; APENDICE VII:&amp;nbsp;&amp;nbsp; Aprendizaje de spamassasin.&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Util. Plugin&amp;nbsp; 'spam_buttons' de spamassasin.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Se pueden generar en cada maildir, dos carpetas, una llamada 'SPAM' y otra llamada 'NO-SPAM'. Un script se debe encargar de recorrer estas carpetas y actuar de la siguiente forma:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Si encuentra un mensaje en la carpeta 'SPAM' que no esté etiquetado como tal, significa que el usuario lo ha dejado ahí. Debe escanearse con "sa-learn --spam".&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Si encuentra un mensaje en la carpeta 'NO-SPAM' que está etiquetado como SPAM, significa que el usuario lo ha dejado ahí. Debe escanearse como "sa-learn --ham" y pasarlo a la bandeja de entrada.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; De esta forma el usuario puede refiltrar mensajes para que el sistema aprenda de ello.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; El script se debe ejecutar cada determinado tiempo:&lt;br /&gt;&lt;br /&gt;&lt;b&gt; APENDICE VIII:&amp;nbsp; Saber si estamos en listas de spam&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Utilizar las herramientas "rblcheck" y "amispammer"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rblcheck&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install rblcheck&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rblcheck xxx.xxx.xxx.xxx&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; amispammer&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install libmail-sender-perl&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; wget&amp;nbsp; http://www.lorenzomartinez.es/projs/amispammer/amispammer_v2.zip&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; unzip amispammer_v2.zip&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mv amISpammer.pl /usr/local/bin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; perl /usr/local/bin/amISpammer.pl -i &lt;xxx.xxx.xxx.xxx&gt; -v0 -f emailfrom@from.com -t emailto@to.com&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; También util:&amp;nbsp; http://www.blacklistalert.org/&lt;br /&gt;&lt;br /&gt;&lt;b&gt; APENDICE IX:&amp;nbsp;&amp;nbsp;&amp;nbsp; Benchmark &lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Comprobar que están instaladas las herramietnas "smtp-sink" y "smtp-source"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Para postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/postfix stop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Poner "smtp-sink" a escuchar peticiones de correo:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtp-sink&amp;nbsp; -4c -u &lt;usuario_no_root&gt; :25 1024&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Bombardear el servicio desde local (10000 mensajes de 25KB cada uno con una concurrencia de 256)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtp-source -4dNcm 10000 -s 256 -l 25000 -f foo@bar.com -t bar@foo.com localhost:25&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Bombardear el servicio desde remoto. Es necesaria otra máquina en red que disponga de "smtp-source"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; smtp-source -4dNcm 10000 -s 256 -l 25000 -f foo@bar.com -t bar@foo.com &lt;ip_servidor_postfix&gt;:25&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;b&gt; APENDICE X:&amp;nbsp; Configuración del DNS&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Configurar correctamente el servidor DNS es fundamental para que el correo funcione. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ejemplo de configuración de BIND9 para un dominio ficticio: "trustnone.es"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Registros MX: Intercambiadores de correo (con prioridades)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/bind/trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10 mail1.trustnone.es.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20 mail2.trustnone.es. ; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mail1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.196.4&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mail2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.196.48&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Registro spf: Intercambiadores MX certificados.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; trustnone.com. IN TXT "v=spf1 a mx ~all"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Resolución inversa (DEBE ESTAR DELEGADA POR EL ISP)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;ver internet=""&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;b&gt; APENDICE XII: SenderID Hotmail&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sender ID es un listado de redes/hosts autorizados que mantiene microsoft.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Para evitar problemas, además de establecer el registro SPF del dominio, se debe dar de alta en:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; https://postmaster.live.com/snds/addnetwork.aspx&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Web para solicitar información de porque nos están filtrando&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; https://support.msn.com/eform.aspx?productKey=edfsmsbl&amp;amp;ct=eformts&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;APENDICE XIII: MAILMAN (Listas de correo)&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; apt-get install mailman lynx&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; [*] Español&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; export LC_ALL=C&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- definirlas en un profile al inicio&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; export LANG=C&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; check_perms -v -f&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; (x2)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cd /var/lib/mailman&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; chown list:list *&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; editar "/etc/mailman/mm_cfg.py"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT_EMAIL_HOST = 'mail.trustnone.es'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT_URL_HOST = 'mail.trustnone.es'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT_SERVER_LANGUAGE = 'es'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; editar "/etc/postfix/master.cf"&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailman&amp;nbsp;&amp;nbsp; unix&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pipe&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ${nexthop} ${user}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]ASEGURARSE DE QUE ESTA LINEA ESTÁ TAL Y COMO APARECE AQUÍ. SOBRETODO LA PRIMERA 'n'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Configurar Apache2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/apache2/mods-available/mailman.conf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;directory cgi-bin="" lib="" mailman="" usr=""&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; AllowOverride None&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Options ExecCGI&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Order allow,deny&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Allow from all&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/directory&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Alias /pipermail/ /var/lib/mailman/archives/public/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;directory archives="" lib="" mailman="" public="" var=""&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Options Indexes MultiViews FollowSymLinks&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; AllowOverride None&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Order allow,deny&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Allow from all&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/directory&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Alias /archives/ /var/lib/mailman/archives/public/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;directory archives="" lib="" mailman="" public="" var=""&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Options Indexes MultiViews FollowSymLinks&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; AllowOverride None&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Order allow,deny&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Allow from all&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/directory&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; cd /etc/apache2/mods-enabled&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ln -s /etc/apache2/mods-available/mailman.conf /etc/apache2/mods-enabled&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/apache2 restart&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; + postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/transport&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; lists.trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mailman:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; [...]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; cd /etc/postfix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; postmap transport&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Reiniciar todos los servicios afectados&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/apache2 restart&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/postfix restart&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/init.d/mailman restart&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Crear la lista principal:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; newlist&amp;nbsp; mailman&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; Usuario administrador de la lista:&amp;nbsp;&amp;nbsp; "admin@trustnone.es"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; Password para el admin: "admin"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Introducir todos los alias en la MySQL, tabla "alias".&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailman@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailman@lists.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailman-admin@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailman-admin@lists.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailman-bounces@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailman-bounces@lists.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailman-confirm@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailman-confirm@lists.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailman-join@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailman-join@lists.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailman-leave@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailman-leave@lists.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailman-owner@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailman-owner@lists.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailman-request@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailman-request@lists.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailman-subscribe@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailman-subscribe@lists.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mailman-unsubscribe@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; mailman-unsubscribe@lists.trustnone.es&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Crear una lista operativa pública:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; newlist pruebas&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; Usuario administrador de la lista:&amp;nbsp;&amp;nbsp; "admin@trustnone.es"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; Password para el admin: "admin"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Introducir todos los alias en la MySQL, tabla "alias".&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pruebas@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pruebas@lists.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pruebas-admin@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pruebas-admin@lists.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pruebas-bounces@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pruebas-bounces@lists.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pruebas-confirm@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pruebas-confirm@lists.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pruebas-join@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pruebas-join@lists.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pruebas-leave@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pruebas-leave@lists.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pruebas-owner@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pruebas-owner@lists.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pruebas-request@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pruebas-request@lists.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pruebas-subscribe@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pruebas-subscribe@lists.trustnone.es&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pruebas-unsubscribe@trustnone.es&amp;nbsp;&amp;nbsp;&amp;nbsp; pruebas-unsubscribe@lists.trustnone.es&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Web del administrador de la lista:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; http://mail.trustnone.es/cgi-bin/mailman/admin/pruebas&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Web de la propia lista:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; http://mail.trustnone.es/cgi-bin/mailman/listinfo/pruebas&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Archivos:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; http://mail.trustnone.es/pipermail/pruebas/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; VER: &lt;a href="http://freemars.org/howto/mailman.html#ins"&gt;http://freemars.org/howto/mailman.html#ins&lt;/a&gt;&lt;/ver&gt;&lt;/ip_servidor_postfix&gt;&lt;/usuario_no_root&gt;&lt;/xxx.xxx.xxx.xxx&gt;&lt;/virtualhost&gt;&lt;br /&gt;&lt;virtualhost *:80=""&gt;&lt;xxx.xxx.xxx.xxx&gt;&lt;usuario_no_root&gt;&lt;ip_servidor_postfix&gt;&lt;ver internet=""&gt;&lt;br /&gt;&lt;/ver&gt;&lt;/ip_servidor_postfix&gt;&lt;/usuario_no_root&gt;&lt;/xxx.xxx.xxx.xxx&gt;&lt;/virtualhost&gt;&lt;br /&gt;&lt;b&gt;TODO:&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ojo, comprobar que se puede poner quota 0 (ilimitada) o 100MB&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Borrado de correo antiguos &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Borrado de la carpeta SPAM y Papelera&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Agenda compartida LDAP&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DomainKeys &amp;lt;- &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; listadmin &amp;lt;- mailman&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; open relay check -&amp;gt; http://www.cyberciti.biz/tips/test-mail-server-for-an-open-relay.html&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-3234256800837105533?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/3234256800837105533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/3234256800837105533'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2010/04/borrador-servidor-de-correo-postfix.html' title='(BORRADOR) Servidor de Correo: postfix'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-2037171568636301107</id><published>2010-03-25T22:02:00.005+01:00</published><updated>2010-03-25T22:40:21.353+01:00</updated><title type='text'>Clonado de un "filesystem" Unix/Linux y el problema de los "Hard Links"</title><content type='html'>&lt;span style="font-family:arial;"&gt;Encontrarse con que el disco duro de un sistema está completamente lleno es muy común. La virtualización y el aprovisionamiento de recursos bajo demanda ayuda a suavizar las molestias que esto supone.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;En el mejor de los casos, los filesystems del disco estarán manejados con &lt;/span&gt;&lt;a style="font-family: arial; font-style: italic;" href="http://es.wikipedia.org/wiki/Logical_Volume_Manager"&gt;LVM&lt;/a&gt;&lt;span style="font-family:arial;"&gt; (o similares en otros Unix), de forma que se añade un nuevo disco y se exitienden los volúmenes sobre él.&lt;br /&gt;En el peor, los &lt;span style="font-style: italic;"&gt;filesystems&lt;/span&gt; estarán generados directamente sobre las particiones físicas del disco. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;En ocasiones, para máquinas no críticas, es posible parar durante varias horas, sustituir el disco por otro u otros de mayor capacidad, reinstalar el sistema operativo, las aplicaciones, configurar, probar y volver a producción. Es una buena solución, pero es posible reducir el tiempo de parada clonando los &lt;span style="font-style: italic;"&gt;filesystems&lt;/span&gt; al disco de mayor capacidad, manteniendo las configuraciones.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;El principal problema cuando se clona un disco con comandos tipo '&lt;span style="font-style: italic;"&gt;tar&lt;/span&gt;', '&lt;span style="font-style: italic;"&gt;dd&lt;/span&gt;' ó '&lt;span style="font-style: italic;"&gt;cp&lt;/span&gt;' es que los &lt;/span&gt;&lt;a style="font-family: arial; font-style: italic;" href="http://es.wikipedia.org/wiki/Enlace_duro"&gt;hard links&lt;/a&gt;&lt;span style="font-family:arial;"&gt; no se mantienen. En la mayoría de filesystems Unix, los enlaces simbólicos consisten en una entrada que a su vez apunta a otra entrada que enlaza a los datos en el disco. Un enlace duro, o &lt;span style="font-style: italic;"&gt;hard link&lt;/span&gt;, apunta directamente a los datos de disco. Los archivos en disco son enlazados a través de&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;a style="font-family: arial; font-style: italic;" href="http://es.wikipedia.org/wiki/Inodo"&gt;inodos&lt;/a&gt;&lt;span style="font-family:arial;"&gt; en el sistema de archivos. El inodo almacena información acerca del archivo, pero no su nombre, por lo que el nombre del archivo debe contener el número de inodo en que está el archivo. Podemos tener un archivo con dos (o más) nombres enlazados en diferentes lugares del &lt;span style="font-style: italic;"&gt;filesystem&lt;/span&gt;; solamente deben apuntar el &lt;span style="font-style: italic;"&gt;inodo&lt;/span&gt; del que cuelga el archivo.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Al utilizar el comando '&lt;span style="font-style: italic;"&gt;cp&lt;/span&gt;' sobre un archivo, el sistema copia el archivo a un nuevo lugar del disco, lo enlaza en un &lt;span style="font-style: italic;"&gt;inodo&lt;/span&gt; disponible y después genera el nuevo nombre del archivo indicando el número de &lt;span style="font-style: italic;"&gt;inodo&lt;/span&gt; del que depende.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Si el archivo tiene varios nombres (tiene diferentes &lt;span style="font-style: italic;"&gt;hard links&lt;/span&gt;) apuntando hacia él, este proceso se repetirá, recopiando el archivo en diferentes &lt;span style="font-style: italic;"&gt;inodos&lt;/span&gt; a los que solamente apuntará el último de los &lt;span style="font-style: italic;"&gt;hard links&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Pero muchas de las herramientas de copiado de archivos tienen opciones para mantener la integridad de los &lt;span style="font-style: italic;"&gt;hard links&lt;/span&gt;, comprobando que el &lt;span style="font-style: italic;"&gt;inodo&lt;/span&gt; al archivo que se pretende copiar pueda existir y en este caso simplemente asignar el número de &lt;span style="font-style: italic;"&gt;inodo&lt;/span&gt; en que está. Una de estas herramientas es "&lt;/span&gt;&lt;a style="font-family: arial; font-style: italic;" href="http://rsync.samba.org/"&gt;rsync&lt;/a&gt;&lt;span style="font-family:arial;"&gt;" y su parámetro "&lt;span style="font-style: italic;"&gt;-H&lt;/span&gt;", que hace exactamente esto.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;La secuencia de pasos para el clonado del disco podría ser la siguiente:&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-family: arial;" face="arial"&gt;&lt;li&gt;Detener el sistema.&lt;/li&gt;&lt;li&gt;Conectar el nuevo disco.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Arrancar con un sistema &lt;span style="font-style: italic;"&gt;Live&lt;/span&gt; tipo &lt;span style="font-style: italic;"&gt;Knoppix&lt;/span&gt; y con ambos discos duros conectados.&lt;/li&gt;&lt;li&gt;Particionar el nuevo disco con un esquema similar al antiguo pero ajustando las necesidades de espacio y generar los &lt;span style="font-style: italic;"&gt;filesystems&lt;/span&gt; (no tiene porque estar formateados con el mismo sistema de archivos).&lt;/li&gt;&lt;li&gt;Montar, en diferentes puntos de montaje del sistema &lt;span style="font-style: italic;"&gt;Live&lt;/span&gt;, los &lt;span style="font-style: italic;"&gt;filesystems&lt;/span&gt; origen y destino correlativos a los disco nuevo y antiguo.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Utilizar "&lt;span style="font-style: italic;"&gt;rsync&lt;/span&gt;" para copiar el contenido de uno a otro manteniendo los hard links:&lt;/li&gt;&lt;/ul&gt;&lt;blockquote  style="color: rgb(0, 0, 0); font-weight: bold; font-style: italic; font-family: arial;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;#&gt; rsync -Hva  /mnt/disco_origen_sda1  /mnt/disco_destino_sdb1&lt;br /&gt;#&gt; rsync -Hva  /mnt/disco_origen_sda2  /mnt/disco_destino_sdb2&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;ul style="font-family: arial;" face="arial"&gt;&lt;li&gt;Instalar/reparar el arranque del sistema. Típicamente, instalando &lt;span style="font-style: italic;"&gt;grub&lt;/span&gt; (o el gestor de arranque elegido) en el &lt;a href="http://es.wikipedia.org/wiki/MBR"&gt;MBR&lt;/a&gt; del nuevo disco:&lt;/li&gt;&lt;/ul&gt;&lt;blockquote style="font-family: arial;font-family:arial;" &gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(0, 0, 0);"&gt;#&gt; grub-install /dev/sdb&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;Parar el sistema, desconectar el disco antiguo y conectar el disco nuevo en el mismo lugar que estaba el antiguo. De esta forma, es muy probable que el dispositivo sea reconocido con los mismos nombres (&lt;span style="font-style: italic;"&gt;/dev/sda1, /dev/sda2.&lt;/span&gt;..) y arranque sin tener que hacer nada más.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-2037171568636301107?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/2037171568636301107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/2037171568636301107'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2010/03/clonado-de-un-filesystem-unixlinux-y-el.html' title='Clonado de un &quot;filesystem&quot; Unix/Linux y el problema de los &quot;Hard Links&quot;'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-1628977977186346731</id><published>2010-03-16T22:09:00.008+01:00</published><updated>2010-03-16T22:48:04.620+01:00</updated><title type='text'>"initrd" e "initramfs"</title><content type='html'>&lt;span style="font-family:arial;"&gt;En la mayoría de las ocasiones el archivo binario que contiene el kernel del sistema operativo (vg.- Linux) no contiene todos los módulos necesarios para realizar un arranque completo. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;El ejemplo más típico; es posible que el controlador que maneja la controladora de disco en que se encuentra el punto de montaje raiz del sistema haya sido compilado como módulo. En este caso sería imposible montar el sistema de archivos, ya que el controlador está en un filesystem no montado y para montarlo primero hay que acceder a él... de forma que hay un bloqueo continuo.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Para resolver este problema se utilizan sistemas de archivos virtuales que se montan de forma temporal durante el arranque y que contienen los módulos que el kernel podría necesitar para arrancar y de los que no dispone. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;En Linux, hasta la llegada de la versión 2.6 del kernel se hacía con el archivo "initrd" y a partir de entonces con el archivo "initramfs" (&lt;/span&gt;&lt;a style="font-family: arial;" href="http://es.wikipedia.org/wiki/Initrd"&gt;Wikipedia&lt;/a&gt;&lt;span style="font-family:arial;"&gt; sobre "initrd").&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Generación del archivo "initramfs" en Debian Linux 5:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul  style="font-family:arial;"&gt;&lt;li&gt;Instalar el paquete con las herramientas necesarias:&lt;span style="font-weight: bold;"&gt; initramfs-tools&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote style="font-weight: bold; font-style: italic; color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;apt-get install initramfs-tools&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;ul  style="font-family:arial;"&gt;&lt;li&gt;Generar el archivo&lt;span style="font-weight: bold;"&gt;:   /usr/sbin/mkinitramfs -o ARCHIVO_INITRAMFS RUTA_MODULOS_KERNEL&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;El comando "mkinitramfs" recibe como parámetro la ruta del directorio donde cuelgan físicamente los módulos del kernel (archivos '.ko') en cuestión para el que se desea generar un "initramfs". Los módulos suelen estar ubicados en "/lib/modules/&lt;kernel_version&gt;".&lt;/kernel_version&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-weight: bold; font-style: italic; color: rgb(0, 0, 0);"&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;vg.-   mkinitramfs -o /boot/initramfs-2.6.26    /lib/modules/2.6.26&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;El archivo de salida ("/boot/initramfs-2.6.26") puede ser bastante "pesado", ya que contiene todos los módulos del kernel.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Normalmente el archivo "initramfs" se usa en el cargador de arranque (vg.- Grub), indicando que se use como sistema de archivos RAM con un determinado kernel que puede necesitarlo.&lt;/span&gt;&lt;br /&gt;&lt;blockquote  style="font-family:arial;"&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(0, 0, 0);font-size:85%;" &gt;&lt;br /&gt;title           Debian&lt;br /&gt;root            (hd0,0)&lt;br /&gt;kernel          /linux_kernel_2.6.26 root=/dev/sda2 ro&lt;br /&gt;initrd          /initramfs-2.6.26&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Cada archivo "initramfs" solamente puede utilizarse con una determinado compilación de un determinado kernel (normalmente).&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-1628977977186346731?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/1628977977186346731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/1628977977186346731'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2010/03/initrd-e-initramfs.html' title='&quot;initrd&quot; e &quot;initramfs&quot;'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-1594667728253523981</id><published>2010-03-14T22:36:00.002+01:00</published><updated>2010-03-14T22:45:31.892+01:00</updated><title type='text'>Guardar/Restaurar MBR de un disco</title><content type='html'>&lt;span style="font-family:arial;"&gt;El '&lt;/span&gt;&lt;a style="font-family: arial;" href="http://es.wikipedia.org/wiki/Master_Boot_Record"&gt;&lt;span style="font-style: italic;"&gt;Master Boot Record, MBR&lt;/span&gt;'&lt;/a&gt;&lt;span style="font-family:arial;"&gt; o '&lt;/span&gt;&lt;span style="font-style: italic;font-family:arial;" &gt;&lt;span style="font-weight: bold;"&gt;Sector Cero&lt;/span&gt;'&lt;/span&gt;&lt;span style="font-family:arial;"&gt; de un disco duro (dispositivo de almacenamiento de datos en general) suele almacenar el sector de arranque de la mayoría de sistemas operativos Linux.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Ocupa, generalmente, los primeros 512 bytes del espacio de almacenamiento del dispositivo y su borrado o corrupción suele implicar que el sistema no pueda volver a arrancar normalmente. Por ello se considera buena práctica el guardar una copia de dicha información cuando se van a hacer cambios en el sistema de arranque.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Existen herramientas específicas para hacer esto, pero ya que su ubicación suelen ser los 512 primeros bytes del disco, un simple 'dd' puede servir para copiarlo y restaurarlo.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;Copia&lt;/span&gt; del MBR del disco '/dev/hda' al archivo '/root/MBR.bin':&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;#&gt;  dd if=/dev/hda of=/root/MBR.bin count=1 bs=512&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;Restauración&lt;/span&gt; del MBR anterior:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(0, 0, 0);font-size:85%;" &gt;&lt;span style="font-family:arial;"&gt;#&gt; dd if=/root/MBR.bin of=/dev/hda&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-1594667728253523981?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/1594667728253523981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/1594667728253523981'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2010/03/guardarrestaurar-mbr-de-un-disco.html' title='Guardar/Restaurar MBR de un disco'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-2532765327396098327</id><published>2010-03-14T22:28:00.003+01:00</published><updated>2010-03-16T22:45:04.149+01:00</updated><title type='text'>Guardar/Restaurar tabla de particiones</title><content type='html'>&lt;span style="font-family:arial;"&gt;La herramienta '&lt;span style="font-style: italic;"&gt;sfdisk&lt;/span&gt;', disponible en el metapaquete '&lt;span style="font-style: italic;"&gt;util-linux&lt;/span&gt;' de Debian, permite hacer una copia a fichero del estado de la tabla de particiones para su posterior restauración&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Guardar la tabla de particiones del disco '&lt;span style="font-style: italic;"&gt;/dev/sda&lt;/span&gt;' a un fichero.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(0, 0, 0); font-weight: bold; font-style: italic;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;#&gt; sfdisk -d /dev/sda &gt; fichero_salvaguarda&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;La tabla de particiones del mismo disco se puede restaurar también con la herramienta:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 0);font-size:85%;" &gt;&lt;span style="font-weight: bold; font-style: italic;font-family:arial;" &gt;#&gt; sfdisk  /dev/sda  &lt; fichero_salvaguarda&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-2532765327396098327?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/2532765327396098327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/2532765327396098327'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2010/03/guardarrestaurar-tabla-de-particiones.html' title='Guardar/Restaurar tabla de particiones'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-8264827061551759036</id><published>2010-03-14T22:13:00.002+01:00</published><updated>2010-03-14T22:27:50.243+01:00</updated><title type='text'>Cifrado simétrico con GPG</title><content type='html'>&lt;span style="font-family:arial;"&gt;Aunque en la actualidad el &lt;/span&gt;&lt;a style="font-family: arial;" href="http://es.wikipedia.org/wiki/Criptograf%C3%ADa_asim%C3%A9trica"&gt;cifrado asimétrico&lt;/a&gt;&lt;span style="font-family:arial;"&gt; está de moda por ser más seguro, el &lt;/span&gt;&lt;a style="font-family: arial;" href="http://es.wikipedia.org/wiki/Criptograf%C3%ADa_sim%C3%A9trica"&gt;cifrado simétrico&lt;/a&gt;&lt;span style="font-family:arial;"&gt; de archivos sigue siendo una buena (y más sencilla) opción para encriptar información.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;En sistemas UNIX en general y Linux en particular, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://es.wikipedia.org/wiki/GNU_Privacy_Guard"&gt;GPG&lt;/a&gt;&lt;span style="font-family:arial;"&gt; es buena opción para estas tareas.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Suponiendo que se dispone de la herramienta GPG instalada y la unilidad en linea de comandos 'gpg', se pueden encriptar/desencriptar archivos de la siguiente forma:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Cifrado del archivo "ARCHIVO_A_CIFRAR" manteniendo el original.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-style: italic; font-weight: bold;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt; #&gt; gpg --symmetric -o ARCHIVO_CIFRADO.gpg  ARCHIVO_A_CIFRAR&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;En el proceso se solicita la clave de cifrado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Por defecto el algoritmo de cifrado es 'Cast5', considerado cifrado fuerte.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Descifrado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold; font-style: italic;font-size:85%;" &gt;&lt;span style="font-family:arial;"&gt;#&gt; gpg -d -o ARCHIVO_DESCIFRADO  ARCHIVO_CIFRADO.gpg&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;En el proceso se solicita la clave de cifrado.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-8264827061551759036?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/8264827061551759036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/8264827061551759036'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2010/03/cifrado-simetrico-con-gpg.html' title='Cifrado simétrico con GPG'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-3447149988139391380</id><published>2010-03-11T23:07:00.002+01:00</published><updated>2010-03-11T23:23:18.583+01:00</updated><title type='text'>802.1Q  VLAN (Debian)</title><content type='html'>&lt;span style="font-family:arial;"&gt;El protocolo IEEE 802.1Q establece la forma en que los paquetes ip pueden 'marcarse' con un 'tag' para crear redes virtuales (VLAN).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;En muchas ocasiones un switch de red con gran número de puertos se parte en varios switches más pequeños para generar diferentes subredes aisladas independientes e invisibles unas de otras.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;La forma más sencilla de hacer esto es asignar dinámicamente los puertos del switch a una determinada VLAN. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Aunque funciona correctamente, en configuraciones de red más complejar, esto no es posible ya que puede necesitarse que diferentes VLAN utilicen a la vez un mismo puerto. En este caso y para mantener el aislamiento se utiliza 802.1Q.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-family: arial;" href="http://es.wikipedia.org/wiki/IEEE_802.1Q"&gt;802.1Q en Wikipedia&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Como los paquetes (tramas ethernet en realidad) llegan a las interfaces de red marcados con un 'tag' que no es estandar, las interfaces tienen que estar preparadas para interpretarlo y no desechar el paquete.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Supuesto una VLAN con el &lt;span style="font-style: italic;"&gt;tag&lt;/span&gt; '4' conectada a una interfaz de una máquina Debian (v.5), esta debe configurarse:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul face="arial"&gt;&lt;li&gt;Instalar los módulos y herramientas 'vlan&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 0);font-size:85%;" &gt;&lt;span style="font-style: italic;font-family:arial;" &gt;apt-get install vlan&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;Configurar la interfaz en el archivo &lt;span style="font-weight: bold; font-style: italic;"&gt;'/etc/network/interfaces'&lt;/span&gt;:&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0);font-size:85%;" &gt;&lt;span style="font-style: italic;font-family:arial;" &gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 0);font-size:85%;" &gt;&lt;span style="font-style: italic;font-family:arial;" &gt;[...]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:arial;" &gt;auto vlan4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:arial;" &gt;iface vlan4  inet static&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:arial;" &gt;address xx.xx.xx.xx&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:arial;" &gt;network xx.xx.xx.xx&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:arial;" &gt;netmask 255.255.xx.xx&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:arial;" &gt;broadcast xx.xx.xx.xx&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:arial;" &gt;mtu 1500&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:arial;" &gt;vlan_raw_device eth0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:arial;" &gt;[...]&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;La definición de la tarjeta que recibe los paquetes con tag, eth0, pasa a ser la interfaz virtual vlan4 que se enlaza a eth0.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;Reiniciar la red&lt;/li&gt;&lt;/ul&gt;&lt;blockquote style="font-style: italic;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;/etc/init.d/networking  restart&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;Administración&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;La información referente al tageado de interfaces se puede ver desde '/&lt;span style="font-style: italic;"&gt;proc&lt;/span&gt;', concretamente:&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;blockquote style="font-style: italic;"&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;/proc/net/vlan/config&lt;br /&gt;/proc/net/vlan/vlan4&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-3447149988139391380?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/3447149988139391380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/3447149988139391380'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2010/03/8021q-vlan-debian.html' title='802.1Q  VLAN (Debian)'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-5572037222758440754</id><published>2010-03-11T22:52:00.002+01:00</published><updated>2010-03-11T23:06:07.023+01:00</updated><title type='text'>FreeNX en CentOS 5.4</title><content type='html'>&lt;span style="font-weight: bold; font-family: arial;"&gt;FreeNX&lt;/span&gt;&lt;span style="font-family: arial;"&gt; es una implementación libre del &lt;/span&gt;&lt;span style="font-weight: bold; font-family: arial;"&gt;protocolo NX.&lt;/span&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;El protocolo NX es una forma de hablar directamente con el servidor X en su propio idioma pero a través de &lt;/span&gt;&lt;span style="font-weight: bold; font-family: arial;"&gt;conexiónes IP&lt;/span&gt;&lt;span style="font-family: arial;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Aunque la solución VNC + GDM propuesta &lt;/span&gt;&lt;a style="font-family: arial;" href="http://yoseman.blogspot.com/2010/03/centos-5-vnc-gdm-terminal-server-for.html"&gt;aquí&lt;/a&gt;&lt;span style="font-family: arial;"&gt; resulta muy util para entornos locales y de administración, cuando el acceso remoto se desea que esté expuesto directamente a otras redes como Internet, ocurre que la seguridad que ofrece no resulta suficiente. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Ciertamente es posible securizar el protocolo VNC superponiendo capas de cifrado (como SSL), pero quizá sea una buena opción cambiar el protocolo VNC por NX.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Las conexiones hacia servicios NX/FreeNX se establecen &lt;/span&gt;&lt;span style="font-weight: bold; font-family: arial;"&gt;por defecto sobre un tunel SSH&lt;/span&gt;&lt;span style="font-family: arial;"&gt;, lo que las hace ser bastante más seguras que VNC.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Implementar FreeNX en CentOS es tan sencillo como instalar los paquetes disponibles en los repositorios oficiales de CentOS (versión 5.4).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family: arial; font-style: italic;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;yum install nx freenx&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Por defecto se generará un par de claves &lt;/span&gt;&lt;span style="font-style: italic; font-family: arial;"&gt;rsa&lt;/span&gt;&lt;span style="font-family: arial;"&gt;. La clave pública que debe entregarse a los clientes está en&lt;span style="font-weight: bold;"&gt; '&lt;span style="font-style: italic;"&gt;/var/lib/nxserver/home/.ssh/client.id-rsa.key&lt;/span&gt;'&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Los equipos cliente deben importar esta clave para realizar la conexión.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Por defecto FreeNX escuchará en el puerto estandar de SSH; el &lt;span style="font-weight: bold;"&gt;22&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;La interacción administrativa con el servidor de NX se realiza mediante el comando '&lt;span style="font-weight: bold; font-style: italic;"&gt;nxserver&lt;/span&gt;'.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Por ejemplo, &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;&lt;/span&gt;&lt;blockquote style="color: rgb(0, 0, 0); font-style: italic;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: arial;"&gt;nxserver --start                                    Arranca el servicio&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;nxserver --stop                                    Para el servicio&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;nxserver --list                                      Lista los usuarios que están en el sistema&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;nxserver --send USERNAME MSG        Muestra un mensaje a un usuario.&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-5572037222758440754?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/5572037222758440754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/5572037222758440754'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2010/03/freenx-en-centos-54.html' title='FreeNX en CentOS 5.4'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-3877721772971345550</id><published>2010-03-11T22:26:00.005+01:00</published><updated>2010-11-04T18:42:27.490+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='S'/><title type='text'>CentOS 5 + VNC + GDM (Terminal Server for Linux¿?)</title><content type='html'>&lt;span style="font-size: 100%;"&gt;&lt;span style="font-family: arial;"&gt;Conectarse vía VNC a una máquina remota permite disfrutar del entorno de ventanas de esta, pero normalmente para conectarse vía VNC es necesario que exista una sesión abierta en el servidor por cada conexión que se desea abrir.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;A continuación se explica como hacer que cada vez que se intenta una &lt;span style="font-weight: bold;"&gt;conexión VNC&lt;/span&gt; hacia un servidor, este crea automáticamente una sesión para ella y lo primero que ofrece es la interfaz de login gráfico (en este caso GDM) para que el usuario pueda autentificarse.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Partiendo de una instalación estandar de &lt;span style="font-weight: bold;"&gt;CentOS (5.4) &lt;/span&gt;con &lt;span style="font-weight: bold;"&gt;Gnome&lt;/span&gt; y&lt;span style="font-weight: bold;"&gt; GDM:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;&lt;span style="font-size: 100%;"&gt;Instalar el servidor VNC y Xinetd, que se encargará de generar las sesiones bajo demanda:&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote style="color: black; font-style: italic;"&gt;&lt;span style="font-size: 85%;"&gt;yum install xinetd vnc-server&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;&lt;span style="font-size: 100%;"&gt;Configurar GDM para que permita conexiones remotas:&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="font-family: arial; font-size: 85%; font-style: italic;"&gt;&lt;/span&gt;&lt;blockquote style="color: black;"&gt;&lt;span style="font-family: arial; font-size: 85%; font-style: italic;"&gt;'Sistema' -&amp;gt; 'Administración' -&amp;gt; 'Pantalla de registro' &lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%; font-style: italic;"&gt;Pestaña:  'Remota'&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%; font-style: italic;"&gt;Estilo:  'Igual que la entrada local'&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family: arial; font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Editar el archivo &lt;span style="font-weight: bold;"&gt;'/etc/gdm/custom.cfg'&lt;/span&gt;  (en versiones anteriores, '/etc/X11/gdm/gdm.conf') para que muestre el siguiente contenido:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;&lt;/span&gt;&lt;blockquote style="color: black; font-style: italic;"&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;[daemon]&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;RemoteGreeter=/usr/libexec/gdmgreeter&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;[security]&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;AllowRemoteRoot=true&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;[xdmcp]&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;Enable=true&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;[gui]&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;[greeter]&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;Browser=true&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt; &lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;[chooser]&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;[debug]&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;[servers]&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family: arial;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;&lt;span style="font-size: 100%;"&gt;Configurar el servicio VNC en Xinetd.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="font-family: arial;"&gt;Crear el archivo &lt;span style="font-weight: bold;"&gt;"/etc/xinetd.d/vnc"&lt;/span&gt;, con el contenido:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;&lt;/span&gt;&lt;blockquote style="color: black; font-style: italic;"&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;service vnc&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;{&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;  disable = no&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt; socket_type = stream&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt; protocol = tcp&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt; group = tty&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt; wait = no&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt; user = nobody&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt; server = /usr/bin/Xvnc&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt; server_args = -inetd -query localhost -geometry 1024x768 -depth 16 -once -fp unix/:7100 -securitytypes=none&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Este archivo indica algunas de las características por defecto para el aspecto gráfico de los clientes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Añadir  la linea el servicio y el puerto de VNC que vamos a utilizar al archivo&lt;span style="font-weight: bold;"&gt;  "/etc/services"&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-size: 85%; font-style: italic;"&gt;&lt;/span&gt;&lt;blockquote style="color: black;"&gt;&lt;span style="font-family: arial; font-size: 85%; font-style: italic;"&gt;[...]&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%; font-style: italic;"&gt;#Local Services&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%; font-style: italic;"&gt;vnc             5900/tcp&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%; font-style: italic;"&gt;[...]&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family: arial; font-size: 85%; font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;&lt;span style="font-size: 100%;"&gt;Reiniciar servicios&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="font-family: arial;"&gt;&lt;/span&gt;&lt;blockquote style="color: black;"&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;service xinetd restart&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;gdm-restart&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family: arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;&lt;span style="font-size: 100%;"&gt;Conexión de prueba: El servidor escucha en el puerto&lt;span style="font-weight: bold;"&gt; tcp:5900&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-3877721772971345550?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/3877721772971345550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/3877721772971345550'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2010/03/centos-5-vnc-gdm-terminal-server-for.html' title='CentOS 5 + VNC + GDM (Terminal Server for Linux¿?)'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-3228099504041463074</id><published>2008-04-30T12:46:00.002+02:00</published><updated>2008-04-30T13:04:50.813+02:00</updated><title type='text'>WOL; Arrancando un ordenador en remoto</title><content type='html'>&lt;span style="font-style: italic;"&gt;WOL (Wake-On-Lan), WOR (Wake-On-Ring)&lt;/span&gt;  son los nombres de unos protocolos que implementan la gran mayoría de placas base para ordenadores personales actuales. La teoría,  muy resumida, es la siguiente:&lt;br /&gt;&lt;br /&gt;Las placas base &lt;span style="font-style: italic;"&gt;ATX&lt;/span&gt; no permanecen completamente apagadas cuando el equipo está apagado. Si está conectada a la red eléctrica, una parte de ella estará latente y esperando órdenes. Cuando se presiona el botón de encendido no se está haciendo que la corriente alimente al equipo, sino que se le ordena a esa parte de la placa base a la que se hacía mención, que lo haga.&lt;br /&gt;&lt;br /&gt;Si como parte de la placa base que permanece latente está también, por ejemplo, una interfaz de red &lt;span style="font-style: italic;"&gt;ethernet&lt;/span&gt; o un &lt;span style="font-style: italic;"&gt;modem,&lt;/span&gt; es posible que esa orden llegara desde dicha tarjeta.  Esta es la base.&lt;br /&gt;&lt;br /&gt;Wake-On-Lan implica que el equipo recibirá un paquete de datos por su interfaz de red llamado "&lt;span style="font-style: italic;"&gt;paquete mágico&lt;/span&gt;". No es un paquete &lt;span style="font-style: italic;"&gt;IP&lt;/span&gt;, ya que la interfaz en ese momento no tiene dirección &lt;span style="font-style: italic;"&gt;IP&lt;/span&gt; asignada, sino que se la identifica por su dirección &lt;span style="font-style: italic;"&gt;MAC&lt;/span&gt;. Este protocolo funcionaría sobre la capa Host-Red de la pila de &lt;span style="font-style: italic;"&gt;TCP/IP.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;La interfaz recibe el paquete, esta se comunica con el resto de la placa indicando que se debe arrancar el resto del hardware. El efecto es el mismo que si se presiona el botón de encendido.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;En la práctica:&lt;br /&gt;&lt;br /&gt;1.- Activar la opción &lt;span style="font-style: italic;"&gt;WOL&lt;/span&gt; (puede recibir otros nombres) en la &lt;span style="font-style: italic;"&gt;BIOS&lt;/span&gt; o &lt;span style="font-style: italic;"&gt;SETUP&lt;/span&gt; del equipo que se desea "resucitar" y obtener la dirección &lt;span style="font-style: italic;"&gt;MAC&lt;/span&gt; de la tarjeta de red que se va a corresponder con el servicio.&lt;br /&gt;&lt;br /&gt;2.- Desde otro equipo (siempre dentro del mismo segmento &lt;span style="font-style: italic;"&gt;LAN&lt;/span&gt;), enviar el "paquete mágico" al primer equipo (en realidad a su tarjeta ethernet identificada por su dirección &lt;span style="font-style: italic;"&gt;MAC&lt;/span&gt;). Es necesario utilizar algún tipo de utilidad que haga esto; por ejemplo &lt;span style="font-style: italic;"&gt;"etherwake"&lt;/span&gt; (para Linux y en general para la mayoría de Unix).&lt;br /&gt;  &lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-style: italic;"&gt;     vg.-      &gt;   etherwake    xx:xx:xx:xx:xx:xx&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        siendo  xx:xx:xx:xx:xx:xx la dirección MAC anteriomente obtenida.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt; &lt;/blockquote&gt;&lt;br /&gt;¿Es esto útil?. Aunque normalmente se utilizará pocas veces, puede sacar de muchos apuros sobre todo cuando hay sistemas en lugares poco accesibles.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-3228099504041463074?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/3228099504041463074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/3228099504041463074'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2008/04/wol-arrancando-un-ordenador-en-remoto.html' title='WOL; Arrancando un ordenador en remoto'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-7830156465239812698</id><published>2007-08-13T20:29:00.000+02:00</published><updated>2007-08-13T21:33:12.481+02:00</updated><title type='text'>Servidor de VPN (pptp)</title><content type='html'>Encontrado en la web oficial del proyecto "Linux PoPToP":&lt;br /&gt;&lt;a href="http://www.poptop.org/"&gt;http://www.poptop.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Buscando la forma mas sencilla de crear un servidor VPN, resumo esta maravillosa receta para  hacerlo sobre Debian.&lt;br /&gt;&lt;br /&gt;Lo mejor es que con el avance en el desarrollo del kernel, ya no hay que andar parcheando ni buscando paquetes de software no-Debian para conseguir una VPN segura (encriptación de la comunicación) y que pueda ser conectada directamente con las herramientas incluidas en los sistemas Windows (principalmente enfocado a XP)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Plataforma&lt;/span&gt;:&lt;br /&gt;Debian Etch. Utilizando una instalación mínima se puede tener todo operativo en muy pocos minutos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Procedimiento&lt;/span&gt;:&lt;br /&gt;Cargar el módulo de encriptación necesario. Desde 2.6.15 (creo), está incluido ya en la versión original del kernel. Por tanto basta con hacer:&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;tt style="font-style: italic;"&gt;&lt;blockquote&gt;modprobe ppp-compress-18&lt;/blockquote&gt;&lt;/tt&gt;&lt;/span&gt;&lt;br /&gt;Instalar el demonio PoPToP, disponible en los repositorios de Debian Etch.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;apt-get install pptpd&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;Configurar el archivo  "&lt;span style="font-weight: bold;"&gt;/etc/pptpd.conf&lt;/span&gt;". Aquí se definen las direcciones IP del servidor (localip) y el rango que se ofrecerá a los clientes  (remoteip, como si fuera un servidor DHCP). Las lineas necesarias ya están incluidas en el archivo, solo hay que descomentarlas y adaptarlas a las necesidades de la red:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;localip  x.x.x.x                                              &lt;span style="font-size:78%;"&gt;#Interfaz de red por la que da servicio VPN el servidor&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;remoteip  x.x.x.x-x.x.x.x            &lt;span style="font-size:78%;"&gt;#Rangos: x.x.x.x-x.x.x.x    IPs:         x.x.x.x,x.x.x.x,x.x.x.x,...&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;Reiniciar el servicio pptpd para que tome la nueva configuración:&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;/etc/init.d/pptpd restart&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Añadir usuarios que pueden conectarse a la VPN. Hay varios métodos para hacer esto. El más sencillo consiste en incluir directamente lineas con usuario y contraseña en el archivo  "&lt;span style="font-weight: bold;"&gt;/etc/ppp/chap-secrets&lt;/span&gt;". Los nombres de usuario no tienen que ser necesariamente usuarios del sistema y las lineas deben tener el formato&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;nombre_usuario         pptpd      contraseña          *&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Los usuarios se pueden incluir &lt;span style="font-style: italic;"&gt;en caliente&lt;/span&gt;. El sistema tardará un tiempo (unos pocos segundos) en volver a leer el archivo y aceptar las credenciales. No es necesario reiniciar el servicio.&lt;br /&gt;&lt;br /&gt;Realmente con esto es suficiente. Basta con dar de alta usuarios para que se conecten sin más. Para tener un sistema de autentificación más completo en entornos más complejos, se puede mezclar esto con la autentificación de Samba y según creo, también con el sistema PAM de Linux. De momento con esto voy más que servido.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;En los clientes Windows no es necesario tocar nada respecto a la configuración por defecto que el sistema hace para nuevas conexiones VPN ("Conectarse a la red de mi lugar de trabajo"). Al conectarse, se le asignará una dirección de las especificadas en el rango "remoteip" y el router hará de puente entre el equipo cliente y la red de VPN.&lt;br /&gt;&lt;br /&gt;Esta configuración da un acceso completo a la red local del servidor. Normalmente esto no será un problema en la mayoría de entornos, aunque si las restricciones de seguridad son estrictas, se pueden establecer sin problemas reglas de filtrado netfilter-iptables para los clientes de la VPN.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Fuente original:   &lt;a href="http://poptop.sourceforge.net/dox/debian-howto.phtml"&gt;http://poptop.sourceforge.net/dox/debian-howto.phtml&lt;/a&gt;&lt;br /&gt;&lt;tt&gt;(Muchas gracias a todo el proyecto PoPToP y al autor original, James Cameron, por su excelente trabajo. Y gracias, Debian, por hacernos la vida un pelín más sencilla.)&lt;br /&gt;&lt;br /&gt;&lt;/tt&gt;  &lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-7830156465239812698?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/7830156465239812698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/7830156465239812698'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2007/08/servidor-de-vpn-pptp.html' title='Servidor de VPN (pptp)'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-6001975264011135287</id><published>2007-07-15T20:03:00.000+02:00</published><updated>2007-10-07T10:26:54.464+02:00</updated><title type='text'>Sincronizar directorios situados en máquinas remotas contra uno local</title><content type='html'>Este procedimiento es utilizado para la realización de backups de múltiples máquinas a través de la red. Para ello hay un servidor central (Servidor de Backup) que tendrá acoplados los dispositivos de backup (cintas, discos, etc...).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Las herramientas a utilizar en GNU/Linux (disponibles en otras muchas plataformas) son:&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt;-RSYNC:&lt;/span&gt; Permite realizar la sincronización de contenidos entre directorios en local o de alguna máquina remota. Tiene multiples modos de funcionamiento y muchísimas opciones. El comando principal es "rsync".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; -SSH:&lt;/span&gt; "rsync" puede operar por si mismo o utilizando otros protocolos para conectarse a máquinas remotaas via red. Uno de estos es SSH, que además de ser un protocolo de transmisión cifrado, es posible que ya esté disponible en los equipos a utilizar, no teniendo que abrir más puertas a los sistemas (utilizando las existentes).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; El modo de operación es (suponiendo que hay dos servidores remotos):&lt;br /&gt;          -En el servidor de backup hay un disco dedicado a esta operación. En él se definen dos directorios "secundarios o imagen". Estos son los que, después de la sincronización, deberán tener exactamente los mismos contenidos que los "originales o maestros" que están en cada servidor.&lt;br /&gt;         -El servidor emite un comando "rsync" vía "SSH" contra los servidores y abren la comunicación. El programa "rsync" se encarga de saber que datos debe sincronizar entre los directorios remotos y locales.&lt;br /&gt;         - Finalmente en el servidor hay una copia exacta de los contenidos de los directorios remotos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;NOTA:&lt;/span&gt; La herramienta "rsync" está enormemente avanzada y maneja sin ningún problema los bloqueos de los archivos que estén abiertos. De todas formas se aconseja utilizarlo cuando el directorio remoto no esté en uso. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;PROCEDIMIENTO (El uso del usuario "root" en el procedimiento indica que el "login" remoto será como "root"):&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;       - Se fideliza el acceso SSH del servidor en los clientes para permitir operaciones desatendidas (conexiones sin necesidad de introducir la contraseña in-situ por el administrador).&lt;br /&gt;                         - &lt;span style="font-weight: bold;"&gt;Crear el par de claves&lt;/span&gt; (pública-privada) del servidor:&lt;br /&gt;                         ssh-keygen -t rsa            (no indicar ninguna clave cuando lo requiera)&lt;br /&gt;&lt;br /&gt;                         - Las claves se crearán en "/root/.ssh" y serán: id_rsa (privada) e id_rsa.public  (publica)&lt;br /&gt;&lt;br /&gt;                         - En los servidores remotos se debe &lt;span style="font-weight: bold;"&gt;añadir el contenido de "id_rsa" al archivo "/root/.ssh/authorized_keys&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                             Con esto ya se podría hacer login vía SSH en el sistema remoto sin que nos pidiera la contraseña.&lt;br /&gt;&lt;br /&gt;                         - &lt;span style="font-weight: bold;"&gt;Situarse en el directorio "imagen" del servidor local&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                         - Ejecutar "rsync":&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;                               rsync -v -u -a --delete --rsh=ssh --stats usuario@192.168.x.x:/dir_maestro_remoto ./&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                             Siendo:  (usuario = root),  (192.168.x.x = ip del servidor remoto), (/dir_maestro_remoto = ruta COMPLETA al directorio del servidor remoto que queremos respaldar), ('--rsh=ssh' indica que la conexión se ha de realizar por un tunel SSH.)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                     -SI TODO VA BIEN.....  Se puede escribir un pequeño 'script' que se ejecute via "cron" a la hora que se indique.&lt;br /&gt;                             -SI TODO VA MAL.....  (probablemente sea una errata de esta receta)&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-6001975264011135287?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/6001975264011135287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/6001975264011135287'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2007/07/sincronizar-directorios-situados-en.html' title='Sincronizar directorios situados en máquinas remotas contra uno local'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-1953325008633550356</id><published>2007-07-02T20:23:00.000+02:00</published><updated>2007-07-02T20:29:44.244+02:00</updated><title type='text'>Pequeñas grandes aplicaciones muy interesantes para incluir en un servidor GNU/Linux (Unix en general)</title><content type='html'>&lt;span style="font-weight: bold;"&gt;ntp &lt;/span&gt;-&gt; Sincronización de fecha/hora con servidores públicos de Internet.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;denyhosts &lt;/span&gt;-&gt; Script Python para limitar el número de intentos de acceso por '&lt;span style="font-style: italic;"&gt;ssh&lt;/span&gt;'. Bloquea IP's&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;[.:lista abierta y en contrucción:.]&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-1953325008633550356?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/1953325008633550356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/1953325008633550356'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2007/07/aplicaciones-muy-interesantes-para.html' title='Pequeñas grandes aplicaciones muy interesantes para incluir en un servidor GNU/Linux (Unix en general)'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-868543914255675303</id><published>2007-06-12T21:44:00.000+02:00</published><updated>2007-06-16T14:32:35.895+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssh fidelizacion rsa psk login sin contraseña'/><title type='text'>"Fidelización" ssh</title><content type='html'>Cuatro simples pasos de los que siempre me olvido y que permiten hacer login remoto vía &lt;span style="font-style: italic;"&gt;"&lt;a href="http://es.wikipedia.org/wiki/SSH"&gt;ssh&lt;/a&gt;&lt;/span&gt;" sin necesidad de contraseña.&lt;br /&gt;&lt;br /&gt;Este procedimiento está muy documentado en Internet, pero como siempre se me olvida me haré aquí la receta.&lt;br /&gt;&lt;br /&gt;Aunque la mayoría de las veces esto se utiliza para hacer conexiones remotas via ssh con otros equipos sin que nos pida la contraseña, el principal uso que le doy es para la "administración desatendida".&lt;br /&gt;A la hora de hacer tareas de mantenimiento sobre un sistema, normalmente se usan los planificadores de tareas (sobre todo "cron" en máquinas Unix)  que básicamente envían comandos sobre los sistemas. La mayoría de estos comandos requiren privilegios de administrador para poder ejecutarse y por añadido esto suele requerir la contraseña de ese administrador.&lt;br /&gt;&lt;br /&gt;Para ejecutar tareas en sistemas remotos se suelen hacer conexiones mediante ssh, pero la cosas se complica cuando esta conexión la debe ejecutar el sistema y no hay nadie delante para introducir la contraseña cuando la necesite. Para solucionar este problema utilizando ssh se utiliza la "&lt;span style="font-style: italic;"&gt;Fidelización de Clientes&lt;/span&gt;".&lt;br /&gt;Básicamente esto consiste en que al intentar conectarse a un sistema, este reconozca inequívocamente al sistema cliente y le permita la conexión sin necesidad de identificarse totalmente (no pidiendo la contraseña). Para esto basta con utilizar pares de claves. Un equipo quedará identificado por un par de claves (una pública y otra privada). La pública será instalada en el servidor al cual se quiere conectar indicándo de alguna manera que esta es una clave genuina que identifica a su dueño.&lt;br /&gt;&lt;br /&gt;¿Como se hace todo esto en Linux?:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:130%;"&gt;Crear el par de claves en el sistema cliente: &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;              &lt;/div&gt;&lt;blockquote&gt;&lt;div style="text-align: left;"&gt;       &lt;span style="font-weight: bold; font-style: italic;"&gt;ssh-keygen -t rsa&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;           Primero nos pedirá la ruta para guardar el par de claves (&lt;span style="font-style: italic;"&gt;/user/.ssh&lt;/span&gt;)&lt;br /&gt;           Después pedirá una contraseña que dejaremos en blanco.&lt;/blockquote&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:130%;"&gt;        Copiar la clave pública&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt; Las claves estarán almacenadas en el directorio que hemos indicado con los nombres:&lt;br /&gt;                            &lt;span style="font-style: italic;"&gt;  id_rsa&lt;/span&gt; &lt;- Clave privada                                &lt;span style="font-style: italic;"&gt;id_rsa.pub&lt;/span&gt; &lt;- Clave pública                  ...hemos de copiar la clave pública al servidor; podemos usar el comando "scp" para ello, de la         forma:                         &lt;span style="font-style: italic; font-weight: bold;"&gt;  scp  ./.ssh/id_rsa.pub   root@IP_SERVIDOR:/root&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;           (ahora nos pedirá la contraseña de root, pero puede que sea la última vez...)&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:130%;"&gt; "&lt;span style="font-style: italic;"&gt;Fidelizar&lt;/span&gt;" la clave en el servidor.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt; Básicamente consiste en añadir el contenido del archivo "&lt;span style="font-style: italic;"&gt;id_rsa.pub&lt;/span&gt;" que hemos copiado al servidor al archivo "&lt;span style="font-weight: bold; font-style: italic;"&gt;/root/.ssh/authorized_keys&lt;/span&gt;" con una orden como esta:&lt;br /&gt;&lt;br /&gt;     &lt;span style="font-weight: bold; font-style: italic;"&gt;                    cat /root/id_rsa.pub  &gt;&gt; /root/.ssh/authorized_keys&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:130%;"&gt;LISTO.         &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;   Borramos el archivo "&lt;span style="font-style: italic;"&gt;id_rsa.pub&lt;/span&gt;" del servidor por seguridad y probamos a hacer conexión "ssh" con login de "&lt;span style="font-style: italic;"&gt;root&lt;/span&gt;" desde el otro sitema. No debería pedirnos la contraseña para ese usuario.&lt;br /&gt;       Esto puede hacerse con todos los usuarios; simplemente hay que crear las claves con el usuario que deseemos y colocarlas en el "&lt;span style="font-style: italic;"&gt;authorized_keys&lt;/span&gt;" del usuario correcto en el servidor en que queremos hacer login sin clave.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* Un par de enlaces para conocer el funcionamiento de "&lt;span style="font-style: italic;"&gt;ssh&lt;/span&gt;" y el cifrado de clave pública (que es el que se utiliza aquí):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://es.wikipedia.org/wiki/SSH"&gt;http://es.wikipedia.org/wiki/SSH&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://es.wikipedia.org/wiki/RSA"&gt;http://es.wikipedia.org/wiki/RSA&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://es.wikipedia.org/wiki/Criptograf%C3%ADa_asim%C3%A9trica"&gt;http://es.wikipedia.org/wiki/Criptograf%C3%ADa_asim%C3%A9trica&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-868543914255675303?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/868543914255675303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/868543914255675303'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2007/06/fidelizacin-ssh.html' title='&quot;Fidelización&quot; ssh'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-8153228689758184712</id><published>2007-03-31T21:49:00.000+02:00</published><updated>2007-06-16T15:15:20.038+02:00</updated><title type='text'>Intrusion Detection System (IDS) con SUSE y Snort</title><content type='html'>Los sistemas actuales en los que residen servicios de acceso público, como servidores de correo y hosting, están expuestos a posibles ataques externos a través de Internet.&lt;br /&gt;También ocurre lo mismo en los ordenadores personales, pero cuando se trata de sistemas críticos, es una buena idea tener un "perro de guardia" dedicado a husmear el tráfico que entra y sale para intentar detectar posibles ataques.&lt;br /&gt;&lt;br /&gt;Estos perros guardianes pueden ser de muchos tipos. Particularmente aquí se explican los IDS (sistemas de detección de intrusiones).&lt;br /&gt;&lt;br /&gt;Los IDS se suelen implementar dentro de las redes locales, como sistemas autónomos a los que se envía "copia" de TODOS los paquetes que recorren la red. También se suelen implemetar en las pasarelas entre redes. Esto es así porque la idea principal es que el sistema no va a dar realmente ningún servicio a los usuarios ni a la red, pero necesita recibir (al menos una copia de) todos los paquetes que pululan por la red. De esta forma, y utilizando filtros específicos y patrones predeterminados para muchos tipos de ataques puede identificar que máquina está siendo atacada.&lt;br /&gt;Si se implementa un un gateway entre dos redes,  no se precisará  hacer copia de los paquetes para enviarlos al IDS.  Basta que  "eche un vistazo" al tráfico que está pasando por el gateway.&lt;br /&gt;Pero esto puede llegar a sobrecargar el gateway en redes con mucho tráfico, de forma que una solución superior consiste en tener un sistema dedicado a IDS al que se envía una copia de los paquetes.&lt;br /&gt;&lt;br /&gt;Normalmente esto se implementa con una función de los "switch" de red que se conoce como "port mirroring". Activando esta función se consigue que de todas las conexiones que se producen entre dos host cualesquiera de la matriz de interconexión interna del switch hagan un "relay" de esos paquetes hacia uno de los puertos (físicos) que especifiquemos y que será en el que irá conectado el IDS.&lt;br /&gt;&lt;br /&gt;En los siguienetes esquemas podemos ver las diferencias.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_LP5pR8IvzU8/Rg7Fcw4Y7yI/AAAAAAAAAAM/Oa2ZVgL2UcU/s1600-h/IDS_FIREWALL.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_LP5pR8IvzU8/Rg7Fcw4Y7yI/AAAAAAAAAAM/Oa2ZVgL2UcU/s320/IDS_FIREWALL.jpg" alt="" id="BLOGGER_PHOTO_ID_5048189330277330722" border="0" /&gt;&lt;/a&gt;Un IDS implementados sobre la pasarela de red, lugar por donde pasa todo el tráfico&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_LP5pR8IvzU8/Rg7Fzg4Y7zI/AAAAAAAAAAU/Ivn1eMq9ku8/s1600-h/IDS_ALONE.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_LP5pR8IvzU8/Rg7Fzg4Y7zI/AAAAAAAAAAU/Ivn1eMq9ku8/s320/IDS_ALONE.jpg" alt="" id="BLOGGER_PHOTO_ID_5048189721119354674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;IDS implementado con PORT-MIRRORING sobre el switch&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;A continuación se explican los pasos para implementar un IDS de esta segunda forma.&lt;br /&gt;Los pasos para establecer el "port-mirroring" dependerán de cada modelo de switch en particular. Además, esta es una función que no todos los modelos suelen implementar, aunque sí suele estar disponible en los modelos de gama media-alta y profesional.&lt;br /&gt;&lt;br /&gt;La computadora utilizada ejecutará GNU/Linux; la distribución SUSE 10 Enterprise.&lt;br /&gt;Los detalles para la instalación del sistema operativo tampoco se verán aquí. Simplemente se trata de una instalación simple con las funciones de red activadas.&lt;br /&gt;&lt;br /&gt;El software utilizado para hacer las funciones de IDS es "SNORT". Es de código fuente abierto y uno de los más conocidos. Resulta suficientemente bueno para la mayoría de necesidades.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;WIKIPEDIA:  Snort es un &lt;/span&gt;&lt;a style="font-style: italic;" href="http://es.wikipedia.org/wiki/Sniffer" title="Sniffer"&gt;sniffer&lt;/a&gt;&lt;span style="font-style: italic;"&gt; de paquetes y un &lt;/span&gt;&lt;a style="font-style: italic;" href="http://es.wikipedia.org/wiki/Sistema_de_detecci%C3%B3n_de_intrusos" title="Sistema de detección de intrusos"&gt;detector de intrusos&lt;/a&gt;&lt;span style="font-style: italic;"&gt; basado en red (se monitoriza todo un dominio de colisión). Es un software muy flexible que ofrece capacidades de almacenamiento de sus bitácoras tanto en archivos de texto como en bases de datos abiertas como lo es &lt;/span&gt;&lt;a style="font-style: italic;" href="http://es.wikipedia.org/wiki/MySQL" title="MySQL"&gt;MySQL&lt;/a&gt;&lt;span style="font-style: italic;"&gt;. Implementa un motor de detección de ataques y barrido de puertos que permite registrar, alertar y responder ante cualquier anomalía previamente definida.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Será interesante esa posibilidad de utilizar una base de datos MySQL para almacenar las alertas de seguridad.&lt;br /&gt;&lt;br /&gt;Para el análisis y visualización de las alertas se utilizarán dos front-ends: ACID y BASE. Son interfaces web para el análisis de las alertas.&lt;br /&gt;&lt;p style="margin-bottom: 0cm; text-align: left;"&gt;&lt;/p&gt;&lt;span style="font-weight: bold;"&gt;-=RECETA=-:&lt;/span&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; Instalando suse 10 ......&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; Paquetes necesarios:  &lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;  &lt;/p&gt; &lt;ul&gt;&lt;li&gt;    snort:  Viene compilado con la opción  “--with-mysql” de forma que no hace falta el paquete “snort-mysql”&lt;/li&gt;&lt;li&gt;    mysql&lt;/li&gt;&lt;li&gt;    mysql-client&lt;/li&gt;&lt;li&gt;      php5&lt;/li&gt;&lt;li&gt;    php5-mysql&lt;/li&gt;&lt;li&gt;      apache2&lt;/li&gt;&lt;li&gt;    apache2-mod_php5&lt;/li&gt;&lt;/ul&gt;        &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;  &lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; Arrancar servicios al inicio    (comando parecido al conocido "update-rc.d" de Debian)&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;    &lt;span style="font-style: italic;"&gt;insserv apache&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt;    insserv mysql&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt;    insserv snort&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;Configurar MySQL&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;    Cambiar contaseña 'root:   &lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;        &lt;span style="font-style: italic;"&gt;mysqladmin -u root password NUEVAPASS&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;    Crear una bbdd para snort&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt;        mysql -u root -p&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt;       create database snort;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;    Crear un usuario con acceso total a esa base de datos&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt;        grant all on snort.* to &lt;a href="mailto:snort@localhost"&gt;snort@localhost&lt;/a&gt; identified by 'PASSWORD';&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt;        flush privileges;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;    Insertar las tablas desde el esquema que hay en: “/usr/share/doc/packages/snort/schemas”&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;span style="font-style: italic;"&gt;        mysql -u snort -p snort &lt; /usr/share/doc/packages/snort/schemas/create_mysql&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;   &lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-weight: bold;" align="left"&gt;Configurar SNORT:&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;    Modificar:&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;        &lt;span style="font-style: italic;"&gt;/etc/snort/snort.conf&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt;            var HOME_NET [192.168.0.0/24,xxxxxxxxxxx/xx]                #ESTO AL GUSTO DEL CONSUMIDOR&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;   &lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;               Configurar las ips de los servidores dns, smtp.....&lt;/p&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;            (outputs-mysql para que almacene el log en una bd MySQL. Buscar alrededor de la linea 570)&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;                Utilizar para la linea que esta comentada (descomentándola claro):&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt;                output database:log, mysql, user=snort password=snort dbname=snort......&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;   Personalizar las reglas:&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;    Comentar los includes de ****.rule&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;   &lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;    /etc/sysconfig/snort&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;   &lt;span style="font-style: italic;"&gt;     SNORT_ACTIVATE=”yes”&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt;        SNORT_PROMISC=”yes”&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;  Personalizar las reglas:&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;  &lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt;De esta forma, SNORT analiza el tráfico y almacena lo que le parece reseñable, pero necesitamos alguna herramienta, a poder ser gráfica, en la que se nos muestren los resultados y podamos filtrar toda esa información.&lt;br /&gt;&lt;br /&gt;Dos Front-ends probados:  ACIDLAB y  BASE&lt;br /&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;INSTALACIÓN DE ACIDLAB&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt;Descargar “acidlab” y descomprimirlo en “htdocs” &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; AcidLab utiliza una base de datos mysql para él. En vez de crearla, con otro usuario/contraseña y demás, aprovecharemos la que tenemos para snort añadiendole las tablas que necesita.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;span style="font-style: italic;"&gt;  mysql -u snort -p snort &lt; /srv/www/htdocs/acid/create_acid_tbls_mysql.sql&lt;/span&gt; &lt;/p&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; Editar  “./acid_conf.php”&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;  Configurar las dos conexiones a bases de datos mysql que aparecen entre las lineas 30 y 45 aproximadamente.&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; Instalar AdoDB. Son unas librerias php que deben colocarse en el mismo directorio que acidlab&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;  descargarlo de:   adodb.sourceforge.net&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt;  tar xvfz ado.....tgz&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt;  cp -a adodb  /srv/www/htdocs/acid&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;  Editar   “/srv/www/htdocs/acid/acid_conf.php”&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;   Linea 12:    $Dblib_path =” ./adodb” //mejor poner la ruta entera, pero asi ya va&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; Reiniciar los servicios:  snort, mysql, apache  &lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; Probarlo todo:  hacer un escaneo de puertos desde otra ip y mirar en “&lt;a href="http://localhost/acid"&gt;http://localhost/acid&lt;/a&gt;”&lt;/p&gt;  &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;DEBEN SALIR VARIAS ALERTAS YA AHÍ&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; Instalación de “oinkmaster”: Es un script que se conecta a la web de reglas de snort y las actualiza con las ultimas versiones. Las que vienen instaladas son las originales de cuando se empaquetó la aplicación.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; &lt;a href="http://oinkmaster.sourceforge.net/"&gt;Ir a Http://oinkmaster.sourceforge.net/&lt;/a&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; Descargar&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; decomprimir&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; copiar:&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt;  oinkmaster.conf   --&gt; /etc&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt;  oinkmaster.pl  --&gt;/usr/bin&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; Registrarse en snort.conf&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;pre style="text-align: left; text-decoration: none;"&gt;User Name: tururu&lt;br /&gt;Password: tururu &lt;/pre&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; Recoger código de activación.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; Editar “/etc/oinkmaster.conf”&lt;/p&gt;  &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;span style="font-style: italic;"&gt; url &lt;/span&gt;=  “descomentar lo de la versión 2.4 e introducir el código de activación&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; y lo mismo en la  de “Community Rules”&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; Comando para actualizar lista de reblas: hay que ponerlo en el crontab&lt;/p&gt;  &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt;   oinkmaster.pl -o /etc/snort/rules/ 2&gt;&amp;1 | logger -t oinkmaster&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; NOTA: acid no pide usuario ni contraseña ni nada. SE DEBE poner una autentificación http.&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;  &lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none; font-weight: bold;" align="left"&gt; BASE – OTRO VISOR DE ALERTAS&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; wget &lt;a href="http://belnet.dl.sourceforge.net/sourceforge/secureideas/base-1.2.6.tar.gz"&gt;http://belnet.dl.sourceforge.net/sourceforge/secureideas/base-1.2.6.tar.gz&lt;/a&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; Descomprimir y meter la carpeta “base” en “htdocs”&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt; cp /srv/www/htdocs/base/base_conf.php.dist   /srv/www/htdocs/base/base_conf.php&lt;/p&gt;  &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; Descargar “&lt;span style="font-style: italic;"&gt;adodb&lt;/span&gt;” y ponerlo dentro de la carpeta “base” también&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; Editar ese archivo (base_conf.php):&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt;  (aprox. Linea 44):  $BASE_urlpath = '/base'&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt;  (aprox. Linea 66):  $Dblib_path='./adodb'&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;  Configurar las bases de datos.  &lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;  Una es la propia de snort, la otra que viene son las tablas extra que metimos en la base de datos de snort con el “acid”, de forma que hay que crearlas/añadirlas con las herramientas del otro paquete.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; Necesita la extensión:  php5-db&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; Se necesita “pear”&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;Instalar extensiones de PEAR:&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt;  pear5 channel-update                        (LISTA DE EXTENSIONES DISPONIBLES EN EL SERVIDOR&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt;  pear5 install Image_Color        (INSTALACIONES VARIAS...)&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt;  pear5 install Image_Canvas&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none; font-style: italic;" align="left"&gt;  pear5 install Image_Graph&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; Tiene traducción al español. Viene incluida. Solo hay que cambiar la opción del archivo de configuración de “base”.&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;Último detalle:&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt; Cambiar en el “php.ini”  (/etc/php5/apache2/php.ini)&lt;/p&gt; &lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;  “error_reporting” debe quedar como: error_reporting E_ALL &amp; &lt;span style="font-family:Times New Roman,serif;"&gt;~&lt;/span&gt;E_NOTICE&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none; color: rgb(255, 0, 0); font-weight: bold;" align="left"&gt;ACTUALIZACIÓN IMPORTANTE:&lt;/p&gt;&lt;br /&gt;Hay documentado por la red un error en esta configuración. Se da en ocasiones que "SNORT" pierde la conexión con la base de datos de forma permanente, de forma que se dejan de registrar alertas y es como si el sistema se parase ya que deja de realizar sus funciones.&lt;br /&gt;Para evitarlo, añadir las siguientes lineas al archivo de configuración de MySQL ("&lt;span style="font-weight: bold;"&gt;/etc/my.cnf&lt;/span&gt;") en la sección "[mysqld]":&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;[mysqld]&lt;br /&gt;&lt;br /&gt;[...]&lt;br /&gt;wait_timeout = 604800&lt;br /&gt;interactive_timeout = 604800&lt;br /&gt;[...]&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; text-decoration: none;" align="left"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-8153228689758184712?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/8153228689758184712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/8153228689758184712'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2007/03/intrusion-detection-system-ids-con-suse.html' title='Intrusion Detection System (IDS) con SUSE y Snort'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_LP5pR8IvzU8/Rg7Fcw4Y7yI/AAAAAAAAAAM/Oa2ZVgL2UcU/s72-c/IDS_FIREWALL.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-910479408487833436</id><published>2007-02-11T19:35:00.000+01:00</published><updated>2007-06-16T23:36:20.376+02:00</updated><title type='text'>Manejo de unidades de copia en cinta</title><content type='html'>Estos pasos han sido probados en unidades SCSI. Existen otros tipos de interfaces para estas unidades de cinta y probablemente no sería muy complicado hacerlas funcionar con los mismos comandos (salvo porque seguramente serían detectadas como otro dispositivo).&lt;br /&gt;&lt;br /&gt;Las unidades IDE es posible que se puedan manejar de forma directa con kernels 2.6. En caso contrario se debe hacer la emulación ide-scsi tan clásica en las grabadoras de compactos en los tiempos del kernel 2.4.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Todas las que he utilizado son detectadas  bajo principalmente dos identificadores:&lt;br /&gt; &lt;span style="font-weight: bold; font-style: italic;"&gt; /dev/nst0&lt;/span&gt;&lt;br /&gt;        &lt;span style="font-weight: bold; font-style: italic;"&gt;/dev/st0 &lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Físicamente "nst0" y "st0" son el mismo dispositivo; la diferencia está en que "&lt;span style="font-weight: bold;"&gt;st0&lt;/span&gt;" SÍ se &lt;span style="font-weight: bold;"&gt;auto rebobina&lt;/span&gt; después de cada operación. No así "&lt;span style="font-weight: bold;"&gt;nst0&lt;/span&gt;" que después de una escritura la cinta queda en la última posición escrita. Estos modos de operación son importantes a la hora de utilizar algún software específico de backup como "&lt;a href="http://www.amanda.org/"&gt;amanda&lt;/a&gt;" o "&lt;a href="http://www.bacula.org/"&gt;bacula&lt;/a&gt;", que necesitan un modo de operación específico (normalmente "nst0").&lt;br /&gt;&lt;br /&gt;Las unidades SCSI de tipo DAT-72 (de HP) y Ultrium son reconocidas de esta forma. Las unidades externas de conexión USB suelen ser emuladas por el sistema y terminan quedando enlazadas con estos descriptores de dispositivo (nst0, st0) y se pueden utilizar de la misma forma que los internos.&lt;br /&gt;&lt;br /&gt;El comando utilizado para el manejo de la unidad es   '&lt;a href="http://www.computerhope.com/unix/umt.htm"&gt;mt&lt;/a&gt;':&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&lt;span style="font-weight: bold; font-style: italic;"&gt; mt  -f  /dev/nst0  rewind&lt;/span&gt;           (Rebobina la cinta. Es necesario rebobinarla para comenzar una nueva copia)&lt;br /&gt;* &lt;span style="font-weight: bold; font-style: italic;"&gt;mt  -f  /dev/nst0  eject&lt;/span&gt;                  (Expulsión de cinta. En determinadas versiones de 'mt' rewind tambien la expulsa)&lt;br /&gt;* &lt;span style="font-weight: bold; font-style: italic;"&gt;mt  -f   /dev/nst0  erase&lt;/span&gt;              (Borra el contenio)&lt;br /&gt;* &lt;span style="font-weight: bold; font-style: italic;"&gt;mt  -f   /dev/nst0  status&lt;/span&gt;            (Muestra el estado de la unidad)&lt;br /&gt;* &lt;span style="font-style: italic; font-weight: bold;"&gt;mt  -f   /dev/nst0  retension    &lt;/span&gt;(Rebobina y tensa la cinta)&lt;br /&gt;&lt;br /&gt;Como se puede ver, el parámetro "-f xxx" indica el nombre dispositivo que Linux ha asignado en el directorio "/dev" al dispositivo. Usando aquí "nst0" ó "st0" tendremos la unidad funcionando en modo de auto rebobinado o nó.&lt;br /&gt;&lt;br /&gt;Conviene leer la ayuda de este comando ('man mt') puesto que según la versión utilizada  algunos de estos parámetros ya incluyen las funciones de otros, cambian de nombre o desaparecen.&lt;br /&gt;&lt;br /&gt;Hay más opciones, pero estas nos serán suficientes para la mayor parte de operaciones que necesitemos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;REALIZACIÓN DE COPIAS DE SEGURIDAD&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sobra decir que una cinta es un dispositivo de acceso secuencial, lo que significa que para leer la información que se encuentra en la posición 'N' de la misma, es necesario leer la información de las 'N-1' posiciones anteriores. Esto hace que las copias en cinta sean usadas como última opción pero a la vez permiten almacenar gran cantidad de información (hasta 100 GB en algunas) y son muy fiables. Pueden ser reescritas hasta unas mil veces dependiendo del fabricante/modelo y soportan condiciones ambientales suficientes para lo que ofrecen la mayoría de centros de datos y oficinas donde estarán funcionando.&lt;br /&gt;Son dispositivos lentos. Suelen leer/escribir a una velocidad de uno 3 ó 4 MB/seg. de ahí que las copias de seguridad se lancen a horas en que los sistemas no están siendo usados (pueden tardar varias horas).&lt;br /&gt;&lt;br /&gt;Para hacer copias, normalmente se utiliza la herramienta 'tar' para escribir los archivos de respaldo directamente sobre el dispositivo de forma secuencial.&lt;br /&gt;&lt;br /&gt;El soporte en GNU/Linux es excelente, y de hecho no es necesario formatear las cintas nuevas para utilizarlos (en otro sistemas sí es necesario darles formato).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;EJEMPLOS DE COPIA DE RESPALDO UTILIZANDO 'tar' (como root):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;*&lt;span style="font-weight: bold; font-style: italic;"&gt; tar cvf  /dev/nst0  /directorio_importante&lt;/span&gt;           (copia de seguridad del directorio 'directorio_importante)&lt;br /&gt;* &lt;span style="font-weight: bold; font-style: italic;"&gt;tar cvf  /dev/nst0  /                                                                            &lt;/span&gt;(copia de seguridad de todo el disco duro)&lt;br /&gt;* &lt;span style="font-weight: bold; font-style: italic;"&gt;tar cvf  /dev/nst0  /home  /mnt /var  /boot/bzimage&lt;/span&gt;      (copia de seguidad de varios directorios y archivos)&lt;br /&gt;&lt;br /&gt;Se pueden utilizar los parámetros del comando "tar" que se usen normalmente para comprimir la información al escribirla en la cinta:&lt;br /&gt;&lt;br /&gt;* &lt;span style="font-weight: bold; font-style: italic;"&gt;tar cvfz /dev/nst0 /directorio_a_respaldar&lt;/span&gt;              (compresión gzip)&lt;br /&gt;* &lt;span style="font-weight: bold; font-style: italic;"&gt;tar cvfj /dev/nst0 /directorio_a_respaldar    &lt;/span&gt;                (compresión bzip2)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RESTAURACION DE COPIAS&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Se deben usar los mismos parámetros de compresión utilizados al realizar la copia&lt;br /&gt;&lt;br /&gt;* &lt;span style="font-weight: bold; font-style: italic;"&gt;tar  xvf  /dev/nst0&lt;/span&gt;            (restaura la copia)&lt;br /&gt;* &lt;span style="font-weight: bold; font-style: italic;"&gt;tar tmv  /dev/nst0&lt;/span&gt;           (visualiza la copia)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-910479408487833436?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/910479408487833436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/910479408487833436'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2007/02/manejo-de-unidades-de-copia-en-cinta.html' title='Manejo de unidades de copia en cinta'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-116626923612133778</id><published>2006-12-16T12:26:00.000+01:00</published><updated>2006-12-16T12:40:36.153+01:00</updated><title type='text'>Servidor de Impresión para Linux y Windows</title><content type='html'>El servidor en cuestión es un aparatito de marca "Conceptronic" que se conecta a la red local y por USB a la impresora. También necesita alimentación a través de un transformador incluido.&lt;br /&gt;&lt;br /&gt;Se configura via Web y permite establecer el nombre del "Grupo de trabajo Windows" en el que se desea que funcione.&lt;br /&gt;&lt;br /&gt;Pero lo interesante es que soporta un montón de protocolos de impresión remotos. He aquí la salida de un escaneo con "nmap" sobre la IP del aparato:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;blockquote&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51);"&gt;Not shown: 1675 closed ports&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51);"&gt;PORT     STATE SERVICE&lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51);"&gt;80/tcp   open  http&lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51);"&gt;81/tcp   open  hosts2-ns&lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51);"&gt;139/tcp  open  netbios-ssn&lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51);"&gt;515/tcp  open  printer&lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51);"&gt;9100/tcp open  jetdirect&lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;/span&gt;Para los clientes con Windows XP, la impresora aparece en el entorno de red bajo el nombre que le demos al servidor de impresión al configurarlo. También podemos hacer esto con SAMBA desde Linux.&lt;br /&gt;&lt;br /&gt;Pero lo interesante es usar la impresora directamente como una "Impresora TCP/IP". Para ello, una vez instalado CUPS, los drivers que correspondan a la impresora (en mi caso HPIJS + Foomatic) y desde algún gestor gráfico como el "kprinter" de KDE, añadimos la impresora indicando:&lt;br /&gt;&lt;br /&gt;               IMPRESORA DE RED (TCP)&lt;br /&gt;&lt;br /&gt;Y en los siguientes diálogos especificar su dirección IP y el puerto 9100. Es decir que vamos a utilizar el protocolo "jetprinter", que es bastante rápido y cómodo. Después deberemos indicar nuestro modelo de impresora... y a imprimir.&lt;br /&gt;&lt;br /&gt;Realmente una gran compra para compartir una impresora. Además mantiene esos detalles que incorporan ahora las impresoras que nos hacen la vida un poco más sencilla, como por ejemplo encender automáticamente la impresora si al ir a imprimir está apagada.&lt;br /&gt;&lt;br /&gt;También he comprobado que puede manejar una cola de impresión bastante larga e incluso de trabajos enviados con diferentes protocolos.&lt;br /&gt;&lt;br /&gt;*NOTA.- Desde WindowsXP también se puede imprimir con el protocolo "jetdirect". Para ello hay que agregar la impresora como si fuera una impresora local conectada al propio ordenador y después indicar que el puerto que queremos usar no es un puerto local (LPT1, USB....) , sino un puerto remoto TCP/IP emulado en la dirección IP y puerto deseados&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7975531-116626923612133778?l=yoseman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/116626923612133778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7975531/posts/default/116626923612133778'/><link rel='alternate' type='text/html' href='http://yoseman.blogspot.com/2006/12/servidor-de-impresin-para-linux-y.html' title='Servidor de Impresión para Linux y Windows'/><author><name>YoSe</name><uri>http://www.blogger.com/profile/09080454821757567610</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7975531.post-116509639666043281</id><published>2006-12-02T22:45:00.000+01:00</published><updated>2007-01-03T22:06:52.496+01:00</updated><title type='text'>Debian en un portatil VAIO VGN-FJ3S</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger/7977/518/1600/268030/vaio.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/x/blogger/7977/518/200/498319/vaio.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;span style="font-size:85%;"&gt;CARACTERÍSTICAS&lt;/span&gt;&lt;/h2&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Procesador Intel® Pentium® M 740 533 MHz FSB 1.73GHz 2048KB L2 Cache&lt;/li&gt;&lt;li&gt;Memoria RAM 1024MB SDRAM DDR2 (2 x 512 MB)&lt;/li&gt;&lt;li&gt;Disco Duro (TOSHIBA MK1032GS' 'AS02' Disk) S-ATA  5400 rpm  100GB&lt;/li&gt;&lt;li&gt;DVD±RW (MATSHITA' 'DVD-RAM UJ-850S ' '1.00')&lt;/li&gt;&lt;li&gt;Pantalla LCD X-Black 14.1 (Panorámica)  1280 x 800&lt;/li&gt;&lt;li&gt;Tarjeta gráfica Intel® Graphics Media Accelerator 900  (Max. 128 MB memoria compartida)&lt;/li&gt;&lt;li&gt;Ranura para Memory Stick&lt;/li&gt;&lt;li&gt;Red Ethernet: Realtek 8139C+&lt;/li&gt;&lt;li&gt;Red Wifi: Intel PRO-Wireless 2200BG&lt;/li&gt;&lt;li&gt;WebCam integrada Motion EYE USB 2.0&lt;/li&gt;&lt;li&gt;Sistema de Sonido: Intel AC-97&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;h2&gt;&lt;span style="font-size:85%;"&gt; SALIDA DE "lspci"&lt;/span&gt;&lt;/h2&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)&lt;br /&gt;00:02.0 VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)&lt;br /&gt;00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)&lt;br /&gt;00:1b.0 Audio device: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 03)&lt;br /&gt;00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)&lt;br /&gt;00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)&lt;br /&gt;00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)&lt;br /&gt;00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03)&lt;br /&gt;00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)&lt;br /&gt;00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3)&lt;br /&gt;00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03)&lt;br /&gt;00:1f.2 IDE interface: Intel Corporation 82801FBM (ICH6M) SATA Controller (rev 03)&lt;br /&gt;00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03)&lt;br /&gt;06:08.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)&lt;br /&gt;06:09.0 CardBus bridge: Texas Instruments PCI7420 CardBus Controller&lt;br /&gt;06:09.2 FireWire (IEEE 1394): Texas Instruments PCI7x20 1394a-2000 OHCI Two-Port PHY/Link-Layer Controller&lt;br /&gt;06:09.3 Mass storage controller: &lt;pci_lookup_name: buffer="" too="" small=""&gt;&lt;br /&gt;06:0a.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)&lt;/pci_lookup_name:&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;h2&gt;&lt;span style="font-size:78%;"&gt;QUE FUNCIONA Y QUE NO FUNCIONA&lt;/span&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Escalado de frecuencia ------ &lt;span style="color: rgb(51, 204, 0);"&gt;FUNCIONA:    &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;SpeedSetp_centrino&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Ethernet------------------------&lt;span style="color: rgb(51, 204, 0);"&gt;FUNCIONA:   &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;8139too&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Adaptador Gráfico------------&lt;span style="color: rgb(51, 204, 0);"&gt;FUNCIONA:   Módulos "&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;vesa&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;" o "&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;i810&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;" a 1280x800&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Sonido---- ----------------------&lt;span style="color: rgb(51, 204, 0);"&gt;FUNCIONA:   Alsa 1.0.13 Sistema de sonido Intel (&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;snd_hda_intel&lt;/span&gt;)&lt;/li&gt;&lt;li&gt;USB2.o (no lleva 1.1)---- -----&lt;span style="color: rgb(51, 204, 0);"&gt;FUNCIONA:  &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;ehci_hcd&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;font&gt;PCMCIA-------------------------&lt;span style="color: rgb(51, 204, 0);"&gt;FUNCIONA:  yenta_socket&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;li&gt;&lt;font&gt;Touch-Pad----------------------&lt;span style="color: rgb(51, 204, 0);"&gt;FUNCIONA:  synaptics&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;li&gt;&lt;font&gt;Hot-Keys-------------------&lt;span style="color: rgb(255, 0, 0);"&gt;NO-FUNCIONA&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;li&gt;&lt;font&gt;HD SATA------------------------&lt;span style="color: rgb(51, 204, 0);"&gt;FUNCIONA:&lt;/span&gt; &lt;span style="color: rgb(51, 204, 0);"&gt;libata, ata_piix (compilados dentro del nucleo)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;li&gt;&lt;font&gt;DVD SATA----------------------&lt;span style="color: rgb(51, 204, 0);"&gt;FUNCIONA: Lectura y grabación correcta en todos los formatos&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;li&gt;&lt;font&gt;Webcam MotionEye-- ---&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;FUNCIONA: Módulo gspcav/SPCA5xx&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;li&gt;&lt;font&gt;Micrófono integrado-----&lt;span style="color: rgb(255, 153, 0);"&gt;NO-PROBADO&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;li&gt;&lt;font&gt;Salida VGA----------------------&lt;span style="color: rgb(51, 204, 0);"&gt;FUNCIONA:  herramienta i810switch&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;li&gt;&lt;font&gt;Adaptador WIFI---- -----------&lt;span style="color: rgb(51, 204, 0);"&gt;FUNCIONA:  ipw2200BG  + firmware&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;li&gt;&lt;font&gt;ACPI, Suspensión... -----------&lt;span style="color: rgb(51, 204, 0);"&gt;FUNCIONA:  Posibles errores en algunos modos de suspensión&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;li&gt;&lt;font&gt;Modem----- ----------------&lt;span style="color: rgb(255, 153, 0);"&gt;NO-PROBADO: Posiblemente no funciona&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;li&gt;&lt;font&gt;Firewire--------- -----------&lt;span style="color: rgb(255, 153, 0);"&gt;NO-PROBADO&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;li&gt;&lt;font&gt;Lector de tarjetas----- ----&lt;span style="color: rgb(255, 153, 0);"&gt;NO-PROBADO&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;li&gt;&lt;font&gt;####################################################################&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/ul&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font&gt;&lt;font
