CentsOS 서버 구성

7556 단어 서버

OpenSSH 구축 SSH 서버


SSH 서비스는 Telnet 서비스와 마찬가지로 원격 로그인을 통해 시스템에 로그인하여 원격으로 시스템을 조작합니다.그러나 텔넷과 다른 점은 텔넷은 전송하는 과정에서 평문 전송이고 SSH는 전송 내용을 암호화하여 전송하는 과정에서 전송 내용의 비밀성을 확보하고 시스템의 안전성을 높인다는 것이다.여기에서 우리는 SSH 서비스를 사용자가 다운로드한 파일을 업로드하는 도구로 사용할 준비가 되어 있지 않습니다.우리는 SSH 서비스의 개통만으로 원격 관리 시스템을 편리하게 제공한다.또한 사용자 인증 방식에 있어 서버와 사용자의 안전을 위해 사용자 비밀번호의 인증 방식을 금지하고'열쇠'를 기반으로 한다.
먼저 SSH 구성 파일을 수정합니다.다음과 같습니다.
[root@sample ~]#vi /etc/ssh/sshd_config ← vi로 SSH 프로필 열기 #Protocol 2,1 ← 이 줄을 찾아 줄 머리'#'를 삭제하고 줄 끝의', 1'을 삭제합니다. SSH2 방식의 연결만 허용합니다 ↓ Protocol 2 ← 수정 후 이 상태로 변경합니다. SSH2 #ServerKeyBits 768 ← 만 사용하여 줄 머리의'#'를 제거하고 768을 1024↓ ServerKeyBits 1024 ← 수정 후 이 상태로 변경합니다.ServerKey 강도를 1024비트 #PermitRootLogin yes ← 로 변경하고 줄의 "#"을 제거하고 yes를 no↓ PermitRootLogin no ← 로 변경하여 이 상태로 변경합니다. 루트로 로그인할 수 없습니다. #PasswordAuthentication yes ← 이 줄을 찾으면 yes를 no↓ PasswordAuthentication no ← 로 변경하여 이 상태로 변경합니다.비밀번호 방식의 로그인을 허용하지 않음 #PermitEmptyPasswords no← 이 줄을 찾으면 줄의 "#"을 삭제하고 빈 비밀번호 로그인을 허용하지 않음 ↓ PermitEmptyPasswords no← 수정 후 이 상태로 변경되며 빈 비밀번호의 로그인을 금지합니다
그런 다음 저장하고 종료합니다.(vi 저장 종료 명령은 ZZ) 우리는 SSH 서비스가 관리 시스템에 편의를 제공하기 위해서만 하기 때문에 외부 네트워크를 통해 원격으로 시스템을 관리하지 않는 상황에서 내부 네트워크 클라이언트가 SSH를 통해 서버에 로그인하여 불안을 최대한 줄일 수 있습니다.설정 방법은 다음과 같습니다.
[root@sample ~]#vi /etc/hosts.deny← 차단 규칙을 수정하고 글의 끝에 해당하는 줄 ##hosts를 추가합니다.deny This file describes the names of the hosts which are# *not* allowed to use the local INET services, as decided# by the '/usr/sbin/tcpd' server.## The portmap line is redundant, but it is left to remind you that# the new secure portmap uses hosts.deny and hosts.allow. In particular# you should know that NFS uses portmap! sshd: ALL ← 이 줄을 추가하여 모든 SSH 연결 요청을 차단합니다. [root@sample ~]# vi /etc/hosts.allow← 허용 규칙을 수정하고 글의 끝에 해당하는 줄 ##hosts를 추가합니다.allow This file describes the names of the hosts which are# allowed to use the local INET services, as decided# by the '/usr/sbin/tcpd' server.# sshd: 192.168.0.← 이 행을 추가하여 인트라넷에서 SSH 연결 요청만 허용
SSH 서비스 재시작
SSH 구성 파일을 수정한 후 새 설정을 적용하려면 SSH 서비스를 다시 시작해야 합니다.
[root@sample ~]#/etc/rc.d/init.d/sshd restart ← SSH 서버 재부팅 stopping sshd: [OK] starting sshd: [OK] ← SSH 서버 재부팅 성공
이때 원격 단말기 (자체 PC 등) 에서 SSH 클라이언트 소프트웨어로 정상적인 암호로 서버에 로그인할 수 없습니다.고객이 서버에 로그인할 수 있도록 SSH용 공개 키와 개인 키를 구축하여 클라이언트가 "키"방식으로 SSH 서버에 로그인할 수 있도록 합니다. 
SSH2 공개 키 및 개인 키 구축
일반 사용자로 로그인하여 이 사용자를 바탕으로 공개 키와 개인 키를 만듭니다.(이곳은 centospub 사용자를 예로 들면) 일반 사용자로 로그인하여 이 사용자를 바탕으로 공개 키와 개인 키를 만듭니다.(이곳은 centospub 사용자를 예로 들면)
[root@sample~] #su - centospub← 일반 사용자 centospub로 로그인 [centospub@sample~]$ssh-keygen-trsa← 공개 키와 개인 키를 만듭니다.Enter file in which to save the key (/home/kaz/.ssh/id_rsa): ← 열쇠의 파일 이름입니다. 기본 리턴을 유지합니다. Created directory'/home/kaz/.ssh'Enter passphrase(empty for no passphrase): ← 입력 구령 Enter same passphrase again: ← 다시 입력 구령 Your identification has been saved in/home/kaz/.ssh/id_rsa.Your public key has been saved in /home/kaz/.ssh/id_rsa.pub.The key fingerprint is:tf:rs:e3:7s:28:59:5s:93:fe:33:84:01:cj:65:3b:8e [email protected]
그리고 공개 키와 키의 구축, 그리고 클라이언트에 대응하는 처리를 확인하십시오.
[centospub@sample ~]$cd ~/.ssh← 사용자 SSH 프로필 디렉토리에 들어가기 [centospub@sample .ssh]$ls-l← 파일 목록 total 16 -rw-------1 centospub centospub 951 Sep 4 19:22id_rsa← 개인 키가 생성되었음을 확인합니다 -rw-r--r--1 centospub centospub 241 Sep 4 19:22id_rsa.pub← 공개 키가 설정되었음을 확인합니다 [centospub@sample .ssh]$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_키 ← 공개 키 내용을 해당 파일로 내보내기 [centospub@sample .ssh]$rm -f ~/.ssh/id_rsa.pub← 원래 키 파일 삭제 [centospub@sample .ssh]$chmod 400 ~/.ssh/authorized_keys← 새로 만든 공개 키 파일 속성을 400으로 설정
그런 다음 SSH를 통해 서버에 연결하려는 PC로 개인 키를 안전하게 이동합니다.3.5인치 디스크를 미디어로 사용하는 경우:
centospub@sample .ssh]$exit← 일반 사용자의 로그인을 종료합니다 (루트의 로그인을 되돌려줍니다) [root@sample~] #mount/mnt/floppy/← 플로피 드라이브 로드 [root@sample ~]#mv /home/centospub/.ssh/id_rsa/mnt/floppy/← 방금 만든 개인 키를 플로피 디스크로 이동 [root@sample~]#umount/mnt/floppy/← 플로피 드라이브 제거
이렇게 하면 우리는 centospub 사용자에 대응하는 개인 키를 통해 원격 단말기에서 SSH 클라이언트를 통해 서버에 연결할 수 있다.그러나 서버에서 생성된 개인 열쇠는 클라이언트가 직접 적용할 수 없습니다.
 
 
JDK 설치
SUN에서 jdk-1 다운로드 _5_0_14-linux-i586.bin
/usr 아래에 새 자바 폴더를 만들고 설치 패키지를/usr/java 디렉터리에 놓습니다
# mkdir /usr/java # chmod a+x jdk-1_5_0_14-linux-i586.bin← 현재 사용자에게 실행 권한 부여 #./jdk-1_5_0_14-linux-i586.bin← 설치가 완료될 때까지 yes 선택
환경 변수 구성
 
