반응형
sshd_config = 외부서버 -> 내부서버 접속 설정
ssh_config = 내부서버 -> 외부서버 접속 설정
포트변경시 SELINUX를 사용시 포트를 허용해야된다.
포트 허용하지 않고 서비스를 시작할수 없다.
기본포트 22번은 selinux기본 허용상태이지만 포트변경시 임의포트를 selinux권한을 열어줘야한다.
# semanage port -a -t ssh_port_t -p tcp 7901
포트삭제
# semanage port -d -p tcp 7901
1. 서비스별 허용포트 확인
# semanage port -l | grep 서비스명or포트
2. 서비스에 포트 추가
# semanage port -a -t ssh_port_t -p tcp 포트
3. 서비스에 포트 삭제
# semanage port -d -t ssh_port_t -p tcp 포트
# cd /etc/ssh/
# cp /etc/ssh/sshd_config /etc/ssh/sshd_config_old /* 원복 파일 백업 */
# vi /etc/ssh/sshd_config
# cp /etc/ssh/sshd_config /etc/ssh/sshd_config_old /* 원복 파일 백업 */
# vi /etc/ssh/sshd_config
------------------------------------ sshd_config ------------------------------------------------------------------
# PermitRootLogin yes
ssh나 openssh를 사용시 대부분 root로의 직접 로그인을 허용하고 있다. 이러한 경우 무차별 대입법등으로 원격지에서 root로 로그인할 수도 있으므로 root로의 직접 로그인은 가급적 자제하는 것이 좋다.
따라서 일반 유저로 ssh 로그인한 후 su , su - 등을 이용하여 root로 로그인하여야 하는데
굳이 root로의 직접 로그인을 사용하려면 방화벽 등에서 접근통제를 엄격하게 설정하여야 한다.
ssh나 openssh를 사용시 대부분 root로의 직접 로그인을 허용하고 있다. 이러한 경우 무차별 대입법등으로 원격지에서 root로 로그인할 수도 있으므로 root로의 직접 로그인은 가급적 자제하는 것이 좋다.
따라서 일반 유저로 ssh 로그인한 후 su , su - 등을 이용하여 root로 로그인하여야 하는데
굳이 root로의 직접 로그인을 사용하려면 방화벽 등에서 접근통제를 엄격하게 설정하여야 한다.
# PubkeyAuthentication yes
# AuthorizedKeysFile .ssh/authorized_keys
ssh에서 제공하는 인증에는 공개키 인증과 암호 인증법 이렇게 두 가지가 있는데, 공개키 인증을 사용할 것인지에 대해 설정하는 것이다.
공개키 인증 사용시 공개키가 있어야 하므로 더욱 안전하다.
(처음 openssh 설치후 putty로 원격 접속을 시도 했을시 암호화 같은 긴 내용을 보았을 것인데 그것은 암호 인증법이다.)
그리고 인증 접속에 문제가 될 경우 공개키의 내용을 삭제하고 접속하면 다시 물어 본다.
디렉토리 : /etc/ssh
# RhostsRSAAuthentication no
PasswordAuthentication yes
.rhost는 보안상 상당히 위험하므로 사용하지 말아야 한다. 그리고 일반적인 암호 기반의 인증을 사용할 것인지 결정하여야 하는데, 만약 암호기반의 인증을 제공하려면 엄격하게 접근통제를 하여야 할 것이다.
# PermitEmptyPasswords no
암호가 없는 계정에 대해 로그인을 허용할 것인지 지정하는 부분이다. 당연히 no로 지정하는 것이 좋다.
(CentOS 5.1의 경우 주석(#) 처리 되어 있어 암호가 없는 계정은 ssh로 접속이 불가능하다.)
암호가 없는 계정에 대해 로그인을 허용할 것인지 지정하는 부분이다. 당연히 no로 지정하는 것이 좋다.
(CentOS 5.1의 경우 주석(#) 처리 되어 있어 암호가 없는 계정은 ssh로 접속이 불가능하다.)
AllowGroups wheel admin오직 wheel이나 admin 그룹에 속한 유저만 로그인할 수 있도록 허용한다. 이외에 그룹에 속한 유저는 암호를 정확히 입력해도 로그인이 거부된다.
(CentOS 5.1과 Fedora Core 6에서는 설정이 없다. 필요하다면 추가해 주면 된다.)
(CentOS 5.1과 Fedora Core 6에서는 설정이 없다. 필요하다면 추가해 주면 된다.)
AllowUsers user1 user2
위 그룹에 속한 유저 중에서도 user1과 user2만 로그인을 하용한다.
물론 AllowUsers를 별도로 지정하지 않으면 AllowGroups에서 지정한 그룹은 모두 로그인 가능하며 AllowGroups를 지정하지 않고 AllowUsers만 지정하면 그룹에 관계없이 AllowUsers에 지정된 유저만 로그인 가능하다.
(CentOS 5.1과 Fedora Core 6에서는 설정이 없다. 필요하다면 추가해 주면 된다.)
위 그룹에 속한 유저 중에서도 user1과 user2만 로그인을 하용한다.
물론 AllowUsers를 별도로 지정하지 않으면 AllowGroups에서 지정한 그룹은 모두 로그인 가능하며 AllowGroups를 지정하지 않고 AllowUsers만 지정하면 그룹에 관계없이 AllowUsers에 지정된 유저만 로그인 가능하다.
(CentOS 5.1과 Fedora Core 6에서는 설정이 없다. 필요하다면 추가해 주면 된다.)
ListenAddress 0.0.0.0
기본적으로 ListenAddress가 0.0.0.0 으로 되어 있어 인터페이스에 설정된 모든 IP에 대해 리슨(LISTEN)하도록 되어 있다. 만약 여러 IP가 aliasing되어 있다면 꼭 필요한 특정 IP에서만 리슨(LISTEN)하도록 하는 것이 좋다.
기본적으로 ListenAddress가 0.0.0.0 으로 되어 있어 인터페이스에 설정된 모든 IP에 대해 리슨(LISTEN)하도록 되어 있다. 만약 여러 IP가 aliasing되어 있다면 꼭 필요한 특정 IP에서만 리슨(LISTEN)하도록 하는 것이 좋다.
Port 875ssh의 기본 포트는 22번이지만 반드시 22번으로 사용할 필요는 없으므로 임의의 번호를 할당하여 외부에서 접속할 때에는 “ssh hostname –p 975”와 같이 접속하면 된다.
만약 여러 포트로 리슨(LISTEN)하도록 하려면 아래와 같이 설정하면 된다.
Port 22
Port 5002
만약 여러 포트로 리슨(LISTEN)하도록 하려면 아래와 같이 설정하면 된다.
Port 22
Port 5002
1. 루트로그인 차단 (PermitRootLogin)
# vi /etc/ssh/sshd_config PermitRootLogin no
2. 특정 그룹 또는 유져만 접속가능
# vi /etc/ssh/sshd_config AllowUsers bobo john jason
# vi /etc/ssh/sshd_config AllowGroups sysadmin dba
3. 특정 그룹 또는 유져 접속차단
# vi /etc/ssh/sshd_config DenyUsers cvs apache jane
# vi /etc/ssh/sshd_config DenyGroups developers qa
4. sshd 포트넘버 변경 (Port)
# vi /etc/ssh/sshd_config Port 2222
4-1. 변경된 포트 방화벽 허용
# firewall-cmd --permanent --zone=public --add-port 2222/tcp
# firewall-cmd --reload
4-2. sshd서비스 재시작
# systemctl restart sshd
5. 지정시간내 로그인 유효시간 (LoginGrace Time)
# vi /etc/ssh/sshd_config LoginGraceTime 1m (기본 1분지정, 0은 시간제한없음)
6. sshd Listen Address
# vi /etc/ssh/sshd_config ListenAddress 192.168.0.200
7. 접속후 아무작업이 없을때 접속끊기
# vi /etc/ssh/sshd_config ClientAliveInterval 600 ( 기본 0 보내지않음. 10분간격으로 클라이언트로 메시지를 보내고 응답한다.) ClientAliveCountMax 3 (클라이언트에서 응답이 없을 때 메시지를 보내는 횟수)
'Linux > 네트워크보안' 카테고리의 다른 글
PuTTYgen을 이용한 SSH키 원격접속방법(VSCODE원격접속 포함) (0) | 2023.04.13 |
---|---|
fail2ban unban all (0) | 2022.02.09 |
Centos7] firewalld 방화벽 관리 (0) | 2016.07.21 |
fail2ban 차단아이피 해제 (0) | 2016.07.20 |