Tuesday, January 25, 2011

Recreate the OraInventory

In cases where the OraInventory is missing or otherwise corrupt, recreate the oraInventory directory on UNIX systems, using the following steps. In a normal installation, there is a Global Inventory (OraInventory) and a Local Inventory ($ORACLE_HOME/inventory).

Locate the oraInst.loc file, which may be in different locations, depending on your system:

/var/opt/oracle/oraInst.loc file
or
/etc/oraInst.loc
Modify the file oraInst.loc file:

cp /var/opt/oracle/oraInst.loc /var/opt/oracle/oraInst.loc.bak
mkdir /u01/oracle/oraInventory

---file contents---
inventory_loc=/u01/oracle/oraInventory
inst_group=oinstall
---file contents---
Important:
Theses example uses a typical directory, considered an $ORACLE_BASE, and a typical UNIX group which installed the Oracle products. Ensure that the correct values are used for your system.

The oraInventory directory is usually a directory under the $ORACLE_HOME. For example, if the $ORACLE_HOME is equal to "/u01/oracle/product/10g", then the OraInventory could be "/u01/oracle/OraInventory".
Change the permissions to be appropriate, (using your directory location):

chmod 644 /var/opt/oracle/oraInst.loc
For consistency, copy the file to Oracle home directory, (using your directory location):

cp $ORACLE_HOME/oraInst.loc $ORACLE_HOME/oraInst.loc.bak
cp /var/opt/oracle/oraInst.loc $ORACLE_HOME/oraInst.loc
Run Oracle Universal Installer from your Oracle home as below, (using your site specific directory location and Oracle home name):

cd $ORACLE_HOME/oui/bin
./runInstaller -silent -attachHome
ORACLE_HOME="/u01/oracle/product/10.2" ORACLE_HOME_NAME="Ora10gHome"
Check the inventory output is correct for your Oracle home:

$ORACLE_HOME/OPatch/opatch lsinventory -detail
If the table at the beginning of the output is showing the proper directories, and the Oracle home components are properly reflected in the details, then the Global Inventory has been successfully created from the Local Inventory. At this time, you may patch an maintain your Oracle home, as normal.

SQL*Plus command line history completion

The rlwrap (readline wrapper) utility provides a command history and editing of keyboard input

for any other command. This is a really handy addition to SQL*Plus and RMAN .


Download the latest rlwrap software from the following URL.
http://utopia.knoware.nl/~hlub/uck/rlwrap/

Unzip and install the software using the following commands.

gunzip rlwrap*.gz
tar -xvf rlwrap*.tar
cd rlwrap*
./configure
make
make check
make install

Run the following commands, or better still append then to the ".bash_profile" of the


oracle software owner.


alias sqlplus='rlwrap ${ORACLE_HOME}/bin/sqlplus'
alias rman='rlwrap ${ORACLE_HOME}/bin/rman'
alias expdp='rlwrap ${ORACLE_HOME}/bin/expdp'

You can now start SQL*Plus or RMAN using "sqlplus" and "rman" respectively, and you will have


a basic command history and the current line will be editable using the arrow and delete keys.

Monday, January 24, 2011

Redhat Package Management (RPM)

Features:
1. Provides package management
a. Query
b. Install
c. Uninstall
d. Upgrade
e. Verify
2. Auto-verifies packages using GPG, MD5, SHA1SUMs
3. Automatically reports on unresolved dependencies




Install (Does NOT overwrite previous package):
Note: Use this method to install a new version of the kernel
1. rpm -ivh *.rpm
2. rpm -ivh http://192.168.75.100/RH5/i386/Server/dhcp-3.0.5-7.el5.i386.rpm



Upgrade (Installs or overwrites existing package):
1. rpm -Uvh *.rpm
2. rpm -Uvh http://192.168.75.100/RH5/i386/Server/dhcp-3.0.5-7.el5.i386.rpm

Freshen (Updates an existing package):
Note: Will NOT install the package, if it doesn't exist locally

1. rpm -Fvh *.rpm - freshens the current version of a package


Removal:
1. rpm -ev *.rpm - removes a pacakge
Note: removal process considers dependencies and will complain if the removal will break 1 or more packages. To get around this, use '--nodeps' option with 'rpm -ev --nodeps *.rpm'