# vi /etc/profile 
마지막으로 다음 행을 추가합니다.
export JAVA_HOME=/usr/java/jdk1.6.0_10 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_HOME/bin 
 
재가동 적용
 
Tomcat5 자동 시작
 
root@sample ~]# vi /etc/rc.d/init.d/tomcat ← Tomcat 시작 스크립트를 다음과 같이 만듭니다.
 
#!/bin/bash
#
# Startup script for the tomcat
#
# chkconfig: 345 80 15
# description: Tomcat is a Servlet+JSP Engine.
export JDK_HOME=/home/graduate/jdk1.6.0_16  ←  jdk
export JAVA_HOME=/home/graduate/jdk1.6.0_16 ←   jdk
# Source function library.
. /etc/rc.d/init.d/functions
start(){
if [ -z $(/sbin/pidof java) ]; then
echo "Starting tomcat"
/home/graduate/apache-tomcat-6.0.14/bin/startup.sh
touch /var/lock/subsys/tomcat
else
echo "tomcat allready running"
fi
}
stop(){
if [ ! -z $(/sbin/pidof java) ]; then
echo "Shutting down tomcat"
/home/graduate/apache-tomcat-6.0.14/bin/shutdown.sh
until [ -z $(/sbin/pidof java) ]; do :; done
rm -f /var/lock/subsys/tomcat
else
echo "tomcat not running"
fi
}
case "$1" in
start)

