현재 성벽과 남대문·건물지 등이 남아 있다. 이곳은 본래 신라시대의 송악군(松嶽郡)으로 통일신라 때에 축성한 기록이 있으나, 이 도성과 어떤 관계를 갖고 있는지 알려지지 않고 있다. 고려태조왕건은 즉위한 이듬해인 919년에 도읍을 개성으로 옮겼고, 1029년(현종 20)에 이르러 나성(羅城)을 쌓아 내외 이중의 도성을 이루었다.
왕성인 내성은 둘레가 2,600칸이고 문 20개로 왕궁을 둘러싼 것으로, 만월대를 중심으로 한 네모진 것이었다. 나성은 송악산의 남쪽 사면과 남산까지를 둘러 시가지 전체를 포위하듯 축조했다. 나성은 거란족의 침입에 도성이 쉽사리 함락되었던 경험을 하고 나서 축조하였는데, 둘레가 2만9,700보, 나각(羅閣)이 1만3000칸이라고 하고, 혹은 둘레를 1만660보, 높이 27척, 낭옥(廊屋)이 4,910칸이라고도 전하여 온다.
나성의 축조에는 23만8938인의 역부와 8,450인의 공장이 동원되었던 것으로 보아서, 고려시대에 엄청난 국력을 기울여 외침에 대비하고 대내외적으로 왕권의 위엄을 나타내려고 하였음을 엿볼 수 있다.
나성에는 동쪽의 숭인문(崇仁門), 남쪽의 회빈문(會賓門), 서쪽의 선의문(宣義門), 북쪽의 보정문(保定門) 등 4대문과 중문 8개, 소문 13개가 있었다. 나성의 내부는 5부 35방 344리로 구분되었는데, 이러한 방리제도(坊里制度)는 중국식의 도성제도와 달리 자연지세와 자연촌락 단위를 대략적으로 구분한 특색있는 것이었다.
이 성곽은 조선왕조가 개창된 이후에도 여전히 도성의 기능을 담당하였는데, 1393년(태조 2)에 이미 폐허가 된 본래의 나성보다 축소하여 내성을 축조하였다. 이 내성은 둘레가 20리 42보의 규모로 나성의 절반 규모에도 못 미치는 것이었고, 중요한 궁전과 관부, 송악산의 남쪽 사면의 대부분만을 두른 것이었다.
조선조가 한양으로 천도한 다음에도 개성성곽은 내성이 계속 유지되어 오고 남대문이 옛 모습을 지키고 있어 조선 초기의 성문양식을 알려 주고 있다.