2. rpm -ev gftp


Query:


1. rpm -qa - shows all installed packages
2. rpm -qa | wc -l - this dumps all packages and provides a count
3. rpm -qa | grep -i sendmail
4. rpm -qi nano - dumps info. about the 'sendmail' package as it's recorded in the local RPM database
5. rpm -qf /usr/bin/nano - dumps package membership info. for the 'nano' file
6. rpm -qpi http://192.168.75.100/RH5/i386/Server/dhcp-3.0.5-7.el5.i386.rpm - dumps info. about the uninstalled 'dhcp' package, which resides on the repository
7. rpm -ql package_name - returns all included files


Verify:
1. rpm -Va - verifies ALL packages on the system, returning info. only if there are discrepancies from the original installation

2. rpm -Vf /usr/bin/nano

Task: Change '/usr/bin/nano' then verify

SM5....T /usr/bin/nano

S(file size), M(mode or permissions), 5(MD5), T(mod time)
3. rpm -Vp nano

IPTables in Linux

Features:
1. Firewall for Linux
2. Interface to Netfilter, which is loaded by the kernel
3. Operates primarily @ layers 3 & 4 of the OSI model
4. Modular
5. Provides Network Address Translation (NAT)
6. IPTables can also access other layers (2, 5-7), with modules

1. grep -i config_netfilter /boot/config*

Note: Save rules in: /etc/sysconfig/iptables so that when IPTables is restarted, the rules will be applied OR, update /etc/sysconfig/iptables-config to save the rules automatically

/sbin/iptables - primary ACL modifier utility
/sbin/iptables-restore - restores rules to current IPTables instance
/sbin/iptables-save - saves rules to STDOUT, by default, or to a file


IPTables includes 3 default tables, which you cannot remove:
1. NAT
2. Mangle
3. Filter (Default) - filters inbound/outbound traffic

Note: Each table, includes chains, which include Access Control Entries (ACEs)

Usage:
1. iptables -L

Note: The Filter table includes 3 chains:
1. INPUT - applies to traffic destined to a service that our system is bound to

2. FORWARD - applies to traffic being routed through the system

3. OUTPUT - applies to traffic sourced from our system, heading outbound


Examples:
1. Filter inbound traffic to remote RH5 system to SSH
a. iptables -A INPUT -p tcp --dport 22 -j ACCEPT
b. iptables -A INPUT -j DROP

2. Filter outbound traffic to ANY remote SSH port
a. iptables -A OUTPUT -p tcp --dport 22 -j DROP

3. Flush ALL rules from OUTPUT chain of the Filter table
a. iptables -F OUTPUT

4. Save rules to file, then flush rules
a. iptables-save > iptables.rules.1

5. Reinstate flushed rules
a. iptables-restore iptables.rules.1

Sunday, January 23, 2011

Server Status & Health Check in Linux

Top :

Top Command can provide the top processes, CPU Load, Memory Utilization, Swap Utilization

Running/Zombie Process, Uptime, etc..

iostat:

This command will provide the information about the disk utilization, Read/Write rate, etc..

vmstat:

vmstat command provides the swap memory utilization report

sar (System Activity Reporter)

sar tool can provide the report about CPU Load, iowait and other useful info at specified intervals.

dmesg

dmesg command displays all the server errors including Hardware, booting, network errors

This command will retrieve the information from log files which located in /var/log

Other Useful commands to collect some info about the server :

runlevel - To Know the Current Run Level

netstat –a - To see the Network sessions

netstat –rn - To View the gateways configured

who / finger - To View the Users logged in detail

ps –ef - To view all the running process and its related files

sestatus - To check SELINUX status

service iptables status - To check firewall status

ifconfig –a - To View the Network cards and IP Address configured

Linux Booting Process Sequence

