von MedienDeZign | Dez 27, 2012 | BSD, GNU/Linux
Soll ein weiterer Mailserver, z.B. der des ISP, als Relay für Sendmail dienen und erfordert dieser Authentifizierung, so ist das kein Problem.
Kenn’ ich irgendwie auch schon … *g*
Verwendet wurde OpenBSD 3.3
Benötigte Pakete:
cyrus-sasl2
Für das gesamte Projekt benötigen wir die Quelltexte vom Sendmail:
# echo WANT_SMTPAUTH= yes >> /etc/mk.conf
# cd /usr/local/lib; ln -s libsasl2.so.2.11 libsasl2.so
# vi /usr/src/gnu/usr.sbin/sendmail/cf/cf/openbsd-proto.mc
nach FEATURE(`no_default_msa’) folgendes einfügen:
define(`confAUTH_MECHANISMS’,`LOGIN PLAIN CRAM-MD5 DIGEST-MD5′)dnl
TRUST_AUTH_MECH(`LOGIN PLAIN CRAM-MD5 DIGEST-MD5′)dnl
FEATURE(`authinfo’,`hash /etc/mail/authinfo’)
# cd /usr/src/gnu/usr.sbin/sendmail
# make && make install && make clean
# cd /usr/share/sendmail/cf/
# make openbsd-proto.cf
# cp openbsd-proto.cf /etc/mail/sendmail.cf
# vi /etc/mail/authinfo
AuthInfo:mein.relay.server “U:blabla” “P=blabla” “M:LOGIN”
# makemap hash /etc/mail/authinfo < /etc/mail/authinfo
# vi /etc/mail/sendmail.cf
Man suche nach: # "Smart" relay host (may be null) und füge ein:
DSmein.relay.server
Um die Kerberosfehlermeldungen beim Start ein wenig zu unterdrücken:
# touch /etc/kerberosIV/srvtab
Jetzt noch ein einfacher Neustart:
# kill -HUP `head -1 /var/run/sendmail.pid`
Auch ist es mit wenigen Schritten noch möglich, dass der Sendmail als Relay-Schutz eine korrekte Authentifizierung verlangt:
# mkdir /var/sasl2
# echo pwcheck_method: saslauthd > /usr/local/lib/sasl2/Sendmail.conf
# /usr/local/sbin/saslauthd -a getpwent
# vi /etc/rc.local
if [ -x /usr/local/sbin/saslauthd ]; then
echo -n ‘ saslauthd’; /usr/local/sbin/saslauthd -a getpwent
fi
# kill -HUP `head -1 /var/run/sendmail.pid`
Nun Langt’s aber.
von MedienDeZign | Dez 27, 2012 | BSD
Ein Ftp-Server schlägt natürlich ein gewaltiges Loch in eine Firewall, da dieser auf Ports oberhalb 1024 kommuniziert und man demzufolge gezwungen ist diese zu öffnen. Nicht wirklich! Der OpenBSD FTP-Server bietet die Möglichkeit nur über Ports zwischen 49152 und 65535 zu sprechen.
Zur konfiguration:
/etc/shells
/usr/bin/false
# adduser
User Name: ftp
Full Name: Anonymous FTP
Shell: false
Login Group: ftp
Invite to other Groups: No
/etc/rc.conf
ftpd_flags=”-hDllUSAP” # for non-inetd use: ftpd_flags=”-D”
und die ftp verzeichnisse noch mit chmod auf 555 setzen und als Eigentümer root, dann kann nur gesaugt werden
/etc/ftpusers – Nicht wilkommene Benutzer
/etc/ftpchroot – Normale Benutzer die zugelassen werden
/etc/ftpwelcome – Dieser Text wird bei jedem FTP-Login gezeigt
von MedienDeZign | Dez 27, 2012 | BSD
Möchte man nicht das gesamte Paket haben oder ähnlich einem ‘configure’ bestimmte Parameter übergeben funktioniert das in diesem Falle über die FLAVORS:
# cd /usr/ports/WasAuchImmer
# make show VARNAME=FLAVORS
# env FLAVOR=”WieAuchImmer” make install
von MedienDeZign | Dez 27, 2012 | BSD, GNU/Linux
Für die Erstellung eines selbstsignierten SSL-Zertifikates für z. B. verschlüsselte Kommunikation via Webserver gehe man folgendermassen vor:
1. Schritt: Schlüssel erstellen
openssl req -new > new.cert.csr
2. Schritt: das Passwort entfernen
openssl rsa -in privkey.pem -out new.cert.key
3. Schritt: das Zertifikat signieren:
openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 365
nun nur noch in der /var/www/conf/httpd.conf für den server eintragen:
SSLCertificateFile /path/to/certs/new.cert.cert
SSLCertificateKeyFile /path/to/certs/new.cert.key
von MedienDeZign | Dez 27, 2012 | BSD
Mit folgendem kleinen Perl-Skript ist es möglich unterschiedliche Filterregeln auszuwählen und zu aktivieren:
#!/usr/bin/perl -w
use diagnostics;
# VARIABLEN
my $ruleNr = “”;
my $fwr1 = “/etc/pf.open”;
my $fwr2 = “/etc/pf.ftp”;
my $fwr3 = “/etc/pf.conf”;
my $fwr4 = “/etc/pf.closed”;
# USER-EINGABE
system(”/usr/bin/clear”);
print “\n”;
print “\n Bitte waehle Deine gewuenschte Firewall Regel: “;
print “\n”;
print “\n”;
print “\n”;
print “\n”;
print “\n 1. – SSH, FTP, SMTP, POP, WWW, HTTPS, E-Donkey und Webmin von aussen\n”;
print “\n”;
print “\n 2. – SSH, FTP,WWW, HTTPS und E-Donkey von aussen\n”;
print “\n”;
print “\n 3. – SSH, WWW, HTTPS und E-Donkey von aussen\n”;
print “\n”;
print “\n 4. – Alles zu von aussen – Squid von innen\n”;
print “\n”;
print “\n 5. – Neueinwahl zu T-Offline mit Regel 3\n”;
print “\n”;
print “\n”;
chomp($ruleNr = );
if (-e $fwr1 and $ruleNr eq 1){
system(”/sbin/pfctl -R /etc/pf.open”);
print “\nDu hast Nr.$ruleNr gewaehlt \n”;
print “\n”;
print “\n”;
}
elsif (-e $fwr2 and $ruleNr eq 2){
system(”/sbin/pfctl -R /etc/pf.ftp”);
print “\nDu hast Nr.$ruleNr gewaehlt \n”;
print “\n”;
print “\n”;
}
elsif (-e $fwr3 and $ruleNr eq 3){
system(”/sbin/pfctl -R /etc/pf.conf”);
print “\nDu hast Nr.$ruleNr gewaehlt \n”;
print “\n”;
print “\n”;
}
elsif (-e $fwr4 and $ruleNr eq 4){
system(”/sbin/pfctl -R /etc/pf.closed”);
print “\nDu hast Nr.$ruleNr gewaehlt \n”;
print “\n”;
print “\n”;
}
elsif ($ruleNr eq 5){
system(”/bin/kill `cat /var/run/tun0.pid`”);
system(”/sbin/route delete default”);
system(”/bin/sleep 2″);
system(”/usr/sbin/ppp -ddial pppoe”);
print “\nDu hast Nr.$ruleNr gewaehlt \n”;
}
else {
print “\n”;
print “\n”;
print “\nirgendetwas ist schief gelaufen\n”;
print “\nentweder falsche Nr. 1 – 5 sind erlaubt\n”;
print “\noder Deine Firewall Regel Files sind defekt\n\n”;
print “\n”;
print “\n”;
}
__END__
von MedienDeZign | Dez 27, 2012 | BSD, GNU/Linux
Um Sendmail eine geänderte sendmail.cf neu einlesen zu lassen gebe man auf der Konsole folgendes ein:
# kill -HUP `head -1 /var/run/sendmail.pid`