내성(內城)·외성(外城)·신성(新城) 등 3개의 성으로 구성되어 있다. 이 중 내성은 고구려시대에 축조된 것이며, 외성은 조선시대에, 신성은 17세기경에 축조된 것이다.
내성은 동서로 긴 형태로 토네이도 슬롯의 길이는 2,280m이다. 능선과 절벽 및 구릉을 이용하여 토네이도 슬롯을 쌓았는데, 토네이도 슬롯의 아래부분은 장대석(長大石)으로 기초를 만들었고 그 위에 3∼4단을 퇴물림형식으로 쌓아올렸다.
치(稚 : 토네이도 슬롯에서 돌출시켜 쌓은 토네이도 슬롯)는 동·남·북쪽 토네이도 슬롯에 각각 2개소씩 모두 6개가 설치되어 있다. 문지(門址)는 동·남·북의 3면에 있으며, 장대(將臺)는 서·남·동쪽의 토네이도 슬롯에 설치되어 있다. 서장대(西將臺)에는 고려시대에 만든 백상루(百祥樓)가 세워져 있다.