start
;;
stop)

stop
;;
restart)
stop
start
;;
status)
/home/graduate/apache-tomcat-6.0.14/bin/catalina.sh version
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
esac
exit 0
 
[root@sample ~]# chmod 755 /etc/rc.d/init.d/tomcat ← 시작 스크립트 속성을 755(실행 가능)로 설정
 
[root@sample~]#chkconfig --add tomcat ← Tomcat을 chkconfig에 추가
 
[root@sample~]#chkconfig tomcat on ← Tomcat을 시작 상태로 설정
 
[root@sample~]#chkconfig --list tomcat ← Tomcat 서비스 상태 확인
tomcat 0:off 1:off 2:on 3:on 4:on 5:on 6:off ← 온의 상태를 확인하면 OK
 
[root@sample ~]# /etc/rc.d/init.← Tomcat 시작
 
Starting tomcat
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JAVA_HOME: /usr/local/jdk1.5.0_08
 
 
iptable 방화벽 설정
CentOS 시스템 설치가 완료되면 22포트가 개발된 것을 제외하고 다른 포트는 방화벽에 의해 닫힙니다.방화벽이 시작되면 ntsysv를 실행하여 볼 수 있습니다.
방화벽이 닫히는 것은 안전을 고려한 것이다.하지만 80을 개방해야지, 3306을 내가 방문하고 싶은 서버에 방문하게 해야지, 그렇지 않으면 이 기계를 놓아도 소용없어.
[root@sample~] #iptables -I INPUT -p tcp --dport 80 -j ACCEPT ← 오픈 80 포트 [root@sample~] #iptables -I INPUT -p tcp --dport 8080 -j ACCEPT ← 오픈 8080 포트 [root@sample~] #iptables -I INPUT -p tcp --dport 3306 -j ACCEPT ← 오픈 3306 포트 [root@sample ~]#/etc/rc.d/init.d/iptables save ← 설정 저장, 중요
성공 여부를 다시 확인합니다.
[root@sample ~]#/etc/init.d/iptables status   
본 경우:
Table: filter
Chain INPUT (policy ACCEPT)
num target     prot opt source               destination        
1    ACCEPT     udp -- 0.0.0.0/0            0.0.0.0/0           udp dpt:80
2    ACCEPT     tcp -- 0.0.0.0/0            0.0.0.0/0           tcp dpt:80 
 
80 포트가 켜져 있음을 나타냅니다.

좋은 웹페이지 즐겨찾기