| Any computer connected to the internet will require steps and precautions to be taken to reduce the exposure to hacker threats. Web, mail and DNS servers are especially vulnerable. Large operations will hide behind a CISCO firewall for most of their protection. The server must also be made secure. This tutorial covers steps and tools which can be used to monitor and counteract hacker threats. |
![]() |
This tutorial will cover basic installation and configuration for:
|
Prerequisites: This tutorial assumes that a computer has Linux installed and running. See RedHat Installation for the basics. A connection to the internet is also assumed. The tasks must also be performed with the root user login and password.
The computer is most vulnerable to attack through network exploits. This tutorial covers detection and protection.
| Basic Security Steps / Overview: |
Perform the following steps to secure your web site:
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -aRestart the daemon to apply changes: /etc/rc.d/init.d/inetd restart
service ftp
{
disable = yes - FTP default is off. Note that this line controlls whether the xinetd service is enabled or not
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.ftpd
server_args = -l -a
log_on_success += DURATION USERID
log_on_failure += USERID
nice = 10
}
Turning on/off an xinetd service:
Tip:
iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 2049 -j DROP - Block NFS iptables -A INPUT -p udp -s 0/0 -d 0/0 --dport 2049 -j DROP - Block NFS iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 6000:6009 -j DROP - Block X-Windows iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 7100 -j DROP - Block X-Windows font server iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 515 -j DROP - Block printer port iptables -A INPUT -p udp -s 0/0 -d 0/0 --dport 515 -j DROP - Block printer port iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 111 -j DROP - Block Sun rpc/NFS iptables -A INPUT -p udp -s 0/0 -d 0/0 --dport 111 -j DROP - Block Sun rpc/NFS iptables -A INPUT -p all -s localhost -i eth0 -j DROP - Deny outside packets from internet which claim to be from your loopback interface.
# Allow loopback access. This rule must come before the rules denying port access!! iptables -A INPUT -i lo -p all -j ACCEPT - This rule is essential if you want your own computer to be able to access itself throught the loopback interface iptables -A OUTPUT -o lo -p all -j ACCEPT ipchains -A input -p tcp -s 0/0 -d 0/0 2049 -y -j REJECT - Block NFS ipchains -A input -p udp -s 0/0 -d 0/0 2049 -j REJECT - Block NFS ipchains -A input -p tcp -s 0/0 -d 0/0 6000:6009 -y -j REJECT - Block X-Windows ipchains -A input -p tcp -s 0/0 -d 0/0 7100 -y -j REJECT - Block X-Windows font server ipchains -A input -p tcp -s 0/0 -d 0/0 515 -y -j REJECT - Block printer port ipchains -A input -p udp -s 0/0 -d 0/0 515 -j REJECT - Block printer port ipchains -A input -p tcp -s 0/0 -d 0/0 111 -y -j REJECT - Block Sun rpc/NFS ipchains -A input -p udp -s 0/0 -d 0/0 111 -j REJECT - Block Sun rpc/NFS ipchains -A input -j REJECT -p all -s localhost -i eth0 -l - Deny and log (option -l) outside packets from internet which claim to be from your loopback interface.
Also see:
| SSH: (Secure Shell) |
SSH protocol suite of network connectivity tools are used to encrypt connections accross the internet. SSH encrypts all traffic including logins and passwords to effectively eliminate network sniffing, connection hijacking, and other network-level attacks. In a regular telnet session the password is transmitted across the Internet unencrypted.
SSH is a commercial product but available freely for non-commercial use from SSH Communications Security at http://www.ssh.com/. Two versions are available, SSH1 and SSH2. The newer SSH2 supports FTP and has more options than SSH1. SSH2 can be purchased and/or downloaded from their web site. Note that SSH1 does have a major vulnerability issues. The "woot-project" web site cracking and defacing gang uses this vulnerability. DO NOT USE SSH1 PROTOCOL!!!!! Summary of SSH1 issues and what to avoid. ("woot-project" exploit/attack description/recovery)
OpenSSH was developed by the the OpenBSD Project and is freely available. OpenSSH is compatable with SSH1 and SSH2. OpenSSH relies on the OpenSSL project for the encrypted communications layer. Current releases of Linux come with OpenSSH/OpenSSL. (Comes with Red Hat Linux 7.x+)
Links:
OpenSSH:
rpm -ivh openssh-2.9p2-8.7.i386.rpm
rpm -ivh openssh-askpass-2.9p2-8.7.i386.rpm rpm -ivh openssh-clients-2.9p2-8.7.i386.rpm rpm -ivh openssh-askpass-gnome-2.9p2-8.7.i386.rpm - Gnome desktop users
rpm -ivh openssh-server-2.9p2-8.7.i386.rpm
The rpm will install the appropriate binaries, configuration files and openssh-server will install the init script /etc/rc.d/init.d/sshd so that sshd will start upon system boot.
# $OpenBSD: ssh_config,v 1.9 2001/03/10 12:53:51 deraadt Exp $ # This is ssh client systemwide configuration file. See ssh(1) for more # information. This file provides defaults for users, and the values can # be changed in per-user configuration files or on the command line. # Configuration data is parsed as follows: # 1. command line options # 2. user-specific file # 3. system-wide file # Any configuration value is only changed the first time it is set. # Thus, host-specific definitions should be at the beginning of the # configuration file, and defaults at the end. # Site-wide defaults for various options # Host * # ForwardAgent no # ForwardX11 no # RhostsAuthentication no # RhostsRSAAuthentication yes # RSAAuthentication yes # PasswordAuthentication yes # FallBackToRsh no # UseRsh no # BatchMode no # CheckHostIP yes # StrictHostKeyChecking yes # IdentityFile ~/.ssh/identity # IdentityFile ~/.ssh/id_rsa # IdentityFile ~/.ssh/id_dsa # Port 22 # Protocol 2,1 - Change this line to: Protocol 2 # Cipher 3des # Ciphers aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc # EscapeChar ~ Host * ForwardX11 yes
Uncomment the options required or accept the hard-coded defaults. The hard coded defaults for OpenSSH client are compatable with SSH1 client files and sshd server. An upgrade to OpenSSH client will not require any changes to the files in $HOME/.ssh/.
# $OpenBSD: sshd_config,v 1.38 2001/04/15 21:41:29 deraadt Exp $ # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin # This is the sshd server system-wide configuration file. See sshd(8) # for more information. Port 22 #Protocol 2,1 - Change to: Protocol 2 #ListenAddress 0.0.0.0 #ListenAddress :: HostKey /etc/ssh/ssh_host_key HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key ServerKeyBits 768 LoginGraceTime 600 KeyRegenerationInterval 3600 PermitRootLogin yes # # Don't read ~/.rhosts and ~/.shosts files IgnoreRhosts yes # Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication #IgnoreUserKnownHosts yes StrictModes yes X11Forwarding yes X11DisplayOffset 10 PrintMotd yes #PrintLastLog no KeepAlive yes # Logging SyslogFacility AUTHPRIV LogLevel INFO #obsoletes QuietMode and FascistLogging RhostsAuthentication no # # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts RhostsRSAAuthentication no # similar for protocol version 2 HostbasedAuthentication no # RSAAuthentication yes # To disable tunneled clear text passwords, change to no here! PasswordAuthentication yes PermitEmptyPasswords no # Uncomment to disable s/key passwords #ChallengeResponseAuthentication no # Uncomment to enable PAM keyboard-interactive authentication # Warning: enabling this may bypass the setting of 'PasswordAuthentication' #PAMAuthenticationViaKbdInt yes # To change Kerberos options #KerberosAuthentication no #KerberosOrLocalPasswd yes #AFSTokenPassing no #KerberosTicketCleanup no # Kerberos TGT Passing does only work with the AFS kaserver #KerberosTgtPassing yes #CheckMail yes #UseLogin no #MaxStartups 10:30:60 #Banner /etc/issue.net #ReverseMappingCheck yes Subsystem sftp /usr/libexec/openssh/sftp-server
Generating public/private rsa key pair. Enter file in which to save the key (/home/user-id/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user-id/.ssh/id_rsa. Your public key has been saved in /home/user-id/.ssh/id_rsa.pub. The key fingerprint is: XXXblablablaXXXaf:90:8f:dc:65:0d:XXXXXXXXXXXXXX user-id@node-nameFiles generated:
$HOME/.ssh/id_rsa - binary $HOME/.ssh/id_rsa.pub - ssh-rsa ...223564257432 email address - Multiple keys/lines allowd.
The authenticity of host 'node.your-domain.com (XXX.XXX.XXX.XXX)' can't be established. RSA key fingerprint is XXXXblablablaXXX1:81:29:00:3a:c5:fb:XXXXXXXXXXX. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'node.your-domain.com,XXX.XXX.XXX.XXX' (RSA) to the list of known hosts. user@node.your-domain.com's password:
To use a different user name for the login, state it on the command line: ssh -l username name-of server
OpenSSH Man Pages:
Other OpenSSH Links:
SSH for MS/Windows Links:
SSH Notes:
Man pages:
Documentation:
Test:
The network sniffer Ethereal was used to sniff network transmissions between the client and server for both telnet and ssh with the following results:
| PortSentry: |
This tool will monitor the network probes and attacks against your server. It can be configured to log and counter these probes and attacks. PortSentry can modify your /etc/hosts.deny (PAM module) file and issue IP firewall commands automatically to block hackers.
PortSentry can be loaded as an RPM but this tutorial covers compiling PortSentry from source to configure a more preferable system logging.
Note: Version 1.1 of portsentry can issue iptables, ipchains or route commands to thwart attacks. Linux Kernel 2.2 (Red Hat 6.x and 7.0) uses ipchains. Linux kernel 2.4 (Red Hat 7.1) uses iptables but can also use ipchains but NOT both. Route commands can be used by any Unix system.
Steps to install and configure portsentry:
#define CONFIG_FILE "/opt/portsentry/portsentry.conf" #define WRAPPER_HOSTS_DENY "/etc/hosts.deny" #define SYSLOG_FACILITY LOG_DAEMON #define SYSLOG_LEVEL LOG_NOTICE
(Note: I use /opt/portsentry/ because I like to locate custom files/software there. It allows for an easy backup by separating it from the OS. If you prefer, you can use /etc/portsentry/ for configurations files and follow the Linux/Unix file system logic)
The above default, "LOG_DAEMON", will log messages to the /var/log/messages file.
To log to a separate file dedicated to PortSentry logging: (This will eliminate logging clutter in the main system logging file)
Change the following line to reflect that portsentry messages are not going to be logged to the regular syslog output file /var/log/messages
Add the following line to assign a portsentry log facility:
Note: Use tab not spaces in the syslog configuration file.
Restart syslogd: /etc/rc.d/init.d/syslog restart
#define SYSLOG_FACILITY LOG_LOCAL6
Options for the SYSLOG_FACILITY are defined in /usr/include/sys/syslog.h
They include:
| SYSLOG_FACILITY | Facility Name | Description |
| LOG_LOCAL0 | local0 | reserved for local use |
| LOG_LOCAL1 | local1 | reserved for local use |
| LOG_LOCAL2 | local2 | reserved for local use |
| LOG_LOCAL3 | local3 | reserved for local use |
| LOG_LOCAL4 | local4 | reserved for local use |
| LOG_LOCAL5 | local5 | reserved for local use |
| LOG_LOCAL6 | local6 | reserved for local use |
| LOG_LOCAL7 | local7 | reserved for local use |
| LOG_USER | user | random user-level messages |
| LOG_MAIL | mail system | |
| LOG_DAEMON | daemon | system daemons |
| LOG_SYSLOG | syslog | messages generated internally by syslogd |
| LOG_LPR | lpr | line printer subsystem |
| LOG_NEWS | news | network news subsystem |
| LOG_UUCP | uucp | UUCP subsystem |
| LOG_CRON | cron | clock daemon |
| LOG_AUTHPRIV | authpriv | security/authorization messages (private) |
| LOG_FTP | ftp | ftp daemon |
Options for the SYSLOG_LEVEL include:
| SYSLOG_LEVEL | Priority | Description |
| LOG_EMERG | 0 | system is unusable |
| LOG_ALERT | 1 | action must be taken immediately |
| LOG_CRIT | 2 | critical conditions |
| LOG_ERR | 3 | error conditions |
| LOG_WARNING | 4 | warning conditions |
| LOG_NOTICE | 5 | normal but significant condition |
| LOG_INFO | 6 | informational |
| LOG_DEBUG | 7 | debug-level messages |
IGNORE_FILE="/opt/portsentry/portsentry.ignore" HISTORY_FILE="/opt/portsentry/portsentry.history" BLOCKED_FILE="/opt/portsentry/portsentry.blocked" KILL_ROUTE="/sbin/route add -host $TARGET$ reject" - Generic Unix KILL_ROUTE I prefer iptables/ipchains options belowUncomment and modify if necessary the appropriate statements. The TCP_PORTS=, UDP_PORTS= lists are ignored for stealth scan detection modes. I added UDP port 68 (BOOTP) and TCP 21 (ftp), 22 (ssh), 25 (smtp mail), 53 (dns bind), 80 (http web server), 119 (news) to the ADVANCED_EXCLUDE_UDP and ADVANCED_EXCLUDE_TCP statements respectively.
ADVANCED_EXCLUDE_TCP="21,22,25,53,80,110,113,119" - server ADVANCED_EXCLUDE_UDP="21,22,53,110,520,138,137,68,67" OR ADVANCED_EXCLUDE_TCP="113,139" - workstation ADVANCED_EXCLUDE_UDP="520,138,137,68,67"
PAM options:
Route deny options: (Options: network "route" or firewall command "iptables/ipchains")
Note on Red Hat 7.1: During installation/upgrade the firewall configuration
tool /usr/bin/gnome-lokkit may be invoked. It will configure
a firewall using ipchains and will add this to your boot process.
To see if ipchains and the Lokkit configuration is invoked during system boot,
use the command: chkconfig --list | grep ipchains.
You can NOT use portsentry to issue iptables rules if ipchain rules have
been issued previously.
More info on iptables and ipchains support/configuration in Red Hat 7.1 and kernel 2.4.
127.0.0.1 0.0.0.0 Your IP addressThe at Home network routinely scans for news servers on port 119 from a server named authorized-scan1.security.home.net. Adding the IP address of this server (24.0.0.203) greatly reduces the logging. I also added their BOOTP server. (24.9.139.130)
I manually issued the iptables (RH 7.1 kernel 2.4) commands on my workstation to drop the hosts and deny their scans. At Home users may add the commands to the file /etc/rc.d/rc.local
/sbin/iptables -I INPUT -s 24.0.0.203 -j DROP /sbin/iptables -I INPUT -s 24.9.139.130 -j DROP
INSTALLDIR = /optAnd remove the line under "uninstall": (dangerous line!!)
# /bin/rmdir $(INSTALLDIR)And remove the line under "install": (troublesome line!!)
# chmod 700 $(INSTALLDIR)
Note: Is is possible to have all logging sent to a logging daemon on a single server. This will allow the administrator to check the logs on only one server rather than individually on many.
Note on Red Hat 7.1: Red Hat Powertools 7.1 now includes portsentry 1.0.
I reccomend using version 1.1 configured as above.
Powertools RPM layout:
Notes on DOS (Denial of Service) possibility: If portsentry is configured to shut down an attack with firewall rules, an attacker may use this feature to slow down your machine over time by creating a huge set of firewall rules. It would require the hacker to use (or spoof) a new IP address each time. It is probably a good idea to monitor or even clear the firewall rules from time to time.
Clean-up script: /etc/cron.monthly/reset-chainrules
(-rwx------ 1 root root)
This script is run automatically once a week by cron. (The presence of this
script in this directory for the Red Hat configuration makes it so)
#!/bin/bash # Purge and re-assign chain rules ipchains -F ipchains -A input -p tcp -s 0/0 -d 0/0 2049 -y -j REJECT ipchains -A input -p udp -s 0/0 -d 0/0 2049 -j REJECT ipchains -A input -p tcp -s 0/0 -d 0/0 6000:6009 -y -j REJECT ipchains -A input -p tcp -s 0/0 -d 0/0 7100 -y -j REJECT ipchains -A input -p tcp -s 0/0 -d 0/0 515 -y -j REJECT ipchains -A input -p udp -s 0/0 -d 0/0 515 -j REJECT ipchains -A input -p tcp -s 0/0 -d 0/0 111 -y -j REJECT ipchains -A input -p udp -s 0/0 -d 0/0 111 -j REJECT ipchains -A input -j REJECT -p all -s localhost -i eth0 -l
Also see:
Other tools to detect portscans and network based hacker attacks:
Init configuration: /etc/rc.d/init.d/portsentry
The init script needs to be executable: chmod a+x /etc/rc.d/init.d/portsentry
After adding the following script, enter it into the init process with
the command: chkconfig --add portsentry or
chkconfig --level 345 portsentry on
See YoLinux Init Tutorial for more information.
#!/bin/bash
#
# Startup script for PortSentry
#
# chkconfig: 345 85 15
# description: PortSentry monitors TCP and UDP ports for network attacks
#
# processname: portsentry
# pidfile: /var/run/portsentry.pid
# config: /opt/portsentry/portsentry.conf
# config: /opt/portsentry/portsentry.ignore
# config: /opt/portsentry/portsentry.history
# config: /opt/portsentry/portsentry.blocked
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
# See how we were called.
case "$1" in
start)
echo -n "Starting portsentry: "
daemon /opt/portsentry/portsentry -atcp
/opt/portsentry/portsentry -audp
echo
touch /var/lock/subsys/portsentry
;;
stop)
echo -n "Shutting down portsentry: "
killproc portsentry
echo
rm -f /var/lock/subsys/portsentry
rm -f /var/run/portsentry.pid
;;
status)
status portsentry
;;
restart)
$0 stop
$0 start
;;
reload)
echo -n "Reloading portsentry: "
killproc portsentry -HUP
echo
;;
*)
echo "Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac
exit 0
/var/log/portsentry.log {
rotate 12
monthly
errors root@localhost
missingok
postrotate
/usr/bin/killall -HUP portsentry 2> /dev/null || true
endscript
}
Also see the YoLinux Sys Admin tutorial covering logrotate.
Host: shieldsup.grc.com/207.71.92.221 Port: 23 TCP BlockedThe file /var/log/portsentry.log will show the action taken:
portsentry[589]: attackalert: SYN/Normal scan from host: shieldsup.grc.com/207.71.92.221 to TCP port: 23 portsentry[589]: attackalert: Host 207.71.92.221 has been blocked via wrappers with string: "ALL: 207.71.92.221" portsentry[589]: attackalert: Host 207.71.92.221 has been blocked via dropped route using command: "/sbin/ipchains -I input -s 207.71.92.221 -j DENY -l"
nmap -sT -F IP-address Scan nmap -sS -F IP-address SYN Scan nmap -sU -F IP-address Scan UPD ports nmap -sF -F IP-address FIN Scan nmap -O -F IP-address Determine OS nmap -p22 -F -O IP-address nmap -p 1-30,40-65535 IP-Address Scan given port rangesAdd the option -v (verbose) or -vv (super verbose) for more info.
Sample output from command: nmap -sS -F -O IP-Address
Starting nmap V. 2.54BETA7 ( www.insecure.org/nmap/ ) ... .. (The 1067 ports scanned but not shown below are in state: closed) Port State Service 21/tcp open ftp 22/tcp open ssh 25/tcp open smtp 53/tcp open domain 111/tcp open sunrpc - Get rid of this by shutting down the portmap (RPC) daemon: /etc/rc.d/init.d/portmap stop 137/tcp filtered netbios-ns - Turn off netbios services: /etc/rc.d/init.d/smb stop 138/tcp filtered netbios-dgm 139/tcp filtered netbios-ssn TCP Sequence Prediction: Class=random positive increments Difficulty=2727445 (Good luck!) Remote operating system guess: Linux 2.1.122 - 2.2.16 Nmap run completed -- 1 IP address (1 host up) scanned in 36 seconds
Nmap and nmapfe are available on the Red Hat Powertools CD:
Links:
| Tripwire: |
Tripwire monitors your file system for changes. Tripwire is used to create an initial database of information on all the system files then runs periodically (cron) to compare the system to the database.
I will cover Tripwire version 1.2-3 (Red Hat Powertools 6.2) and version 2.3.0-58 (Red Hat 7.1). Use the command tripwire --version or rpm -q tripwire to determine the version.
Red Hat 7.1 includes Tripwire as an optional package during install. Tripwire for earlier releases is available from the RedHat Powertools CD in RPM format. Upon installation it will proceed to scan your entire filesystem to create a default database of what your system looks like. (files and sizes etc) It took about ten minutes to run!
Tripwire configuration files:
Edit and change file: /etc/tripwire/twcfg.txt
Edit and change file: /etc/tripwire/twpol.txt
I also added:
After configuration files have been edited run the script: /etc/tripwire/twinstall.sh
The script will ask for a "passphrase" for the site and local system.
This is a similar concept to a password - remember it!
If at any point you want to make configuration/policy changes, edit these files and re-run the configuration script. The script will generate the true configuration files used by Tripwire:
Tripwire initialization:
This will generate a tripwire database file: ./databases/tw.db_ServerName
If you are in root's home directory, this will create the file /root/databases/tw.db_ServerName
At this point copy it to a useable location:
cp -p /root/databases/tw.db_ServerName /var/spool/tripwire/tw.db_ServerName
Don't change /etc/tw.config without first running tripwire -initialize otherwise it will show differences due to settings in tw.config file rather than true differences.
Cron and tripwire:
#!/bin/sh
HOST_NAME=`uname -n`
if [ ! -e /var/lib/tripwire/${HOST_NAME}.twd ] ; then
echo "**** Error: Tripwire database for ${HOST_NAME} not found. ****"
echo "**** Run "/etc/tripwire/twinstall.sh" and/or "tripwire --init". ****"
else
test -f /etc/tripwire/tw.cfg && /usr/sbin/tripwire --check
fi
Read tripwire report:
Interactive mode:
Default configuration file:
ROOT =/usr/sbin POLFILE =/etc/tripwire/tw.pol DBFILE =/var/lib/tripwire/$(HOSTNAME).twd REPORTFILE =/var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr SITEKEYFILE =/etc/tripwire/site.key LOCALKEYFILE =/etc/tripwire/$(HOSTNAME)-local.key EDITOR =/bin/vi LATEPROMPTING =false LOOSEDIRECTORYCHECKING =false MAILNOVIOLATIONS =true EMAILREPORTLEVEL =3 REPORTLEVEL =3 MAILMETHOD =SENDMAIL SYSLOGREPORTING =false MAILPROGRAM =/usr/sbin/sendmail -oi -t
# Log file @@define LOGFILEM E+pugn # Config file @@define CONFM E+pinugc # Binary @@define BINM E+pnugsci12 # Directory @@define DIRM E+pnug # Data file (same as BIN_M currently) @@define DATAM E+pnugsci12 # Device files @@define DEVM E+pnugsc # exclude all of /proc =/proc E #=/dev @@DIRM /dev @@DEVM #=/etc @@DIRM /etc @@CONFM # Binary directories #=/usr/sbin @@DIRM /usr/sbin @@BINM #=/usr/bin @@DIRM /usr/bin @@BINM #=/sbin @@DIRM /sbin @@BINM #=/bin @@DIRM /bin @@BINM #=/lib @@DIRM /lib @@BINM #=/usr/lib @@DIRM /usr/lib @@BINM =/usr/src E =/tmp @@DIRM
Add:
/var/named @@CONFM - If you are running Bind DNS slave /home/httpd/cgi-bin @@BINM
#/dev @@DEVM
Man pages:
Tripwire 1.2-3:
Also see:
| CHKROOTKIT: Performing a trojan/worm/virus file scan. |
Tripwire will monitor your filesystems for intrusion or addition of a file so you may determine what changes have occured on your system in sensitive areas. Chkrootkit will scan your system for known exploits, trojan commands, and worms used to compromise a system.
Download chkrootkit from http://www.chkrootkit.org. It is a shell script which should be run as root as well as a small collection of C programs.
See the README file for more info.
Note:
| NESSUS: Performing a network vulnerability scan/security audit of your system. |
Let me start by saying that this should only be performed on your own systems. It is considered and attack to run this against the systems of others and legal action may be taken against you for performing such an audit. This is not a scan like NMAP. NESSUS will search and locate vulnerabilities on your system by actively trying to perform known exploits against the system.
Nessus is amazingly complete and effective. In fact it is awesome!! It will identify services on your system and try to exploit them. If a vulnerability is found it will make recomendations about upgrades, configuration changes and where to find patches. It will also explain any causes for concern in detail and explain why your system is vulnerable. And that's not all! It can output reports in various formats including HTML with pie charts and bar charts!! The HTML reports will have hyperlinks to the security reports, upgrades and patches. (I'm impressed) It can scan Unix, Linux and Windows systems for vulnerabilities.
Note:
The NESSUS software is available from http://Nessus.org.
If compiling source:
It is also available in RPM form: (See http://freshrmps.net)
Running NESSUS:
/usr/sbin/nessus-adduser Login : admindude Authentication method (cipher/plaintext) [cipher] : Is "admindude" a local user on this machine [ |n]? y New pass phrase: ...
![]() |
![]() |
Configuration file: /etc/nessus/nessusd.conf
| Usefull links and resources: |
Books: |
|
Return to http://YoLinux.com home page
Return to YoLinux Tutorial Index Copyright © 2001 by Greg Ippolito |
|