최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

티스토리 뷰

리눅스는 클라이언트 / 서버 환경으로 사용되며 네트워크를 통해 원격 호스트에서 리눅스 서버로 로그인하여

 

시스템을 사용하고 관리할수있다.

 

원격접속에 사용되는 클라이언트/서버 환경은 telnet, rlogin, ssh, telnet-ssl 등 이 있다. 이중에서 telnet과 rlogin은 데이터를 전송할 때

 

암호화된 문장이 아니라 일반 텍스트로 전송하므로 크래커가 해당 패킷을 가로챌 경우 암호가 노출될 수 있다.

 

따라서 openssl을 이용하는 openssh와 telnet-ssl등 패킷암호화 전송 방법을 권장한다.

 

openssh를 사용하려면 서버 측면 에서도 openssh를 구동하여야 한다. 또한 클라이언트/서버 구조로 실행되므로

 

클라이언트에서도 openssl이 함께 설치되어있어야 한다.

 

내가 약 3일간 교재와 구글링을 통해서 배운 체계적이고 확실한 원격제어법을 밑바닥부터 분석해서 정리해놓고자 한다.

 


 

원격제어의 궁극적인 목적은 서버관리이다. 추후에 php와 같은 서버사이드 언어를 동작하고 작동 시키기 위함으로 단순 원격제어와는

 

직접적인 관련은 없지만 그래도 step1은 아파치 설치여부에 대한 확인으로 시작하겠다.

 

1. 아파치가 설치되었는지 확인

 

OS버전은 앞에서 계속 일관되게 설명 해 왔듯이 red hat enterprise linux server release 5.7 (tikanga) 버전을 기준으로 설명.

 

보통의 경우 레드햇 계열 리눅스 설치시 옵션에 따라 아파치가 함께 설치된 경우가 대다수이다. 설치확인에 대한 여러가지 방법이 있다.

 

방법1.

[root@localhost ~]# rpm -qa httpd
httpd-2.2.3-53.el5

 

방법2.

[root@localhost ~]# which httpd
/usr/sbin/httpd

 

방법3.

[root@localhost ~]# httpd -v
Server version: Apache/2.2.3
Server built: Jun 16 2001 11:28:25

 

대략 이런 결과가 나오면 Apache가 설치되어있다는 뜻이다.

 

난 위와 다르다! or 설치가 되어있지않다!ㅠㅠ  --> 다음 목록글인 "8. 호스팅하기" 에서 apache를 설치내용이 있으니 참고.

 

2. HTTP 서비스 시작

이렇게 서비스시작 시켜준다.
[root@localhost ~]# service httpd start

 

3. 방화벽 설정

[root@localhost /]# /etc/sysconfig 에서
[root@localhost sysconfig]# cat iptables 로 열어보면 다름과 같은 내용들이 있다.

 

# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1414 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

 

원격제어의 기본 포트는 22 이며, HTTP통신의 기본 포트는 80이다. 대개의 경우 22, 80번의 포트가 해제되어있을 텐데

 

여기에 특정포트를 개방하거나 닫거나 등 을 할수있다.

 

INPUT과 OUTPUT은 변경할 수 있으며 ACCEPT/REJECT를 조정할 수 있다는 것이다.


방화벽에서 열고자 하는 특정 포트가 있다면 아래 한줄을 복사한 뒤 포트 번호만 바꿔서 추가해주면 된다.


-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 포트번호 -j ACCEPT

 

만약에 15000번 포트를 열고 싶다면  

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 15000 -j ACCEPT

 

이라고 추가한 뒤 :wq 로 (저장후닫기)

 

설정한 방화벽을 적용하여 구동키 위해서는 방화벽을 다시 시작해야한다

 

레드햇 계열은 /etc/init.d/iptables에 구동 쉘 파일이 있다.

 

iptables restart

 

사용법: ./iptables {start|stop|restart|condrestart|status|panic|save}

 

해주게 되면 위에서 설정한 포트를 열고 재시작 하게 된다.

 

또 다른 방법은 터미널에서 그냥 setup치면 텍스트모드 설정 유틸리티 화면이 나온다.

 

# setup

 

괜히 복잡하게 텍스트로 타이핑 칠 필요없이, 이곳에서도 방화벽 설정 메뉴에 들어가 해제를 하고 다시 시작할수있다.

 

 

바로 이곳!

 

4. openssh를 사용하기 위한 서버환경

openssh를 사용하기 위해서 패키지가 설치되어있어야 한다. 아래 두개의 ssl, ssh를 실행해보자.

 

# rpm -qa | grep ssl
openssl-0.9.6b-31
openssl-devel-0.9.6b-31


# rpm -qa | grep ssh
openssh ~ ...

openssh ~ ...

openssh ~ ...

 

설치가끝났다면 openssh서버를 구동해야한다.


openssh서버는 standalone 타입으로 동작하는 서버이며 서버 구동 여부를 확인하기 위해서는 다음과 같은 명령어를 수행한다.

 

# /etc/init.d/sshd status
openssh-daemon (pid 2583)를 실행 중...

 

혹시 구동중이지 않다면 다음과 같이 서버를 구동해야한다.
# /etc/init.d/sshd start    (만약 서버를 중지하려면 # /etc/init.d/sshd stop)

 

시스템 재부팅 후 openssh서버가 자동으로 시작하지 않는다면 chkconfig명령어를 통해 부팅할 때 자동으로 서버를 시작하도록 설정한다.

 

# chkconfig sshd on

 

5. putty.exe로 접속 (파일첨부)

윈도우에 putty.exe를 실행시킨다.

 

 

HostName에 IP주소를 입력하고, 포트번호는 22, 연결타입은 SSH

그리고 Open을 누른다.

 

이렇게 실행창이 뜨면

 

 

login as : root (리눅스 최고 관리자인 root 계정명)

root@ip password : 리눅스 root 계정의 암호 입력

 

접속 성공!

 

 

부분출처)

방화벽 인용 : http://jangpd007.tistory.com/35
yum설치 인용 : http://handk85.tistory.com/140

 

댓글