2017. 5. 31. 19:07ㆍLinux
iptables를 이용해서 각 서버의 SSH통신을 관리해보겠습니다
먼저 SSH통신을 위한 패키지를 다운받아야합니다
#yum -y install openssh-client
" #ssh 계정명@서버IP주소 " 명령어를 통해서 해당 서버로 접속할 수 있습니다 ( 계정명@ 생략하면 root계정으로 접속 )
예제에 사용할 서버는 Server-A / Server-B / Server-C
Server-A IP : 100.100.100.110
Server-B IP : 100.100.100.120
Server-C IP : 100.100.100.130
[ ex1 ]
[ 명령어를 치는 서버 Server-A ]
#iptables -A INPUT -p tcp --dport 22 -j ACCEPT
해당 설정은 INPUT체인에 추가할것이고, tcp 프로토콜을 사용하고, Server-A의 22번포트번호로 들어오는 정보는 ACCEPT 한다
-A : append
-p : protocol 설정
--dport : destination port ( 도착지 포트번호 )
-j : 추가할 내용 ( ACCEPT or DROP )
[ ex2 ]
Server-B 는 Server-A에게 접속이 가능하고 Server-C는 Server-A에게 접속이 불가능하도록 설정해보자
[ 명령어를 치는 서버 Server-A ]
#iptables -A INPUT -s 100.100.100.120 --dport 22 -j ACCEPT
INPUT체인에 추가할 것이다. 서버 100.100.100.120에서 Server-A의 22번포트로 들어오는 정보는 ACCEPT
#iptables -A INPUT -s 100.100.100.130 --dport 22 -j DROP
INPUT체인에 추가할 것이다. 서버 100.100.100.130에서 Server-A의 22번포트로 들어오는 정보는 DROP
[ 명령어를 치는 서버 Server-B ]
#ssh 100.100.100.110 => root의 비밀번호 입력후 접속이 가능하다.
[ 명령어를 치는 서버 Server-C ]
#ssh 100.100.100.110 => Server-A로의 접속을 할 수 없다. ( 연결자체가 안됨 )
* 서버B와 서버C에서 패킷이 들어올 때에는 서버B와 서버C의 포트번호는 매번 다르기 때문에 서버IP주소를 사용한다 !
[ 추가 내용 ]
1> Server-A에서 바깥으로 정보를 보낼 때에는 OUTPUT 체인에 설정을 추가해주면된다
2> --dport 는 도착지 포트번호이며, --sport는 출발지의 포트번호로써 옵션을 바꿔서 줄 수도 있다
3> iptables의 설정을 바꿧을 시에는 항상 실행시킬 명령어가 있다 ( 다른 service들과 다르게 save를 해주어야 합니다 ! )
=> ① #service iptables save
=> ② #service iptables restart
'Linux' 카테고리의 다른 글
리눅스 서버 공부전에 알아두면 좋은 네트워크 개념들 (0) | 2017.05.09 |
---|---|
소유권 / 허가권 / 특수권한 / ACL (0) | 2017.04.29 |
Linux 디렉터리 및 파일 종류 (0) | 2017.04.16 |
Linux Command ( 리눅스 명령어 ) (0) | 2017.04.14 |
VI명령어 (0) | 2017.04.13 |