When the computer is switched on, it automatically invokes BIOS [a ROM chip embedded in the motherboard].
The BIOS will start the processor and perform a POST [power on self test] to check whether the connected device are ready to use and are working properly.
Once the POST is completes BIOS will jump to a specified location in the RAM and check for the booting device. The boot sector is always the first sector of the hard disk and BIOS will load the MBR into the memory.
Here the boot loader takes the control of the booting process.
LILO or GRUB is the boot loaders commonly available. It will help the user to select various boot options.
Depending on the boot option selected the kernel is loaded.
After kernel is loaded the kernel will take the control of the booting process
initrd will be loaded which contains drivers to detect hardware (Initialization of RAM Disk)
Then it will initialize all the hardware including I/O processors etc.
Kernel then mounts the root partition as read-only
INIT is loaded.
INIT will mount the root partition and other partitions as read/write and checks for file system errors.
Sets the System Clock, hostname etc..
Based on the Runlevel, it will load the services and runs the startup scripts (Network, cups, nfs, etc.)
Finally it runs the rc.local script.
Now the login prompt will appear.

Disable SSH root login

Providing direct login access to root via SSH is not a good practice. Administrators should use sudo to switch to root after logged in as themselves. this will helpful in auditing in terms of security.

Here is the step by step procedure to disable/deny direct root login via SSH

1. Login to the server as Root

2. Edit /etc/ssh/sshd_config

Look for the line,

PermitRootLogin=Yes

and then change the value of it to,

PermitRootLogin=No

3. Restart the sshd service and make sure its turned on

service sshd restart or /etc/init.d/sshd restart

service sshd status

Delete old log files in Linux

To find files modified more than 5 days use -mtime +5 and files modified less than 5 days use -mtime -5


Use -ctime parameter to find out the created time



To List and Delete log files older than 10 days, execute the following commands


find /var/log/ -name *.log -mtime +10 -exec ls -tl {} \;

find /var/log/ -name *.log -mtime +10 -exec rm -f {} \;

Reinstall Grub in Linux

Boot the server using the Linux CD and Type "linux rescue" on the boot prompt.

Once you get the Shell Prompt, Now follow the steps:

# chroot /mnt/sysimage

Now issue the command "grub-install "

For Example:

# grub-install /dev/sda

Now the grub will be reinstalled in the primary hard disk.

Changing hostname without rebooting Linux server

Here the steps for changing the hostname in Linux (Redhat / CentOS / Fedora) without rebooting the server


First you need to find out your current hostname:

# hostname
server1.mydomain.com

Now, Edit /etc/hosts

For example, I need to assign it hostname as ftpsrv.mydomain.com.


To do this, I have edited /etc/hosts as follows.
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
192.168.2.100 ftpsrv.mydomain.com ftpsrv


Edit /etc/sysconfig/network

To change servers hostname to ftpsrv.mydomain.com, change the file as follows.

# cat /etc/sysconfig/network


NETWORKING=yes
HOSTNAME=ftpsrv.mydomain.com
Now Type the following command in Terminal,


# hostname ftpsrv.mydomain.com


#service syslog restart

Now, You should logout and login back to see the changes

Backup and Recovery in Linux using dd command

CREATING A HARD DISK IMAGE FILE

It is better to creating an image file of the hard disk and save it in other storage devices for future recovery. The following command will create an image file "appdisk.img" in your home directory from /dev/sda:


dd if=/dev/sda of=~/appdisk.img

Since you have created an image file, you can compress it with "gzip" or "bzip2":


gzip appdisk.img #generates appdisk.img.gz

It might take very long time.


CREATING A PARTITION IMAGE


Backing up a hard disk partition is much similar to backing up a whole hard disk.


For example, if you want to create an image file from the first partition of /dev/sda, use "dd" like this:


dd if=/dev/sda1 of=~/disk2.img

Also, you can compress the image file:


gzip disk2.img

By the way, you can copy a partition to another partition completely, just set "of" to the partition's device name. For example:


dd if=/dev/sda1 of=/dev/sdb5

This command will copy all the contents from /dev/sda1 to /dev/sdb5.


You must be sure that the capacity of /dev/sdb5 is larger than /dev/sda1.


RESTORING FROM AN IMAGE FILE

To restore a partition or a hard disk from an image file, just exchange the arguments "if" and "of".


For example, restore the whole hard disk from the image file "disk1.img":


dd if=disk1.img of=/dev/sda

Restore the first partition of /dev/sda from the image file "disk2.img":


dd if=disk2.img of=/dev/sda1

Enable cron for a locked account in Linux

In some environments, there are times when locked application/databases accounts need to run some cron jobs. In linux, by default, a locked account can not run the cron job.

