개발자/리눅스

[CentOS] CentOS 환경에서 Putty 연결(SSH,FTP,PUTTY) / jar 파일 구동 전 방화벽 열기/ VMWare Player 17 외부 인터넷 NAT 설정

푸루닉 2024. 3. 26. 17:59

https://hwo7513565.tistory.com/124

이전 포스팅에서 CentOS까지 구동했다는 가정하고 진행하겠습니다.

 

jar파일을 구동하기 전 리눅스 환경에서 putty(ssh), 알드라이브 or 파일질라(FTP)에 접속할 수 있는 환경을 구성해보도록 하겠습니다.

 

1. CentOS 기본 세팅

su - # root 계정 접속

sudo 사용하기 귀찮아서 su - 로 진행하겠습니다.

 

다음은 CentOS 사용에 필요한 패키지를 설치하겠습니다.

yum update -y
yum install -y epel-release
yum install -y npm
yum install -y net-tools
yum install -y kernel-devel

등등등 매우 많은데, 아마 다 설치됐다고 나올겁니다.

 

패키지 업데이트 및 설치가 완료됐을 시 CentOS7을 재부팅 합니다.

 


 

2. OpenSSH 설치

 

서버 컴퓨터 로컬 환경에서 작업하는 경우는 매우 드물기 때문에 putty등의 SSH통신을 사용하여 원격지 호스트 컴퓨터에 접속을 위한 작업을 진행할 것이다.

 

가. OpenSSH 설치 여부 확인

기본적으로 설치되어 있지 않을 것이다. 그래도 혹시 모르니 확인하자

yum list installed ssh

Loaded plugins : fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.neowiz.com
 * extras: ftp.daumkakao.com
 * updates: ftp.daumkakao.com
Error: No matching Packages to list

위와 같은 Error 메시지를 확인하면 ssh를 설치해 주어야 한다.

 

나. OpenSSH 설치하기

yum install -y openssh-server
yum install openssh-clients
yum install -y openssh-askpass

설치 된것도 있고 안된것도 있을 것이다. 모두 설치를 진행한다.

 

다. CentOS Network 재시작

systemctl restart network

적용을 위해 재시작 해준다.

 

라. OpenSSH 설정파일 수정

vim 편집기로 sshd_config 파일을 수정해준다.

Port 22를 찾아 주석을 해제해 주면 된다.(# << 지우면 댐)

vim /etc/ssh/sshd_config

#       $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/bin:/usr/bin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port 22    // 주석( # ) 제거
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

           ~ 이 하 생 략 ~

i(수정) >> esc(편집환경 나감) >> :wq (저장후종료)

 

마. OpenSSH 서비스 구동

systemctl start sshd.service

 

기본적인 SSH 통신을 위한 준비는 마무리 됐다.

 

하지만 원격으로 리눅스 서버를 조작하기 위해서는 방화벽 PORT를 해제해야 한다.

 


3. 방화벽(FireWall) Port 열기

 

가. 방화벽 실행여부 확인 및 실행

firewall-cmd --state
running( 실행중 ) / not running( 실행중이 아님 )

 

방화벽이 실행중이 아닌 경우(not running)

 

방화벽 실행

systemctl start firewalld

 

Linux 재부팅시 방화벽 자동 재시작 설정

systemctl enable firewalld

 

나. 방화벽(FireWall) - 특정 PORT 허용

 01) PORT 22(SSH 네트워크 통신) 기본 포트 허용

firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --reload

 

이런식으로 필요한 포트를 모두 열어주면 된다. 필자의 경우 8833 포트를 이용하여 서버를 구동하고 3306포트를 이용하여 DB를 연결한다. REDIS 환경 포트도 열어주고 그외 8080 포트 1521(오라클 포트) 21(FTP) 20(FTP)포트를 모두 열어줄 것이다.

firewall-cmd --zone=public --add-port=8833/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=6347/tcp --permanent
firewall-cmd --zone=public --add-port=20/tcp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=1521/tcp --permanent

 

 02) 방화벽 재시작

firewall-cmd --reload
success

 

 03) 방화벽 확인

 firewall-cmd --list-all-zone

	~~ 이 하 생 략 ~~
    
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3
  sources: 
  services: dhcpv6-client ssh
  ports: 22/tcp 80/tcp 8833/tcp 21/tcp 1521/tcp ~~(등등)
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
  
	~~ 이 하 생 략 ~~

여러분들이 설정한 포트가 열렸는지 확인 하면 된다.

 


4. VMware에 설치된 CentOS7으로 Putty 접속하기

 

가. Putty 설치하기

설치가 완료되면 위와 같은 UI를 확인할 수 있다.

 

나. CentOS7 네트워크 IP 설정

 

 01) IP 확인 (ip a / ip addr 등등)

# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:ff:0f:2a brd ff:ff:ff:ff:ff:ff
    inet 192.168.111.128/24 brd 192.168.111.255 scope global noprefixroute dynamic ens33
       valid_lft 1736sec preferred_lft 1736sec
    inet 192.168.111.100/24 brd 192.168.111.255 scope global secondary noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::8ee2:9a5f:93bc:1d16/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:07:6a:2e brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:07:6a:2e brd ff:ff:ff:ff:ff:ff

ip a로 네트워크 상태를 확인해 보면 각자 설정된 네트워크 IP가 있을 것이다. 여기서 우린 ens33(다를 수도 있음 각자 환경에 맞게)을 우리가 설정한 IP로 변경할 것이다.

 

 02) 네트워크 IP 설정

vi /etc/sysconfig/network-scripts/ifcfg-ens33

Tab을 활용하여 각자 네트어크 인터페이스에 연결한다.(ifcfg- 입력 후 [Tab])

 

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="4154c219-b1d4-4dc5-af8a-70d8bd444691"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.111.100"
GATEWAY="192.168.111.2"
NETMASK="255.255.255.0"

필자는 위와같이 변경을 한 상태이다. 각자 환경에 맞게 구성해주면된다.

(BOOTPROTO / ONBOOT / IPADDR / NETMASK) 설정 필수

 

  03) 저장 후 재가동

service network restart

 

 04) ip a를 이용하여 설정이 잘 됐는지 확인

 

 05) ping 192.168.111.100 통신 연결 확인

ping 192.168.111.100
PING 192.168.111.100 (192.168.111.100) 56(84) bytes of data.
64 bytes from 192.168.111.100: icmp_seq=1 ttl=64 time=0.053 ms
64 bytes from 192.168.111.100: icmp_seq=2 ttl=64 time=0.051 ms
64 bytes from 192.168.111.100: icmp_seq=3 ttl=64 time=0.056 ms
^C
--- 192.168.111.100 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.051/0.053/0.056/0.006 ms

 

 


5. VMware Player 17 외부 인터넷 연동 NAT 설정

 

가. vmnetcfg 설정

 

01) VMware Player 15.5.7 버전 설치(16.x 17.x 버전에서도 사용가능함)

https://www.tobias-hartmann.net/2018/12/download-vmnetcfg-exe-fuer-vmware-workstation-15-x-player/

 

02) 압축 해제 후 'C:\Program Files\VMware\VMware Player' 해당 위치에 파일 옮기기(각자 VMware 다운로드 받은곳에 옮기기)

 

나. Virtual Network Editor 설정

 01) vmnetcfg 실행

 

 02) NAT 방식 설정

 

다. VMware 설정

 01) 자체 설정

 

[Network Adapter] 탭에서 NAT 방식의 네트워크 연결을 설정합니다.

이 때 [Device status] 부분에 'Connected' / 'Connect at power on' 체크가 풀려있다면 모두 체크해주세요.

 

라. 리눅스 IP 확인

ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:ff:0f:2a brd ff:ff:ff:ff:ff:ff
    inet 192.168.111.128/24 brd 192.168.111.255 scope global noprefixroute dynamic ens33
       valid_lft 1722sec preferred_lft 1722sec
    inet 192.168.111.100/24 brd 192.168.111.255 scope global secondary noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::8ee2:9a5f:93bc:1d16/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

 

GATEWAY 설정

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="4154c219-b1d4-4dc5-af8a-70d8bd444691"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.111.100"
GATEWAY="192.168.111.2"
NETMASK="255.255.255.0"
~

 

마. PING 8.8.8.8 확인

ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=47.4 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=128 time=56.3 ms
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 47.478/51.931/56.385/4.459 ms
[root@localhost ssns]#

6. PUTTY를 통해 원격 접속

설정했던 IP와 PORT를 입력 후 Sessions 이름을 입력 후 save 후 열어주세요

 

잘 접속되는 모습을 확인 가능

 


7. 알드라이브 접속(SFTP)

 

위와 같이 접속이 가능합니다.