We can enable this by editing a specific setting is disabled in /etc/pam.d/crond file.

Here is the details:


# cat /etc/pam.d/crond


#
# The PAM configuration file for the cron daemon
#
auth sufficient pam_rootok.so
auth required pam_stack.so service=system-auth
auth required pam_env.so
account required pam_stack.so service=system-auth
# account required pam_access.so
session required pam_limits.so
session required pam_loginuid.so

This example is working in Redhat Linux. In the /etc/pam.d/crond file, if we disable "account required pam_access.so" line the cron started working again for the locked account as well.

Finding BIOS version in Linux Servers

Command : dmidecode --type 0


# dmidecode 2.9
SMBIOS 2.6 present.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: HP
Version: I24
Release Date: 03/30/2010
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 8192 kB
Characteristics:
PCI is supported
PNP is supported
BIOS is upgradeable
BIOS shadowing is allowed
ESCD support is available
Boot from CD is supported
Selectable boot is supported
EDD is supported
5.25"/360 KB floppy services are supported (int 13h)
5.25"/1.2 MB floppy services are supported (int 13h)
3.5"/720 KB floppy services are supported (int 13h)
Print screen service is supported (int 5h)
8042 keyboard services are supported (int 9h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
CGA/mono video services are supported (int 10h)
ACPI is supported
USB legacy is supported
BIOS boot specification is supported
Function key-initiated network boot is supported
Targeted content distribution is supported
Firmware Revision: 2.1

NOHUP : Run command continiously even if session closed

Nohup command is used to run any command continiously even if you close your session from the server.


If nohup added in front of any command will continue running that command or process, even if you exit your terminal or close your session in that server


Syntax:


nohup command-to-run &


Where,


command-to-run : is name of command or script which you want to run. You can pass argument to that command or script.
& : nohup does not automatically runs the command in the background. you must do that explicitly, by ending the command line with an & symbol.



example:


# nohup /root/backup-script.sh error.log 2>&1 &

Moving volume group to another Server in Linux


Moving a VG to another server:

To do this we use the vgexport and vgimport commands.

vgexport and vgimport is not necessary to move disk drives from one server to another. It is an administrative policy tool to prevent access to volumes in the time it takes to move them.

1. Unmount the file system
First, make sure that no users are accessing files on the active volume, then unmount it

# unmount /appdata

2.Mark the volume group inactive
Marking the volume group inactive removes it from the kernel and prevents any further activity on it.

# vgchange -an appvg
vgchange -- volume group "appvg" successfully deactivate



3. Export the volume group

It is now must to export the volume group. This prevents it from being accessed on the old server and prepares it to be removed.

# vgexport appvg
vgexport -- volume group "appvg" successfully exported

Now, When the machine is next shut down, the disk can be unplugged and then connected to it's new machine

4. Import the volume group

When it plugged into the new server, it becomes /dev/sdc (depends).

so an initial pvscan shows:

# pvscan
pvscan -- reading all physical volumes (this may take a while...)
pvscan -- inactive PV "/dev/sdc1" is in EXPORTED VG "appvg" [996 MB / 996 MB free]
pvscan -- inactive PV "/dev/sdc2" is in EXPORTED VG "appvg" [996 MB / 244 MB free]
pvscan -- total: 2 [1.95 GB] / in use: 2 [1.95 GB] / in no VG: 0 [0]

We can now import the volume group (which also activates it) and mount the file system.

If you are importing on an LVM 2 system, run:

# vgimport appvg
Volume group "vg" successfully imported

5. Activate the volume group

You must activate the volume group before you can access it.

# vgchange -ay appvg

Mount the file system

# mkdir -p /appdata
# mount /dev/appvg/appdata /appdata

The file system is now available for use.

CLEANING UP THE LINUX BUFFER CACHE

When you write data, it doesn’t necessarily get written to disk right then. The kernel maintains caches of many things, and disk data is something where a lot of work is done to keep everything fast and efficient.

That’s great for performance, but sometimes you want to know that data really has gotten to the disk drive. This could be because you want to test the performance of the drive, but could also be when you suspect a drive is malfunctioning: if you just write and read back, you’ll be reading from cache, not from actual disk platters.


Obviously the first thing you need to do is get the data in the cache sent on its way to the disk. That’s “sync”, which tells the kernel that you want the data written. But that doesn’t mean that a subsequent read comes from disk: if the requested data is still in cache, that’s where it will be fetched from. It also doesn’t necessarily mean that the kernel actually has sent the data along to the disk controller: a “sync” command is a request, not a command that says “stop everything else you are doing and write your whole buffer cache to disk right now!”. No, “sync” just means that the cache will be written, as and when the kernel has time to do so.

Note that you really didn’t even need the “sync” if this is what you are doing: the overwrite forces the sync itself.

Modern Linux kernels make this a bit easier: in /proc/sys/vm/ you’ll find “drop_caches”.

You can simply echo a number to that to free caches.

To free pagecache:
echo 1 > /proc/sys/vm/drop_caches

To free dentries and inodes:
echo 2 > /proc/sys/vm/drop_caches

To free pagecache, dentries and inodes:
echo 3 > /proc/sys/vm/drop_caches

Clear Swap Space in Linux

There have been times where it has been necessary for UNIX Admins to clear out the swap space on a Linux system. In order to do this, you must first make sure that you have enough free memory to hold what is being used by swap.


First we want to see what is currently being used.

free

Then I run the actual commands that empty the swap:

swapoff -a

free

swapon -a

Then I check what is being used after doing this.

free

Find RPM packages installed on particular date

To find all the RPM packages which were installed on a particular date in a Linux Server:

# rpm -qa --queryformat "%{NAME}-%{VERSION}.%{RELEASE} (%{ARCH}) INSTALLED: %{INSTALLTIME:date}\n" | grep my_date


Example:


rpm -qa --queryformat "%{NAME}-%{VERSION}.%{RELEASE} (%{ARCH}) INSTALLED: %{INSTALLTIME:date}\n" | grep "21 Sep 2009"

To find the install date and time of a particular RPM package in a Linux Server:


# rpm -qa --queryformat "%{NAME}-%{VERSION}.%{RELEASE} (%{ARCH}) INSTALLED: %{INSTALLTIME:date}\n" | grep rpm_package_name


Example:

rpm -qa --queryformat "%{NAME}-%{VERSION}.%{RELEASE} (%{ARCH}) INSTALLED: %{INSTALLTIME:date}\n" | grep libaio

Configuring Network Bonding in Linux

Configuring Network Bonding in Linux
This is an Nice Article which I found on Web..

Bonding is creation of a single bonded interface by combining 2 or more ethernet interfaces. This helps in high availability and performance improvement.

Here is the steps for creating a network bonding in Fedora Core and Redhat Linux

Step 1:

Create the file ifcfg-bond0 with the IP address, netmask and gateway. Shown below is my test bonding configuration file.

$ cat /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0
IPADDR=192.168. 1.100
NETMASK=255. 255.255.0
GATEWAY=192. 168.1.1
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
Step 2:

Modify eth0, eth1 and eth2 configuration as shown below. Comment out, or remove the ip address, netmask, gateway and hardware address from each one of these files, since settings should only come from the ifcfg-bond0 file above.

$ cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes

$ cat /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes

$ cat /etc/sysconfig/network-scripts/ifcfg-eth2

DEVICE=eth2
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes

Step 3:

Set the parameters for bond0 bonding kernel module. Add the following lines to/etc/modprobe. conf

# bonding commands
alias bond0 bonding
options bond0 mode=balance-alb miimon=100

Note: Here we configured the bonding mode as "balance-alb". All the available modes are given at the end and you should choose appropriate mode specific to your requirement.
Step 4:

Load the bond driver module from the command prompt.

$ modprobe bonding

Step 5:

Restart the network, or restart the computer.

$ service network restart Or restart computer

When the machine boots up check the proc settings.

$ cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.0.2 (March 23, 2006)

Bonding Mode: adaptive load balancing
Primary Slave: None
Currently Active Slave: eth2
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth2
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:14:72:80: 62:f0

Look at ifconfig -a and check that your bond0 interface is active. You are done!

RHEL bonding supports 7 possible "modes" for bonded interfaces. These modes determine the way in which traffic sent out of the bonded interface is actually dispersed over the real interfaces. Modes 0, 1, and 2 are by far the most commonly used among them.

* Mode 0 (balance-rr)
This mode transmits packets in a sequential order from the first available slave through the last. If two real interfaces are slaves in the bond and two packets arrive destined out of the bonded interface the first will be transmitted on the first slave and the second frame will be transmitted on the second slave. The third packet will be sent on the first and so on. This provides load balancing and fault tolerance.

* Mode 1 (active-backup)
This mode places one of the interfaces into a backup state and will only make it active if the link is lost by the active interface. Only one slave in the bond is active at an instance of time. A different slave becomes active only when the active slave fails. This mode provides fault tolerance.

* Mode 2 (balance-xor)
Transmits based on XOR formula. (Source MAC address is XOR'd with destination MAC address) modula slave count. This selects the same slave for each destination MAC address and provides load balancing and fault tolerance.

* Mode 3 (broadcast)
This mode transmits everything on all slave interfaces. This mode is least used (only for specific purpose) and provides only fault tolerance.

* Mode 4 (802.3ad)
This mode is known as Dynamic Link Aggregation mode. It creates aggregation groups that share the same speed and duplex settings. This mode requires a switch that supports IEEE 802.3ad Dynamic link.

* Mode 5 (balance-tlb)
This is called as Adaptive transmit load balancing. The outgoing traffic is distributed according to the current load and queue on each slave interface. Incoming traffic is received by the current slave.

* Mode 6 (balance-alb)
This is Adaptive load balancing mode. This includes balance-tlb + receive load balancing (rlb) for IPV4 traffic. The receive load balancing is achieved by ARP negotiation. The bonding driver intercepts the ARP Replies sent by the server on their way out and overwrites the src hw address with the unique hw address of one of the slaves in the bond such that different clients use different hw addresses for the server.

Wednesday, January 5, 2011

Yahooooooo! in Outlook

If you want to "POP" your Yahoo! Mail into your Outlook 2007 application, here's how:
From the Tools menu, select "Account Settings." If you do not see "Account Settings," place your cursor over the two arrows at the bottom of the list to display more choices.
On the Email tab, click New.
Check the box next to the first option, “Microsoft Exchange, POP3, IMAP, or HTTP” and click Next.
In the Your Name box, type your name as you'd like it to appear when you send a message.
In the Email Address box, enter your Yahoo! Mail address (for example, "user@yahoo.com").
Check the box for “Manually configure server settings or additional server types” and click Next.
Check the box next to the first option “Internet E-mail” and click Next.
In the Server Information area, under “Account Type” select POP 3 from the pull-down menu.
In the Incoming mail server field, enter: pop.mail.yahoo.com.sg
In the Outgoing mail server (SMTP) field, enter: smtp.mail.yahoo.com.sg
In the Login Information area, in the User Name field, enter your Yahoo! ID (your email address without the "@yahoo.com").
In the Password box, enter your Yahoo! Mail password.
Check "Remember Password" if you don't want Outlook to prompt you for your password each time you check your mail. Handy!
Do not check the box labeled "Log on using Secure Password Authentication (SPA)."
Click on the More Settings button.
Click on the Outgoing Server tab and check the box next to “My outgoing server (SMTP) requires authentication.”
Click on the Advanced tab.
Under “Incoming Server (POP3)”, check the box next to “This server requires an encrypted connection (SSL)". The port number in the “Incoming Server (POP3)" field should automatically change from 110 to 995. If it doesn’t, make sure the port number is set to 995.
Under “Outgoing Server (SMTP)”, check the box next to “This server requires an encrypted connection (SSL)". Enter port number “465” in the “Outgoing Server (SMTP)” field.
If you'd like to keep a copy of your email messages on the Yahoo! Mail server, check the box next to "Leave a copy of messages on the server." If you want to delete your messages from the Yahoo! Mail server after viewing them in Outlook, don't check the box.
Click the OK button.
Click the Next button on the Email Account Wizard, then click Finished.
Would you like your Yahoo! Mail inbox to be your primary inbox in Outlook 7? If so, click the Tools menu and select "Account Settings." If you don’t see "Account Settings," place your cursor over the two arrows at the bottom of the list to display more choices.
From the list, select the pop.yahoo account you've just added and click the Set as Default button.
Click the Close button. You’re done!